1.3.0 - release

KLGateway, published by KL. This guide is not an authorized publication; it is the continuous build for version 1.3.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/hl7dk/kl-gateway/ and changes regularly. See the Directory of published versions

Resource Profile: CareCitizen

Official URL: http://fhir.kl.dk/gateway/StructureDefinition/klgateway-care-citizen Version: 1.3.0
Active as of 2026-07-19 Computable Name: KLGatewayCareCitizen

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

Scope and usage

Citizen is used to identify the subject of a delivery report 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 then 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.

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
cpr-nummer Officielt cpr-nummer på borgeren identifier.value
Journalførende organisation Organisation som ejer journalen med oplysninger managingOrganization.identifier.value

Usages:

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
.. Patient C 0..* DkCorePatient Information about an individual or animal receiving health care services
Constraints: marital-status-unknown-usage, data-about-deceased-citizen-warning
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... Slices for identifier Σ 1..1 Identifier [DK] borgerCprNummer
Slice: Unordered, Open by value:system
.... identifier:cpr Σ 1..1 DkCoreCprIdentifier [DA] cpr-nummer, som det fremgår af CPR registeret
... Slices for deceased[x] ?!Σ 0..1 boolean Indicates if the individual is deceased or not
Slice: Unordered, Closed by type:$this
.... deceased[x]:deceasedBoolean ?!Σ 0..1 boolean [DK] borgerErDød
... managingOrganization Σ 1..1 Reference(Danish Core Organization Profile) [DK] borgerJournalførendeOrganisation
.... identifier Σ 1..1 SORIdentifier Logical reference, when literal reference is not known

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Patient.name:official.​use Base required NameUse 📍4.0.1 FHIR Std.
Patient.address.use Base required AddressUse 📍4.0.1 FHIR Std.
Patient.communication.​language Base preferred Common Languages 📍4.0.1 FHIR Std.
Patient.link.type Base required LinkType 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
data-about-deceased-citizen-warning warning Patient Warning: Data about deceased citizen is reported to kl-gateway (deceased.empty()) or (deceased.ofType(boolean) = false)
dom-2 error Patient If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Patient 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 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-4 error Patient 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 Patient If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Patient 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())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
marital-status-unknown-usage warning Patient The constraint ensures that only permitted forms of marriage can be used in the Danish context, as there will be no authority for other forms. See https://cpr.dk/borgere/hvad-staar-der-om-mig-i-cpr-registerindsigt/hvad-og-hvem-er-registreret-i-cpr-og-hvem-opdaterer-oplysninger-om-dig-i-cpr/
Requirements:

Marital status is legally unknown in Denmark

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

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Patient C 0..* DkCorePatient Information about an individual or animal receiving health care services
Constraints: data-about-deceased-citizen-warning
... identifier 1..1 Identifier [DK] borgerCprNummer
... Slices for identifier Content/Rules for all slices
.... identifier:cpr 1..1 DkCoreCprIdentifier [DA] cpr-nummer, som det fremgår af CPR registeret
.... identifier:x-ecpr 0..0 [DA] X-eCPR, tildelt fra den nationale eCPR service
.... identifier:d-ecpr 0..0 [DA] D-eCPR, decentral eCPR
... active 0..1 boolean [DK] harAktivJournal
... Slices for name Content/Rules for all slices
.... name:official 0..0 [DA] Officielt navn, som det fremgår af CPR registeret
... telecom 0..0 A contact detail for the individual
... gender 0..0 male | female | other | unknown
... birthDate 0..0 The date of birth for the individual
... Slices for deceased[x] 0..1 boolean Indicates if the individual is deceased or not
Slice: Unordered, Open by type:$this
.... deceased[x]:deceasedDateTime 0..0 Indicates if the individual is deceased or not
.... deceased[x]:deceasedBoolean 0..1 boolean [DK] borgerErDød
... address 0..0 An address for the individual
... maritalStatus 0..0 Marital (civil) status of a patient
... multipleBirth[x] 0..0 Whether patient is part of a multiple birth
... photo 0..0 Image of the patient
... contact 0..0 A contact party (e.g. guardian, partner, friend) for the patient
... communication 0..0 A language which may be used to communicate with the patient about his or her health
... generalPractitioner 0..0 Patient's nominated primary care provider
... Slices for generalPractitioner Content/Rules for all slices
.... generalPractitioner:referencedSORUnit 0..0 [DA] Praktiserende læges SOR-id på sundhedsinstistutionsniveau
... managingOrganization 1..1 Reference(Danish Core Organization Profile) [DK] borgerJournalførendeOrganisation
.... reference 0..0 Literal reference, Relative, internal or absolute URL
.... type 0..0 Type the reference refers to (e.g. "Patient")
.... identifier 1..1 SORIdentifier Logical reference, when literal reference is not known
.... display 0..0 Text alternative for the resource
... link 0..0 Link to another patient resource that concerns the same actual person

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
data-about-deceased-citizen-warning warning Patient Warning: Data about deceased citizen is reported to kl-gateway (deceased.empty()) or (deceased.ofType(boolean) = false)
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Patient C 0..* DkCorePatient Information about an individual or animal receiving health care services
Constraints: marital-status-unknown-usage, data-about-deceased-citizen-warning
... 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
... Slices for identifier Σ 1..1 Identifier [DK] borgerCprNummer
Slice: Unordered, Open by value:system
.... identifier:cpr Σ 1..1 DkCoreCprIdentifier [DA] cpr-nummer, som det fremgår af CPR registeret
... active ?!Σ 0..1 boolean [DK] harAktivJournal
... Slices for deceased[x] ?!Σ 0..1 boolean Indicates if the individual is deceased or not
Slice: Unordered, Closed by type:$this
.... deceased[x]:deceasedBoolean ?!Σ 0..1 boolean [DK] borgerErDød
... managingOrganization Σ 1..1 Reference(Danish Core Organization Profile) [DK] borgerJournalførendeOrganisation
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... identifier Σ 1..1 SORIdentifier Logical reference, when literal reference is not known

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Patient.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Patient.name:official.​use Base required NameUse 📍4.0.1 FHIR Std.
Patient.address.use Base required AddressUse 📍4.0.1 FHIR Std.
Patient.address.type Base required AddressType 📍4.0.1 FHIR Std.
Patient.contact.relationship Base extensible DK Extended Patient Contact Relationship 📦3.6.0 HL7 FHIR Implementation Guide: DK Core v3.6
Patient.contact.gender Base required AdministrativeGender 📍4.0.1 FHIR Std.
Patient.communication.​language Base preferred Common Languages 📍4.0.1 FHIR Std.
Patient.generalPractitioner:referencedSORUnit.​type Base extensible ResourceType 📍4.0.1 FHIR Std.
Patient.link.type Base required LinkType 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
data-about-deceased-citizen-warning warning Patient Warning: Data about deceased citizen is reported to kl-gateway (deceased.empty()) or (deceased.ofType(boolean) = false)
dom-2 error Patient If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Patient 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 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-4 error Patient 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 Patient If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Patient 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())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
marital-status-unknown-usage warning Patient The constraint ensures that only permitted forms of marriage can be used in the Danish context, as there will be no authority for other forms. See https://cpr.dk/borgere/hvad-staar-der-om-mig-i-cpr-registerindsigt/hvad-og-hvem-er-registreret-i-cpr-og-hvem-opdaterer-oplysninger-om-dig-i-cpr/
Requirements:

Marital status is legally unknown in Denmark

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
Prohibited: 20 elements

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Patient.deceased[x]

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Patient C 0..* DkCorePatient Information about an individual or animal receiving health care services
Constraints: marital-status-unknown-usage, data-about-deceased-citizen-warning
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... Slices for identifier Σ 1..1 Identifier [DK] borgerCprNummer
Slice: Unordered, Open by value:system
.... identifier:cpr Σ 1..1 DkCoreCprIdentifier [DA] cpr-nummer, som det fremgår af CPR registeret
... Slices for deceased[x] ?!Σ 0..1 boolean Indicates if the individual is deceased or not
Slice: Unordered, Closed by type:$this
.... deceased[x]:deceasedBoolean ?!Σ 0..1 boolean [DK] borgerErDød
... managingOrganization Σ 1..1 Reference(Danish Core Organization Profile) [DK] borgerJournalførendeOrganisation
.... identifier Σ 1..1 SORIdentifier Logical reference, when literal reference is not known

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Patient.name:official.​use Base required NameUse 📍4.0.1 FHIR Std.
Patient.address.use Base required AddressUse 📍4.0.1 FHIR Std.
Patient.communication.​language Base preferred Common Languages 📍4.0.1 FHIR Std.
Patient.link.type Base required LinkType 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
data-about-deceased-citizen-warning warning Patient Warning: Data about deceased citizen is reported to kl-gateway (deceased.empty()) or (deceased.ofType(boolean) = false)
dom-2 error Patient If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Patient 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 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-4 error Patient 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 Patient If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Patient 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())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
marital-status-unknown-usage warning Patient The constraint ensures that only permitted forms of marriage can be used in the Danish context, as there will be no authority for other forms. See https://cpr.dk/borgere/hvad-staar-der-om-mig-i-cpr-registerindsigt/hvad-og-hvem-er-registreret-i-cpr-og-hvem-opdaterer-oplysninger-om-dig-i-cpr/
Requirements:

Marital status is legally unknown in Denmark

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 & Constraints    Filter: Filtersdoco
.. Patient C 0..* DkCorePatient Information about an individual or animal receiving health care services
Constraints: data-about-deceased-citizen-warning
... identifier 1..1 Identifier [DK] borgerCprNummer
... Slices for identifier Content/Rules for all slices
.... identifier:cpr 1..1 DkCoreCprIdentifier [DA] cpr-nummer, som det fremgår af CPR registeret
.... identifier:x-ecpr 0..0 [DA] X-eCPR, tildelt fra den nationale eCPR service
.... identifier:d-ecpr 0..0 [DA] D-eCPR, decentral eCPR
... active 0..1 boolean [DK] harAktivJournal
... Slices for name Content/Rules for all slices
.... name:official 0..0 [DA] Officielt navn, som det fremgår af CPR registeret
... telecom 0..0 A contact detail for the individual
... gender 0..0 male | female | other | unknown
... birthDate 0..0 The date of birth for the individual
... Slices for deceased[x] 0..1 boolean Indicates if the individual is deceased or not
Slice: Unordered, Open by type:$this
.... deceased[x]:deceasedDateTime 0..0 Indicates if the individual is deceased or not
.... deceased[x]:deceasedBoolean 0..1 boolean [DK] borgerErDød
... address 0..0 An address for the individual
... maritalStatus 0..0 Marital (civil) status of a patient
... multipleBirth[x] 0..0 Whether patient is part of a multiple birth
... photo 0..0 Image of the patient
... contact 0..0 A contact party (e.g. guardian, partner, friend) for the patient
... communication 0..0 A language which may be used to communicate with the patient about his or her health
... generalPractitioner 0..0 Patient's nominated primary care provider
... Slices for generalPractitioner Content/Rules for all slices
.... generalPractitioner:referencedSORUnit 0..0 [DA] Praktiserende læges SOR-id på sundhedsinstistutionsniveau
... managingOrganization 1..1 Reference(Danish Core Organization Profile) [DK] borgerJournalførendeOrganisation
.... reference 0..0 Literal reference, Relative, internal or absolute URL
.... type 0..0 Type the reference refers to (e.g. "Patient")
.... identifier 1..1 SORIdentifier Logical reference, when literal reference is not known
.... display 0..0 Text alternative for the resource
... link 0..0 Link to another patient resource that concerns the same actual person

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
data-about-deceased-citizen-warning warning Patient Warning: Data about deceased citizen is reported to kl-gateway (deceased.empty()) or (deceased.ofType(boolean) = false)

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Patient C 0..* DkCorePatient Information about an individual or animal receiving health care services
Constraints: marital-status-unknown-usage, data-about-deceased-citizen-warning
... 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
... Slices for identifier Σ 1..1 Identifier [DK] borgerCprNummer
Slice: Unordered, Open by value:system
.... identifier:cpr Σ 1..1 DkCoreCprIdentifier [DA] cpr-nummer, som det fremgår af CPR registeret
... active ?!Σ 0..1 boolean [DK] harAktivJournal
... Slices for deceased[x] ?!Σ 0..1 boolean Indicates if the individual is deceased or not
Slice: Unordered, Closed by type:$this
.... deceased[x]:deceasedBoolean ?!Σ 0..1 boolean [DK] borgerErDød
... managingOrganization Σ 1..1 Reference(Danish Core Organization Profile) [DK] borgerJournalførendeOrganisation
.... id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... identifier Σ 1..1 SORIdentifier Logical reference, when literal reference is not known

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Patient.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Patient.name:official.​use Base required NameUse 📍4.0.1 FHIR Std.
Patient.address.use Base required AddressUse 📍4.0.1 FHIR Std.
Patient.address.type Base required AddressType 📍4.0.1 FHIR Std.
Patient.contact.relationship Base extensible DK Extended Patient Contact Relationship 📦3.6.0 HL7 FHIR Implementation Guide: DK Core v3.6
Patient.contact.gender Base required AdministrativeGender 📍4.0.1 FHIR Std.
Patient.communication.​language Base preferred Common Languages 📍4.0.1 FHIR Std.
Patient.generalPractitioner:referencedSORUnit.​type Base extensible ResourceType 📍4.0.1 FHIR Std.
Patient.link.type Base required LinkType 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
data-about-deceased-citizen-warning warning Patient Warning: Data about deceased citizen is reported to kl-gateway (deceased.empty()) or (deceased.ofType(boolean) = false)
dom-2 error Patient If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Patient 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 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-4 error Patient 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 Patient If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Patient 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())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
marital-status-unknown-usage warning Patient The constraint ensures that only permitted forms of marriage can be used in the Danish context, as there will be no authority for other forms. See https://cpr.dk/borgere/hvad-staar-der-om-mig-i-cpr-registerindsigt/hvad-og-hvem-er-registreret-i-cpr-og-hvem-opdaterer-oplysninger-om-dig-i-cpr/
Requirements:

Marital status is legally unknown in Denmark

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
Prohibited: 20 elements

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Patient.deceased[x]

 

Other representations of profile: CSV, Excel, Schematron