HL7 FHIR Implementation Guide: DK Core
1.1.0 - release

This page is part of the HL7 FHIR Implementation Guide: DK Core (v1.1.0: Release) based on FHIR R4. The current version which supercedes this version is 2.0.0. For a full list of available versions, see the Directory of published versions

Resource Profile: Danish Core Patient Profile

Defining URL:http://hl7.dk/fhir/core/StructureDefinition/dk-core-patient
Version:1.1.0
Name:DkCorePatient
Title:Danish Core Patient Profile
Status:Active as of 2/4/20
Definition:

HL7 Denmark core profile for a patient

Publisher:HL7 Denmark
Copyright:

CC-BY-SA-4.0

Source Resource:XML / JSON / Turtle

The official URL for this profile is:

http://hl7.dk/fhir/core/StructureDefinition/dk-core-patient

Introduction

The Danish Core Patient profile is intended to encapsulate the most common and basic data model of patients in danish healthcare systems covering both primary sector (GP’s), secondary sector (specialty doctors and hospitals) and municipality cases. As such the profile should be usable in most danish contexts.

Use of patient identifiers

This patient profile currently only reflects the use of the established national danish patient identifiers called CPR. More official identifiers are expected to be used and profiled in the future, eg:

Use of security label on patients

Danish citizens that have requested name and address protection (Navne- og adressebeskyttelse) should be labeled with the security label as follows:

 <Patient xmlns="http://hl7.org/fhir">
  <meta>
    <security>
      <system value="http://terminology.hl7.org/CodeSystem/v3-Confidentiality"/>
      <code value="R"/>
      <display value="Restricted"/>
    </security>
  </meta>
...  [snip] ...
</Patient>

Use of this label should be interpreted according to the law, rouhgly meaning that only personnel using systems in public/official affairs are allowed to see name and address for the patient/citizen.

Formal Views of Profile Content

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

This structure is derived from Patient

Summary

Mandatory: 1 element (2 nested mandatory elements)
Must-Support: 2 elements
Fixed Value: 1 element

Structures

This structure refers to these other structures:

Extensions

This structure refers to these extensions:

Slices

This structure defines the following Slices:

  • The element Patient.identifier is sliced based on the value of value:system
  • The element Patient.name is sliced based on the value of value:use
  • The element Patient.generalPractitioner is sliced based on the value of value:identifier.system

This structure is derived from Patient

NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient I0..*PatientInformation about an individual or animal receiving health care services
... Slices for identifier S1..*IdentifierAn identifier for this patient
Slice: Unordered, Open by value:system
.... identifier:cpr 0..1DkCoreCprIdentifierAn identifier intended for computation
... Slices for name S0..*HumanNameA name associated with the patient
Slice: Unordered, Open by value:use
.... name:official 0..1HumanNameA name associated with the patient
..... use 1..1codeusual | official | temp | nickname | anonymous | old | maiden
Fixed Value: official
..... family 1..1stringFamily name (often called 'Surname')
... address 0..*AddressAn address for the individual
.... dk-core-municipalityCodes 0..*CodeableConceptDanish Core Municipality codes
URL: http://hl7.dk/fhir/core/StructureDefinition/dk-core-municipalityCodes
.... dk-core-RegionalSubDivisionCodes 0..*CodeableConceptDanish Core Regional Sub Division Codes Extension
URL: http://hl7.dk/fhir/core/StructureDefinition/dk-core-RegionalSubDivisionCodes
... Slices for generalPractitioner 0..*Reference(Organization | Practitioner | PractitionerRole)Patient's nominated primary care provider
Slice: Unordered, Open by value:identifier.system
.... generalPractitioner:referencedSORUnit 0..*Reference(Organization | Practitioner | PractitionerRole)Patient's nominated primary care provider
..... identifier 0..1SORIdentifierAn identifier intended for computation

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient I0..*PatientInformation about an individual or animal receiving health care services
... id Σ0..1stringLogical 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 SΣ1..*IdentifierAn identifier for this patient
Slice: Unordered, Open by value:system
.... identifier:cpr 0..1DkCoreCprIdentifierAn identifier intended for computation
... active ?!Σ0..1booleanWhether this patient's record is in active use
... Slices for name SΣ0..*HumanNameA name associated with the patient
Slice: Unordered, Open by value:use
.... name:official Σ0..1HumanNameA name associated with the patient
..... id 0..1stringUnique id for inter-element referencing
..... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... use ?!Σ1..1codeusual | official | temp | nickname | anonymous | old | maiden
Binding: NameUse (required): The use of a human name.


Fixed Value: official
..... text Σ0..1stringText representation of the full name
..... family Σ1..1stringFamily name (often called 'Surname')
..... given Σ0..*stringGiven names (not always 'first'). Includes middle names
This repeating element order: Given Names appear in the correct order for presenting the name
..... prefix Σ0..*stringParts that come before the name
This repeating element order: Prefixes appear in the correct order for presenting the name
..... suffix Σ0..*stringParts that come after the name
This repeating element order: Suffixes appear in the correct order for presenting the name
..... period Σ0..1PeriodTime period when name was/is in use
... telecom Σ0..*ContactPointA contact detail for the individual
... gender Σ0..1codemale | female | other | unknown
Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.

... birthDate Σ0..1dateThe date of birth for the individual
... deceased[x] ?!Σ0..1Indicates if the individual is deceased or not
.... deceasedBooleanboolean
.... deceasedDateTimedateTime
... address Σ0..*AddressAn address for the individual
.... id 0..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... dk-core-municipalityCodes 0..*CodeableConceptDanish Core Municipality codes
URL: http://hl7.dk/fhir/core/StructureDefinition/dk-core-municipalityCodes
.... dk-core-RegionalSubDivisionCodes 0..*CodeableConceptDanish Core Regional Sub Division Codes Extension
URL: http://hl7.dk/fhir/core/StructureDefinition/dk-core-RegionalSubDivisionCodes
.... use ?!Σ0..1codehome | work | temp | old | billing - purpose of this address
Binding: AddressUse (required): The use of an address.


Example General: home
.... type Σ0..1codepostal | physical | both
Binding: AddressType (required): The type of an address (physical / postal).


Example General: both
.... text Σ0..1stringText representation of the address
Example General: 137 Nowhere Street, Erewhon 9132
.... line Σ0..*stringStreet name, number, direction & P.O. Box etc.
This repeating element order: The order in which lines should appear in an address label
Example General: 137 Nowhere Street
.... city Σ0..1stringName of city, town etc.
Example General: Erewhon
.... district Σ0..1stringDistrict name (aka county)
Example General: Madison
.... state Σ0..1stringSub-unit of country (abbreviations ok)
.... postalCode Σ0..1stringPostal code for area
Example General: 9132
.... country Σ0..1stringCountry (e.g. can be ISO 3166 2 or 3 letter code)
.... period Σ0..1PeriodTime period when address was/is in use
Example General: {"start":"2010-03-23","end":"2010-07-01"}
... maritalStatus 0..1CodeableConceptMarital (civil) status of a patient
Binding: DK MaritalStatus (extensible)
... multipleBirth[x] 0..1Whether patient is part of a multiple birth
.... multipleBirthBooleanboolean
.... multipleBirthIntegerinteger
... photo 0..*AttachmentImage of the patient
... contact I0..*BackboneElementA contact party (e.g. guardian, partner, friend) for the patient
pat-1: SHALL at least contain a contact's details or a reference to an organization
.... 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
.... relationship 0..*CodeableConceptThe kind of relationship
Binding: PatientContactRelationship (extensible): The nature of the relationship between a patient and a contact person for that patient.


.... name 0..1HumanNameA name associated with the contact person
.... telecom 0..*ContactPointA contact detail for the person
.... address 0..1AddressAddress for the contact person
.... gender 0..1codemale | female | other | unknown
Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.

.... organization I0..1Reference(Organization)Organization that is associated with the contact
.... period 0..1PeriodThe period during which this contact person or organization is valid to be contacted relating to this patient
... communication 0..*BackboneElementA language which may be used to communicate with the patient about his or her health
.... 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
.... language 1..1CodeableConceptThe language which can be used to communicate with the patient about his or her health
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages: A human language.

.... preferred 0..1booleanLanguage preference indicator
... Slices for generalPractitioner 0..*Reference(Organization | Practitioner | PractitionerRole)Patient's nominated primary care provider
Slice: Unordered, Open by value:identifier.system
.... generalPractitioner:referencedSORUnit 0..*Reference(Organization | Practitioner | PractitionerRole)Patient's nominated primary care provider
..... id 0..1stringUnique id for inter-element referencing
..... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... reference ΣI0..1stringLiteral reference, Relative, internal or absolute URL
..... type Σ0..1uriType the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).

..... identifier 0..1SORIdentifierAn identifier intended for computation
..... display Σ0..1stringText alternative for the resource
... managingOrganization Σ0..1Reference(Organization)Organization that is the custodian of the patient record
... link ?!Σ0..*BackboneElementLink to another patient resource that concerns the same actual person
.... 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(Patient | RelatedPerson)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.


doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient I0..*PatientInformation about an individual or animal receiving health care services
... Slices for identifier Σ1..*IdentifierAn identifier for this patient
Slice: Unordered, Open by value:system
... Slices for name Σ0..*HumanNameA name associated with the patient
Slice: Unordered, Open by value:use

doco Documentation for this format

This structure is derived from Patient

Summary

Mandatory: 1 element (2 nested mandatory elements)
Must-Support: 2 elements
Fixed Value: 1 element

Structures

This structure refers to these other structures:

Extensions

This structure refers to these extensions:

Slices

This structure defines the following Slices:

  • The element Patient.identifier is sliced based on the value of value:system
  • The element Patient.name is sliced based on the value of value:use
  • The element Patient.generalPractitioner is sliced based on the value of value:identifier.system

Differential View

This structure is derived from Patient

NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient I0..*PatientInformation about an individual or animal receiving health care services
... Slices for identifier S1..*IdentifierAn identifier for this patient
Slice: Unordered, Open by value:system
.... identifier:cpr 0..1DkCoreCprIdentifierAn identifier intended for computation
... Slices for name S0..*HumanNameA name associated with the patient
Slice: Unordered, Open by value:use
.... name:official 0..1HumanNameA name associated with the patient
..... use 1..1codeusual | official | temp | nickname | anonymous | old | maiden
Fixed Value: official
..... family 1..1stringFamily name (often called 'Surname')
... address 0..*AddressAn address for the individual
.... dk-core-municipalityCodes 0..*CodeableConceptDanish Core Municipality codes
URL: http://hl7.dk/fhir/core/StructureDefinition/dk-core-municipalityCodes
.... dk-core-RegionalSubDivisionCodes 0..*CodeableConceptDanish Core Regional Sub Division Codes Extension
URL: http://hl7.dk/fhir/core/StructureDefinition/dk-core-RegionalSubDivisionCodes
... Slices for generalPractitioner 0..*Reference(Organization | Practitioner | PractitionerRole)Patient's nominated primary care provider
Slice: Unordered, Open by value:identifier.system
.... generalPractitioner:referencedSORUnit 0..*Reference(Organization | Practitioner | PractitionerRole)Patient's nominated primary care provider
..... identifier 0..1SORIdentifierAn identifier intended for computation

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient I0..*PatientInformation about an individual or animal receiving health care services
... id Σ0..1stringLogical 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 SΣ1..*IdentifierAn identifier for this patient
Slice: Unordered, Open by value:system
.... identifier:cpr 0..1DkCoreCprIdentifierAn identifier intended for computation
... active ?!Σ0..1booleanWhether this patient's record is in active use
... Slices for name SΣ0..*HumanNameA name associated with the patient
Slice: Unordered, Open by value:use
.... name:official Σ0..1HumanNameA name associated with the patient
..... id 0..1stringUnique id for inter-element referencing
..... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... use ?!Σ1..1codeusual | official | temp | nickname | anonymous | old | maiden
Binding: NameUse (required): The use of a human name.


Fixed Value: official
..... text Σ0..1stringText representation of the full name
..... family Σ1..1stringFamily name (often called 'Surname')
..... given Σ0..*stringGiven names (not always 'first'). Includes middle names
This repeating element order: Given Names appear in the correct order for presenting the name
..... prefix Σ0..*stringParts that come before the name
This repeating element order: Prefixes appear in the correct order for presenting the name
..... suffix Σ0..*stringParts that come after the name
This repeating element order: Suffixes appear in the correct order for presenting the name
..... period Σ0..1PeriodTime period when name was/is in use
... telecom Σ0..*ContactPointA contact detail for the individual
... gender Σ0..1codemale | female | other | unknown
Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.

... birthDate Σ0..1dateThe date of birth for the individual
... deceased[x] ?!Σ0..1Indicates if the individual is deceased or not
.... deceasedBooleanboolean
.... deceasedDateTimedateTime
... address Σ0..*AddressAn address for the individual
.... id 0..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... dk-core-municipalityCodes 0..*CodeableConceptDanish Core Municipality codes
URL: http://hl7.dk/fhir/core/StructureDefinition/dk-core-municipalityCodes
.... dk-core-RegionalSubDivisionCodes 0..*CodeableConceptDanish Core Regional Sub Division Codes Extension
URL: http://hl7.dk/fhir/core/StructureDefinition/dk-core-RegionalSubDivisionCodes
.... use ?!Σ0..1codehome | work | temp | old | billing - purpose of this address
Binding: AddressUse (required): The use of an address.


Example General: home
.... type Σ0..1codepostal | physical | both
Binding: AddressType (required): The type of an address (physical / postal).


Example General: both
.... text Σ0..1stringText representation of the address
Example General: 137 Nowhere Street, Erewhon 9132
.... line Σ0..*stringStreet name, number, direction & P.O. Box etc.
This repeating element order: The order in which lines should appear in an address label
Example General: 137 Nowhere Street
.... city Σ0..1stringName of city, town etc.
Example General: Erewhon
.... district Σ0..1stringDistrict name (aka county)
Example General: Madison
.... state Σ0..1stringSub-unit of country (abbreviations ok)
.... postalCode Σ0..1stringPostal code for area
Example General: 9132
.... country Σ0..1stringCountry (e.g. can be ISO 3166 2 or 3 letter code)
.... period Σ0..1PeriodTime period when address was/is in use
Example General: {"start":"2010-03-23","end":"2010-07-01"}
... maritalStatus 0..1CodeableConceptMarital (civil) status of a patient
Binding: DK MaritalStatus (extensible)
... multipleBirth[x] 0..1Whether patient is part of a multiple birth
.... multipleBirthBooleanboolean
.... multipleBirthIntegerinteger
... photo 0..*AttachmentImage of the patient
... contact I0..*BackboneElementA contact party (e.g. guardian, partner, friend) for the patient
pat-1: SHALL at least contain a contact's details or a reference to an organization
.... 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
.... relationship 0..*CodeableConceptThe kind of relationship
Binding: PatientContactRelationship (extensible): The nature of the relationship between a patient and a contact person for that patient.


.... name 0..1HumanNameA name associated with the contact person
.... telecom 0..*ContactPointA contact detail for the person
.... address 0..1AddressAddress for the contact person
.... gender 0..1codemale | female | other | unknown
Binding: AdministrativeGender (required): The gender of a person used for administrative purposes.

.... organization I0..1Reference(Organization)Organization that is associated with the contact
.... period 0..1PeriodThe period during which this contact person or organization is valid to be contacted relating to this patient
... communication 0..*BackboneElementA language which may be used to communicate with the patient about his or her health
.... 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
.... language 1..1CodeableConceptThe language which can be used to communicate with the patient about his or her health
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages: A human language.

.... preferred 0..1booleanLanguage preference indicator
... Slices for generalPractitioner 0..*Reference(Organization | Practitioner | PractitionerRole)Patient's nominated primary care provider
Slice: Unordered, Open by value:identifier.system
.... generalPractitioner:referencedSORUnit 0..*Reference(Organization | Practitioner | PractitionerRole)Patient's nominated primary care provider
..... id 0..1stringUnique id for inter-element referencing
..... Slices for extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... reference ΣI0..1stringLiteral reference, Relative, internal or absolute URL
..... type Σ0..1uriType the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).

..... identifier 0..1SORIdentifierAn identifier intended for computation
..... display Σ0..1stringText alternative for the resource
... managingOrganization Σ0..1Reference(Organization)Organization that is the custodian of the patient record
... link ?!Σ0..*BackboneElementLink to another patient resource that concerns the same actual person
.... 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(Patient | RelatedPerson)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.


doco Documentation for this format

 

Other representations of profile: CSV, Excel, Schematron

Terminology Bindings

PathConformanceValueSet / Code
Patient.languagepreferredCommonLanguages
Max Binding: AllLanguages
Patient.name:official.userequiredFixed Value: official
Patient.genderrequiredAdministrativeGender
Patient.address.userequiredAddressUse
Patient.address.typerequiredAddressType
Patient.maritalStatusextensibleDK Marital Status Codes
Patient.contact.relationshipextensiblePatientContactRelationship
Patient.contact.genderrequiredAdministrativeGender
Patient.communication.languagepreferredCommonLanguages
Max Binding: AllLanguages
Patient.generalPractitioner:referencedSORUnit.typeextensibleResourceType
Patient.link.typerequiredLinkType

Constraints

IdGradePathDetailsRequirements
pat-1errorPatient.contactSHALL at least contain a contact's details or a reference to an organization
: name.exists() or telecom.exists() or address.exists() or organization.exists()

Notes:

Note: feedback is most welcome and should be directed to the danish affiliate’s github repository (https://github.com/hl7dk/dk-core/).