Amakomaya Nepal FHIR Implementation Guide
2.0.0 - ci-build Nepal

Amakomaya Nepal FHIR Implementation Guide - Local Development build (v2.0.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

## Resource Profile: AMK Core Person Profile

Official URL: https://fhir.amakomaya.com/StructureDefinition/amk-core-person | Version: 2.0.0
Active as of 2025-12-11 | Computable Name: AMKCorePerson
Copyright/Legal: Used by permission of HL7 International, all rights reserved Creative Commons License

The AMK Core Person Profile defines a standardized representation of a real-world individual within the Nepal health system. It supports identity resolution, demographic capture, and identity assurance across Patient, Practitioner, and RelatedPerson records. This profile enables reliable identity verification, deduplication, and interoperability across national digital health programs.

Usages:

- Examples for this Profile: Person/AMKPersonMasterPersonIndex

You can also check for usages in the FHIR IG Statistics

### Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Person |  | 0..* | Person | A generic person record
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
contained |  | 0..* | Resource | Contained, inline Resources
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored Slice: Unordered, Open by value:url
identifier | Σ | 1..* | Identifier | A human identifier for this person
active | ?!Σ | 1..1 | boolean | This person's record is in active use Required Pattern: true
Documentation for this format

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Person | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Person | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource | `contained.where((('#'+id.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').exists()).not()).trace('unmatched', id).empty()`
dom-4 | error | Person | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | Person | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Person | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`

This structure is derived from Person

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Person |  | 0..* | Person | A generic person record
identifier |  | 1..* | Identifier | A human identifier for this person
active |  | 1..1 | boolean | This person's record is in active use Required Pattern: true
Documentation for this format

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Person |  | 0..* | Person | A generic person record
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: AllLanguages (required): IETF language tag for a human language
Additional Bindings | Purpose
CommonLanguages | Starter
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained |  | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored Slice: Unordered, Open by value:url
identifier | Σ | 1..* | Identifier | A human identifier for this person
active | ?!Σ | 1..1 | boolean | This person's record is in active use Required Pattern: true
name | Σ | 0..* | HumanName | A name associated with the person
telecom | Σ | 0..* | ContactPoint | A contact detail for the person
gender | Σ | 0..1 | code | male | female | other | unknown Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.
birthDate | Σ | 0..1 | date | The date on which the person was born
deceased[x] | Σ | 0..1 |  | Indicates if the individual is deceased or not
deceasedBoolean |  |  | boolean |
deceasedDateTime |  |  | dateTime |
address | Σ | 0..* | Address | One or more addresses for the person
maritalStatus |  | 0..1 | CodeableConcept | Marital (civil) status of a person Binding: MaritalStatusCodes (extensible): The domestic partnership status of a person.
photo |  | 0..* | Attachment | Image of the person
communication |  | 0..* | BackboneElement | A language which may be used to communicate with the person about his or her health
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url
language |  | 1..1 | CodeableConcept | The language which can be used to communicate with the person about his or her health Binding: AllLanguages (required): IETF language tag for a human language
Additional Bindings | Purpose
CommonLanguages | Starter
preferred |  | 0..1 | boolean | Language preference indicator
managingOrganization | Σ | 0..1 | Reference(Organization) | The organization that is the custodian of the person record
link |  | 0..* | BackboneElement | Link to a resource that concerns the same actual person
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url
target |  | 1..1 | Reference(Patient | Practitioner | RelatedPerson | Person) | The resource to which this actual person is associated
assurance |  | 0..1 | code | level1 | level2 | level3 | level4 Binding: IdentityAssuranceLevel (required): The level of confidence that this link represents the same actual person, based on NIST Authentication Levels.
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Person.language | Base | required | All Languages | 📍6.0.0-ballot5 | FHIR Std.
Person.gender | Base | required | AdministrativeGender | 📍6.0.0-ballot5 | FHIR Std.
Person.maritalStatus | Base | extensible | Marital Status Codes | 📍6.0.0-ballot5 | FHIR Std.
Person.communication.​language | Base | required | All Languages | 📍6.0.0-ballot5 | FHIR Std.
Person.link.assurance | Base | required | Identity Assurance Level | 📍6.0.0-ballot5 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Person | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Person | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource | `contained.where((('#'+id.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').exists()).not()).trace('unmatched', id).empty()`
dom-4 | error | Person | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | Person | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Person | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`

This structure is derived from Person

Summary

Mandatory: 2 elements

Key Elements View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Person |  | 0..* | Person | A generic person record
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
contained |  | 0..* | Resource | Contained, inline Resources
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored Slice: Unordered, Open by value:url
identifier | Σ | 1..* | Identifier | A human identifier for this person
active | ?!Σ | 1..1 | boolean | This person's record is in active use Required Pattern: true
Documentation for this format

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Person | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Person | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource | `contained.where((('#'+id.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').exists()).not()).trace('unmatched', id).empty()`
dom-4 | error | Person | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | Person | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Person | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`

Differential View

This structure is derived from Person

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Person |  | 0..* | Person | A generic person record
identifier |  | 1..* | Identifier | A human identifier for this person
active |  | 1..1 | boolean | This person's record is in active use Required Pattern: true
Documentation for this format

Snapshot View

Name | Flags | Card. | Type | Description & Constraints Filter: Bindings Constraints Obligations
--- | --- | --- | --- | ---
Person |  | 0..* | Person | A generic person record
id | Σ | 0..1 | id | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: AllLanguages (required): IETF language tag for a human language
Additional Bindings | Purpose
CommonLanguages | Starter
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements
contained |  | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored Slice: Unordered, Open by value:url
identifier | Σ | 1..* | Identifier | A human identifier for this person
active | ?!Σ | 1..1 | boolean | This person's record is in active use Required Pattern: true
name | Σ | 0..* | HumanName | A name associated with the person
telecom | Σ | 0..* | ContactPoint | A contact detail for the person
gender | Σ | 0..1 | code | male | female | other | unknown Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.
birthDate | Σ | 0..1 | date | The date on which the person was born
deceased[x] | Σ | 0..1 |  | Indicates if the individual is deceased or not
deceasedBoolean |  |  | boolean |
deceasedDateTime |  |  | dateTime |
address | Σ | 0..* | Address | One or more addresses for the person
maritalStatus |  | 0..1 | CodeableConcept | Marital (civil) status of a person Binding: MaritalStatusCodes (extensible): The domestic partnership status of a person.
photo |  | 0..* | Attachment | Image of the person
communication |  | 0..* | BackboneElement | A language which may be used to communicate with the person about his or her health
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url
language |  | 1..1 | CodeableConcept | The language which can be used to communicate with the person about his or her health Binding: AllLanguages (required): IETF language tag for a human language
Additional Bindings | Purpose
CommonLanguages | Starter
preferred |  | 0..1 | boolean | Language preference indicator
managingOrganization | Σ | 0..1 | Reference(Organization) | The organization that is the custodian of the person record
link |  | 0..* | BackboneElement | Link to a resource that concerns the same actual person
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized Slice: Unordered, Open by value:url
target |  | 1..1 | Reference(Patient | Practitioner | RelatedPerson | Person) | The resource to which this actual person is associated
assurance |  | 0..1 | code | level1 | level2 | level3 | level4 Binding: IdentityAssuranceLevel (required): The level of confidence that this link represents the same actual person, based on NIST Authentication Levels.
Documentation for this format

#### Terminology Bindings

Path | Status | Usage | ValueSet | Version | Source
Person.language | Base | required | All Languages | 📍6.0.0-ballot5 | FHIR Std.
Person.gender | Base | required | AdministrativeGender | 📍6.0.0-ballot5 | FHIR Std.
Person.maritalStatus | Base | extensible | Marital Status Codes | 📍6.0.0-ballot5 | FHIR Std.
Person.communication.​language | Base | required | All Languages | 📍6.0.0-ballot5 | FHIR Std.
Person.link.assurance | Base | required | Identity Assurance Level | 📍6.0.0-ballot5 | FHIR Std.

#### Constraints

Id | Grade | Path(s) | Description | Expression
dom-2 | error | Person | If the resource is contained in another resource, it SHALL NOT contain nested Resources | `contained.contained.empty()`
dom-3 | error | Person | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource | `contained.where((('#'+id.trace('id') in %resource.descendants().select(reference | as(uri))) or descendants().where(reference='#' | as(uri)='#').exists()).not()).trace('unmatched', id).empty()`
dom-4 | error | Person | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated | `contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()`
dom-5 | error | Person | If a resource is contained in another resource, it SHALL NOT have a security label | `contained.meta.security.empty()`
dom-6 | best practice | Person | A resource should have narrative for robust management | `text.`div`.exists()`
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children | `hasValue() or (children().count() > id.count())`

This structure is derived from Person

Summary

Mandatory: 2 elements

Other representations of profile: CSV, Excel, Schematron