1.0.0 - Release

This page is part of the KLChildren (v1.0.0: Release) based on FHIR R4. This is the current published version. For a full list of available versions, see the Directory of published versions

Resource Profile: KLGatewayChildrenCitizen

Official URL: http://fhir.kl.dk/children/StructureDefinition/klgateway-children-citizen Version: 1.0.0
Active as of 2023-09-30 Computable Name: KLGatewayChildrenCitizen

Administrative information about a citizen receiving care or care related services.

Scope and usage

KLGatewayChildrenCitizen is used to identify the subject of a delivery report by the personal id number (CPR-nummer), which should go into Patient.identifier. The personal id number must be an official Danish CPR-nummer without hyphen.

The model also identifies the managing organization that acts as the custodian of the reported data. The managing organisation is identified by its official SOR code. The SOR codes should be documented in Patient.managingOrganization.identifier.

For most municipalities the SOR code will be the code for the municipality, but if a municipality delivers services in different departments using different record systems (thus having mulitple custodians) the SOR codes of the department that acts as custodian is used.

Citizen resources can be used to identify both child and parents. However, the parents should only be includes when and if, they are relevant for the child reporting e.g. when reporting the mental state of the mother. In this case, a relatedPerson ressource should also be included and referes using Patient.link.

Patient.link is a reference to a relatedPerson object. In the context of the childrens database, it is used to link a grown-up citizen with the relatedPerson ressource. The relatedPerson ressource defines that this grown-up is actually the child’s parent. In other words, a citizen object cannot hold information about relationships between citizens, for that we use the relatedPerson ressource.

Conversions between Danish information model and FHIR-profile

Nedenstående tabel oversætter mellem de attributter, der er defineret i den fælleskommunale informationsmodel (FKI), definerer kort den enkelte attribut på dansk og specificerer, hvilke af FHIR-profilens atributter der skal bruges til specifikation af indholdet.

FKI-attribut Definition FHIR
borgersCpr Officielt cpr-nummer på borgeren Patient.identifier
borgersJournalførendeOrganisation Organisation som ejer journalen med oplysninger Patient.managingOrganization.identifier
borgerErSammePersonSom Reference til et pårørende-objekt, som er samme person som denne borger Patient.link

Usage:

Formal Views of Profile Content

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

This structure is derived from DkCorePatient

NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient DkCorePatient
... identifier 1..1DkCoreCprIdentifier[DK] cpr
... active 0..0
... name 0..0
... telecom 0..0
... gender 0..0
... birthDate 0..0
... deceased[x] 0..0
... address 0..0
... maritalStatus 0..0
... multipleBirth[x] 0..0
... photo 0..0
... contact 0..0
... communication 0..0
... generalPractitioner 0..0
... generalPractitioner:referencedSORUnit 0..0
... managingOrganization 1..1Reference(Organization)[DK] journalførendeOrganisation
.... reference 0..0
.... type 0..0
.... identifier 1..1SORIdentifierAn identifier intended for computation
.... display 0..0
... link S0..*BackboneElement[DK] erSammePersonSom
.... other 1..1Reference(KLGatewayChildrenRelatedParent) {b}The other patient or related person resource that the link refers to
.... type 1..1codereplaced-by | replaces | refer | seealso
Required Pattern: seealso

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient C0..*DkCorePatientInformation about an individual or animal receiving health care services
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... Slices for identifier Σ1..1DkCoreCprIdentifier[DK] cpr
Slice: Unordered, Open by value:system
.... identifier:cpr 0..1DkCoreCprIdentifier[DA] cpr-nummer, som det fremgår af CPR registeret
.... identifier 1..1SORIdentifierAn identifier intended for computation
... link ?!SΣ0..*BackboneElement[DK] erSammePersonSom
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... other Σ1..1Reference(KLGatewayChildrenRelatedParent) {b}The other patient or related person resource that the link refers to
.... type Σ1..1codereplaced-by | replaces | refer | seealso
Binding: LinkType (required): The type of link between this patient resource and another patient resource.


Required Pattern: seealso

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
Patient.name:official.userequiredFixed Value: official
Patient.address.userequiredAddressUse
Patient.communication.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
Patient.link.typerequiredPattern: seealso

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorPatientIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorPatientIf 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-4errorPatientIf 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-5errorPatientIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practicePatientA 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()
marital-status-unknown-usagewarningPatientStatus in maritalStatus is unknown in a danish context. Consider mapping the value to UNK
: maritalStatus.coding.where(code = 'P' and system = 'http://terminology.hl7.org/CodeSystem/v3-MaritalStatus').empty() or maritalStatus.coding.where(code = 'A' and system = 'http://terminology.hl7.org/CodeSystem/v3-MaritalStatus').empty()
NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient C0..*DkCorePatientInformation about an individual or animal receiving health care services
... 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
... Slices for identifier Σ1..1DkCoreCprIdentifier[DK] cpr
Slice: Unordered, Open by value:system
.... identifier:cpr 0..1DkCoreCprIdentifier[DA] cpr-nummer, som det fremgår af CPR registeret
... managingOrganization Σ1..1Reference(Organization)[DK] journalførendeOrganisation
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... identifier 1..1SORIdentifierAn identifier intended for computation
... link ?!SΣ0..*BackboneElement[DK] erSammePersonSom
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... other Σ1..1Reference(KLGatewayChildrenRelatedParent) {b}The other patient or related person resource that the link refers to
.... type Σ1..1codereplaced-by | replaces | refer | seealso
Binding: LinkType (required): The type of link between this patient resource and another patient resource.


Required Pattern: seealso

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
Patient.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
Patient.name:official.userequiredFixed Value: official
Patient.address.userequiredAddressUse
Patient.address.typerequiredAddressType
Patient.contact.relationshipextensiblePatientContactRelationship
Patient.contact.genderrequiredAdministrativeGender
Patient.communication.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
Patient.generalPractitioner:referencedSORUnit.typeextensibleResourceType
Patient.link.typerequiredPattern: seealso

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorPatientIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorPatientIf 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-4errorPatientIf 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-5errorPatientIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practicePatientA 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()
marital-status-unknown-usagewarningPatientStatus in maritalStatus is unknown in a danish context. Consider mapping the value to UNK
: maritalStatus.coding.where(code = 'P' and system = 'http://terminology.hl7.org/CodeSystem/v3-MaritalStatus').empty() or maritalStatus.coding.where(code = 'A' and system = 'http://terminology.hl7.org/CodeSystem/v3-MaritalStatus').empty()

Differential View

This structure is derived from DkCorePatient

NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient DkCorePatient
... identifier 1..1DkCoreCprIdentifier[DK] cpr
... active 0..0
... name 0..0
... telecom 0..0
... gender 0..0
... birthDate 0..0
... deceased[x] 0..0
... address 0..0
... maritalStatus 0..0
... multipleBirth[x] 0..0
... photo 0..0
... contact 0..0
... communication 0..0
... generalPractitioner 0..0
... generalPractitioner:referencedSORUnit 0..0
... managingOrganization 1..1Reference(Organization)[DK] journalførendeOrganisation
.... reference 0..0
.... type 0..0
.... identifier 1..1SORIdentifierAn identifier intended for computation
.... display 0..0
... link S0..*BackboneElement[DK] erSammePersonSom
.... other 1..1Reference(KLGatewayChildrenRelatedParent) {b}The other patient or related person resource that the link refers to
.... type 1..1codereplaced-by | replaces | refer | seealso
Required Pattern: seealso

doco Documentation for this format

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient C0..*DkCorePatientInformation about an individual or animal receiving health care services
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... Slices for identifier Σ1..1DkCoreCprIdentifier[DK] cpr
Slice: Unordered, Open by value:system
.... identifier:cpr 0..1DkCoreCprIdentifier[DA] cpr-nummer, som det fremgår af CPR registeret
.... identifier 1..1SORIdentifierAn identifier intended for computation
... link ?!SΣ0..*BackboneElement[DK] erSammePersonSom
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... other Σ1..1Reference(KLGatewayChildrenRelatedParent) {b}The other patient or related person resource that the link refers to
.... type Σ1..1codereplaced-by | replaces | refer | seealso
Binding: LinkType (required): The type of link between this patient resource and another patient resource.


Required Pattern: seealso

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
Patient.name:official.userequiredFixed Value: official
Patient.address.userequiredAddressUse
Patient.communication.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
Patient.link.typerequiredPattern: seealso

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorPatientIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorPatientIf 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-4errorPatientIf 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-5errorPatientIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practicePatientA 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()
marital-status-unknown-usagewarningPatientStatus in maritalStatus is unknown in a danish context. Consider mapping the value to UNK
: maritalStatus.coding.where(code = 'P' and system = 'http://terminology.hl7.org/CodeSystem/v3-MaritalStatus').empty() or maritalStatus.coding.where(code = 'A' and system = 'http://terminology.hl7.org/CodeSystem/v3-MaritalStatus').empty()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient C0..*DkCorePatientInformation about an individual or animal receiving health care services
... 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
... Slices for identifier Σ1..1DkCoreCprIdentifier[DK] cpr
Slice: Unordered, Open by value:system
.... identifier:cpr 0..1DkCoreCprIdentifier[DA] cpr-nummer, som det fremgår af CPR registeret
... managingOrganization Σ1..1Reference(Organization)[DK] journalførendeOrganisation
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... identifier 1..1SORIdentifierAn identifier intended for computation
... link ?!SΣ0..*BackboneElement[DK] erSammePersonSom
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... other Σ1..1Reference(KLGatewayChildrenRelatedParent) {b}The other patient or related person resource that the link refers to
.... type Σ1..1codereplaced-by | replaces | refer | seealso
Binding: LinkType (required): The type of link between this patient resource and another patient resource.


Required Pattern: seealso

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
Patient.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
Patient.name:official.userequiredFixed Value: official
Patient.address.userequiredAddressUse
Patient.address.typerequiredAddressType
Patient.contact.relationshipextensiblePatientContactRelationship
Patient.contact.genderrequiredAdministrativeGender
Patient.communication.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
Patient.generalPractitioner:referencedSORUnit.typeextensibleResourceType
Patient.link.typerequiredPattern: seealso

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorPatientIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorPatientIf 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-4errorPatientIf 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-5errorPatientIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practicePatientA 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()
marital-status-unknown-usagewarningPatientStatus in maritalStatus is unknown in a danish context. Consider mapping the value to UNK
: maritalStatus.coding.where(code = 'P' and system = 'http://terminology.hl7.org/CodeSystem/v3-MaritalStatus').empty() or maritalStatus.coding.where(code = 'A' and system = 'http://terminology.hl7.org/CodeSystem/v3-MaritalStatus').empty()

 

Other representations of profile: CSV, Excel, Schematron