OpenMRS FHIR2 Implementation Guide
0.1.0 - ci-build

OpenMRS FHIR2 Implementation Guide - Local Development build (v0.1.0). See the Directory of published versions

Resource Profile: OpenMRS Person

Official URL: http://fhir.openmrs.org/fhir/StructureDefinition/omrs-person Version: 0.1.0
Active as of 2022-09-20 Computable Name: OMRSPerson

A FHIR Person as understood by OpenMRS

Usage:

Formal Views of Profile Content

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

This structure is derived from Person

Summary

Mandatory: 4 elements
Prohibited: 3 elements

This structure is derived from Person

NameFlagsCard.TypeDescription & Constraintsdoco
.. Person 0..*PersonA generic person record
... id 0..1idLogical id of this artifact
... identifier 0..*IdentifierA human identifier for this person
... name 1..*HumanNameA name associated with the person
... gender 1..1codemale | female | other | unknown
... birthDate 1..1dateThe date on which the person was born
... address 0..*AddressOne or more addresses for the person
... photo 0..0
... managingOrganization 0..0
... active 1..1booleanThis person's record is in active use
Required Pattern: true
... link 0..0

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Person 0..*PersonA generic person record
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier 0..*IdentifierA human identifier for this person
... name Σ1..*HumanNameA name associated with the person
... telecom Σ0..*ContactPointA contact detail for the person
... gender Σ1..1codemale | female | other | unknown
Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.

... birthDate Σ1..1dateThe date on which the person was born
... address 0..*AddressOne or more addresses for the person
... active ?!Σ1..1booleanThis person's record is in active use
Required Pattern: true

doco Documentation for this format

This structure is derived from Person

Summary

Mandatory: 4 elements
Prohibited: 3 elements

Differential View

This structure is derived from Person

NameFlagsCard.TypeDescription & Constraintsdoco
.. Person 0..*PersonA generic person record
... id 0..1idLogical id of this artifact
... identifier 0..*IdentifierA human identifier for this person
... name 1..*HumanNameA name associated with the person
... gender 1..1codemale | female | other | unknown
... birthDate 1..1dateThe date on which the person was born
... address 0..*AddressOne or more addresses for the person
... photo 0..0
... managingOrganization 0..0
... active 1..1booleanThis person's record is in active use
Required Pattern: true
... link 0..0

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Person 0..*PersonA generic person record
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier 0..*IdentifierA human identifier for this person
... name Σ1..*HumanNameA name associated with the person
... telecom Σ0..*ContactPointA contact detail for the person
... gender Σ1..1codemale | female | other | unknown
Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.

... birthDate Σ1..1dateThe date on which the person was born
... address 0..*AddressOne or more addresses for the person
... active ?!Σ1..1booleanThis person's record is in active use
Required Pattern: true

doco Documentation for this format

 

Other representations of profile: CSV, Excel, Schematron

Terminology Bindings

PathConformanceValueSet
Person.languagepreferredCommonLanguages
Max Binding: AllLanguages
Person.genderrequiredAdministrativeGender
Person.link.assurancerequiredIdentityAssuranceLevel

Constraints

IdGradePathDetailsRequirements
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().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(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-1errorPerson.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPerson.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPerson.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPerson.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPerson.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorPerson.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorPerson.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorPerson.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorPerson.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPerson.nameAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPerson.telecomAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPerson.genderAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPerson.birthDateAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPerson.addressAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPerson.activeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPerson.link.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorPerson.link.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorPerson.link.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1errorPerson.link.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1errorPerson.link.targetAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1errorPerson.link.assuranceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())