ClientRegistrationModel
type: StructureDefinition
node role: treeRoot
id:
  v: ClientRegistrationModel
text:
  status:
    v: extensions
  div:
    v: Generated Narrative: StructureDefinition ClientRegistrationModel Name Flags Card. Type Description & Constraints<img src="[binary]" alt="doco" style="background-color: inherit"/> ClientRegistrationModel 0..* Base KPS.A Client Registration #xD; identifier 1..1 Identifier Government-issued identifier used to distinguish individuals, e.g., National ID (adults) or Birth Certificate number (under 18) #xD; name 1..1 BackboneElement Client's name #xD; given 1..1 string Client's first name #xD; family 1..1 string Client's family name or last name #xD; dateOfBirth 1..1 date Client's date of birth, if known #xD; sex 1..1 code Sex of the client assigned at birth Binding: KPS - Administrative Gender (required) #xD; address 0..1 BackboneElement Client's residential address #xD; country 0..1 string Name of country of affiliation #xD; county 0..1 string County where the client resides #xD; subcounty 0..1 string Subcounty of residence #xD; ward 0..1 string Ward where the client lives #xD; village 0..1 string Village or estate of residence #xD; postalAddress 0..1 string Mailing address including P.O. Box, street or building details #xD; telecom 0..1 BackboneElement Client's contact information #xD; phone 0..1 string Phone number (mobile or landline) #xD; email 0..1 string Email address #xD; contactPerson 0..1 BackboneElement Contact person or legal guardian #xD; role 1..1 code Role: legal guardian, next of kin, or other Binding: KPSPatientContactRelationship (required) #xD; relationship 0..1 string Relationship to the client (e.g., father, spouse, daughter) #xD; name 0..1 BackboneElement Name of contact person #xD; given 1..1 string First name of contact person #xD; family 1..1 string Surname of contact person #xD; phone 0..1 string Phone number of contact person #xD; email 0..1 string Email of contact person #xD; insurance 0..1 BackboneElement Insurance information #xD; insuranceNumber 0..1 string Health insurance ID assigned to the client #xD; <img src="[binary]" alt="doco" style=…
url:
  v: https://fhir.dha.go.ke/kps/StructureDefinition/ClientRegistrationModel
  l: ClientRegistrationModel
version:
  v: 0.1.0
name:
  v: ClientRegistrationModel
title:
  v: KPS.A Client Registration
status:
  v: draft
date:
  v: 2026-05-11T04:58:58+00:00
publisher:
  v: Digital Health Agency of Kenya
contact:
  name:
    v: Digital Health Agency of Kenya
  telecom:
    system:
      v: url
    value:
      v: https://www.dha.go.ke
  telecom:
    system:
      v: email
contact:
  name:
    v: Digital Health Agency of Kenya – Interoperability Team
  telecom:
    system:
      v: email
    use:
      v: work
  telecom:
    system:
      v: url
    value:
      v: https://www.dha.go.ke
    use:
      v: work
description:
  v: Logical model for registering a client under the Kenya Patient Summary (KPS.A) standard.
jurisdiction:
  coding:
    system:
      v: urn:iso:std:iso:3166
      l: 3166
    code:
      v: KE
    display:
      v: Kenya
copyright:
  v: Copyright © 2024+ Digital Health Agency of Kenya. This content is licensed under Creative Commons Zero v1.0 Universal (CC0 1.0). No rights reserved.
fhir version:
  v: 4.0.1
kind:
  v: logical
abstract:
  v: false
type:
  v: https://fhir.dha.go.ke/kps/StructureDefinition/ClientRegistrationModel
  l: ClientRegistrationModel
base definition:
  v: http://hl7.org/fhir/StructureDefinition/Base
  l: Base
derivation:
  v: specialization
snapshot:
  extension:
    url:
      v: http://hl7.org/fhir/tools/StructureDefinition/snapshot-base-version
      l: snapshot-base-version
    value: String
      v: 4.0.1
  element:
    id:
      v: ClientRegistrationModel
    path:
      v: ClientRegistrationModel
    short:
      v: KPS.A Client Registration
    definition:
      v: Logical model for registering a client under the Kenya Patient Summary (KPS.A) standard.
    min:
      v: 0
    max:
      v: *
    base:
      path:
        v: Base
      min:
        v: 0
      max:
        v: *
    is modifier:
      v: false
  element:
    id:
      v: ClientRegistrationModel.identifier
    path:
      v: ClientRegistrationModel.identifier
    code:
      code:
        v: KPS.A.DE.1
    short:
      v: Government-issued identifier used to distinguish individuals, e.g., National ID (adults) or Birth Certificate number (under 18)
    definition:
      v: Government-issued identifier used to distinguish individuals, e.g., National ID (adults) or Birth Certificate number (under 18)
    min:
      v: 1
    max:
      v: 1
    base:
      path:
        v: ClientRegistrationModel.identifier
      min:
        v: 1
      max:
        v: 1
    type:
      code:
        v: Identifier
        l: Identifier
  element:
    id:
      v: ClientRegistrationModel.name
    path:
      v: ClientRegistrationModel.name
    short:
      v: Client's name
    definition:
      v: Client's name
    min:
      v: 1
    max:
      v: 1
    base:
      path:
        v: ClientRegistrationModel.name
      min:
        v: 1
      max:
        v: 1
    type:
      code:
        v: BackboneElement
        l: BackboneElement
    constraint:
      key:
        v: ele-1
      severity:
        v: error
      human:
        v: All FHIR elements must have a @value or children
      expression:
        v: hasValue() or (children().count() > id.count())
      xpath:
        v: @value|f:*|h:div
      source:
        v: http://hl7.org/fhir/StructureDefinition/Element
        l: Element
  element:
    id:
      v: ClientRegistrationModel.name.id
    path:
      v: ClientRegistrationModel.name.id
    representation:
      v: xmlAttr
    short:
      v: Unique id for inter-element referencing
    definition:
      v: Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
    min:
      v: 0
    max:
      v: 1
    base:
      path:
        v: Element.id
      min:
        v: 0
      max:
        v: 1
    type:
      extension:
        value: Url
      code:
        v: http://hl7.org/fhirpath/System.String
        l: System.String
    is modifier:
      v: false
    is summary:
      v: false

Url
v: string
l: string

identity:
  v: rim
map:
  v: n/a

id:
  v: ClientRegistrationModel.name.extension
path:
  v: ClientRegistrationModel.name.extension
slicing:
  discriminator:
    type:
      v: value
    path:
      v: url
  description:
    v: Extensions are always sliced by (at least) url
  rules:
    v: open
short:
  v: Additional content defined by implementations
definition:
  v: May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
comment:
  v: There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.
alias:
  v: extensions
alias:
  v: user content
min:
  v: 0
max:
  v: *
base:
  path:
    v: Element.extension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
    l: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    l: Extension
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: ClientRegistrationModel.name.modifierExtension
path:
  v: ClientRegistrationModel.name.modifierExtension
short:
  v: Extensions that cannot be ignored even if unrecognized
definition:
  v: May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
comment:
  v: There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.
requirements:
  v: Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).
alias:
  v: extensions
alias:
  v: user content
alias:
  v: modifiers
min:
  v: 0
max:
  v: *
base:
  path:
    v: BackboneElement.modifierExtension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
    l: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    l: Extension
is modifier:
  v: true
is modifier reason:
  v: Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
is summary:
  v: true
mapping:
  identity:
    v: rim
  map:
    v: N/A

id:
  v: ClientRegistrationModel.name.given
path:
  v: ClientRegistrationModel.name.given
code:
  code:
    v: KPS.A.DE.2
short:
  v: Client's first name
definition:
  v: Client's first name
min:
  v: 1
max:
  v: 1
base:
  path:
    v: ClientRegistrationModel.name.given
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: string
    l: string

id:
  v: ClientRegistrationModel.name.family
path:
  v: ClientRegistrationModel.name.family
code:
  code:
    v: KPS.A.DE.3
short:
  v: Client's family name or last name
definition:
  v: Client's family name or last name
min:
  v: 1
max:
  v: 1
base:
  path:
    v: ClientRegistrationModel.name.family
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: string
    l: string

id:
  v: ClientRegistrationModel.dateOfBirth
path:
  v: ClientRegistrationModel.dateOfBirth
code:
  code:
    v: KPS.A.DE.4
short:
  v: Client's date of birth, if known
definition:
  v: Client's date of birth, if known
min:
  v: 1
max:
  v: 1
base:
  path:
    v: ClientRegistrationModel.dateOfBirth
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: date
    l: date

id:
  v: ClientRegistrationModel.sex
path:
  v: ClientRegistrationModel.sex
code:
  code:
    v: KPS.A.DE.5
short:
  v: Sex of the client assigned at birth
definition:
  v: Sex of the client assigned at birth
min:
  v: 1
max:
  v: 1
base:
  path:
    v: ClientRegistrationModel.sex
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: code
    l: code
binding:
  strength:
    v: required
  value set:
    v: http://example.com/fhir/ValueSet/kps-gender-vs
    l: kps-gender-vs

id:
  v: ClientRegistrationModel.address
path:
  v: ClientRegistrationModel.address
short:
  v: Client's residential address
definition:
  v: Client's residential address
min:
  v: 0
max:
  v: 1
base:
  path:
    v: ClientRegistrationModel.address
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: BackboneElement
    l: BackboneElement
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element

id:
  v: ClientRegistrationModel.address.id
path:
  v: ClientRegistrationModel.address.id
representation:
  v: xmlAttr
short:
  v: Unique id for inter-element referencing
definition:
  v: Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Element.id
  min:
    v: 0
  max:
    v: 1
type:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type
      l: structuredefinition-fhir-type
    value: Url
      v: string
      l: string
  code:
    v: http://hl7.org/fhirpath/System.String
    l: System.String
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: ClientRegistrationModel.address.extension
path:
  v: ClientRegistrationModel.address.extension
slicing:
  discriminator:
    type:
      v: value
    path:
      v: url
  description:
    v: Extensions are always sliced by (at least) url
  rules:
    v: open
short:
  v: Additional content defined by implementations
definition:
  v: May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
comment:
  v: There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.
alias:
  v: extensions
alias:
  v: user content
min:
  v: 0
max:
  v: *
base:
  path:
    v: Element.extension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
    l: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    l: Extension
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: ClientRegistrationModel.address.modifierExtension
path:
  v: ClientRegistrationModel.address.modifierExtension
short:
  v: Extensions that cannot be ignored even if unrecognized
definition:
  v: May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
comment:
  v: There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.
requirements:
  v: Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).
alias:
  v: extensions
alias:
  v: user content
alias:
  v: modifiers
min:
  v: 0
max:
  v: *
base:
  path:
    v: BackboneElement.modifierExtension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
    l: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    l: Extension
is modifier:
  v: true
is modifier reason:
  v: Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
is summary:
  v: true
mapping:
  identity:
    v: rim
  map:
    v: N/A

id:
  v: ClientRegistrationModel.address.country
path:
  v: ClientRegistrationModel.address.country
code:
  code:
    v: KPS.A.DE.8
short:
  v: Name of country of affiliation
definition:
  v: Name of country of affiliation
min:
  v: 0
max:
  v: 1
base:
  path:
    v: ClientRegistrationModel.address.country
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string

id:
  v: ClientRegistrationModel.address.county
path:
  v: ClientRegistrationModel.address.county
code:
  code:
    v: KPS.A.DE.9
short:
  v: County where the client resides
definition:
  v: County where the client resides
min:
  v: 0
max:
  v: 1
base:
  path:
    v: ClientRegistrationModel.address.county
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string

id:
  v: ClientRegistrationModel.address.subcounty
path:
  v: ClientRegistrationModel.address.subcounty
code:
  code:
    v: KPS.A.DE.10
short:
  v: Subcounty of residence
definition:
  v: Subcounty of residence
min:
  v: 0
max:
  v: 1
base:
  path:
    v: ClientRegistrationModel.address.subcounty
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string

id:
  v: ClientRegistrationModel.address.ward
path:
  v: ClientRegistrationModel.address.ward
code:
  code:
    v: KPS.A.DE.11
short:
  v: Ward where the client lives
definition:
  v: Ward where the client lives
min:
  v: 0
max:
  v: 1
base:
  path:
    v: ClientRegistrationModel.address.ward
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string

id:
  v: ClientRegistrationModel.address.village
path:
  v: ClientRegistrationModel.address.village
code:
  code:
    v: KPS.A.DE.12
short:
  v: Village or estate of residence
definition:
  v: Village or estate of residence
min:
  v: 0
max:
  v: 1
base:
  path:
    v: ClientRegistrationModel.address.village
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string

id:
  v: ClientRegistrationModel.address.postalAddress
path:
  v: ClientRegistrationModel.address.postalAddress
code:
  code:
    v: KPS.A.DE.13
short:
  v: Mailing address including P.O. Box, street or building details
definition:
  v: Mailing address including P.O. Box, street or building details
min:
  v: 0
max:
  v: 1
base:
  path:
    v: ClientRegistrationModel.address.postalAddress
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string

id:
  v: ClientRegistrationModel.telecom
path:
  v: ClientRegistrationModel.telecom
short:
  v: Client's contact information
definition:
  v: Client's contact information
min:
  v: 0
max:
  v: 1
base:
  path:
    v: ClientRegistrationModel.telecom
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: BackboneElement
    l: BackboneElement
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element

id:
  v: ClientRegistrationModel.telecom.id
path:
  v: ClientRegistrationModel.telecom.id
representation:
  v: xmlAttr
short:
  v: Unique id for inter-element referencing
definition:
  v: Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Element.id
  min:
    v: 0
  max:
    v: 1
type:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type
      l: structuredefinition-fhir-type
    value: Url
      v: string
      l: string
  code:
    v: http://hl7.org/fhirpath/System.String
    l: System.String
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: ClientRegistrationModel.telecom.extension
path:
  v: ClientRegistrationModel.telecom.extension
slicing:
  discriminator:
    type:
      v: value
    path:
      v: url
  description:
    v: Extensions are always sliced by (at least) url
  rules:
    v: open
short:
  v: Additional content defined by implementations
definition:
  v: May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
comment:
  v: There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.
alias:
  v: extensions
alias:
  v: user content
min:
  v: 0
max:
  v: *
base:
  path:
    v: Element.extension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
    l: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    l: Extension
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: ClientRegistrationModel.telecom.modifierExtension
path:
  v: ClientRegistrationModel.telecom.modifierExtension
short:
  v: Extensions that cannot be ignored even if unrecognized
definition:
  v: May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
comment:
  v: There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.
requirements:
  v: Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).
alias:
  v: extensions
alias:
  v: user content
alias:
  v: modifiers
min:
  v: 0
max:
  v: *
base:
  path:
    v: BackboneElement.modifierExtension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
    l: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    l: Extension
is modifier:
  v: true
is modifier reason:
  v: Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
is summary:
  v: true
mapping:
  identity:
    v: rim
  map:
    v: N/A

id:
  v: ClientRegistrationModel.telecom.phone
path:
  v: ClientRegistrationModel.telecom.phone
code:
  code:
    v: KPS.A.DE.14
short:
  v: Phone number (mobile or landline)
definition:
  v: Phone number (mobile or landline)
min:
  v: 0
max:
  v: 1
base:
  path:
    v: ClientRegistrationModel.telecom.phone
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string

id:
  v: ClientRegistrationModel.telecom.email
path:
  v: ClientRegistrationModel.telecom.email
code:
  code:
    v: KPS.A.DE.15
short:
  v: Email address
definition:
  v: Email address
min:
  v: 0
max:
  v: 1
base:
  path:
    v: ClientRegistrationModel.telecom.email
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string

id:
  v: ClientRegistrationModel.contactPerson
path:
  v: ClientRegistrationModel.contactPerson
short:
  v: Contact person or legal guardian
definition:
  v: Contact person or legal guardian
min:
  v: 0
max:
  v: 1
base:
  path:
    v: ClientRegistrationModel.contactPerson
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: BackboneElement
    l: BackboneElement
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element

id:
  v: ClientRegistrationModel.contactPerson.id
path:
  v: ClientRegistrationModel.contactPerson.id
representation:
  v: xmlAttr
short:
  v: Unique id for inter-element referencing
definition:
  v: Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Element.id
  min:
    v: 0
  max:
    v: 1
type:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type
      l: structuredefinition-fhir-type
    value: Url
      v: string
      l: string
  code:
    v: http://hl7.org/fhirpath/System.String
    l: System.String
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: ClientRegistrationModel.contactPerson.extension
path:
  v: ClientRegistrationModel.contactPerson.extension
slicing:
  discriminator:
    type:
      v: value
    path:
      v: url
  description:
    v: Extensions are always sliced by (at least) url
  rules:
    v: open
short:
  v: Additional content defined by implementations
definition:
  v: May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
comment:
  v: There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.
alias:
  v: extensions
alias:
  v: user content
min:
  v: 0
max:
  v: *
base:
  path:
    v: Element.extension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
    l: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    l: Extension
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: ClientRegistrationModel.contactPerson.modifierExtension
path:
  v: ClientRegistrationModel.contactPerson.modifierExtension
short:
  v: Extensions that cannot be ignored even if unrecognized
definition:
  v: May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
comment:
  v: There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.
requirements:
  v: Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).
alias:
  v: extensions
alias:
  v: user content
alias:
  v: modifiers
min:
  v: 0
max:
  v: *
base:
  path:
    v: BackboneElement.modifierExtension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
    l: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    l: Extension
is modifier:
  v: true
is modifier reason:
  v: Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
is summary:
  v: true
mapping:
  identity:
    v: rim
  map:
    v: N/A

id:
  v: ClientRegistrationModel.contactPerson.role
path:
  v: ClientRegistrationModel.contactPerson.role
code:
  code:
    v: KPS.A.DE.16
short:
  v: Role: legal guardian, next of kin, or other
definition:
  v: Role: legal guardian, next of kin, or other
min:
  v: 1
max:
  v: 1
base:
  path:
    v: ClientRegistrationModel.contactPerson.role
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: code
    l: code
binding:
  strength:
    v: required
  value set:
    v: https://fhir.dha.go.ke/kps/ValueSet/kps-patient-contact-relationship-vs
    l: kps-patient-contact-relationship-vs

id:
  v: ClientRegistrationModel.contactPerson.relationship
path:
  v: ClientRegistrationModel.contactPerson.relationship
code:
  code:
    v: KPS.A.DE.20
short:
  v: Relationship to the client (e.g., father, spouse, daughter)
definition:
  v: Relationship to the client (e.g., father, spouse, daughter)
min:
  v: 0
max:
  v: 1
base:
  path:
    v: ClientRegistrationModel.contactPerson.relationship
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string

id:
  v: ClientRegistrationModel.contactPerson.name
path:
  v: ClientRegistrationModel.contactPerson.name
short:
  v: Name of contact person
definition:
  v: Name of contact person
min:
  v: 0
max:
  v: 1
base:
  path:
    v: ClientRegistrationModel.contactPerson.name
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: BackboneElement
    l: BackboneElement
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element

id:
  v: ClientRegistrationModel.contactPerson.name.id
path:
  v: ClientRegistrationModel.contactPerson.name.id
representation:
  v: xmlAttr
short:
  v: Unique id for inter-element referencing
definition:
  v: Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Element.id
  min:
    v: 0
  max:
    v: 1
type:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type
      l: structuredefinition-fhir-type
    value: Url
      v: string
      l: string
  code:
    v: http://hl7.org/fhirpath/System.String
    l: System.String
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: ClientRegistrationModel.contactPerson.name.extension
path:
  v: ClientRegistrationModel.contactPerson.name.extension
slicing:
  discriminator:
    type:
      v: value
    path:
      v: url
  description:
    v: Extensions are always sliced by (at least) url
  rules:
    v: open
short:
  v: Additional content defined by implementations
definition:
  v: May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
comment:
  v: There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.
alias:
  v: extensions
alias:
  v: user content
min:
  v: 0
max:
  v: *
base:
  path:
    v: Element.extension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
    l: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    l: Extension
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: ClientRegistrationModel.contactPerson.name.modifierExtension
path:
  v: ClientRegistrationModel.contactPerson.name.modifierExtension
short:
  v: Extensions that cannot be ignored even if unrecognized
definition:
  v: May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
comment:
  v: There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.
requirements:
  v: Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).
alias:
  v: extensions
alias:
  v: user content
alias:
  v: modifiers
min:
  v: 0
max:
  v: *
base:
  path:
    v: BackboneElement.modifierExtension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
    l: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    l: Extension
is modifier:
  v: true
is modifier reason:
  v: Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
is summary:
  v: true
mapping:
  identity:
    v: rim
  map:
    v: N/A

id:
  v: ClientRegistrationModel.contactPerson.name.given
path:
  v: ClientRegistrationModel.contactPerson.name.given
code:
  code:
    v: KPS.A.DE.21
short:
  v: First name of contact person
definition:
  v: First name of contact person
min:
  v: 1
max:
  v: 1
base:
  path:
    v: ClientRegistrationModel.contactPerson.name.given
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: string
    l: string

id:
  v: ClientRegistrationModel.contactPerson.name.family
path:
  v: ClientRegistrationModel.contactPerson.name.family
code:
  code:
    v: KPS.A.DE.22
short:
  v: Surname of contact person
definition:
  v: Surname of contact person
min:
  v: 1
max:
  v: 1
base:
  path:
    v: ClientRegistrationModel.contactPerson.name.family
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: string
    l: string

id:
  v: ClientRegistrationModel.contactPerson.phone
path:
  v: ClientRegistrationModel.contactPerson.phone
code:
  code:
    v: KPS.A.DE.23
short:
  v: Phone number of contact person
definition:
  v: Phone number of contact person
min:
  v: 0
max:
  v: 1
base:
  path:
    v: ClientRegistrationModel.contactPerson.phone
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string

id:
  v: ClientRegistrationModel.contactPerson.email
path:
  v: ClientRegistrationModel.contactPerson.email
code:
  code:
    v: KPS.A.DE.24
short:
  v: Email of contact person
definition:
  v: Email of contact person
min:
  v: 0
max:
  v: 1
base:
  path:
    v: ClientRegistrationModel.contactPerson.email
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string

id:
  v: ClientRegistrationModel.insurance
path:
  v: ClientRegistrationModel.insurance
short:
  v: Insurance information
definition:
  v: Insurance information
min:
  v: 0
max:
  v: 1
base:
  path:
    v: ClientRegistrationModel.insurance
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: BackboneElement
    l: BackboneElement
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element

id:
  v: ClientRegistrationModel.insurance.id
path:
  v: ClientRegistrationModel.insurance.id
representation:
  v: xmlAttr
short:
  v: Unique id for inter-element referencing
definition:
  v: Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Element.id
  min:
    v: 0
  max:
    v: 1
type:
  extension:
    url:
      v: http://hl7.org/fhir/StructureDefinition/structuredefinition-fhir-type
      l: structuredefinition-fhir-type
    value: Url
      v: string
      l: string
  code:
    v: http://hl7.org/fhirpath/System.String
    l: System.String
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: ClientRegistrationModel.insurance.extension
path:
  v: ClientRegistrationModel.insurance.extension
slicing:
  discriminator:
    type:
      v: value
    path:
      v: url
  description:
    v: Extensions are always sliced by (at least) url
  rules:
    v: open
short:
  v: Additional content defined by implementations
definition:
  v: May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
comment:
  v: There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.
alias:
  v: extensions
alias:
  v: user content
min:
  v: 0
max:
  v: *
base:
  path:
    v: Element.extension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
    l: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    l: Extension
is modifier:
  v: false
is summary:
  v: false
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: ClientRegistrationModel.insurance.modifierExtension
path:
  v: ClientRegistrationModel.insurance.modifierExtension
short:
  v: Extensions that cannot be ignored even if unrecognized
definition:
  v: May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions. Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
comment:
  v: There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.
requirements:
  v: Modifier extensions allow for extensions that *cannot* be safely ignored to be clearly distinguished from the vast majority of extensions which can be safely ignored. This promotes interoperability by eliminating the need for implementers to prohibit the presence of extensions. For further information, see the [definition of modifier extensions](http://hl7.org/fhir/R4/extensibility.html#modifierExtension).
alias:
  v: extensions
alias:
  v: user content
alias:
  v: modifiers
min:
  v: 0
max:
  v: *
base:
  path:
    v: BackboneElement.modifierExtension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
    l: Extension
constraint:
  key:
    v: ele-1
  severity:
    v: error
  human:
    v: All FHIR elements must have a @value or children
  expression:
    v: hasValue() or (children().count() > id.count())
  xpath:
    v: @value|f:*|h:div
  source:
    v: http://hl7.org/fhir/StructureDefinition/Element
    l: Element
constraint:
  key:
    v: ext-1
  severity:
    v: error
  human:
    v: Must have either extensions or value[x], not both
  expression:
    v: extension.exists() != value.exists()
  xpath:
    v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), "value")])
  source:
    v: http://hl7.org/fhir/StructureDefinition/Extension
    l: Extension
is modifier:
  v: true
is modifier reason:
  v: Modifier extensions are expected to modify the meaning or interpretation of the element that contains them
is summary:
  v: true
mapping:
  identity:
    v: rim
  map:
    v: N/A

id:
  v: ClientRegistrationModel.insurance.insuranceNumber
path:
  v: ClientRegistrationModel.insurance.insuranceNumber
code:
  code:
    v: KPS.A.DE.26
short:
  v: Health insurance ID assigned to the client
definition:
  v: Health insurance ID assigned to the client
min:
  v: 0
max:
  v: 1
base:
  path:
    v: ClientRegistrationModel.insurance.insuranceNumber
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string

element:
  id:
    v: ClientRegistrationModel
  path:
    v: ClientRegistrationModel
  short:
    v: KPS.A Client Registration
  definition:
    v: Logical model for registering a client under the Kenya Patient Summary (KPS.A) standard.
element:
  id:
    v: ClientRegistrationModel.identifier
  path:
    v: ClientRegistrationModel.identifier
  code:
    code:
      v: KPS.A.DE.1
  short:
    v: Government-issued identifier used to distinguish individuals, e.g., National ID (adults) or Birth Certificate number (under 18)
  definition:
    v: Government-issued identifier used to distinguish individuals, e.g., National ID (adults) or Birth Certificate number (under 18)
  min:
    v: 1
  max:
    v: 1
  type:
    code:
      v: Identifier
      l: Identifier
element:
  id:
    v: ClientRegistrationModel.name
  path:
    v: ClientRegistrationModel.name
  short:
    v: Client's name
  definition:
    v: Client's name
  min:
    v: 1
  max:
    v: 1
  type:
    code:
      v: BackboneElement
      l: BackboneElement
element:
  id:
    v: ClientRegistrationModel.name.given
  path:
    v: ClientRegistrationModel.name.given
  code:
    code:
      v: KPS.A.DE.2
  short:
    v: Client's first name
  definition:
    v: Client's first name
  min:
    v: 1
  max:
    v: 1
  type:
    code:
      v: string
      l: string
element:
  id:
    v: ClientRegistrationModel.name.family
  path:
    v: ClientRegistrationModel.name.family
  code:
    code:
      v: KPS.A.DE.3
  short:
    v: Client's family name or last name
  definition:
    v: Client's family name or last name
  min:
    v: 1
  max:
    v: 1
  type:
    code:
      v: string
      l: string
element:
  id:
    v: ClientRegistrationModel.dateOfBirth
  path:
    v: ClientRegistrationModel.dateOfBirth
  code:
    code:
      v: KPS.A.DE.4
  short:
    v: Client's date of birth, if known
  definition:
    v: Client's date of birth, if known
  min:
    v: 1
  max:
    v: 1
  type:
    code:
      v: date
      l: date
element:
  id:
    v: ClientRegistrationModel.sex
  path:
    v: ClientRegistrationModel.sex
  code:
    code:
      v: KPS.A.DE.5
  short:
    v: Sex of the client assigned at birth
  definition:
    v: Sex of the client assigned at birth
  min:
    v: 1
  max:
    v: 1
  type:
    code:
      v: code
      l: code
  binding:
    strength:
      v: required
    value set:
      v: http://example.com/fhir/ValueSet/kps-gender-vs
      l: kps-gender-vs
element:
  id:
    v: ClientRegistrationModel.address
  path:
    v: ClientRegistrationModel.address
  short:
    v: Client's residential address
  definition:
    v: Client's residential address
  min:
    v: 0
  max:
    v: 1
  type:
    code:
      v: BackboneElement
      l: BackboneElement
element:
  id:
    v: ClientRegistrationModel.address.country
  path:
    v: ClientRegistrationModel.address.country
  code:
    code:
      v: KPS.A.DE.8
  short:
    v: Name of country of affiliation
  definition:
    v: Name of country of affiliation
  min:
    v: 0
  max:
    v: 1
  type:
    code:
      v: string
      l: string
element:
  id:
    v: ClientRegistrationModel.address.county
  path:
    v: ClientRegistrationModel.address.county
  code:
    code:
      v: KPS.A.DE.9
  short:
    v: County where the client resides
  definition:
    v: County where the client resides
  min:
    v: 0
  max:
    v: 1
  type:
    code:
      v: string
      l: string
element:
  id:
    v: ClientRegistrationModel.address.subcounty
  path:
    v: ClientRegistrationModel.address.subcounty
  code:
    code:
      v: KPS.A.DE.10
  short:
    v: Subcounty of residence
  definition:
    v: Subcounty of residence

v: 0

v: 1

code:
  v: string
  l: string

id:
  v: ClientRegistrationModel.address.ward
path:
  v: ClientRegistrationModel.address.ward
code:
  code:
    v: KPS.A.DE.11
short:
  v: Ward where the client lives
definition:
  v: Ward where the client lives
min:
  v: 0
max:
  v: 1
type:
  code:
    v: string
    l: string

id:
  v: ClientRegistrationModel.address.village
path:
  v: ClientRegistrationModel.address.village
code:
  code:
    v: KPS.A.DE.12
short:
  v: Village or estate of residence
definition:
  v: Village or estate of residence
min:
  v: 0
max:
  v: 1
type:
  code:
    v: string
    l: string

id:
  v: ClientRegistrationModel.address.postalAddress
path:
  v: ClientRegistrationModel.address.postalAddress
code:
  code:
    v: KPS.A.DE.13
short:
  v: Mailing address including P.O. Box, street or building details
definition:
  v: Mailing address including P.O. Box, street or building details
min:
  v: 0
max:
  v: 1
type:
  code:
    v: string
    l: string

id:
  v: ClientRegistrationModel.telecom
path:
  v: ClientRegistrationModel.telecom
short:
  v: Client's contact information
definition:
  v: Client's contact information
min:
  v: 0
max:
  v: 1
type:
  code:
    v: BackboneElement
    l: BackboneElement

id:
  v: ClientRegistrationModel.telecom.phone
path:
  v: ClientRegistrationModel.telecom.phone
code:
  code:
    v: KPS.A.DE.14
short:
  v: Phone number (mobile or landline)
definition:
  v: Phone number (mobile or landline)
min:
  v: 0
max:
  v: 1
type:
  code:
    v: string
    l: string

id:
  v: ClientRegistrationModel.telecom.email
path:
  v: ClientRegistrationModel.telecom.email
code:
  code:
    v: KPS.A.DE.15
short:
  v: Email address
definition:
  v: Email address
min:
  v: 0
max:
  v: 1
type:
  code:
    v: string
    l: string

id:
  v: ClientRegistrationModel.contactPerson
path:
  v: ClientRegistrationModel.contactPerson
short:
  v: Contact person or legal guardian
definition:
  v: Contact person or legal guardian
min:
  v: 0
max:
  v: 1
type:
  code:
    v: BackboneElement
    l: BackboneElement

id:
  v: ClientRegistrationModel.contactPerson.role
path:
  v: ClientRegistrationModel.contactPerson.role
code:
  code:
    v: KPS.A.DE.16
short:
  v: Role: legal guardian, next of kin, or other
definition:
  v: Role: legal guardian, next of kin, or other
min:
  v: 1
max:
  v: 1
type:
  code:
    v: code
    l: code
binding:
  strength:
    v: required
  value set:
    v: https://fhir.dha.go.ke/kps/ValueSet/kps-patient-contact-relationship-vs
    l: kps-patient-contact-relationship-vs

id:
  v: ClientRegistrationModel.contactPerson.relationship
path:
  v: ClientRegistrationModel.contactPerson.relationship
code:
  code:
    v: KPS.A.DE.20
short:
  v: Relationship to the client (e.g., father, spouse, daughter)
definition:
  v: Relationship to the client (e.g., father, spouse, daughter)
min:
  v: 0
max:
  v: 1
type:
  code:
    v: string
    l: string

id:
  v: ClientRegistrationModel.contactPerson.name
path:
  v: ClientRegistrationModel.contactPerson.name
short:
  v: Name of contact person
definition:
  v: Name of contact person
min:
  v: 0
max:
  v: 1
type:
  code:
    v: BackboneElement
    l: BackboneElement

id:
  v: ClientRegistrationModel.contactPerson.name.given
path:
  v: ClientRegistrationModel.contactPerson.name.given
code:
  code:
    v: KPS.A.DE.21
short:
  v: First name of contact person
definition:
  v: First name of contact person
min:
  v: 1
max:
  v: 1
type:
  code:
    v: string
    l: string

id:
  v: ClientRegistrationModel.contactPerson.name.family
path:
  v: ClientRegistrationModel.contactPerson.name.family
code:
  code:
    v: KPS.A.DE.22
short:
  v: Surname of contact person
definition:
  v: Surname of contact person
min:
  v: 1
max:
  v: 1
type:
  code:
    v: string
    l: string

id:
  v: ClientRegistrationModel.contactPerson.phone
path:
  v: ClientRegistrationModel.contactPerson.phone
code:
  code:
    v: KPS.A.DE.23
short:
  v: Phone number of contact person
definition:
  v: Phone number of contact person
min:
  v: 0
max:
  v: 1
type:
  code:
    v: string
    l: string

id:
  v: ClientRegistrationModel.contactPerson.email
path:
  v: ClientRegistrationModel.contactPerson.email
code:
  code:
    v: KPS.A.DE.24
short:
  v: Email of contact person
definition:
  v: Email of contact person
min:
  v: 0
max:
  v: 1
type:
  code:
    v: string
    l: string

id:
  v: ClientRegistrationModel.insurance
path:
  v: ClientRegistrationModel.insurance
short:
  v: Insurance information
definition:
  v: Insurance information
min:
  v: 0
max:
  v: 1
type:
  code:
    v: BackboneElement
    l: BackboneElement

id:
  v: ClientRegistrationModel.insurance.insuranceNumber
path:
  v: ClientRegistrationModel.insurance.insuranceNumber
code:
  code:
    v: KPS.A.DE.26
short:
  v: Health insurance ID assigned to the client
definition:
  v: Health insurance ID assigned to the client
min:
  v: 0
max:
  v: 1
type:
  code:
    v: string
    l: string