LTT Implementation Guide
1.0.0 - ci-build

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

Resource Profile: KLGatewayLTTCitizen

Official URL: http://fhir.kl.dk/ltt/StructureDefinition/klgateway-ltt-citizen Version: 1.0.0
Active as of 2025-08-31 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

PathConformanceValueSet / CodeURI
Patient.name:official.userequiredFixed Value: official
http://hl7.org/fhir/ValueSet/name-use|4.0.1
From the FHIR Standard
Patient.address.userequiredAddressUse
http://hl7.org/fhir/ValueSet/address-use|4.0.1
From the FHIR Standard
Patient.communication.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
From the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
Patient.link.typerequiredLinkType
http://hl7.org/fhir/ValueSet/link-type|4.0.1
From the FHIR Standard

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-usagewarningPatientThe 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/
: 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()
Marital status is legally unknown in Denmark

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
.... identifier:d-ecpr 0..0
... active 1..1 boolean [DK] harAktivJournal
... Slices for name Content/Rules for all slices
.... name:official 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
... Slices for generalPractitioner Content/Rules for all slices
.... generalPractitioner:referencedSORUnit 0..0
... managingOrganization 1..1 Reference(Danish Core Organization Profile) [DK] journalførendeOrganisation
.... reference 0..0
.... type 0..0
.... identifier 1..1 SORIdentifier Logical reference, when literal reference is not known
.... display 0..0
... link 0..0

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

PathConformanceValueSet / CodeURI
Patient.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
From the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
Patient.name:official.userequiredFixed Value: official
http://hl7.org/fhir/ValueSet/name-use|4.0.1
From the FHIR Standard
Patient.address.userequiredAddressUse
http://hl7.org/fhir/ValueSet/address-use|4.0.1
From the FHIR Standard
Patient.address.typerequiredAddressType
http://hl7.org/fhir/ValueSet/address-type|4.0.1
From the FHIR Standard
Patient.contact.relationshipextensibleextended-patient-contactrelationship
http://hl7.dk/fhir/core/ValueSet/extended-patient-contactrelationship
Patient.contact.genderrequiredAdministrativeGender
http://hl7.org/fhir/ValueSet/administrative-gender|4.0.1
From the FHIR Standard
Patient.communication.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
From the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
Patient.generalPractitioner:referencedSORUnit.typeextensibleResourceType
http://hl7.org/fhir/ValueSet/resource-types
From the FHIR Standard
Patient.link.typerequiredLinkType
http://hl7.org/fhir/ValueSet/link-type|4.0.1
From the FHIR Standard

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-usagewarningPatientThe 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/
: 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()
Marital status is legally unknown in Denmark

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

PathConformanceValueSet / CodeURI
Patient.name:official.userequiredFixed Value: official
http://hl7.org/fhir/ValueSet/name-use|4.0.1
From the FHIR Standard
Patient.address.userequiredAddressUse
http://hl7.org/fhir/ValueSet/address-use|4.0.1
From the FHIR Standard
Patient.communication.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
From the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
Patient.link.typerequiredLinkType
http://hl7.org/fhir/ValueSet/link-type|4.0.1
From the FHIR Standard

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-usagewarningPatientThe 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/
: 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()
Marital status is legally unknown in Denmark

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
.... identifier:d-ecpr 0..0
... active 1..1 boolean [DK] harAktivJournal
... Slices for name Content/Rules for all slices
.... name:official 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
... Slices for generalPractitioner Content/Rules for all slices
.... generalPractitioner:referencedSORUnit 0..0
... managingOrganization 1..1 Reference(Danish Core Organization Profile) [DK] journalførendeOrganisation
.... reference 0..0
.... type 0..0
.... identifier 1..1 SORIdentifier Logical reference, when literal reference is not known
.... display 0..0
... link 0..0

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

PathConformanceValueSet / CodeURI
Patient.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
From the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
Patient.name:official.userequiredFixed Value: official
http://hl7.org/fhir/ValueSet/name-use|4.0.1
From the FHIR Standard
Patient.address.userequiredAddressUse
http://hl7.org/fhir/ValueSet/address-use|4.0.1
From the FHIR Standard
Patient.address.typerequiredAddressType
http://hl7.org/fhir/ValueSet/address-type|4.0.1
From the FHIR Standard
Patient.contact.relationshipextensibleextended-patient-contactrelationship
http://hl7.dk/fhir/core/ValueSet/extended-patient-contactrelationship
Patient.contact.genderrequiredAdministrativeGender
http://hl7.org/fhir/ValueSet/administrative-gender|4.0.1
From the FHIR Standard
Patient.communication.languagepreferredCommonLanguages
http://hl7.org/fhir/ValueSet/languages
From the FHIR Standard
Additional Bindings Purpose
AllLanguages Max Binding
Patient.generalPractitioner:referencedSORUnit.typeextensibleResourceType
http://hl7.org/fhir/ValueSet/resource-types
From the FHIR Standard
Patient.link.typerequiredLinkType
http://hl7.org/fhir/ValueSet/link-type|4.0.1
From the FHIR Standard

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-usagewarningPatientThe 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/
: 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()
Marital status is legally unknown in Denmark

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