1.0.0 - Release

This page is part of the KLGatewayRehab (v1.0.0: Release) based on FHIR R4. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions

Resource Profile: KLGateway140Citizen

Official URL: http://fhir.kl.dk/rehab/StructureDefinition/klgateway-140-citizen Version: 1.0.0
Active as of 2023-09-28 Computable Name: KLGateway140Citizen

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

Scope and usage

klgateway-140-citizen is used to identify the subject of a rehabilitation reporting by the personal id number (CPR-nummer) and the managing organization that acts as the custodian of the reported data. The personal id number must be an official Danish CPR-nummer without hyphen, and the SOR code must be an official SOR code.

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

Patient.deceasedBoolean is a statement of whether the citizen is alive or dead.

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
borgerCprNummer Officielt cpr-nummer på borgeren Patient.identifier.value
borgerErDød boolesk værdi der er sand hvis borgeren er død Patient.deceasedBoolean
borgerJournalførendeOrganisation Organisation som ejer journalen med oplysninger Patient.managingOrganization.identifier.value

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] borgerCprNummer
... active 0..0
... name 0..0
... telecom 0..0
... gender 0..0
... birthDate 0..0
... Slices for deceased[x] 1..1booleanIndicates if the individual is deceased or not
Slice: Unordered, Open by type:$this
.... deceased[x]:deceasedDateTime 0..0
.... deceased[x]:deceasedBoolean 1..1boolean[DK] borgerErDød
... 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] borgerJournalførendeOrganisation
.... reference 0..0
.... type 0..0
.... identifier 1..1SORIdentifierAn identifier intended for computation
.... display 0..0
... link 0..0

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] borgerCprNummer
Slice: Unordered, Open by value:system
.... identifier:cpr 0..1DkCoreCprIdentifier[DA] cpr-nummer, som det fremgår af CPR registeret
.... deceased[x]:deceasedBoolean ?!Σ0..1boolean[DK] borgerErDød
... managingOrganization Σ1..1Reference(Organization)[DK] borgerJournalførendeOrganisation
.... identifier 1..1SORIdentifierAn identifier intended for computation

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.typerequiredLinkType

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] borgerCprNummer
Slice: Unordered, Open by value:system
.... identifier:cpr 0..1DkCoreCprIdentifier[DA] cpr-nummer, som det fremgår af CPR registeret
... Slices for deceased[x] ?!Σ1..1booleanIndicates if the individual is deceased or not
Slice: Unordered, Closed by type:$this
.... deceased[x]:deceasedBoolean ?!Σ0..1boolean[DK] borgerErDød
... managingOrganization Σ1..1Reference(Organization)[DK] borgerJournalfø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

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.typerequiredLinkType

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()

This structure is derived from DkCorePatient

Summary

Mandatory: 3 elements (1 nested mandatory element)
Prohibited: 19 elements

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element Patient.deceased[x] is sliced based on the value of type:$this

Differential View

This structure is derived from DkCorePatient

NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient DkCorePatient
... identifier 1..1DkCoreCprIdentifier[DK] borgerCprNummer
... active 0..0
... name 0..0
... telecom 0..0
... gender 0..0
... birthDate 0..0
... Slices for deceased[x] 1..1booleanIndicates if the individual is deceased or not
Slice: Unordered, Open by type:$this
.... deceased[x]:deceasedDateTime 0..0
.... deceased[x]:deceasedBoolean 1..1boolean[DK] borgerErDød
... 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] borgerJournalførendeOrganisation
.... reference 0..0
.... type 0..0
.... identifier 1..1SORIdentifierAn identifier intended for computation
.... display 0..0
... link 0..0

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] borgerCprNummer
Slice: Unordered, Open by value:system
.... identifier:cpr 0..1DkCoreCprIdentifier[DA] cpr-nummer, som det fremgår af CPR registeret
.... deceased[x]:deceasedBoolean ?!Σ0..1boolean[DK] borgerErDød
... managingOrganization Σ1..1Reference(Organization)[DK] borgerJournalførendeOrganisation
.... identifier 1..1SORIdentifierAn identifier intended for computation

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.typerequiredLinkType

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] borgerCprNummer
Slice: Unordered, Open by value:system
.... identifier:cpr 0..1DkCoreCprIdentifier[DA] cpr-nummer, som det fremgår af CPR registeret
... Slices for deceased[x] ?!Σ1..1booleanIndicates if the individual is deceased or not
Slice: Unordered, Closed by type:$this
.... deceased[x]:deceasedBoolean ?!Σ0..1boolean[DK] borgerErDød
... managingOrganization Σ1..1Reference(Organization)[DK] borgerJournalfø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

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.typerequiredLinkType

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()

This structure is derived from DkCorePatient

Summary

Mandatory: 3 elements (1 nested mandatory element)
Prohibited: 19 elements

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element Patient.deceased[x] is sliced based on the value of type:$this

 

Other representations of profile: CSV, Excel, Schematron