Nepal HMIS FHIR Implementation Guide – 🚨 DRAFT VERSION
0.0.1-ballot - ci-build Nepal flag

Nepal HMIS FHIR Implementation Guide – 🚨 DRAFT VERSION - Local Development build (v0.0.1-ballot) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Resource Profile: Nepal Person Profile

Official URL: https://fhir.hmis.gov.np/StructureDefinition/nepal-person Version: 0.0.1-ballot
Active as of 2025-09-08 Computable Name: NepalPersonProfile

Copyright/Legal: Used by permission of HL7 International, all rights reserved Creative Commons License

Foundational person registry profile for Nepal. Supports IDs, Name, and telecom.

Usages:

  • This Profile is not used by any profiles in this Implementation Guide

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.

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. 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
... active ?!Σ 1..1 boolean This person's record is in active use
... name Σ 1..* HumanName A name associated with the person
... telecom Σ 1..* ContactPoint A contact detail for the person

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorPersonIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorPersonIf 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 in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorPersonIf 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-5errorPersonIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practicePersonA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

This structure is derived from Person

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. 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
... name 1..* HumanName A name associated with the person

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. 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
... 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
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
... identifier Σ 1..* Identifier A human identifier for this person
... active ?!Σ 1..1 boolean This person's record is in active use
... name Σ 1..* HumanName A name associated with the person
... telecom Σ 1..* 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
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... 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 BindingsPurpose
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
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... 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.

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Person.languagerequiredAllLanguages
http://hl7.org/fhir/ValueSet/all-languages|5.0.0
From the FHIR Standard
Person.genderrequiredAdministrativeGender
http://hl7.org/fhir/ValueSet/administrative-gender|5.0.0
From the FHIR Standard
Person.maritalStatusextensibleMaritalStatusCodes
http://hl7.org/fhir/ValueSet/marital-status
From the FHIR Standard
Person.communication.languagerequiredAllLanguages
http://hl7.org/fhir/ValueSet/all-languages|5.0.0
From the FHIR Standard
Person.link.assurancerequiredIdentityAssuranceLevel
http://hl7.org/fhir/ValueSet/identity-assuranceLevel|5.0.0
From the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorPersonIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorPersonIf 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 in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorPersonIf 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-5errorPersonIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practicePersonA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

This structure is derived from Person

Summary

Mandatory: 4 elements

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. 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
... active ?!Σ 1..1 boolean This person's record is in active use
... name Σ 1..* HumanName A name associated with the person
... telecom Σ 1..* ContactPoint A contact detail for the person

doco Documentation for this format

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorPersonIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorPersonIf 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 in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorPersonIf 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-5errorPersonIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practicePersonA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

Differential View

This structure is derived from Person

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. 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
... name 1..* HumanName A name associated with the person

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. 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
... 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
... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored
... identifier Σ 1..* Identifier A human identifier for this person
... active ?!Σ 1..1 boolean This person's record is in active use
... name Σ 1..* HumanName A name associated with the person
... telecom Σ 1..* 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
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... 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 BindingsPurpose
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
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... 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.

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Person.languagerequiredAllLanguages
http://hl7.org/fhir/ValueSet/all-languages|5.0.0
From the FHIR Standard
Person.genderrequiredAdministrativeGender
http://hl7.org/fhir/ValueSet/administrative-gender|5.0.0
From the FHIR Standard
Person.maritalStatusextensibleMaritalStatusCodes
http://hl7.org/fhir/ValueSet/marital-status
From the FHIR Standard
Person.communication.languagerequiredAllLanguages
http://hl7.org/fhir/ValueSet/all-languages|5.0.0
From the FHIR Standard
Person.link.assurancerequiredIdentityAssuranceLevel
http://hl7.org/fhir/ValueSet/identity-assuranceLevel|5.0.0
From the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorPersonIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorPersonIf 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 in (%resource.descendants().reference | %resource.descendants().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorPersonIf 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-5errorPersonIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practicePersonA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

This structure is derived from Person

Summary

Mandatory: 4 elements

 

Other representations of profile: CSV, Excel, Schematron