LTT Implementation Guide
1.0.1 - ci-build

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

Resource Profile: KLGatewayLTTCitizen

Official URL: http://fhir.kl.dk/ltt/StructureDefinition/klgateway-ltt-citizen Version: 1.0.1
Active as of 2025-10-29 Computable Name: KLGatewayLTTCitizen

Administrative information about a citizen participating in LTT.

Scope and usage

This model 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 organization is identified by its official SOR code. The SOR codes should be documented in Patient.managingOrganization.identifier.

Citizen resources is used to identify only the child or youth and not the parents or legal guardians.

Patient.active is optional and assumed true, if not given. Patient.active = false is used to report entered-in-error. However, this option should only be used, if the patient is fully unknown to the municipality system, and should never have been in the system at all.

Conversions between Danish information model and FHIR profile

Nedenstående tabel definerer kort den enkelte attribut på dansk og specificerer hvilke af FHIR-profilens atributter, der skal bruges til specifikation af indholdet.

Dansk attribut Definition FHIR
CPR Officielt cpr-nummer på borgeren Patient.identifier
harAktivJournal Angiver om borger har en aktiv journal i den journalførende organisation eller ej Patient.active
journalførendeOrganisation Organisation som ejer journalen med oplysninger Patient.managingOrganization.identifier

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
... 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 An identifier for this patient
Slice: Unordered, Open by value:system
.... identifier:cpr Σ 1..1 DkCoreCprIdentifier [DK] CPR
... managingOrganization Σ 1..1 Reference(Danish Core Organization Profile) [DK] journalfø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
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 0..* DkCorePatient Information about an individual or animal receiving health care services
... identifier 1..1 Identifier An identifier for this patient
... Slices for identifier Content/Rules for all slices
.... identifier:cpr 1..1 DkCoreCprIdentifier [DK] CPR
.... 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 1..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
... deceased[x] 0..0 Indicates if the individual is deceased or not
... 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] journalfø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
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Patient C 0..* DkCorePatient Information about an individual or animal receiving health care services
Constraints: marital-status-unknown-usage
... 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 An identifier for this patient
Slice: Unordered, Open by value:system
.... identifier:cpr Σ 1..1 DkCoreCprIdentifier [DK] CPR
... active ?!Σ 1..1 boolean [DK] harAktivJournal
... managingOrganization Σ 1..1 Reference(Danish Core Organization Profile) [DK] journalfø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.4.0 HL7 FHIR Implementation Guide: DK Core v3.4
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
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: 4 elements
Prohibited: 20 elements

Structures

This structure refers to these other structures:

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
... 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 An identifier for this patient
Slice: Unordered, Open by value:system
.... identifier:cpr Σ 1..1 DkCoreCprIdentifier [DK] CPR
... managingOrganization Σ 1..1 Reference(Danish Core Organization Profile) [DK] journalfø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
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 0..* DkCorePatient Information about an individual or animal receiving health care services
... identifier 1..1 Identifier An identifier for this patient
... Slices for identifier Content/Rules for all slices
.... identifier:cpr 1..1 DkCoreCprIdentifier [DK] CPR
.... 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 1..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
... deceased[x] 0..0 Indicates if the individual is deceased or not
... 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] journalfø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

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
... 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 An identifier for this patient
Slice: Unordered, Open by value:system
.... identifier:cpr Σ 1..1 DkCoreCprIdentifier [DK] CPR
... active ?!Σ 1..1 boolean [DK] harAktivJournal
... managingOrganization Σ 1..1 Reference(Danish Core Organization Profile) [DK] journalfø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.4.0 HL7 FHIR Implementation Guide: DK Core v3.4
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
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: 4 elements
Prohibited: 20 elements

Structures

This structure refers to these other structures:

 

Other representations of profile: CSV, Excel, Schematron