From 9bbca7d338e145f450dd4f5921405a24a6f7af53 Mon Sep 17 00:00:00 2001 From: Jens Kristian Villadsen Date: Tue, 8 Nov 2022 23:21:16 +0100 Subject: [PATCH] 2.1.0 (#77) * first version of Condition * changed version number to 1.2.0 and status to draft * nyt eksempel condition * added new condition instances and a new GP organization instance * Condition documentation added * Update StructureDefinition-dk-core-condition-intro.md * Added NotFollowedAnymore, and asserter. More detailed documentation * Updated Organization and Patient profiles and removed LPR3-identifier #74 - removed LPR3-identifier #73 - added description of 'NNDNK' as identifier.type to DKCorePatient #72 - added description of selection of SOR and ydernummer to DkCoreOrganization #69 - removed '(GP's)' from DkCoreOrganization * Changes made to resolve issue #66 Danish/English names and #67 shorts added to slices and extension * target audience added to index.md, and scope and usage sections in patient and practioner strengthend to resolve issue #68 * Added section about connection between dk-core and common Danish architectures and standard to resolve issue #71 * Changes applied based on review comments * Changes to Condition following review, added pregancy example and a female patient * itemization and display for SCT code corrected * Added legal text * Re-fsh'ed * index description of approvals specified * Released v2.1.0 Co-authored-by: kirstinerosenbeck Co-authored-by: tmsMedcom <88831880+tmsMedcom@users.noreply.github.com> --- input/fsh/AuthorizationIdentifier-Profile.fsh | 20 - input/fsh/AuthorizationIdentifier.fsh | 18 + input/fsh/CVRIdentifier.fsh | 22 +- input/fsh/DK_Valid_Identifier-ValueSet.fsh | 16 - input/fsh/DkCoreCondition.fsh | 112 +++ input/fsh/DkCoreCprIdentifier-Profile.fsh | 24 - input/fsh/DkCoreCprIdentifier.fsh | 24 + .../DkCoreCprIdentifierSystem-CodeSystem.fsh | 16 - input/fsh/DkCoreOrganization.fsh | 130 ++-- input/fsh/DkCorePatient-Profile.fsh | 124 --- input/fsh/DkCorePatient.fsh | 154 ++++ input/fsh/DkCorePractioner-Profile.fsh | 40 - input/fsh/DkCorePractitioner.fsh | 35 + .../fsh/DkCoreProfessionGroups-CodeSystem.fsh | 25 - input/fsh/DkCoreprofessionGroups-ValueSet.fsh | 4 - input/fsh/GLNIdentifier.fsh | 26 +- input/fsh/KombitOrgIdentifier.fsh | 7 +- input/fsh/Lpr3Identifier-Profile.fsh | 20 - input/fsh/Lpr3Identifier.fsh | 21 + input/fsh/MunicipalityCodes-Extension.fsh | 19 - input/fsh/MunicipalityCodes-ValueSet.fsh | 15 - .../RegionalSubDivisionCodes-Extension.fsh | 19 - .../fsh/RegionalSubdivisionCodes-ValueSet.fsh | 14 - input/fsh/SORIdentifier-Profile.fsh | 20 - input/fsh/SORIdentifier.fsh | 19 + ...inistrative-gender-supplement-Instance.fsh | 31 - input/fsh/aliases.fsh | 17 +- .../fsh/authorization-id-format-Invariant.fsh | 4 - input/fsh/codeSystems.fsh | 713 ++++++++++++++++++ input/fsh/confidential.fsh | 27 - input/fsh/cpr-Instance.fsh | 20 - .../dk-core-municipality-codes-Instance.fsh | 415 ---------- ...-municipality-codes-greenland-Instance.fsh | 39 - ...re-regional-subdivision-codes-Instance.fsh | 40 - ...-marital-status-of-CodeSystem-Instance.fsh | 29 - ...dk-marital-status-of-ValueSet-Instance.fsh | 30 - input/fsh/extensions.fsh | 44 ++ input/fsh/instances.fsh | 371 +++++++++ ...marital-status-unknown-usage-Invariant.fsh | 4 - input/fsh/min-digits-sor-Invariant.fsh | 4 - input/fsh/sor-Instance.fsh | 20 - input/fsh/uuid-Invariant.fsh | 4 - input/fsh/uuidv5-Invariant.fsh | 4 - input/fsh/valueSets.fsh | 24 + ...ctureDefinition-dk-core-condition-intro.md | 20 + ...reDefinition-dk-core-organization-intro.md | 6 +- ...ructureDefinition-dk-core-patient-intro.md | 12 +- ...reDefinition-dk-core-practitioner-intro.md | 8 +- input/pagecontent/index.md | 44 +- .../resources/address-type-dk-supplement.xml | 60 -- input/resources/address-use-dk-supplement.xml | 72 -- .../care-team-status-dk-supplement.xml | 92 --- .../consent-state-codes-dk-supplement.xml | 101 --- .../resources/days-of-week-dk-supplement.xml | 115 --- .../episode-of-care-status-dk-supplement.xml | 119 --- .../publication-status-dk-supplement.xml | 94 --- .../request-status-dk-supplement.xml | 121 --- input/resources/sor-organization-type.json | 704 ----------------- package-list.json | 26 - publication-request.json | 12 + sushi-config.yaml | 5 +- 61 files changed, 1738 insertions(+), 2657 deletions(-) delete mode 100644 input/fsh/AuthorizationIdentifier-Profile.fsh create mode 100644 input/fsh/AuthorizationIdentifier.fsh delete mode 100644 input/fsh/DK_Valid_Identifier-ValueSet.fsh create mode 100644 input/fsh/DkCoreCondition.fsh delete mode 100644 input/fsh/DkCoreCprIdentifier-Profile.fsh create mode 100644 input/fsh/DkCoreCprIdentifier.fsh delete mode 100644 input/fsh/DkCoreCprIdentifierSystem-CodeSystem.fsh delete mode 100644 input/fsh/DkCorePatient-Profile.fsh create mode 100644 input/fsh/DkCorePatient.fsh delete mode 100644 input/fsh/DkCorePractioner-Profile.fsh create mode 100644 input/fsh/DkCorePractitioner.fsh delete mode 100644 input/fsh/DkCoreProfessionGroups-CodeSystem.fsh delete mode 100644 input/fsh/DkCoreprofessionGroups-ValueSet.fsh delete mode 100644 input/fsh/Lpr3Identifier-Profile.fsh create mode 100644 input/fsh/Lpr3Identifier.fsh delete mode 100644 input/fsh/MunicipalityCodes-Extension.fsh delete mode 100644 input/fsh/MunicipalityCodes-ValueSet.fsh delete mode 100644 input/fsh/RegionalSubDivisionCodes-Extension.fsh delete mode 100644 input/fsh/RegionalSubdivisionCodes-ValueSet.fsh delete mode 100644 input/fsh/SORIdentifier-Profile.fsh create mode 100644 input/fsh/SORIdentifier.fsh delete mode 100644 input/fsh/administrative-gender-supplement-Instance.fsh delete mode 100644 input/fsh/authorization-id-format-Invariant.fsh create mode 100644 input/fsh/codeSystems.fsh delete mode 100644 input/fsh/confidential.fsh delete mode 100644 input/fsh/cpr-Instance.fsh delete mode 100644 input/fsh/dk-core-municipality-codes-Instance.fsh delete mode 100644 input/fsh/dk-core-municipality-codes-greenland-Instance.fsh delete mode 100644 input/fsh/dk-core-regional-subdivision-codes-Instance.fsh delete mode 100644 input/fsh/dk-marital-status-of-CodeSystem-Instance.fsh delete mode 100644 input/fsh/dk-marital-status-of-ValueSet-Instance.fsh create mode 100644 input/fsh/extensions.fsh create mode 100644 input/fsh/instances.fsh delete mode 100644 input/fsh/marital-status-unknown-usage-Invariant.fsh delete mode 100644 input/fsh/min-digits-sor-Invariant.fsh delete mode 100644 input/fsh/sor-Instance.fsh delete mode 100644 input/fsh/uuid-Invariant.fsh delete mode 100644 input/fsh/uuidv5-Invariant.fsh create mode 100644 input/fsh/valueSets.fsh create mode 100644 input/pagecontent/StructureDefinition-dk-core-condition-intro.md delete mode 100644 input/resources/address-type-dk-supplement.xml delete mode 100644 input/resources/address-use-dk-supplement.xml delete mode 100644 input/resources/care-team-status-dk-supplement.xml delete mode 100644 input/resources/consent-state-codes-dk-supplement.xml delete mode 100644 input/resources/days-of-week-dk-supplement.xml delete mode 100644 input/resources/episode-of-care-status-dk-supplement.xml delete mode 100644 input/resources/publication-status-dk-supplement.xml delete mode 100644 input/resources/request-status-dk-supplement.xml delete mode 100644 input/resources/sor-organization-type.json delete mode 100644 package-list.json create mode 100644 publication-request.json diff --git a/input/fsh/AuthorizationIdentifier-Profile.fsh b/input/fsh/AuthorizationIdentifier-Profile.fsh deleted file mode 100644 index cc4fcecbd..000000000 --- a/input/fsh/AuthorizationIdentifier-Profile.fsh +++ /dev/null @@ -1,20 +0,0 @@ -Profile: AuthorizationIdentifier -Parent: Identifier -Id: dk-core-authorization-identifier -Title: "Danish Health Professionals Authorization Identifier" -Description: "Identifier holding the official [authorization identifier](https://en.stps.dk/en/health-professionals-and-authorities/online-register-registered-health-professionals/) for a practitioner." -* ^version = "0.9.0" -* ^status = #draft -* ^date = "2021-03-14T16:56:07+01:00" -* ^publisher = "HL7 Denmark" -* ^contact[0].name = "HL7 Denmark" -* ^contact[0].telecom[0].system = #url -* ^contact[0].telecom[0].value = "https://www.hl7.dk/" -* ^jurisdiction[0] = urn:iso:std:iso:3166#DK -* ^copyright = "CC-BY-SA-4.0" -* system 1.. -* system = "https://autregweb.sst.dk" (exactly) -* value 1.. -* value obeys authorization-id-format -* value ^maxLength = 5 -* value ^constraint[1].source = "https://stps.dk/da/autorisation/om-autorisationer/autorisations-id/" diff --git a/input/fsh/AuthorizationIdentifier.fsh b/input/fsh/AuthorizationIdentifier.fsh new file mode 100644 index 000000000..6c904a030 --- /dev/null +++ b/input/fsh/AuthorizationIdentifier.fsh @@ -0,0 +1,18 @@ +Profile: AuthorizationIdentifier +Parent: Identifier +Id: dk-core-authorization-identifier +Title: "Danish Health Professionals Authorization Identifier" +Description: "Identifier holding the official [authorization identifier](https://en.stps.dk/en/health-professionals-and-authorities/online-register-registered-health-professionals/) for a practitioner." +* system 1.. +* system = "https://autregweb.sst.dk" (exactly) +* value 1.. + * obeys authorization-id-format + * ^maxLength = 5 +// WARNING: The constraint index in the following rule (e.g., constraint[0]) may be incorrect. +// Please compare with the constraint array in the original definition's snapshot and adjust as necessary. + * ^constraint.source = "https://stps.dk/da/autorisation/om-autorisationer/autorisations-id/" + +Invariant: authorization-id-format +Description: "Authorization ID consists of exactly 5 consonants and Y and or numbers in any order" +Severity: #error +Expression: "matches('^([b-df-hj-np-tv-zB-DF-HJ-NP-TV-Z0-9]){5}$')" \ No newline at end of file diff --git a/input/fsh/CVRIdentifier.fsh b/input/fsh/CVRIdentifier.fsh index 1259df8fd..40744301f 100644 --- a/input/fsh/CVRIdentifier.fsh +++ b/input/fsh/CVRIdentifier.fsh @@ -8,22 +8,14 @@ Description: "Identifier holding a danish [CVR](https://datacvr.virk.dk/data/) n * system 1.. * system = "http://cvr.dk" (exactly) * value 1.. -* value obeys CVR-length and CVR-modulus-11 + * obeys CVR-length and CVR-modulus-11 -Invariant: CVR-length +Invariant: CVR-length Description: "CVR must be exactly 8 numeric characters long" -Expression: "value.matches('^[0-9]{8}$')" -Severity: #error +Severity: #error +Expression: "value.matches('^[0-9]{8}$')" -Invariant: CVR-modulus-11 +Invariant: CVR-modulus-11 Description: "CVR must pass the modulus 11 check" -Expression: "(( - (value.substring(0,1).toInteger()*2)+ - (value.substring(1,1).toInteger()*7)+ - (value.substring(2,1).toInteger()*6)+ - (value.substring(3,1).toInteger()*5)+ - (value.substring(4,1).toInteger()*4)+ - (value.substring(5,1).toInteger()*3)+ - (value.substring(6,1).toInteger()*2)+ - (value.substring(7,1).toInteger()*1)) mod(11)=0)" -Severity: #error +Severity: #error +Expression: "((\n (value.substring(0,1).toInteger()*2)+\n (value.substring(1,1).toInteger()*7)+\n (value.substring(2,1).toInteger()*6)+\n (value.substring(3,1).toInteger()*5)+\n (value.substring(4,1).toInteger()*4)+\n (value.substring(5,1).toInteger()*3)+\n (value.substring(6,1).toInteger()*2)+\n (value.substring(7,1).toInteger()*1)) mod(11)=0)" \ No newline at end of file diff --git a/input/fsh/DK_Valid_Identifier-ValueSet.fsh b/input/fsh/DK_Valid_Identifier-ValueSet.fsh deleted file mode 100644 index 5e7898de8..000000000 --- a/input/fsh/DK_Valid_Identifier-ValueSet.fsh +++ /dev/null @@ -1,16 +0,0 @@ -ValueSet: DK_Valid_Identifier -Id: dk-core-cpr-identifier-system -Title: "CPR Identifier" -Description: "This value set defines the set of codes that can be used to identify the danish CPR system." -* ^name = "DkCoreValidIdentifier" -* ^version = "0.9.0" -* ^status = #active -* ^experimental = false -* ^date = "2019-11-01T09:29:23+11:00" -* ^publisher = "HL7 Denmark" -* ^contact[0].name = "HL7 Denmark" -* ^contact[0].telecom[0].system = #url -* ^contact[0].telecom[0].value = "https://www.hl7.dk/" -* ^jurisdiction[0] = urn:iso:std:iso:3166#DK -* ^copyright = "CC-BY-SA-4.0" -* $dk-core-cpr-identifier-system#urn:oid:1.2.208.176.1.2 "OID representation of CPR" \ No newline at end of file diff --git a/input/fsh/DkCoreCondition.fsh b/input/fsh/DkCoreCondition.fsh new file mode 100644 index 000000000..52eebe2c8 --- /dev/null +++ b/input/fsh/DkCoreCondition.fsh @@ -0,0 +1,112 @@ +Profile: DkCoreCondition +Parent: Condition +Id: dk-core-condition +Title: "Danish Core Condition Profile" +Description: "HL7 Denmark core profile for professionally asserted conditions, as specified by danish health and social care organizations" +* ^status = #active +* extension contains + $condition-dueTo named dueTo 0..1 and + ConditionLastAssertedDate named conditionLastAssertedDate 0..1 and + NotFollowedAnymore named notFollowedAnymore 0..1 +* extension[conditionLastAssertedDate] ^short = "Last date a condition was confirmed valid in its current state" +* extension[notFollowedAnymore] ^short = "Date where a condition lost focus in a specific clinical context" +* code.coding ^slicing.discriminator.type = #value + * ^slicing.discriminator.path = "system" + * ^slicing.rules = #open + * ^slicing.ordered = false + * ^slicing.description = "Slice based on the code.system value which allow different code-systems to represent a condition" + * ^short = "Condition code, [DA] tilstandskode" +* code.coding contains + FSIIIConditionCode 0..1 and + SCTConditionCode 0..1 and + FFBConditionCode 0..1 and + SKS-D 0..1 and + ICPC2code 0..1 +* code.coding[FSIIIConditionCode] ^short = "[DA] FSIII tilstandskode" + * system 1.. + * system = "urn:oid:1.2.208.176.2.21" +* code.coding[SCTConditionCode] from $condition-code (required) + * ^short = "SNOMED CT condition code" + * system 1.. + * system = "http://snomed.info/sct" +* code.coding[FFBConditionCode] ^short = "[DA] FFB undertemakode" + * system 1.. + * system = "urn:oid:1.2.208.176.2.22" +* code.coding[SKS-D] ^short = "[DA] Kode fra D-hierarkiet i SKS" + * system 1.. + * system = "urn:oid:1.2.208.176.2.4.12" +* code.coding[ICPC2code] ^short = "ICPC2 code" + * system 1.. + * system = "urn:oid:1.2.208.176.2.31" +* subject only Reference(DkCorePatient) +* recorder only Reference(DkCorePractitioner or PractitionerRole or DkCorePatient or RelatedPerson) +* asserter only Reference(DkCorePractitioner or PractitionerRole) + +Instance: ConditionPressureUlcer +InstanceOf: DkCoreCondition +Title: "John tryksår" +Description: "John, tryksår, kommunal tilstand" +Usage: #example +* code.coding[0] = urn:oid:1.2.208.176.2.21#I4.4 "Problemer med tryksår" +* code.coding[+] = $sct#1163220007 "Pressure injury stage II" +* code.text = "Tryksår i stadium 2, siddende på venstre lår. 4cmx5cm, dybde 3mm, ingen infektion." +* extension.url = "http://hl7.dk/fhir/core/StructureDefinition/ConditionLastAssertedDate" +* extension.valueDateTime = "2020-12-12" +* clinicalStatus = $condition-clinical#active +* category = $condition-category#problem-list-item +* subject.reference = "Patient/john" +* recordedDate = "2020-06-05" + +Instance: ElseGraviditet +InstanceOf: DkCoreCondition +Title: "Else Graviditet" +Description: "Else Graviditet, tilstandskode som indberettes ifm Elses ambulante forløb (fx jordemoder), og ved eventuel indlæggelse i graviditeten" +Usage: #example +* code = urn:oid:1.2.208.176.2.4.12#DZ340 "Graviditet, førstegangsfødende" +* subject.reference = "Patient/else" +* category = $condition-category#encounter-diagnosis +* recordedDate = "2021-07-03" +* clinicalStatus = $condition-clinical#active +* verificationStatus = $condition-ver-status#confirmed + +Instance: JohnDiabetes +InstanceOf: DkCoreCondition +Title: "John diabetes" +Description: "Johns diabetes-diagnose, udskrivningsdiagnose fra hospitalet fx til brug i indberetning og epikrise" +Usage: #example +* code = urn:oid:1.2.208.176.2.4.12#DE11 "Type 2-diabetes" +* subject.reference = "Patient/john" +* asserter.reference = "Practitioner/AbrahamLaege" +* recorder.reference = "Practitioner/AbrahamLaege" +* category = $condition-category#encounter-diagnosis +* onsetDateTime = "2020-02-20" +* recordedDate = "2020-03-15" +* clinicalStatus = $condition-clinical#active +* verificationStatus = $condition-ver-status#confirmed + +Instance: JohnMelanoma +InstanceOf: DkCoreCondition +Title: "John mistanke om Modermærkekræft" +Description: "Johns mistanke om modermærkekræft i huden, kan fx bruges som henvisningsdiagnosese" +Usage: #example +* code = urn:oid:1.2.208.176.2.4.12#DC43 "Modermærkekræft i huden" +* subject.reference = "Patient/john" +* asserter.reference = "Practitioner/AbrahamLaege" +* recorder.reference = "Practitioner/AbrahamLaege" +* category = $condition-category#encounter-diagnosis +* recordedDate = "2021-05-01" +* clinicalStatus = $condition-clinical#active +* verificationStatus = $condition-ver-status#unconfirmed + +Instance: JohnPacemaker +InstanceOf: DkCoreCondition +Title: "John pacemaker" +Description: "Johns status efter pacemakeroperation, udtrykt semantisk korrekt med fund frem for operationskode" +Usage: #example +* code = $sct#441509002 "Cardiac pacemaker in situ" +* subject.reference = "Patient/john" +* recorder.reference = "Practitioner/AbrahamLaege" +* category = $condition-category#problem-list-item +* recordedDate = "2021-05-01" +* clinicalStatus = $condition-clinical#active +* verificationStatus = $condition-ver-status#confirmed \ No newline at end of file diff --git a/input/fsh/DkCoreCprIdentifier-Profile.fsh b/input/fsh/DkCoreCprIdentifier-Profile.fsh deleted file mode 100644 index 5f1cd8605..000000000 --- a/input/fsh/DkCoreCprIdentifier-Profile.fsh +++ /dev/null @@ -1,24 +0,0 @@ -Profile: DkCoreCprIdentifier -Parent: Identifier -Id: dk-core-cpr-identifier -Title: "Danish Central Person Register (CPR) Identifier" -Description: "This structure holds the danish [CPR](https://cpr.dk/) identifier" -* ^version = "0.9.0" -* ^status = #draft -* ^date = "2019-11-02" -* ^publisher = "HL7 Denmark" -* ^contact[0].name = "HL7 Denmark" -* ^contact[0].telecom[0].system = #url -* ^contact[0].telecom[0].value = "https://www.hl7.dk/" -* ^jurisdiction[0] = urn:iso:std:iso:3166#DK -* ^copyright = "CC-BY-SA-4.0" -* use = #official (exactly) -* system 1.. -* system = "urn:oid:1.2.208.176.1.2" (exactly) -//* system from $dk-core-cpr-identifier-system_1 (required) -* value 1.. -* value obeys cpr -* value ^maxLength = 10 -* value ^constraint[1].requirements = "Requirement of danish civil registration numbers" -* value ^constraint[1].source = "https://cpr.dk/cpr-systemet/opbygning-af-cpr-nummeret/#:~:text=5%20%2D%206%20position%20angiver%20personens,i%20personnummeret%20angiver%20personens%20k%C3%B8n." -* value ^mustSupport = false diff --git a/input/fsh/DkCoreCprIdentifier.fsh b/input/fsh/DkCoreCprIdentifier.fsh new file mode 100644 index 000000000..a43ae4040 --- /dev/null +++ b/input/fsh/DkCoreCprIdentifier.fsh @@ -0,0 +1,24 @@ +Profile: DkCoreCprIdentifier +Parent: Identifier +Id: dk-core-cpr-identifier +Title: "Danish Central Person Register (CPR) Identifier" +Description: "This structure holds the danish [CPR](https://cpr.dk/) identifier" +* ^status = #draft +* use = #official (exactly) +* system 1.. +* system = "urn:oid:1.2.208.176.1.2" (exactly) +* value 1.. + * obeys cpr + * ^maxLength = 10 +// WARNING: The constraint index in the following rule (e.g., constraint[0]) may be incorrect. +// Please compare with the constraint array in the original definition's snapshot and adjust as necessary. + * ^constraint.source = "https://cpr.dk/cpr-systemet/opbygning-af-cpr-nummeret/#:~:text=5%20%2D%206%20position%20angiver%20personens,i%20personnummeret%20angiver%20personens%20k%C3%B8n." +// WARNING: The constraint index in the following rule (e.g., constraint[0]) may be incorrect. +// Please compare with the constraint array in the original definition's snapshot and adjust as necessary. + * ^constraint.requirements = "Requirement of danish civil registration numbers" + * ^mustSupport = false + +Invariant: cpr +Description: "Requirement of danish civil registration numbers" +Severity: #error +Expression: "value.matches('^(?:(?:31(?:0[13578]|1[02])|(?:30|29)(?:0[13-9]|1[0-2])|(?:0[1-9]|1[0-9]|2[0-8])(?:0[1-9]|1[0-2]))[0-9]{2}[0-9]|290200[4-9]|2902(?:(?!00)[02468][048]|[13579][26])[0-3])[0-9]{3}$')" \ No newline at end of file diff --git a/input/fsh/DkCoreCprIdentifierSystem-CodeSystem.fsh b/input/fsh/DkCoreCprIdentifierSystem-CodeSystem.fsh deleted file mode 100644 index 56b33550c..000000000 --- a/input/fsh/DkCoreCprIdentifierSystem-CodeSystem.fsh +++ /dev/null @@ -1,16 +0,0 @@ -CodeSystem: DkCoreCprIdentifierSystem -Id: dk-core-cpr-identifier-system -Description: "Official CPR CodeSystem" -* ^version = "0.9.0" -* ^status = #active -* ^experimental = false -* ^date = "2019-01-29T00:00:00+00:00" -* ^publisher = "HL7 Denmark" -* ^contact[0].name = "HL7 Denmark" -* ^contact[0].telecom[0].system = #url -* ^contact[0].telecom[0].value = "https://www.hl7.dk/" -* ^jurisdiction[0] = urn:iso:std:iso:3166#DK -* ^copyright = "CC-BY-SA-4.0" -* ^content = #complete -* #urn:oid:1.2.208.176.1.2 -* ^caseSensitive = false \ No newline at end of file diff --git a/input/fsh/DkCoreOrganization.fsh b/input/fsh/DkCoreOrganization.fsh index 08c8d5453..bcb7f4706 100644 --- a/input/fsh/DkCoreOrganization.fsh +++ b/input/fsh/DkCoreOrganization.fsh @@ -2,95 +2,121 @@ Profile: DkCoreOrganization Parent: Organization Id: dk-core-organization Title: "Danish Core Organization Profile" -Description: "HL7 Denmark core profile for a danish health organization" +Description: "HL7 Denmark core profile for a danish health organization" * ^status = #draft -* type from sor-organization-type (preferred) * obeys dk-core-organization-mandatory-identifier * identifier 1.. -* identifier ^slicing.discriminator[0].type = #value -* identifier ^slicing.discriminator[0].path = "system" -* identifier ^slicing.rules = #open + * ^slicing.discriminator.type = #value + * ^slicing.discriminator.path = "system" + * ^slicing.rules = #open * identifier contains - EAN-ID ..1 and - SOR-ID ..1 and - KOMBIT-ORG-ID ..1 and - Ydernummer ..1 and - CVR-ID ..1 and - Kommunekode ..1 and - Regionskode ..1 + EAN-ID 0..1 and + SOR-ID 0..1 and + KOMBIT-ORG-ID 0..1 and + Ydernummer 0..1 and + CVR-ID 0..1 and + Kommunekode 0..1 and + Regionskode 0..1 * identifier[EAN-ID] only GLNIdentifier + * ^short = "GLN identifier, [DA] EAN-nummer" * identifier[SOR-ID] only SORIdentifier + * ^short = "[DA] SOR-id" * identifier[KOMBIT-ORG-ID] only KombitOrgIdentifier -* identifier[Ydernummer].system 1.. -* identifier[Ydernummer].system = "urn:oid:1.2.208.176.1.4" (exactly) -* identifier[Ydernummer].value 1.. + * ^short = "[DA] Organisationsenheds-id som specificeret af FK-ORG" +* identifier[Ydernummer] ^short = "[DA] Ydernummer" + * system 1.. + * system = "urn:oid:1.2.208.176.1.4" (exactly) + * value 1.. * identifier[CVR-ID] only CVRIdentifier -* identifier[Kommunekode].system 1.. -* identifier[Kommunekode].system = "http://hl7.dk/fhir/core/CodeSystem/dk-core-municipality-codes" (exactly) -* identifier[Kommunekode].value 1.. -* identifier[Kommunekode].value from http://hl7.dk/fhir/core/ValueSet/dk-core-MunicipalityCodes -* identifier[Regionskode].system 1.. -* identifier[Regionskode].system = "http://hl7.dk/fhir/core/CodeSystem/dk-core-regional-subdivision-codes" (exactly) -* identifier[Regionskode].value 1.. - -Invariant: dk-core-organization-mandatory-identifier -Description: "Minimum one identifier shall be of type SOR-ID, KOMBIT-ORG-ID or CVR-ID" -Severity: #error -Expression: "identifier.where(system='urn:oid:1.2.208.176.1.1' or system='https://kombit.dk/sts/organisation' or system='urn:oid:2.16.840.1.113883.2.24.1.1').exists()" - -Instance: b08997bb-4476-4dd0-84dd-2e297f809364 -InstanceOf: DkCoreOrganization -Title: "MedCom Test Organization" -Description: "MedCom Test Organization with SOR id" -* identifier[+].system = "urn:oid:1.2.208.176.1.1" -* identifier[=].value = "12345678901" -* identifier[+].system = "http://cvr.dk" -* identifier[=].value = "26919991" -* identifier[+].system = "https://www.gs1.org/gln" -* identifier[=].value = "5798002472264" -* identifier[+].system = "https://kombit.dk/sts/organisation" -* identifier[=].value = "urn:uuid:a107fd1e-9f35-422c-9d1e-add097bbf4a6" -* type = http://snomed.info/sct#264372000 + * ^short = "VAT identification number, [DA] CVR-nummer" +* identifier[Kommunekode] ^short = "[DA] Kommunekode" + * system 1.. + * system = "http://hl7.dk/fhir/core/CodeSystem/dk-core-municipality-codes" (exactly) + * value 1.. + * value from MunicipalityCodes (required) +* identifier[Regionskode] ^short = "[DA] Regionskode" + * system 1.. + * system = "http://hl7.dk/fhir/core/CodeSystem/dk-core-regional-subdivision-codes" (exactly) + * value 1.. +* type from $sor-organization-type (preferred) Instance: CenterForDiabetes InstanceOf: DkCoreOrganization Title: "Center for Diabetes" Description: "Center for Diabetes" -* identifier[+].system = "urn:oid:1.2.208.176.1.1" +Usage: #example +* identifier[0].system = "urn:oid:1.2.208.176.1.1" * identifier[=].value = "633271000016006" * identifier[+].system = "http://cvr.dk" * identifier[=].value = "64942212" -* type = http://snomed.info/sct#264361005 +* type = $sct#264361005 Instance: CenterForDiabetesTeamDiabetes InstanceOf: DkCoreOrganization Title: "Center for Diabetes Team Diabetes" Description: "Center for Diabetes Team Diabetes" -* identifier[+].system = "urn:oid:1.2.208.176.1.1" +Usage: #example +* identifier[0].system = "urn:oid:1.2.208.176.1.1" * identifier[=].value = "1133181000016000" * identifier[+].system = "http://cvr.dk" * identifier[=].value = "64942212" -* type = http://snomed.info/sct#264361005 -* partOf = Reference(CenterForDiabetes) +* type = $sct#264361005 +* partOf.reference = "Organization/CenterForDiabetes" Instance: CenterForDiabetesTeamHjerte InstanceOf: DkCoreOrganization Title: "Center for Diabetes Team Hjerte" Description: "Center for Diabetes Team Hjerte" -* identifier[+].system = "urn:oid:1.2.208.176.1.1" +Usage: #example +* identifier[0].system = "urn:oid:1.2.208.176.1.1" * identifier[=].value = "1133191000016003" * identifier[+].system = "http://cvr.dk" * identifier[=].value = "64942212" -* type = http://snomed.info/sct#264361005 -* partOf = Reference(CenterForDiabetes) +* type = $sct#264361005 +* partOf.reference = "Organization/CenterForDiabetes" Instance: CenterForDiabetesTeamKvalitet InstanceOf: DkCoreOrganization Title: "Center for Diabetes Team Kvalitet" Description: "Center for Diabetes Team Kvalitet" -* identifier[+].system = "urn:oid:1.2.208.176.1.1" +Usage: #example +* identifier[0].system = "urn:oid:1.2.208.176.1.1" * identifier[=].value = "1133201000016001" * identifier[+].system = "http://cvr.dk" * identifier[=].value = "64942212" -* type = http://snomed.info/sct#264361005 -* partOf = Reference(CenterForDiabetes) +* type = $sct#264361005 +* partOf.reference = "Organization/CenterForDiabetes" + +Instance: LaegerneHasserisBymidte +InstanceOf: DkCoreOrganization +Title: "LaegerneHasserisBymidte" +Description: "Praktisernede læge i Hasseris, som defineret af SOR" +Usage: #example +* identifier[0].value = "61741000016007" +* identifier[=].system = "urn:oid:1.2.208.176.1.1" +* identifier[+].system = "urn:oid:1.2.208.176.1.4" +* identifier[=].value = "77410" +* name = "Lægerne Hasseris Bymidte" +* telecom.value = "98182233" +* telecom.system = #phone +* type = $sct#394761003 + +Instance: b08997bb-4476-4dd0-84dd-2e297f809364 +InstanceOf: DkCoreOrganization +Title: "MedCom Test Organization" +Description: "MedCom Test Organization with SOR id" +Usage: #example +* identifier[0].system = "urn:oid:1.2.208.176.1.1" +* identifier[=].value = "12345678901" +* identifier[+].system = "http://cvr.dk" +* identifier[=].value = "26919991" +* identifier[+].system = "https://www.gs1.org/gln" +* identifier[=].value = "5798002472264" +* identifier[+].system = "https://kombit.dk/sts/organisation" +* identifier[=].value = "urn:uuid:a107fd1e-9f35-422c-9d1e-add097bbf4a6" +* type = $sct#264372000 + +Invariant: dk-core-organization-mandatory-identifier +Description: "Minimum one identifier shall be of type SOR-ID, KOMBIT-ORG-ID or CVR-ID" +Severity: #error +Expression: "identifier.where(system='urn:oid:1.2.208.176.1.1' or system='https://kombit.dk/sts/organisation' or system='urn:oid:2.16.840.1.113883.2.24.1.1').exists()" \ No newline at end of file diff --git a/input/fsh/DkCorePatient-Profile.fsh b/input/fsh/DkCorePatient-Profile.fsh deleted file mode 100644 index ac017f019..000000000 --- a/input/fsh/DkCorePatient-Profile.fsh +++ /dev/null @@ -1,124 +0,0 @@ -Profile: DkCorePatient -Parent: Patient -Id: dk-core-patient -Title: "Danish Core Patient Profile" -Description: "HL7 Denmark core profile for a patient" -* ^version = "0.9.0" -* ^date = "2020-02-04" -* ^publisher = "HL7 Denmark" -* ^contact[0].name = "HL7 Denmark" -* ^contact[0].telecom[0].system = #url -* ^contact[0].telecom[0].value = "https://www.hl7.dk/" -* ^jurisdiction[0] = urn:iso:std:iso:3166#DK -* ^copyright = "CC-BY-SA-4.0" -* obeys marital-status-unknown-usage -* . ^constraint[5].requirements = "Marital status is legally unknown in Denmark" -* . ^constraint[5].source = "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/" -* identifier 1.. -* identifier ^slicing.discriminator[0].type = #value -* identifier ^slicing.discriminator[0].path = "system" -* identifier ^slicing.rules = #open -* identifier contains cpr ..1 -* identifier[cpr] only DkCoreCprIdentifier -* name 0.. -* name ^slicing.discriminator[0].type = #value -* name ^slicing.discriminator[0].path = "use" -* name ^slicing.rules = #open -* name contains official ..1 -* name[official].use = #official (exactly) -* name[official].family 1.. -* address ^definition = "An address for the individual. Danish addresses must comply with directions issued by https://dawa.aws.dk/ and underlying authorities" -* address.extension ^slicing.discriminator[0].type = #value -* address.extension ^slicing.discriminator[0].path = "url" -* address.extension ^slicing.rules = #open -* address.extension contains - MunicipalityCodes named municipalityCode 0..1 and - RegionalSubDivisionCodes named regionalSubDivisionCodes 0..1 -* maritalStatus from $dk-marital-status_1 (extensible) -* generalPractitioner ^slicing.discriminator[0].type = #value -* generalPractitioner ^slicing.discriminator[0].path = "identifier.system" -* generalPractitioner ^slicing.rules = #open -* generalPractitioner contains referencedSORUnit 0..* -* generalPractitioner[referencedSORUnit].identifier only SORIdentifier - -Invariant: cpr -Description: "Requirement of danish civil registration numbers" -Severity: #error -Expression: "value.matches('^(?:(?:31(?:0[13578]|1[02])|(?:30|29)(?:0[13-9]|1[0-2])|(?:0[1-9]|1[0-9]|2[0-8])(?:0[1-9]|1[0-2]))[0-9]{2}[0-9]|290200[4-9]|2902(?:(?!00)[02468][048]|[13579][26])[0-3])[0-9]{3}$')" - - -Instance: 283 -InstanceOf: DkCorePatient -Title: "Example of valid patient with full address" -Description: "Example of valid patient with full address" -Usage: #example -* identifier[0].use = #official -* identifier[0].system = "urn:oid:1.2.208.176.1.2" -* identifier[0].value = "0506504005" -* name[0].use = #official -* name[0].family = "Lind" -* name[0].given[0] = "Torsteinn" -* gender = #male -* birthDate = "1950-06-04" -* address[0].extension[0].url = "http://hl7.dk/fhir/core/StructureDefinition/dk-core-municipalityCodes" -* address[0].extension[0].valueCodeableConcept = $dk-core-municipality-codes#0330 -* address[0].extension[1].url = "http://hl7.dk/fhir/core/StructureDefinition/dk-core-RegionalSubDivisionCodes" -* address[0].extension[1].valueCodeableConcept = $dk-core-regional-subdivision-codes#DK-85 -* address[0].use = #home -* address[0].type = #postal -* address[0].line[0] = "Nordre Ringgade 3" -* address[0].city = "Frederiksberg C" -* address[0].postalCode = "8000" -* address[0].country = "DK" -* maritalStatus = $v3-MaritalStatus#U "unmarried" -* generalPractitioner[0].identifier.system = "urn:oid:1.2.208.176.1.1" -* generalPractitioner[0].identifier.value = "79641000016006" -* generalPractitioner[0].display = "Peter Sønderby" - -Instance: mogensen -InstanceOf: DkCorePatient -Title: "Example of valid patient with danish marital status" -Description: "Example of valid patient with danish marital status" -Usage: #example -* identifier[0].system = "urn:oid:1.2.208.176.1.2" -* identifier[0].value = "1112640001" -* name[0].use = #official -* name[0].family = "Mogensen" -* name[0].given[0] = "Jan" -* name[0].prefix[0] = "Mr" -* gender = #male -* birthDate = "1964-12-11" -* maritalStatus = $dk-marital-status#P "Registreret partnerskab" - -Instance: ukendt -InstanceOf: DkCorePatient -Title: "Example of valid patient unknown identifier registry" -Description: "Example of valid patient unknown identifier registry. The patient is a 'John Doe' with an Identifier from an unofficial register" -Usage: #example -* identifier[0].system = "http://rn.dk" -* identifier[0].value = "0706830VJ9" -* name[0].use = #temp -* name[0].family = "Ukendt" -* name[0].given[0] = "Anders" -* gender = #male -* birthDate = "1983-06-07" - -Instance: john -InstanceOf: DkCorePatient -Title: "Example of valid patient with multiple names" -Description: "Example of valid patient with multiple names" -Usage: #example -* identifier[0].system = "urn:oid:1.2.208.176.1.2" -* identifier[0].value = "1112640001" -* name[0].use = #official -* name[0].family = "Meyerhofen" -* name[0].given[0] = "John" -* name[0].given[1] = "Christian" -* name[0].prefix[0] = "Mr" -* name[1].use = #usual -* name[1].given[0] = "Johnny" -* gender = #male -* birthDate = "1964-12-11" -* generalPractitioner[0].identifier.system = "urn:oid:1.2.208.176.1.1" -* generalPractitioner[0].identifier.value = "487341000016005" -* generalPractitioner[0].display = "Charlottenlund Lægehus" \ No newline at end of file diff --git a/input/fsh/DkCorePatient.fsh b/input/fsh/DkCorePatient.fsh new file mode 100644 index 000000000..4572e52e5 --- /dev/null +++ b/input/fsh/DkCorePatient.fsh @@ -0,0 +1,154 @@ +Profile: DkCorePatient +Parent: Patient +Id: dk-core-patient +Title: "Danish Core Patient Profile" +Description: "HL7 Denmark core profile for a patient" +* obeys marital-status-unknown-usage +// WARNING: The constraint index in the following rule (e.g., constraint[0]) may be incorrect. +// Please compare with the constraint array in the original definition's snapshot and adjust as necessary. +* . ^constraint.source = "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/" +// WARNING: The constraint index in the following rule (e.g., constraint[0]) may be incorrect. +// Please compare with the constraint array in the original definition's snapshot and adjust as necessary. + * ^constraint.requirements = "Marital status is legally unknown in Denmark" +* identifier 1.. + * ^slicing.discriminator.type = #value + * ^slicing.discriminator.path = "system" + * ^slicing.rules = #open +* identifier contains cpr 0..1 +* identifier[cpr] only DkCoreCprIdentifier + * ^short = "[DA] cpr-nummer, som det fremgår af CPR registeret" +* name ^slicing.discriminator.type = #value + * ^slicing.discriminator.path = "use" + * ^slicing.rules = #open +* name contains official 0..1 +* name[official] ^short = "[DA] Officielt navn, som det fremgår af CPR registeret" + * use 1.. + * use = #official (exactly) + * family 1.. +* address ^definition = "An address for the individual. Danish addresses must comply with directions issued by https://dawa.aws.dk/ and underlying authorities" + * extension contains + MunicipalityCodes named municipalityCode 0..1 and + RegionalSubDivisionCodes named regionalSubDivisionCodes 0..1 + * extension[municipalityCode] ^short = "[DA] Kommunekode" + * extension[regionalSubDivisionCodes] ^short = "[DA] Regionskode" +* maritalStatus from $dk-marital-status_1 (extensible) +* generalPractitioner ^slicing.discriminator.type = #value + * ^slicing.discriminator.path = "identifier.system" + * ^slicing.rules = #open +* generalPractitioner contains referencedSORUnit 0..* +* generalPractitioner[referencedSORUnit] ^short = "[DA] Praktiserende læges SOR-id på sundhedsinstistutionsniveau" + * identifier only SORIdentifier + +Instance: 283 +InstanceOf: DkCorePatient +Title: "Example of valid patient with full address" +Description: "Example of valid patient with full address" +Usage: #example +* identifier.use = #official +* identifier.system = "urn:oid:1.2.208.176.1.2" +* identifier.value = "0506504005" +* name.use = #official +* name.family = "Lind" +* name.given = "Torsteinn" +* gender = #male +* birthDate = "1950-06-04" +* address.extension[0].url = "http://hl7.dk/fhir/core/StructureDefinition/dk-core-municipalityCodes" +* address.extension[=].valueCodeableConcept = $dk-core-municipality-codes#0330 +* address.extension[+].url = "http://hl7.dk/fhir/core/StructureDefinition/dk-core-RegionalSubDivisionCodes" +* address.extension[=].valueCodeableConcept = $dk-core-regional-subdivision-codes#DK-85 +* address.use = #home +* address.type = #postal +* address.line = "Nordre Ringgade 3" +* address.city = "Frederiksberg C" +* address.postalCode = "8000" +* address.country = "DK" +* maritalStatus = $v3-MaritalStatus#U "unmarried" +* generalPractitioner.identifier.system = "urn:oid:1.2.208.176.1.1" +* generalPractitioner.identifier.value = "79641000016006" +* generalPractitioner.display = "Peter Sønderby" + +Instance: Confidential +InstanceOf: DkCorePatient +Title: "Example of a patient with confidential adress and name" +Description: "Example of a patient with confidential adress and name" +Usage: #example +* text.div = "
This instance is an example of a Danish citizen who has requested name and address protection (Navne- og adressebeskyttelse), why the instance is marked with a security label. Only personnel using systems in public/official affairs are allowed to see name and address for the citizen, why these information are included in the profile.

Resource \"Confidential\"

Profile: Danish Core Patient Profile

Security Labels: http://terminology.hl7.org/CodeSystem/v3-Confidentiality

identifier: id: 0908760405

name: Hans Hansen (OFFICIAL)

gender: male

birthDate: 1976-08-09

address: Julianevej 22 6000 Kolding (HOME)

" +* text.status = #additional +* identifier.system = "urn:oid:1.2.208.176.1.2" +* identifier.value = "0908760405" +* name.use = #official +* name.family = "Hansen" +* name.given = "Hans" +* gender = #male +* birthDate = "1976-08-09" +* address.use = #home +* address.line = "Julianevej 22" +* address.city = "6000 Kolding" + +Instance: else +InstanceOf: DkCorePatient +Title: "Example of a woman of childbearing age" +Description: "Example of a woman of childbearing age. Else is a MedCom test-patient" +Usage: #example +* identifier.system = "urn:oid:1.2.208.176.1.2" +* identifier.value = "0201919990" +* name.use = #official +* name.family = "Lauridsen" +* name.given[0] = "Else" +* name.given[+] = "Test" +* gender = #female +* birthDate = "1991-02-02" +* maritalStatus = $v3-MaritalStatus#M "Married" + +Instance: john +InstanceOf: DkCorePatient +Title: "Example of valid patient with multiple names" +Description: "Example of valid patient with multiple names" +Usage: #example +* identifier.system = "urn:oid:1.2.208.176.1.2" +* identifier.value = "1112640001" +* name[0].use = #official +* name[=].family = "Meyerhofen" +* name[=].given[0] = "John" +* name[=].given[+] = "Christian" +* name[=].prefix = "Mr" +* name[+].use = #usual +* name[=].given = "Johnny" +* gender = #male +* birthDate = "1964-12-11" +* generalPractitioner.identifier.system = "urn:oid:1.2.208.176.1.1" +* generalPractitioner.identifier.value = "487341000016005" +* generalPractitioner.display = "Charlottenlund Lægehus" + +Instance: mogensen +InstanceOf: DkCorePatient +Title: "Example of valid patient with danish marital status" +Description: "Example of valid patient with danish marital status" +Usage: #example +* identifier.system = "urn:oid:1.2.208.176.1.2" +* identifier.value = "1112640001" +* name.use = #official +* name.family = "Mogensen" +* name.given = "Jan" +* name.prefix = "Mr" +* gender = #male +* birthDate = "1964-12-11" +* maritalStatus = $dk-marital-status#P "Registreret partnerskab" + +Instance: ukendt +InstanceOf: DkCorePatient +Title: "Example of valid patient unknown identifier registry" +Description: "Example of valid patient unknown identifier registry. The patient is a 'John Doe' with an Identifier from an unofficial register" +Usage: #example +* identifier.system = "http://rn.dk" +* identifier.value = "0706830VJ9" +* name.use = #temp +* name.family = "Ukendt" +* name.given = "Anders" +* gender = #male +* birthDate = "1983-06-07" + +Invariant: marital-status-unknown-usage +Description: "Status in maritalStatus is unknown in a danish context. Consider mapping the value to UNK" +Severity: #warning +Expression: "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()" \ No newline at end of file diff --git a/input/fsh/DkCorePractioner-Profile.fsh b/input/fsh/DkCorePractioner-Profile.fsh deleted file mode 100644 index 7b87eb25e..000000000 --- a/input/fsh/DkCorePractioner-Profile.fsh +++ /dev/null @@ -1,40 +0,0 @@ -Profile: DkCorePractitioner -Parent: Practitioner -Id: dk-core-practitioner -Title: "Danish Core Practitioner Profile" -Description: "HL7 Denmark core profile for health professionals and other actors relevant in citizen and patient pathways" -* ^contact[0].name = "HL7 Denmark" -* ^contact[0].telecom[0].system = #url -* ^contact[0].telecom[0].value = "https://www.hl7.dk/" -* ^jurisdiction[0] = urn:iso:std:iso:3166#DK -* ^copyright = "CC-BY-SA-4.0" - -* qualification ^slicing.discriminator.type = #value -* qualification ^slicing.discriminator.path = "identifier.system" -* qualification ^slicing.rules = #open -* qualification ^slicing.ordered = false // can be omitted, since false is the default -* qualification ^slicing.description = "Slice based on the identifier.systemm value which allows for official qualifications to -Declaring the slices, and their cardinalities, to allow a KL-code and a SNOMED CT code" -* qualification contains - officialHealthAuthorization 0..1 - -* qualification[officialHealthAuthorization].identifier only AuthorizationIdentifier -* qualification[officialHealthAuthorization].code from DkCoreProfessionGroupValueSet (extensible) - -Instance: HanneSocialraadgiver -InstanceOf: DkCorePractitioner -Title: "HanneSocialrådgiver" -Description: "Eksempel på socialrådgiveren Hanne" -* name.given = "Hanne" -* name.family = "Mortensen" -* qualification.code.text = "Socialrådgiver" - -Instance: AbrahamLaege -InstanceOf: DkCorePractitioner -Title: "AbrahamLæge" -Description: "Eksempel på lægen Abraham fra akutsygeplejen" -* name.given = "Abraham" -* name.family = "Murakami" -* qualification[officialHealthAuthorization].identifier.value = "005ML" -* qualification[officialHealthAuthorization].identifier.system = $authorisationIDSystem -* qualification[officialHealthAuthorization].code = DkCoreProfessionGroupCodes#7170 "Læge" \ No newline at end of file diff --git a/input/fsh/DkCorePractitioner.fsh b/input/fsh/DkCorePractitioner.fsh new file mode 100644 index 000000000..9f6e19a1b --- /dev/null +++ b/input/fsh/DkCorePractitioner.fsh @@ -0,0 +1,35 @@ +Profile: DkCorePractitioner +Parent: Practitioner +Id: dk-core-practitioner +Title: "Danish Core Practitioner Profile" +Description: "HL7 Denmark core profile for health professionals and other actors relevant in citizen and patient pathways" +* qualification ^slicing.discriminator.type = #value + * ^slicing.discriminator.path = "identifier.system" + * ^slicing.rules = #open + * ^slicing.ordered = false + * ^slicing.description = "Slice based on the identifier.systemm value which allows for official qualifications to\nDeclaring the slices, and their cardinalities, to allow a KL-code and a SNOMED CT code" +* qualification contains officialHealthAuthorization 0..1 +* qualification[officialHealthAuthorization].identifier only AuthorizationIdentifier + * ^short = "[DA] Autorisationskode, som specificeret af autorisationsregisteret" +* qualification[officialHealthAuthorization].code from DkCoreProfessionGroupValueSet (extensible) + * ^short = "[DA] Kode for kvalifikation, som specificeret af autorisationsregisteret" + +Instance: AbrahamLaege +InstanceOf: DkCorePractitioner +Title: "AbrahamLæge" +Description: "Eksempel på lægen Abraham fra akutsygeplejen" +Usage: #example +* qualification.identifier.system = "https://autregweb.sst.dk" +* qualification.identifier.value = "005ML" +* qualification.code = $DkCoreProfessionGroupCodes#7170 "Læge" +* name.given = "Abraham" +* name.family = "Murakami" + +Instance: HanneSocialraadgiver +InstanceOf: DkCorePractitioner +Title: "HanneSocialrådgiver" +Description: "Eksempel på socialrådgiveren Hanne" +Usage: #example +* name.given = "Hanne" +* name.family = "Mortensen" +* qualification.code.text = "Socialrådgiver" \ No newline at end of file diff --git a/input/fsh/DkCoreProfessionGroups-CodeSystem.fsh b/input/fsh/DkCoreProfessionGroups-CodeSystem.fsh deleted file mode 100644 index 19503df47..000000000 --- a/input/fsh/DkCoreProfessionGroups-CodeSystem.fsh +++ /dev/null @@ -1,25 +0,0 @@ -CodeSystem: DkCoreProfessionGroupCodes -Title: "dk-profession-groups-codes" -Description: "DK health ProfessionGroup codes as defined by https://www.retsinformation.dk/eli/lta/2019/731, and derived from http://autregwebservice.sst.dk/autregservice.asmx/GetAllProfessionGroups. Code (5176) was not uniqe, and have been converted to 5176a and 5176b" -* ^caseSensitive = false -* #C511 "Ambulancebehandler" -* #9495 "Bandagist" -* #B511 "Behandlerfarmaceut" -* #5159 "Bioanalytiker" -* #5153 "Ergoterapeut" -* #5155 "Fodterapeut" -* #5151 "Fysioterapeut" -* #5175 "Jordemoder" -* #5265 "Kiropraktor" -* #5451 "Klinisk diætist" -* #5432 "Klinisk tandtekniker" -* #5176a "Kontaktlinseoptiker" -* #7170 "Læge" -* #4498 "Optiker" -* #5176b "Optometrist" -* #A511 "Osteopat" -* #5158 "Radiograf" -* #5152 "Social- og sundhedsassistent" -* #5166 "Sygeplejerske" -* #5433 "Tandlæge" -* #5431 "Tandplejer" diff --git a/input/fsh/DkCoreprofessionGroups-ValueSet.fsh b/input/fsh/DkCoreprofessionGroups-ValueSet.fsh deleted file mode 100644 index 6bb5181bc..000000000 --- a/input/fsh/DkCoreprofessionGroups-ValueSet.fsh +++ /dev/null @@ -1,4 +0,0 @@ -ValueSet: DkCoreProfessionGroupValueSet -Title: "dk-profession-group-valueset" -Description: "DK Profession Group codes" -* codes from system DkCoreProfessionGroupCodes \ No newline at end of file diff --git a/input/fsh/GLNIdentifier.fsh b/input/fsh/GLNIdentifier.fsh index 19e8cb7bc..d1dbc1e0c 100644 --- a/input/fsh/GLNIdentifier.fsh +++ b/input/fsh/GLNIdentifier.fsh @@ -8,26 +8,14 @@ Description: "Identifier holding a 13 digit GLN" * system 1.. * system = "https://www.gs1.org/gln" (exactly) * value 1.. -* value obeys gln-length and gln-modulus-10 + * obeys gln-length and gln-modulus-10 -Invariant: gln-length +Invariant: gln-length Description: "GLN must be exactly 13 characters long" -Expression: "value.matches('^[0-9]{13}$')" -Severity: #error +Severity: #error +Expression: "value.matches('^[0-9]{13}$')" -Invariant: gln-modulus-10 +Invariant: gln-modulus-10 Description: "GLN must pass the modulus 10 check - https://www.gs1.org/services/how-calculate-check-digit-manually" -Expression: "(( -(10-((value.substring(0,1).toInteger()*1)+ -(value.substring(1,1).toInteger()*3)+ -(value.substring(2,1).toInteger()*1)+ -(value.substring(3,1).toInteger()*3)+ -(value.substring(4,1).toInteger()*1) -+(value.substring(5,1).toInteger()*3) -+(value.substring(6,1).toInteger()*1) -+(value.substring(7,1).toInteger()*3) -+(value.substring(8,1).toInteger()*1) -+(value.substring(9,1).toInteger()*3) -+(value.substring(10,1).toInteger()*1) -+(value.substring(11,1).toInteger()*3))mod(10))mod(10))=value.substring(12,1).toInteger())" -Severity: #error +Severity: #error +Expression: "((\n(10-((value.substring(0,1).toInteger()*1)+\n(value.substring(1,1).toInteger()*3)+\n(value.substring(2,1).toInteger()*1)+\n(value.substring(3,1).toInteger()*3)+\n(value.substring(4,1).toInteger()*1)\n+(value.substring(5,1).toInteger()*3)\n+(value.substring(6,1).toInteger()*1)\n+(value.substring(7,1).toInteger()*3)\n+(value.substring(8,1).toInteger()*1)\n+(value.substring(9,1).toInteger()*3)\n+(value.substring(10,1).toInteger()*1)\n+(value.substring(11,1).toInteger()*3))mod(10))mod(10))=value.substring(12,1).toInteger())" \ No newline at end of file diff --git a/input/fsh/KombitOrgIdentifier.fsh b/input/fsh/KombitOrgIdentifier.fsh index fdb94bb3e..4e91eac92 100644 --- a/input/fsh/KombitOrgIdentifier.fsh +++ b/input/fsh/KombitOrgIdentifier.fsh @@ -8,4 +8,9 @@ Description: "Identifier holding the organization code issued by KOMBIT" * system 1.. * system = "https://kombit.dk/sts/organisation" (exactly) * value 1.. -* value obeys uuid \ No newline at end of file + * obeys uuid + +Invariant: uuid +Description: "General UUID expression" +Severity: #error +Expression: "value.matches('urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}')" \ No newline at end of file diff --git a/input/fsh/Lpr3Identifier-Profile.fsh b/input/fsh/Lpr3Identifier-Profile.fsh deleted file mode 100644 index 018a9cd93..000000000 --- a/input/fsh/Lpr3Identifier-Profile.fsh +++ /dev/null @@ -1,20 +0,0 @@ -Profile: Lpr3Identifier -Parent: Identifier -Id: lpr3-Identifier -Title: "LPR3 Identifier" -Description: "Identifier holding a LPR3 identifier for an organization" -* ^version = "0.9.0" -* ^status = #draft -* ^date = "2021-03-14T16:56:07+01:00" -* ^publisher = "HL7 Denmark" -* ^contact[0].name = "HL7 Denmark" -* ^contact[0].telecom[0].system = #url -* ^contact[0].telecom[0].value = "https://www.hl7.dk/" -* ^jurisdiction[0] = urn:iso:std:iso:3166#DK -* ^copyright = "CC-BY-SA-4.0" -* system 1.. -* system = "https://www.esundhed.dk/Registre/Landspatientsregisteret" (exactly) -* value 1.. -* value obeys uuidv5 -* value ^constraint[1].requirements = "LPR3 episode of care identifiers must conform to a UUIDv5" -* value ^constraint[1].source = "https://scandihealth.github.io/lpr3-docs/" \ No newline at end of file diff --git a/input/fsh/Lpr3Identifier.fsh b/input/fsh/Lpr3Identifier.fsh new file mode 100644 index 000000000..ad8e31229 --- /dev/null +++ b/input/fsh/Lpr3Identifier.fsh @@ -0,0 +1,21 @@ +Profile: Lpr3Identifier +Parent: Identifier +Id: lpr3-Identifier +Title: "LPR3 Identifier" +Description: "Identifier holding a LPR3 identifier for an organization" +* ^status = #draft +* system 1.. +* system = "https://www.esundhed.dk/Registre/Landspatientsregisteret" (exactly) +* value 1.. + * obeys uuidv5 +// WARNING: The constraint index in the following rule (e.g., constraint[0]) may be incorrect. +// Please compare with the constraint array in the original definition's snapshot and adjust as necessary. + * ^constraint.source = "https://scandihealth.github.io/lpr3-docs/" +// WARNING: The constraint index in the following rule (e.g., constraint[0]) may be incorrect. +// Please compare with the constraint array in the original definition's snapshot and adjust as necessary. + * ^constraint.requirements = "LPR3 episode of care identifiers must conform to a UUIDv5" + +Invariant: uuidv5 +Description: "LPR3 episode of care identifiers must conform to a UUIDv5" +Severity: #error +Expression: "value.matches('urn:uuid:[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[5][a-fA-F0-9]{3}-[89aAbB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}')" \ No newline at end of file diff --git a/input/fsh/MunicipalityCodes-Extension.fsh b/input/fsh/MunicipalityCodes-Extension.fsh deleted file mode 100644 index c64b86578..000000000 --- a/input/fsh/MunicipalityCodes-Extension.fsh +++ /dev/null @@ -1,19 +0,0 @@ -Extension: MunicipalityCodes -Id: dk-core-municipalityCodes -Title: "Danish Core Municipality codes" -Description: "Identifier holding the official identifier for a danish municipality" -* ^version = "0.9.0" -* ^status = #draft -* ^date = "2021-03-14T16:56:07+01:00" -* ^publisher = "HL7 Denmark" -* ^contact[0].name = "HL7 Denmark" -* ^contact[0].telecom[0].system = #url -* ^contact[0].telecom[0].value = "https://www.hl7.dk/" -* ^jurisdiction[0] = urn:iso:std:iso:3166#DK -* ^copyright = "CC-BY-SA-4.0" -* ^context[0].type = #element -* ^context[0].expression = "Patient.address" -* ^context[1].type = #element -* ^context[1].expression = "Address" -* value[x] only CodeableConcept -* value[x].coding from MunicipalityCodes (required) \ No newline at end of file diff --git a/input/fsh/MunicipalityCodes-ValueSet.fsh b/input/fsh/MunicipalityCodes-ValueSet.fsh deleted file mode 100644 index b6e5c6a75..000000000 --- a/input/fsh/MunicipalityCodes-ValueSet.fsh +++ /dev/null @@ -1,15 +0,0 @@ -ValueSet: MunicipalityCodes -Id: dk-core-MunicipalityCodes -Description: "Municipality codes used in Denmark" -* ^version = "0.9.0" -* ^status = #draft -* ^experimental = true -* ^date = "2019-02-02T00:00:00+00:00" -* ^publisher = "HL7 Denmark" -* ^contact[0].name = "HL7 Denmark" -* ^contact[0].telecom[0].system = #url -* ^contact[0].telecom[0].value = "https://www.hl7.dk/" -* ^jurisdiction[0] = urn:iso:std:iso:3166#DK -* ^copyright = "CC-BY-SA-4.0" -* include codes from system $dk-core-municipality-codes -* include codes from system $dk-core-municipality-codes-greenland \ No newline at end of file diff --git a/input/fsh/RegionalSubDivisionCodes-Extension.fsh b/input/fsh/RegionalSubDivisionCodes-Extension.fsh deleted file mode 100644 index 83f2d18ac..000000000 --- a/input/fsh/RegionalSubDivisionCodes-Extension.fsh +++ /dev/null @@ -1,19 +0,0 @@ -Extension: RegionalSubDivisionCodes -Id: dk-core-RegionalSubDivisionCodes -Title: "Danish Core Regional Sub Division Codes Extension" -Description: "Identifier holding the official organization identifier for a danish region" -* ^version = "0.9.0" -* ^status = #draft -* ^date = "2021-03-14T16:56:07+01:00" -* ^publisher = "HL7 Denmark" -* ^contact[0].name = "HL7 Denmark" -* ^contact[0].telecom[0].system = #url -* ^contact[0].telecom[0].value = "https://www.hl7.dk/" -* ^jurisdiction[0] = urn:iso:std:iso:3166#DK -* ^copyright = "CC-BY-SA-4.0" -* ^context[0].type = #element -* ^context[0].expression = "Address" -* ^context[1].type = #element -* ^context[1].expression = "Patient.address" -* value[x] only CodeableConcept -* value[x].coding from RegionalSubdivisionCodes (required) \ No newline at end of file diff --git a/input/fsh/RegionalSubdivisionCodes-ValueSet.fsh b/input/fsh/RegionalSubdivisionCodes-ValueSet.fsh deleted file mode 100644 index b11ffd265..000000000 --- a/input/fsh/RegionalSubdivisionCodes-ValueSet.fsh +++ /dev/null @@ -1,14 +0,0 @@ -ValueSet: RegionalSubdivisionCodes -Id: dk-core-RegionalSubDivisionCodes -Description: "Subdivision codes (Regional codes) used in Denmark" -* ^version = "0.9.0" -* ^status = #draft -* ^experimental = true -* ^date = "2019-02-02" -* ^publisher = "HL7 Denmark" -* ^contact[0].name = "HL7 Denmark" -* ^contact[0].telecom[0].system = #url -* ^contact[0].telecom[0].value = "https://www.hl7.dk/" -* ^jurisdiction[0] = urn:iso:std:iso:3166#DK -* ^copyright = "CC-BY-SA-4.0" -* include codes from system $dk-core-regional-subdivision-codes \ No newline at end of file diff --git a/input/fsh/SORIdentifier-Profile.fsh b/input/fsh/SORIdentifier-Profile.fsh deleted file mode 100644 index 75954cff2..000000000 --- a/input/fsh/SORIdentifier-Profile.fsh +++ /dev/null @@ -1,20 +0,0 @@ -Profile: SORIdentifier -Parent: Identifier -Id: dk-core-sor-identifier -Title: "SOR Identifier" -Description: "Identifier holding the official SOR identifier for a danish healthcare organization" -* ^version = "0.9.0" -* ^status = #draft -* ^date = "2021-03-14T16:56:07+01:00" -* ^publisher = "HL7 Denmark" -* ^contact[0].name = "HL7 Denmark" -* ^contact[0].telecom[0].system = #url -* ^contact[0].telecom[0].value = "https://www.hl7.dk/" -* ^jurisdiction[0] = urn:iso:std:iso:3166#DK -* ^copyright = "CC-BY-SA-4.0" -* use = #official (exactly) -* system 1.. -* system = "urn:oid:1.2.208.176.1.1" (exactly) -* value 1.. -* value obeys min-digits-sor -* value ^constraint[1].requirements = "SOR Identifiers are at minimum 11 digits long" \ No newline at end of file diff --git a/input/fsh/SORIdentifier.fsh b/input/fsh/SORIdentifier.fsh new file mode 100644 index 000000000..59770dbdb --- /dev/null +++ b/input/fsh/SORIdentifier.fsh @@ -0,0 +1,19 @@ +Profile: SORIdentifier +Parent: Identifier +Id: dk-core-sor-identifier +Title: "SOR Identifier" +Description: "Identifier holding the official SOR identifier for a danish healthcare organization" +* ^status = #draft +* use = #official (exactly) +* system 1.. +* system = "urn:oid:1.2.208.176.1.1" (exactly) +* value 1.. + * obeys min-digits-sor +// WARNING: The constraint index in the following rule (e.g., constraint[0]) may be incorrect. +// Please compare with the constraint array in the original definition's snapshot and adjust as necessary. + * ^constraint.requirements = "SOR Identifiers are at minimum 11 digits long" + +Invariant: min-digits-sor +Description: "SOR Identifiers are at minimum 11 digits long. See https://sundhedsdatastyrelsen.dk/-/media/sds/filer/rammer-og-retningslinjer/organisationsregistrering/adgang-til-sor/info-om-opbygningen-af-sor-ider.pdf" +Severity: #error +Expression: "matches('^([0-9]){11,}$')" \ No newline at end of file diff --git a/input/fsh/administrative-gender-supplement-Instance.fsh b/input/fsh/administrative-gender-supplement-Instance.fsh deleted file mode 100644 index 3f8a79232..000000000 --- a/input/fsh/administrative-gender-supplement-Instance.fsh +++ /dev/null @@ -1,31 +0,0 @@ -Instance: administrative-gender-supplement -InstanceOf: $shareablecodesystem -Description: "CodeSystem supplement with danish translations for administrative gender" -Usage: #definition -* url = "http://hl7.dk/fhir/core/CodeSystem/administrative-gender-supplement" -* version = "0.9.0" -* name = "AdministrativeGenderDkSupplement" -* status = #draft -* experimental = true -* date = "2020-07-27" -* publisher = "HL7 Denmark" -* contact[0].name = "HL7 Denmark" -* contact[0].telecom[0].system = #url -* contact[0].telecom[0].value = "https://www.hl7.dk/" -* description = "CodeSystem supplement with danish translations for administrative gender" -* jurisdiction[0] = urn:iso:std:iso:3166#DK -* copyright = "CC-BY-SA-4.0" -* content = #supplement -* supplements = "http://hl7.org/fhir/administrative-gender" -* concept[0].code = #male -* concept[0].designation[0].language = #da -* concept[0].designation[0].value = "Mand" -* concept[1].code = #female -* concept[1].designation[0].language = #da -* concept[1].designation[0].value = "Kvinde" -* concept[2].code = #other -* concept[2].designation[0].language = #da -* concept[2].designation[0].value = "Andet" -* concept[3].code = #unknown -* concept[3].designation[0].language = #da -* concept[3].designation[0].value = "Ukendt" \ No newline at end of file diff --git a/input/fsh/aliases.fsh b/input/fsh/aliases.fsh index 4eafadbd9..4ac1ad715 100644 --- a/input/fsh/aliases.fsh +++ b/input/fsh/aliases.fsh @@ -1,11 +1,14 @@ -Alias: $shareablecodesystem = http://hl7.org/fhir/StructureDefinition/shareablecodesystem +Alias: $sct = http://snomed.info/sct +Alias: $condition-clinical = http://terminology.hl7.org/CodeSystem/condition-clinical +Alias: $condition-category = http://terminology.hl7.org/CodeSystem/condition-category +Alias: $condition-ver-status = http://terminology.hl7.org/CodeSystem/condition-ver-status +Alias: $v2-0203 = http://terminology.hl7.org/CodeSystem/v2-0203 Alias: $dk-core-municipality-codes = http://hl7.dk/fhir/core/CodeSystem/dk-core-municipality-codes -Alias: $dk-core-municipality-codes-greenland = http://hl7.dk/fhir/core/CodeSystem/dk-core-municipality-codes-greenland Alias: $dk-core-regional-subdivision-codes = http://hl7.dk/fhir/core/CodeSystem/dk-core-regional-subdivision-codes -Alias: $dk-core-cpr-identifier-system = http://hl7.dk/fhir/core/CodeSystem/dk-core-cpr-identifier-system -Alias: $v2-0203 = http://terminology.hl7.org/CodeSystem/v2-0203 Alias: $v3-MaritalStatus = http://terminology.hl7.org/CodeSystem/v3-MaritalStatus Alias: $dk-marital-status = http://hl7.dk/fhir/core/CodeSystem/dk-marital-status -Alias: $dk-core-cpr-identifier-system_1 = http://hl7.dk/fhir/core/ValueSet/dk-core-cpr-identifier-system -Alias: $dk-marital-status_1 = http://hl7.dk/fhir/core/ValueSet/dk-marital-status -Alias: $authorisationIDSystem = https://autregweb.sst.dk \ No newline at end of file +Alias: $DkCoreProfessionGroupCodes = http://hl7.dk/fhir/core/CodeSystem/DkCoreProfessionGroupCodes +Alias: $condition-dueTo = http://hl7.org/fhir/StructureDefinition/condition-dueTo +Alias: $condition-code = http://hl7.org/fhir/ValueSet/condition-code +Alias: $sor-organization-type = http://hl7.dk/fhir/core/ValueSet/sor-organization-type +Alias: $dk-marital-status_1 = http://hl7.dk/fhir/core/ValueSet/dk-marital-status \ No newline at end of file diff --git a/input/fsh/authorization-id-format-Invariant.fsh b/input/fsh/authorization-id-format-Invariant.fsh deleted file mode 100644 index dd069c08b..000000000 --- a/input/fsh/authorization-id-format-Invariant.fsh +++ /dev/null @@ -1,4 +0,0 @@ -Invariant: authorization-id-format -Description: "Authorization ID consists of exactly 5 consonants and Y and or numbers in any order" -Severity: #error -Expression: "matches('^([b-df-hj-np-tv-zB-DF-HJ-NP-TV-Z0-9]){5}$')" \ No newline at end of file diff --git a/input/fsh/codeSystems.fsh b/input/fsh/codeSystems.fsh new file mode 100644 index 000000000..e9edf26db --- /dev/null +++ b/input/fsh/codeSystems.fsh @@ -0,0 +1,713 @@ +CodeSystem: DkCoreProfessionGroupCodes +Id: DkCoreProfessionGroupCodes +Title: "DK Profession Group Codes" +Description: "DK health ProfessionGroup codes as defined by https://www.retsinformation.dk/eli/lta/2019/731, and derived from http://autregwebservice.sst.dk/autregservice.asmx/GetAllProfessionGroups. Code (5176) was not uniqe, and have been converted to 5176a and 5176b" +* ^status = #active +* ^content = #complete +* ^experimental = false +* ^caseSensitive = false +* ^count = 21 +* #C511 "Ambulancebehandler" +* #9495 "Bandagist" +* #B511 "Behandlerfarmaceut" +* #5159 "Bioanalytiker" +* #5153 "Ergoterapeut" +* #5155 "Fodterapeut" +* #5151 "Fysioterapeut" +* #5175 "Jordemoder" +* #5265 "Kiropraktor" +* #5451 "Klinisk diætist" +* #5432 "Klinisk tandtekniker" +* #5176a "Kontaktlinseoptiker" +* #7170 "Læge" +* #4498 "Optiker" +* #5176b "Optometrist" +* #A511 "Osteopat" +* #5158 "Radiograf" +* #5152 "Social- og sundhedsassistent" +* #5166 "Sygeplejerske" +* #5433 "Tandlæge" +* #5431 "Tandplejer" + +CodeSystem: AdministrativeGenderDkSupplement +Id: administrative-gender-supplement +Title: "DK Administrative Gender Supplement" +Description: "CodeSystem supplement with danish translations for administrative gender" +* ^status = #draft +* ^experimental = true +* ^content = #supplement +* ^supplements = "http://hl7.org/fhir/administrative-gender" +* #male + * ^designation.language = #da + * ^designation.value = "Mand" +* #female + * ^designation.language = #da + * ^designation.value = "Kvinde" +* #other + * ^designation.language = #da + * ^designation.value = "Andet" +* #unknown + * ^designation.language = #da + * ^designation.value = "Ukendt" + +CodeSystem: GreenlandMunicipalityCodes +Id: dk-core-municipality-codes-greenland +Title: "DK Greenland Municipality Codes" +Description: "Greenland municipality codes as defined by https://www.iso.org/obp/ui/#iso:code:3166:GL and https://cpr.dk/cpr-systemet/kommunesammenlaegninger-opdeling/groenland-2018/" +* ^status = #active +* ^experimental = false +* ^caseSensitive = true +* ^content = #complete +* #0955 "Kujalleq" + * ^designation.language = #da + * ^designation.value = "Kujalleq" +* #0956 "Sermersooq" + * ^designation.language = #da + * ^designation.value = "Sermersooq" +* #0957 "Qeqqata" + * ^designation.language = #da + * ^designation.value = "Qeqqata" +* #0959 "Qeqertalik" + * ^designation.language = #da + * ^designation.value = "Qeqertalik" +* #0960 "Avannaata" + * ^designation.language = #da + * ^designation.value = "Avannaata" + +CodeSystem: MunicipalityCodes +Id: dk-core-municipality-codes +Title: "DK Municipality Codes" +Description: "Municipality codes as defined by https://danmarksadresser.dk/adressedata/kodelister/kommunekodeliste/ and https://sundhedsdatastyrelsen.dk/-/media/sds/filer/rammer-og-retningslinjer/patientregistrering/relaterede/kommuneklassifikation.pdf" +* ^status = #active +* ^experimental = false +* ^caseSensitive = true +* ^content = #complete +* #0740 "Silkeborg" + * ^designation.language = #da + * ^designation.value = "Silkeborg" +* #0741 "Samsø" + * ^designation.language = #da + * ^designation.value = "Samsø" +* #0851 "Aalborg" + * ^designation.language = #da + * ^designation.value = "Aalborg" +* #0746 "Skanderborg" + * ^designation.language = #da + * ^designation.value = "Skanderborg" +* #0151 "Ballerup" + * ^designation.language = #da + * ^designation.value = "Ballerup" +* #0260 "Halsnæs" + * ^designation.language = #da + * ^designation.value = "Halsnæs" +* #0153 "Brøndby" + * ^designation.language = #da + * ^designation.value = "Brøndby" +* #0370 "Næstved" + * ^designation.language = #da + * ^designation.value = "Næstved" +* #0155 "Dragør" + * ^designation.language = #da + * ^designation.value = "Dragør" +* #0480 "Nordfyns" + * ^designation.language = #da + * ^designation.value = "Nordfyns" +* #0157 "Gentofte" + * ^designation.language = #da + * ^designation.value = "Gentofte" +* #0265 "Roskilde" + * ^designation.language = #da + * ^designation.value = "Roskilde" +* #0159 "Gladsaxe" + * ^designation.language = #da + * ^designation.value = "Gladsaxe" +* #0376 "Guldborgsund" + * ^designation.language = #da + * ^designation.value = "Guldborgsund" +* #0269 "Solrød" + * ^designation.language = #da + * ^designation.value = "Solrød" +* #0482 "Langeland" + * ^designation.language = #da + * ^designation.value = "Langeland" +* #0201 "Allerød" + * ^designation.language = #da + * ^designation.value = "Allerød" +* #0420 "Assens" + * ^designation.language = #da + * ^designation.value = "Assens" +* #0530 "Billund" + * ^designation.language = #da + * ^designation.value = "Billund" +* #0316 "Holbæk" + * ^designation.language = #da + * ^designation.value = "Holbæk" +* #0751 "Aarhus" + * ^designation.language = #da + * ^designation.value = "Aarhus" +* #0860 "Hjørring" + * ^designation.language = #da + * ^designation.value = "Hjørring" +* #0756 "Ikast-Brande" + * ^designation.language = #da + * ^designation.value = "Ikast-Brande" +* #0161 "Glostrup" + * ^designation.language = #da + * ^designation.value = "Glostrup" +* #0270 "Gribskov" + * ^designation.language = #da + * ^designation.value = "Gribskov" +* #0163 "Herlev" + * ^designation.language = #da + * ^designation.value = "Herlev" +* #0165 "Albertslund" + * ^designation.language = #da + * ^designation.value = "Albertslund" +* #0167 "Hvidovre" + * ^designation.language = #da + * ^designation.value = "Hvidovre" +* #0492 "Ærø" + * ^designation.language = #da + * ^designation.value = "Ærø" +* #0169 "Høje-Taastrup" + * ^designation.language = #da + * ^designation.value = "Høje-Taastrup" +* #0101 "København" + * ^designation.language = #da + * ^designation.value = "København" +* #0210 "Fredensborg" + * ^designation.language = #da + * ^designation.value = "Fredensborg" +* #0320 "Faxe" + * ^designation.language = #da + * ^designation.value = "Faxe" +* #0430 "Faaborg-Midtfyn" + * ^designation.language = #da + * ^designation.value = "Faaborg-Midtfyn" +* #0540 "Sønderborg" + * ^designation.language = #da + * ^designation.value = "Sønderborg" +* #0217 "Helsingør" + * ^designation.language = #da + * ^designation.value = "Helsingør" +* #0326 "Kalundborg" + * ^designation.language = #da + * ^designation.value = "Kalundborg" +* #0219 "Hillerød" + * ^designation.language = #da + * ^designation.value = "Hillerød" +* #0760 "Ringkøbing-Skjern" + * ^designation.language = #da + * ^designation.value = "Ringkøbing-Skjern" +* #0329 "Ringsted" + * ^designation.language = #da + * ^designation.value = "Ringsted" +* #0657 "Herning" + * ^designation.language = #da + * ^designation.value = "Herning" +* #0766 "Hedensted" + * ^designation.language = #da + * ^designation.value = "Hedensted" +* #0173 "Lyngby-Taarbæk" + * ^designation.language = #da + * ^designation.value = "Lyngby-Taarbæk" +* #0390 "Vordingborg" + * ^designation.language = #da + * ^designation.value = "Vordingborg" +* #0175 "Rødovre" + * ^designation.language = #da + * ^designation.value = "Rødovre" +* #0810 "Brønderslev" + * ^designation.language = #da + * ^designation.value = "Brønderslev" +* #0813 "Frederikshavn" + * ^designation.language = #da + * ^designation.value = "Frederikshavn" +* #0706 "Syddjurs" + * ^designation.language = #da + * ^designation.value = "Syddjurs" +* #0707 "Norddjurs" + * ^designation.language = #da + * ^designation.value = "Norddjurs" +* #0330 "Slagelse" + * ^designation.language = #da + * ^designation.value = "Slagelse" +* #0223 "Hørsholm" + * ^designation.language = #da + * ^designation.value = "Hørsholm" +* #0440 "Kerteminde" + * ^designation.language = #da + * ^designation.value = "Kerteminde" +* #0550 "Tønder" + * ^designation.language = #da + * ^designation.value = "Tønder" +* #0336 "Stevns" + * ^designation.language = #da + * ^designation.value = "Stevns" +* #0661 "Holstebro" + * ^designation.language = #da + * ^designation.value = "Holstebro" +* #0665 "Lemvig" + * ^designation.language = #da + * ^designation.value = "Lemvig" +* #0773 "Morsø" + * ^designation.language = #da + * ^designation.value = "Morsø" +* #0779 "Skive" + * ^designation.language = #da + * ^designation.value = "Skive" +* #0183 "Ishøj" + * ^designation.language = #da + * ^designation.value = "Ishøj" +* #0185 "Tårnby" + * ^designation.language = #da + * ^designation.value = "Tårnby" +* #0710 "Favrskov" + * ^designation.language = #da + * ^designation.value = "Favrskov" +* #0187 "Vallensbæk" + * ^designation.language = #da + * ^designation.value = "Vallensbæk" +* #0820 "Vesthimmerland" + * ^designation.language = #da + * ^designation.value = "Vesthimmerland" +* #0607 "Fredericia" + * ^designation.language = #da + * ^designation.value = "Fredericia" +* #0825 "Læsø" + * ^designation.language = #da + * ^designation.value = "Læsø" +* #0230 "Rudersdal" + * ^designation.language = #da + * ^designation.value = "Rudersdal" +* #0340 "Sorø" + * ^designation.language = #da + * ^designation.value = "Sorø" +* #0450 "Nyborg" + * ^designation.language = #da + * ^designation.value = "Nyborg" +* #0561 "Esbjerg" + * ^designation.language = #da + * ^designation.value = "Esbjerg" +* #0563 "Fanø" + * ^designation.language = #da + * ^designation.value = "Fanø" +* #0671 "Struer" + * ^designation.language = #da + * ^designation.value = "Struer" +* #0190 "Furesø" + * ^designation.language = #da + * ^designation.value = "Furesø" +* #0787 "Thisted" + * ^designation.language = #da + * ^designation.value = "Thisted" +* #0615 "Horsens" + * ^designation.language = #da + * ^designation.value = "Horsens" +* #0727 "Odder" + * ^designation.language = #da + * ^designation.value = "Odder" +* #0240 "Egedal" + * ^designation.language = #da + * ^designation.value = "Egedal" +* #0350 "Lejre" + * ^designation.language = #da + * ^designation.value = "Lejre" +* #0461 "Odense" + * ^designation.language = #da + * ^designation.value = "Odense" +* #0573 "Varde" + * ^designation.language = #da + * ^designation.value = "Varde" +* #0575 "Vejen" + * ^designation.language = #da + * ^designation.value = "Vejen" +* #0791 "Viborg" + * ^designation.language = #da + * ^designation.value = "Viborg" +* #0400 "Bornholm" + * ^designation.language = #da + * ^designation.value = "Bornholm" +* #0510 "Haderslev" + * ^designation.language = #da + * ^designation.value = "Haderslev" +* #0621 "Kolding" + * ^designation.language = #da + * ^designation.value = "Kolding" +* #0730 "Randers" + * ^designation.language = #da + * ^designation.value = "Randers" +* #0840 "Rebild" + * ^designation.language = #da + * ^designation.value = "Rebild" +* #0846 "Mariagerfjord" + * ^designation.language = #da + * ^designation.value = "Mariagerfjord" +* #0250 "Frederikssund" + * ^designation.language = #da + * ^designation.value = "Frederikssund" +* #0360 "Lolland" + * ^designation.language = #da + * ^designation.value = "Lolland" +* #0253 "Greve" + * ^designation.language = #da + * ^designation.value = "Greve" +* #0849 "Jammerbugt" + * ^designation.language = #da + * ^designation.value = "Jammerbugt" +* #0147 "Frederiksberg" + * ^designation.language = #da + * ^designation.value = "Frederiksberg" +* #0580 "Aabenraa" + * ^designation.language = #da + * ^designation.value = "Aabenraa" +* #0259 "Køge" + * ^designation.language = #da + * ^designation.value = "Køge" +* #0479 "Svendborg" + * ^designation.language = #da + * ^designation.value = "Svendborg" +* #0410 "Middelfart" + * ^designation.language = #da + * ^designation.value = "Middelfart" +* #0411 "Christiansø" + * ^designation.language = #da + * ^designation.value = "Christiansø" +* #0306 "Odsherred" + * ^designation.language = #da + * ^designation.value = "Odsherred" +* #0630 "Vejle" + * ^designation.language = #da + * ^designation.value = "Vejle" + +CodeSystem: DKCoreRegionalSubdivisionCodes +Title: "DK Regional Subdivision Codes" +Id: dk-core-regional-subdivision-codes +Description: "Subdivision codes (Regional codes) used in Denmark as found on https://www.iso.org/obp/ui/#iso:code:3166:DK" +* ^caseSensitive = false +* ^status = #draft +* ^experimental = true +* ^content = #complete +* #DK-84 "Capital Region of Denmark" + * ^designation.language = #da + * ^designation.value = "Hovedstaden" +* #DK-82 "Central Denmark Region" + * ^designation.language = #da + * ^designation.value = "Midtjylland" +* #DK-81 "Nord Denmark Region" + * ^designation.language = #da + * ^designation.value = "Nordjylland" +* #DK-85 "Region Zealand" + * ^designation.language = #da + * ^designation.value = "Sjælland" +* #DK-83 "Region of Southern Denmark" + * ^designation.language = #da + * ^designation.value = "Syddanmark" + +CodeSystem: DK_Marital_Status_Codes +Id: dk-marital-status +Title: "DK Marital Statuses" +Description: "DK marital statuses" +* ^url = "http://hl7.dk/fhir/core/CodeSystem/dk-marital-status" +* ^name = "DkMaritalStatus" +* ^caseSensitive = false +* ^status = #active +* ^experimental = false +* ^content = #complete +* #P "Registered partnership" + * ^designation.language = #da + * ^designation.value = "Registreret partnerskab" +* #O "Dissolved partnership" + * ^designation.language = #da + * ^designation.value = "Ophævet partnerskab" + +CodeSystem: AddressType +Id: address-type-dk-supplement +Title: "DK Address Type" +Description: "The type of an address (physical / postal)" +* ^status = #draft +* ^experimental = false +* ^content = #supplement +* ^supplements = "http://hl7.org/fhir/address-type" +* #postal "Postal" "Mailing addresses - PO Boxes and care-of addresses." + * ^designation.language = #da + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Post" +* #physical "Physical" "A physical address that can be visited." + * ^designation.language = #da + * ^designation.use.system = "http://snomed.info/sct" + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Fysisk" +* #both "Postal & Physical" "An address that is both physical and postal." + * ^designation.language = #da + * ^designation.use.system = "http://snomed.info/sct" + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Post & fysisk" + +CodeSystem: AddressUse +Id: address-use-dk-supplement +Title: "DK Address Use" +Description: "The use of an address" +* ^status = #draft +* ^experimental = false +* ^content = #supplement +* ^supplements = "http://hl7.org/fhir/address-use" +* #home "Home" "A communication address at a home." + * ^designation.language = #da + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Hjem" +* #work "Work" "An office address. First choice for business related contacts during business hours." + * ^designation.language = #da + * ^designation.use.system = "http://snomed.info/sct" + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Arbejde" +* #temp "Temporary" "A temporary address. The period can provide more detailed information." + * ^designation.language = #da + * ^designation.use.system = "http://snomed.info/sct" + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Midlertidig" +* #old "Old / Incorrect" "This address is no longer in use (or was never correct, but retained for records)." + * ^designation.language = #da + * ^designation.use.system = "http://snomed.info/sct" + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Gammel / forkert" + +CodeSystem: CareTeamStatus +Title: "DK CareTeam Status" +Id: care-team-status-dk-supplement +Description: "Indicates the status of the care team." +* ^status = #draft +* ^experimental = false +* ^content = #supplement +* ^supplements = "http://hl7.org/fhir/care-team-status" +* #proposed "Proposed" "The care team has been drafted and proposed, but not yet participating in the coordination and delivery of care." + * ^designation.language = #da + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Forslag" +* #active "Active" "The care team is currently participating in the coordination and delivery of care." + * ^designation.language = #da + * ^designation.use.system = "http://snomed.info/sct" + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Aktiv" +* #suspended "Suspended" "The care team is temporarily on hold or suspended and not participating in the coordination and delivery of care." + * ^designation.language = #da + * ^designation.use.system = "http://snomed.info/sct" + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Suspenderet" +* #inactive "Inactive" "The care team was, but is no longer, participating in the coordination and delivery of care." + * ^designation.language = #da + * ^designation.use.system = "http://snomed.info/sct" + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Inaktiv" +* #entered-in-error "Entered In Error" "The care team should have never existed." + * ^designation.language = #da + * ^designation.use.system = "http://snomed.info/sct" + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Fejlindtastning" + +CodeSystem: ConsentState +Title: "DK Consent State" +Id: consent-state-codes-dk-supplement +Description: "Indicates the state of the consent" +* ^status = #draft +* ^experimental = false +* ^content = #supplement +* ^supplements = "http://hl7.org/fhir/consent-state-codes" +* #draft "Pending" "The consent is in development or awaiting use but is not yet intended to be acted upon." + * ^designation.language = #da + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Under udarbejdelse" +* #proposed "Proposed" "The consent has been proposed but not yet agreed to by all parties. The negotiation stage." + * ^designation.language = #da + * ^designation.use.system = "http://snomed.info/sct" + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Forslag" +* #active "Active" "The consent is to be followed and enforced." + * ^designation.language = #da + * ^designation.use.system = "http://snomed.info/sct" + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Aktiv" +* #rejected "Rejected" "The consent has been rejected by one or more of the parties." + * ^designation.language = #da + * ^designation.use.system = "http://snomed.info/sct" + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Afvist" +* #inactive "Inactive" "The consent is terminated or replaced." + * ^designation.language = #da + * ^designation.use.system = "http://snomed.info/sct" + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Inaktiv" +* #entered-in-error "Entered in Error" "The consent was created wrongly (e.g. wrong patient) and should be ignored" + * ^designation.language = #da + * ^designation.use.system = "http://snomed.info/sct" + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Fejlindtastning" + +CodeSystem: DaysOfWeek +Title: "DK Days Of Week" +Id: days-of-week-dk-supplement +Description: "The days of the week." +* ^status = #draft +* ^experimental = false +* ^content = #supplement +* ^supplements = "http://hl7.org/fhir/days-of-week" +* #mon "Monday" "Monday" + * ^designation.language = #da + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Mandag" +* #tue "Tuesday" "Tuesday" + * ^designation.language = #da + * ^designation.use.system = "http://snomed.info/sct" + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Tirsdag" +* #wed "Wednesday" "Wednesday" + * ^designation.language = #da + * ^designation.use.system = "http://snomed.info/sct" + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Onsdag" +* #thu "Thursday" "Thursday" + * ^designation.language = #da + * ^designation.use.system = "http://snomed.info/sct" + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Torsdag" +* #fri "Friday" "Friday" + * ^designation.language = #da + * ^designation.use.system = "http://snomed.info/sct" + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Fredag" +* #sat "Saturday" "Saturday" + * ^designation.language = #da + * ^designation.use.system = "http://snomed.info/sct" + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Lørdag" +* #sun "Sunday" "Sunday" + * ^designation.language = #da + * ^designation.use.system = "http://snomed.info/sct" + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Søndag" + +CodeSystem: EpisodeOfCareStatus +Title: "DK Episode Of Care Status" +Id: episode-of-care-status-dk-supplement +Description: "The status of the episode of care." +* ^status = #draft +* ^experimental = false +* ^publisher = "HL7 DK" +* ^content = #supplement +* ^supplements = "http://hl7.org/fhir/episode-of-care-status" +* #planned "Planned" "This episode of care is planned to start at the date specified in the period.start. During this status, an organization may perform assessments to determine if the patient is eligible to receive services, or be organizing to make resources available to provide care services." + * ^designation.language = #da + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Planlagt" +* #waitlist "Waitlist" "This episode has been placed on a waitlist, pending the episode being made active (or cancelled)." + * ^designation.language = #da + * ^designation.use.system = "http://snomed.info/sct" + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Venteliste" +* #active "Active" "This episode of care is current." + * ^designation.language = #da + * ^designation.use.system = "http://snomed.info/sct" + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Aktiv" +* #onhold "On Hold" "This episode of care is on hold, the organization has limited responsibility for the patient (such as while on respite)." + * ^designation.language = #da + * ^designation.use.system = "http://snomed.info/sct" + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Pauseret" +* #finished "Finished" "This episode of care is finished and the organization is not expecting to be providing further care to the patient. Can also be known as \"closed\", \"completed\" or other similar terms." + * ^designation.language = #da + * ^designation.use.system = "http://snomed.info/sct" + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Færdig" +* #cancelled "Cancelled" "The episode of care was cancelled, or withdrawn from service, often selected during the planned stage as the patient may have gone elsewhere, or the circumstances have changed and the organization is unable to provide the care. It indicates that services terminated outside the planned/expected workflow." + * ^designation.language = #da + * ^designation.use.system = "http://snomed.info/sct" + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Annulleret" +* #entered-in-error "Entered in Error" "This instance should not have been part of this patient's medical record." + * ^designation.language = #da + * ^designation.use.system = "http://snomed.info/sct" + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Fejlindtastning" + +CodeSystem: PublicationStatus +Id: publication-status-dk-supplement +Description: "The lifecycle status of a Value Set or Concept Map." +Title: "DK Publication Status" +* ^status = #draft +* ^experimental = false +* ^content = #supplement +* ^supplements = "http://hl7.org/fhir/publication-status" +* #draft "Draft" "This resource is still under development and is not yet considered to be ready for normal use." + * ^designation[0].language = #ru + * ^designation[=].value = "черновик" + * ^designation[+].language = #nl + * ^designation[=].value = "ontwerp" + * ^designation[+].language = #da + * ^designation[=].use = $sct#900000000000013009 + * ^designation[=].value = "Udkast" +* #active "Active" "This resource is ready for normal use." + * ^designation[0].language = #ru + * ^designation[=].value = "активный" + * ^designation[+].language = #nl + * ^designation[=].value = "actief" + * ^designation[+].language = #da + * ^designation[=].use.system = "http://snomed.info/sct" + * ^designation[=].use = $sct#900000000000013009 + * ^designation[=].value = "Aktiv" +* #retired "Retired" "This resource has been withdrawn or superseded and should no longer be used." + * ^designation[0].language = #ru + * ^designation[=].value = "удалён" + * ^designation[+].language = #nl + * ^designation[=].value = "verouderd" + * ^designation[+].language = #da + * ^designation[=].use.system = "http://snomed.info/sct" + * ^designation[=].use = $sct#900000000000013009 + * ^designation[=].value = "Udgået" +* #unknown "Unknown" "The authoring system does not know which of the status values currently applies for this resource. Note: This concept is not to be used for \"other\" - one of the listed statuses is presumed to apply, it's just not known which one." + * ^designation[0].language = #da + * ^designation[=].use = $sct#900000000000013009 + * ^designation[=].value = "Ukendt" + +CodeSystem: RequestStatus +Id: request-status-dk-supplement +Description: "Codes identifying the stage lifecycle stage of a request" +Title: "DK Request Status" +* ^status = #draft +* ^experimental = false +* ^content = #supplement +* ^supplements = "http://hl7.org/fhir/request-status" +* #draft "Draft" "The request has been created but is not yet complete or ready for action." + * ^designation.language = #da + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Udkast" +* #active "Active" "The request is in force and ready to be acted upon." + * ^designation.language = #da + * ^designation.use.system = "http://snomed.info/sct" + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Aktiv" +* #on-hold "On Hold" "The request (and any implicit authorization to act) has been temporarily withdrawn but is expected to resume in the future." + * ^designation.language = #da + * ^designation.use.system = "http://snomed.info/sct" + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Suspenderet" +* #revoked "Revoked" "The request (and any implicit authorization to act) has been terminated prior to the known full completion of the intended actions. No further activity should occur." + * ^designation.language = #da + * ^designation.use.system = "http://snomed.info/sct" + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Annulleret" +* #completed "Completed" "The activity described by the request has been fully performed. No further activity will occur." + * ^designation.language = #da + * ^designation.use.system = "http://snomed.info/sct" + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Afsluttet" +* #entered-in-error "Entered in Error" "This request should never have existed and should be considered 'void'. (It is possible that real-world decisions were based on it. If real-world activity has occurred, the status should be \"revoked\" rather than \"entered-in-error\".)." + * ^designation.language = #da + * ^designation.use.system = "http://snomed.info/sct" + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Fejlindtastning" +* #unknown "Unknown" "The authoring system does not know which of the status values currently applies for this request. Note: This concept is not to be used for \"other\" - one of the listed statuses is presumed to apply, but the authoring/source system does not know which." + * ^designation.language = #da + * ^designation.use.system = "http://snomed.info/sct" + * ^designation.use = $sct#900000000000013009 + * ^designation.value = "Ukendt" \ No newline at end of file diff --git a/input/fsh/confidential.fsh b/input/fsh/confidential.fsh deleted file mode 100644 index 5d9108923..000000000 --- a/input/fsh/confidential.fsh +++ /dev/null @@ -1,27 +0,0 @@ -Instance: Confidential -InstanceOf: DkCorePatient -Title: "Example of a patient with confidential adress and name" -Description: "Example of a patient with confidential adress and name" -Usage: #example -* text[0].div = """
- -This instance is an example of a Danish citizen who has requested name and address protection (Navne- og adressebeskyttelse), why the instance is marked with a security label. -Only personnel using systems in public/official affairs are allowed to see name and address for the citizen, why these information are included in the profile. - -

Resource "Confidential"

Profile: Danish Core Patient Profile

Security Labels: http://terminology.hl7.org/CodeSystem/v3-Confidentiality

identifier: id: 0908760405

name: Hans Hansen (OFFICIAL)

gender: male

birthDate: 1976-08-09

address: Julianevej 22 6000 Kolding (HOME)

-
-""" -* text[0].status = #additional -* meta.security.system = "http://terminology.hl7.org/CodeSystem/v3-Confidentiality" -* meta.security.code = #R -* meta.security.display = "restricted" -* identifier[0].system = "urn:oid:1.2.208.176.1.2" -* identifier[0].value = "0908760405" -* name[0].use = #official -* name[0].family = "Hansen" -* name[0].given = "Hans" -* gender = #male -* birthDate = "1976-08-09" -* address[0].use = #home -* address[0].line = "Julianevej 22" -* address[0].city = "6000 Kolding" \ No newline at end of file diff --git a/input/fsh/cpr-Instance.fsh b/input/fsh/cpr-Instance.fsh deleted file mode 100644 index 9bf70943b..000000000 --- a/input/fsh/cpr-Instance.fsh +++ /dev/null @@ -1,20 +0,0 @@ -Instance: cpr -InstanceOf: NamingSystem -Description: "The Danish civil registration system (\"CPR\") encompasses basic personal data about anyone with a civil registration number. A civil registration number shall be allocated to anyone who: 1) is registered in the national register in Denmark on the grounds of birth or relocation from abroad; 2) is included under Arbejdsmarkedets TillægsPension (ATP); 3) according to the tax authorities, is required to have a civil registration number for the purpose of tax processing in Denmark." -Usage: #definition -* name = "DkCoreDanishCivilRegistrationSystem" -* status = #active -* kind = #identifier -* date = "1968-04-02" -* publisher = "HL7 Denmark" -* contact[0].name = "HL7 Denmark" -* contact[0].telecom[0].system = #url -* contact[0].telecom[0].value = "https://www.hl7.dk/" -* responsible = "CPR-kontoret, Økonomi- og Indenrigsministeriets departement" -//* type = $v2-0203#NNDNK "National Person Identifier where the xxx is the ISO table 3166 3-character (alphabetic) country code" -* description = "The Danish civil registration system (\"CPR\") encompasses basic personal data about anyone with a civil registration number. A civil registration number shall be allocated to anyone who: 1) is registered in the national register in Denmark on the grounds of birth or relocation from abroad; 2) is included under Arbejdsmarkedets TillægsPension (ATP); 3) according to the tax authorities, is required to have a civil registration number for the purpose of tax processing in Denmark." -* jurisdiction[0] = urn:iso:std:iso:3166#DK -* uniqueId[0].type = #oid -* uniqueId[0].value = "1.2.208.176.1.2" -* uniqueId[1].type = #uri -* uniqueId[1].value = "http://www.cpr.dk/cpr-systemet" \ No newline at end of file diff --git a/input/fsh/dk-core-municipality-codes-Instance.fsh b/input/fsh/dk-core-municipality-codes-Instance.fsh deleted file mode 100644 index 2045b5dc2..000000000 --- a/input/fsh/dk-core-municipality-codes-Instance.fsh +++ /dev/null @@ -1,415 +0,0 @@ -Instance: dk-core-municipality-codes -InstanceOf: CodeSystem -Description: "Municipality codes as defined by https://danmarksadresser.dk/adressedata/kodelister/kommunekodeliste/ and https://sundhedsdatastyrelsen.dk/-/media/sds/filer/rammer-og-retningslinjer/patientregistrering/relaterede/kommuneklassifikation.pdf" -Usage: #definition -* url = "http://hl7.dk/fhir/core/CodeSystem/dk-core-municipality-codes" -* version = "0.9.0" -* name = "MunicipalityCodes" -* status = #active -* experimental = false -* date = "2019-01-29T00:00:00+00:00" -* publisher = "HL7 Denmark" -* contact[0].name = "HL7 Denmark" -* contact[0].telecom[0].system = #url -* contact[0].telecom[0].value = "https://www.hl7.dk/" -* description = "Municipality codes as defined by https://danmarksadresser.dk/adressedata/kodelister/kommunekodeliste/ and https://sundhedsdatastyrelsen.dk/-/media/sds/filer/rammer-og-retningslinjer/patientregistrering/relaterede/kommuneklassifikation.pdf" -* jurisdiction[0] = urn:iso:std:iso:3166#DK -* copyright = "CC-BY-SA-4.0" -* caseSensitive = true -* content = #complete -* concept[0].code = #0740 -* concept[0].display = "Silkeborg" -* concept[0].designation[0].language = #da -* concept[0].designation[0].value = "Silkeborg" -* concept[1].code = #0741 -* concept[1].display = "Samsø" -* concept[1].designation[0].language = #da -* concept[1].designation[0].value = "Samsø" -* concept[2].code = #0851 -* concept[2].display = "Aalborg" -* concept[2].designation[0].language = #da -* concept[2].designation[0].value = "Aalborg" -* concept[3].code = #0746 -* concept[3].display = "Skanderborg" -* concept[3].designation[0].language = #da -* concept[3].designation[0].value = "Skanderborg" -* concept[4].code = #0151 -* concept[4].display = "Ballerup" -* concept[4].designation[0].language = #da -* concept[4].designation[0].value = "Ballerup" -* concept[5].code = #0260 -* concept[5].display = "Halsnæs" -* concept[5].designation[0].language = #da -* concept[5].designation[0].value = "Halsnæs" -* concept[6].code = #0153 -* concept[6].display = "Brøndby" -* concept[6].designation[0].language = #da -* concept[6].designation[0].value = "Brøndby" -* concept[7].code = #0370 -* concept[7].display = "Næstved" -* concept[7].designation[0].language = #da -* concept[7].designation[0].value = "Næstved" -* concept[8].code = #0155 -* concept[8].display = "Dragør" -* concept[8].designation[0].language = #da -* concept[8].designation[0].value = "Dragør" -* concept[9].code = #0480 -* concept[9].display = "Nordfyns" -* concept[9].designation[0].language = #da -* concept[9].designation[0].value = "Nordfyns" -* concept[10].code = #0157 -* concept[10].display = "Gentofte" -* concept[10].designation[0].language = #da -* concept[10].designation[0].value = "Gentofte" -* concept[11].code = #0265 -* concept[11].display = "Roskilde" -* concept[11].designation[0].language = #da -* concept[11].designation[0].value = "Roskilde" -* concept[12].code = #0159 -* concept[12].display = "Gladsaxe" -* concept[12].designation[0].language = #da -* concept[12].designation[0].value = "Gladsaxe" -* concept[13].code = #0376 -* concept[13].display = "Guldborgsund" -* concept[13].designation[0].language = #da -* concept[13].designation[0].value = "Guldborgsund" -* concept[14].code = #0269 -* concept[14].display = "Solrød" -* concept[14].designation[0].language = #da -* concept[14].designation[0].value = "Solrød" -* concept[15].code = #0482 -* concept[15].display = "Langeland" -* concept[15].designation[0].language = #da -* concept[15].designation[0].value = "Langeland" -* concept[16].code = #0201 -* concept[16].display = "Allerød" -* concept[16].designation[0].language = #da -* concept[16].designation[0].value = "Allerød" -* concept[17].code = #0420 -* concept[17].display = "Assens" -* concept[17].designation[0].language = #da -* concept[17].designation[0].value = "Assens" -* concept[18].code = #0530 -* concept[18].display = "Billund" -* concept[18].designation[0].language = #da -* concept[18].designation[0].value = "Billund" -* concept[19].code = #0316 -* concept[19].display = "Holbæk" -* concept[19].designation[0].language = #da -* concept[19].designation[0].value = "Holbæk" -* concept[20].code = #0751 -* concept[20].display = "Aarhus" -* concept[20].designation[0].language = #da -* concept[20].designation[0].value = "Aarhus" -* concept[21].code = #0860 -* concept[21].display = "Hjørring" -* concept[21].designation[0].language = #da -* concept[21].designation[0].value = "Hjørring" -* concept[22].code = #0756 -* concept[22].display = "Ikast-Brande" -* concept[22].designation[0].language = #da -* concept[22].designation[0].value = "Ikast-Brande" -* concept[23].code = #0161 -* concept[23].display = "Glostrup" -* concept[23].designation[0].language = #da -* concept[23].designation[0].value = "Glostrup" -* concept[24].code = #0270 -* concept[24].display = "Gribskov" -* concept[24].designation[0].language = #da -* concept[24].designation[0].value = "Gribskov" -* concept[25].code = #0163 -* concept[25].display = "Herlev" -* concept[25].designation[0].language = #da -* concept[25].designation[0].value = "Herlev" -* concept[26].code = #0165 -* concept[26].display = "Albertslund" -* concept[26].designation[0].language = #da -* concept[26].designation[0].value = "Albertslund" -* concept[27].code = #0167 -* concept[27].display = "Hvidovre" -* concept[27].designation[0].language = #da -* concept[27].designation[0].value = "Hvidovre" -* concept[28].code = #0492 -* concept[28].display = "Ærø" -* concept[28].designation[0].language = #da -* concept[28].designation[0].value = "Ærø" -* concept[29].code = #0169 -* concept[29].display = "Høje-Taastrup" -* concept[29].designation[0].language = #da -* concept[29].designation[0].value = "Høje-Taastrup" -* concept[30].code = #0101 -* concept[30].display = "København" -* concept[30].designation[0].language = #da -* concept[30].designation[0].value = "København" -* concept[31].code = #0210 -* concept[31].display = "Fredensborg" -* concept[31].designation[0].language = #da -* concept[31].designation[0].value = "Fredensborg" -* concept[32].code = #0320 -* concept[32].display = "Faxe" -* concept[32].designation[0].language = #da -* concept[32].designation[0].value = "Faxe" -* concept[33].code = #0430 -* concept[33].display = "Faaborg-Midtfyn" -* concept[33].designation[0].language = #da -* concept[33].designation[0].value = "Faaborg-Midtfyn" -* concept[34].code = #0540 -* concept[34].display = "Sønderborg" -* concept[34].designation[0].language = #da -* concept[34].designation[0].value = "Sønderborg" -* concept[35].code = #0217 -* concept[35].display = "Helsingør" -* concept[35].designation[0].language = #da -* concept[35].designation[0].value = "Helsingør" -* concept[36].code = #0326 -* concept[36].display = "Kalundborg" -* concept[36].designation[0].language = #da -* concept[36].designation[0].value = "Kalundborg" -* concept[37].code = #0219 -* concept[37].display = "Hillerød" -* concept[37].designation[0].language = #da -* concept[37].designation[0].value = "Hillerød" -* concept[38].code = #0760 -* concept[38].display = "Ringkøbing-Skjern" -* concept[38].designation[0].language = #da -* concept[38].designation[0].value = "Ringkøbing-Skjern" -* concept[39].code = #0329 -* concept[39].display = "Ringsted" -* concept[39].designation[0].language = #da -* concept[39].designation[0].value = "Ringsted" -* concept[40].code = #0657 -* concept[40].display = "Herning" -* concept[40].designation[0].language = #da -* concept[40].designation[0].value = "Herning" -* concept[41].code = #0766 -* concept[41].display = "Hedensted" -* concept[41].designation[0].language = #da -* concept[41].designation[0].value = "Hedensted" -* concept[42].code = #0173 -* concept[42].display = "Lyngby-Taarbæk" -* concept[42].designation[0].language = #da -* concept[42].designation[0].value = "Lyngby-Taarbæk" -* concept[43].code = #0390 -* concept[43].display = "Vordingborg" -* concept[43].designation[0].language = #da -* concept[43].designation[0].value = "Vordingborg" -* concept[44].code = #0175 -* concept[44].display = "Rødovre" -* concept[44].designation[0].language = #da -* concept[44].designation[0].value = "Rødovre" -* concept[45].code = #0810 -* concept[45].display = "Brønderslev" -* concept[45].designation[0].language = #da -* concept[45].designation[0].value = "Brønderslev" -* concept[46].code = #0813 -* concept[46].display = "Frederikshavn" -* concept[46].designation[0].language = #da -* concept[46].designation[0].value = "Frederikshavn" -* concept[47].code = #0706 -* concept[47].display = "Syddjurs" -* concept[47].designation[0].language = #da -* concept[47].designation[0].value = "Syddjurs" -* concept[48].code = #0707 -* concept[48].display = "Norddjurs" -* concept[48].designation[0].language = #da -* concept[48].designation[0].value = "Norddjurs" -* concept[49].code = #0330 -* concept[49].display = "Slagelse" -* concept[49].designation[0].language = #da -* concept[49].designation[0].value = "Slagelse" -* concept[50].code = #0223 -* concept[50].display = "Hørsholm" -* concept[50].designation[0].language = #da -* concept[50].designation[0].value = "Hørsholm" -* concept[51].code = #0440 -* concept[51].display = "Kerteminde" -* concept[51].designation[0].language = #da -* concept[51].designation[0].value = "Kerteminde" -* concept[52].code = #0550 -* concept[52].display = "Tønder" -* concept[52].designation[0].language = #da -* concept[52].designation[0].value = "Tønder" -* concept[53].code = #0336 -* concept[53].display = "Stevns" -* concept[53].designation[0].language = #da -* concept[53].designation[0].value = "Stevns" -* concept[54].code = #0661 -* concept[54].display = "Holstebro" -* concept[54].designation[0].language = #da -* concept[54].designation[0].value = "Holstebro" -* concept[55].code = #0665 -* concept[55].display = "Lemvig" -* concept[55].designation[0].language = #da -* concept[55].designation[0].value = "Lemvig" -* concept[56].code = #0773 -* concept[56].display = "Morsø" -* concept[56].designation[0].language = #da -* concept[56].designation[0].value = "Morsø" -* concept[57].code = #0779 -* concept[57].display = "Skive" -* concept[57].designation[0].language = #da -* concept[57].designation[0].value = "Skive" -* concept[58].code = #0183 -* concept[58].display = "Ishøj" -* concept[58].designation[0].language = #da -* concept[58].designation[0].value = "Ishøj" -* concept[59].code = #0185 -* concept[59].display = "Tårnby" -* concept[59].designation[0].language = #da -* concept[59].designation[0].value = "Tårnby" -* concept[60].code = #0710 -* concept[60].display = "Favrskov" -* concept[60].designation[0].language = #da -* concept[60].designation[0].value = "Favrskov" -* concept[61].code = #0187 -* concept[61].display = "Vallensbæk" -* concept[61].designation[0].language = #da -* concept[61].designation[0].value = "Vallensbæk" -* concept[62].code = #0820 -* concept[62].display = "Vesthimmerland" -* concept[62].designation[0].language = #da -* concept[62].designation[0].value = "Vesthimmerland" -* concept[63].code = #0607 -* concept[63].display = "Fredericia" -* concept[63].designation[0].language = #da -* concept[63].designation[0].value = "Fredericia" -* concept[64].code = #0825 -* concept[64].display = "Læsø" -* concept[64].designation[0].language = #da -* concept[64].designation[0].value = "Læsø" -* concept[65].code = #0230 -* concept[65].display = "Rudersdal" -* concept[65].designation[0].language = #da -* concept[65].designation[0].value = "Rudersdal" -* concept[66].code = #0340 -* concept[66].display = "Sorø" -* concept[66].designation[0].language = #da -* concept[66].designation[0].value = "Sorø" -* concept[67].code = #0450 -* concept[67].display = "Nyborg" -* concept[67].designation[0].language = #da -* concept[67].designation[0].value = "Nyborg" -* concept[68].code = #0561 -* concept[68].display = "Esbjerg" -* concept[68].designation[0].language = #da -* concept[68].designation[0].value = "Esbjerg" -* concept[69].code = #0563 -* concept[69].display = "Fanø" -* concept[69].designation[0].language = #da -* concept[69].designation[0].value = "Fanø" -* concept[70].code = #0671 -* concept[70].display = "Struer" -* concept[70].designation[0].language = #da -* concept[70].designation[0].value = "Struer" -* concept[71].code = #0190 -* concept[71].display = "Furesø" -* concept[71].designation[0].language = #da -* concept[71].designation[0].value = "Furesø" -* concept[72].code = #0787 -* concept[72].display = "Thisted" -* concept[72].designation[0].language = #da -* concept[72].designation[0].value = "Thisted" -* concept[73].code = #0615 -* concept[73].display = "Horsens" -* concept[73].designation[0].language = #da -* concept[73].designation[0].value = "Horsens" -* concept[74].code = #0727 -* concept[74].display = "Odder" -* concept[74].designation[0].language = #da -* concept[74].designation[0].value = "Odder" -* concept[75].code = #0240 -* concept[75].display = "Egedal" -* concept[75].designation[0].language = #da -* concept[75].designation[0].value = "Egedal" -* concept[76].code = #0350 -* concept[76].display = "Lejre" -* concept[76].designation[0].language = #da -* concept[76].designation[0].value = "Lejre" -* concept[77].code = #0461 -* concept[77].display = "Odense" -* concept[77].designation[0].language = #da -* concept[77].designation[0].value = "Odense" -* concept[78].code = #0573 -* concept[78].display = "Varde" -* concept[78].designation[0].language = #da -* concept[78].designation[0].value = "Varde" -* concept[79].code = #0575 -* concept[79].display = "Vejen" -* concept[79].designation[0].language = #da -* concept[79].designation[0].value = "Vejen" -* concept[80].code = #0791 -* concept[80].display = "Viborg" -* concept[80].designation[0].language = #da -* concept[80].designation[0].value = "Viborg" -* concept[81].code = #0400 -* concept[81].display = "Bornholm" -* concept[81].designation[0].language = #da -* concept[81].designation[0].value = "Bornholm" -* concept[82].code = #0510 -* concept[82].display = "Haderslev" -* concept[82].designation[0].language = #da -* concept[82].designation[0].value = "Haderslev" -* concept[83].code = #0621 -* concept[83].display = "Kolding" -* concept[83].designation[0].language = #da -* concept[83].designation[0].value = "Kolding" -* concept[84].code = #0730 -* concept[84].display = "Randers" -* concept[84].designation[0].language = #da -* concept[84].designation[0].value = "Randers" -* concept[85].code = #0840 -* concept[85].display = "Rebild" -* concept[85].designation[0].language = #da -* concept[85].designation[0].value = "Rebild" -* concept[86].code = #0846 -* concept[86].display = "Mariagerfjord" -* concept[86].designation[0].language = #da -* concept[86].designation[0].value = "Mariagerfjord" -* concept[87].code = #0250 -* concept[87].display = "Frederikssund" -* concept[87].designation[0].language = #da -* concept[87].designation[0].value = "Frederikssund" -* concept[88].code = #0360 -* concept[88].display = "Lolland" -* concept[88].designation[0].language = #da -* concept[88].designation[0].value = "Lolland" -* concept[89].code = #0253 -* concept[89].display = "Greve" -* concept[89].designation[0].language = #da -* concept[89].designation[0].value = "Greve" -* concept[90].code = #0849 -* concept[90].display = "Jammerbugt" -* concept[90].designation[0].language = #da -* concept[90].designation[0].value = "Jammerbugt" -* concept[91].code = #0147 -* concept[91].display = "Frederiksberg" -* concept[91].designation[0].language = #da -* concept[91].designation[0].value = "Frederiksberg" -* concept[92].code = #0580 -* concept[92].display = "Aabenraa" -* concept[92].designation[0].language = #da -* concept[92].designation[0].value = "Aabenraa" -* concept[93].code = #0259 -* concept[93].display = "Køge" -* concept[93].designation[0].language = #da -* concept[93].designation[0].value = "Køge" -* concept[94].code = #0479 -* concept[94].display = "Svendborg" -* concept[94].designation[0].language = #da -* concept[94].designation[0].value = "Svendborg" -* concept[95].code = #0410 -* concept[95].display = "Middelfart" -* concept[95].designation[0].language = #da -* concept[95].designation[0].value = "Middelfart" -* concept[96].code = #0411 -* concept[96].display = "Christiansø" -* concept[96].designation[0].language = #da -* concept[96].designation[0].value = "Christiansø" -* concept[97].code = #0306 -* concept[97].display = "Odsherred" -* concept[97].designation[0].language = #da -* concept[97].designation[0].value = "Odsherred" -* concept[98].code = #0630 -* concept[98].display = "Vejle" -* concept[98].designation[0].language = #da -* concept[98].designation[0].value = "Vejle" \ No newline at end of file diff --git a/input/fsh/dk-core-municipality-codes-greenland-Instance.fsh b/input/fsh/dk-core-municipality-codes-greenland-Instance.fsh deleted file mode 100644 index d2818993b..000000000 --- a/input/fsh/dk-core-municipality-codes-greenland-Instance.fsh +++ /dev/null @@ -1,39 +0,0 @@ -Instance: dk-core-municipality-codes-greenland -InstanceOf: CodeSystem -Description: "Greenland municipality codes as defined by https://www.iso.org/obp/ui/#iso:code:3166:GL and https://cpr.dk/cpr-systemet/kommunesammenlaegninger-opdeling/groenland-2018/" -Usage: #definition -* url = "http://hl7.dk/fhir/core/CodeSystem/dk-core-municipality-codes-greenland" -* version = "0.9.0" -* name = "GreenlandMunicipalityCodes" -* status = #active -* experimental = false -* date = "2019-01-29T00:00:00+00:00" -* publisher = "HL7 Denmark" -* contact[0].name = "HL7 Denmark" -* contact[0].telecom[0].system = #url -* contact[0].telecom[0].value = "https://www.hl7.dk/" -* description = "Greenland municipality codes as defined by https://www.iso.org/obp/ui/#iso:code:3166:GL and https://cpr.dk/cpr-systemet/kommunesammenlaegninger-opdeling/groenland-2018/" -* jurisdiction[0] = urn:iso:std:iso:3166#DK -* copyright = "CC-BY-SA-4.0" -* caseSensitive = true -* content = #complete -* concept[0].code = #0955 -* concept[0].display = "Kujalleq" -* concept[0].designation[0].language = #da -* concept[0].designation[0].value = "Kujalleq" -* concept[1].code = #0956 -* concept[1].display = "Sermersooq" -* concept[1].designation[0].language = #da -* concept[1].designation[0].value = "Sermersooq" -* concept[2].code = #0957 -* concept[2].display = "Qeqqata" -* concept[2].designation[0].language = #da -* concept[2].designation[0].value = "Qeqqata" -* concept[3].code = #0959 -* concept[3].display = "Qeqertalik" -* concept[3].designation[0].language = #da -* concept[3].designation[0].value = "Qeqertalik" -* concept[4].code = #0960 -* concept[4].display = "Avannaata" -* concept[4].designation[0].language = #da -* concept[4].designation[0].value = "Avannaata" \ No newline at end of file diff --git a/input/fsh/dk-core-regional-subdivision-codes-Instance.fsh b/input/fsh/dk-core-regional-subdivision-codes-Instance.fsh deleted file mode 100644 index c87885714..000000000 --- a/input/fsh/dk-core-regional-subdivision-codes-Instance.fsh +++ /dev/null @@ -1,40 +0,0 @@ -Instance: dk-core-regional-subdivision-codes -InstanceOf: CodeSystem -Title: "" -Description: "Subdivision codes (Regional codes) used in Denmark as found on https://www.iso.org/obp/ui/#iso:code:3166:DK" -Usage: #definition -* caseSensitive = false -* url = "http://hl7.dk/fhir/core/CodeSystem/dk-core-regional-subdivision-codes" -* version = "0.9.0" -* name = "DKCoreRegionalSubdivisionCodes" -* status = #draft -* experimental = true -* date = "2019-02-02T00:00:00+00:00" -* publisher = "HL7 Denmark" -* contact[0].name = "HL7 Denmark" -* contact[0].telecom[0].system = #url -* contact[0].telecom[0].value = "https://www.hl7.dk/" -* description = "Subdivision codes (Regional codes) used in Denmark as found on https://www.iso.org/obp/ui/#iso:code:3166:DK" -* jurisdiction[0] = urn:iso:std:iso:3166#DK -* copyright = "CC-BY-SA-4.0" -* content = #complete -* concept[0].code = #DK-84 -* concept[0].display = "Capital Region of Denmark" -* concept[0].designation[0].language = #da -* concept[0].designation[0].value = "Hovedstaden" -* concept[1].code = #DK-82 -* concept[1].display = "Central Denmark Region" -* concept[1].designation[0].language = #da -* concept[1].designation[0].value = "Midtjylland" -* concept[2].code = #DK-81 -* concept[2].display = "Nord Denmark Region" -* concept[2].designation[0].language = #da -* concept[2].designation[0].value = "Nordjylland" -* concept[3].code = #DK-85 -* concept[3].display = "Region Zealand" -* concept[3].designation[0].language = #da -* concept[3].designation[0].value = "Sjælland" -* concept[4].code = #DK-83 -* concept[4].display = "Region of Southern Denmark" -* concept[4].designation[0].language = #da -* concept[4].designation[0].value = "Syddanmark" \ No newline at end of file diff --git a/input/fsh/dk-marital-status-of-CodeSystem-Instance.fsh b/input/fsh/dk-marital-status-of-CodeSystem-Instance.fsh deleted file mode 100644 index c979fb04b..000000000 --- a/input/fsh/dk-marital-status-of-CodeSystem-Instance.fsh +++ /dev/null @@ -1,29 +0,0 @@ -Instance: dk-marital-status-of-CodeSystem -InstanceOf: CodeSystem -Description: "DK marital statuses" -Usage: #definition -* caseSensitive = false -* id = "dk-marital-status" -* name = "DkCoreMaritalStatus" -* url = "http://hl7.dk/fhir/core/CodeSystem/dk-marital-status" -* version = "0.9.0" -* status = #active -* name = "DK Marital Status Codes" -* experimental = false -* date = "2019-01-29T00:00:00+00:00" -* publisher = "HL7 Denmark" -* contact[0].name = "HL7 Denmark" -* contact[0].telecom[0].system = #url -* contact[0].telecom[0].value = "https://www.hl7.dk/" -* description = "DK marital statuses" -* jurisdiction[0] = urn:iso:std:iso:3166#DK -* copyright = "CC-BY-SA-4.0" -* content = #complete -* concept[0].code = #P -* concept[0].display = "Registered partnership" -* concept[0].designation[0].language = #da -* concept[0].designation[0].value = "Registreret partnerskab" -* concept[1].code = #O -* concept[1].display = "Dissolved partnership" -* concept[1].designation[0].language = #da -* concept[1].designation[0].value = "Ophævet partnerskab" diff --git a/input/fsh/dk-marital-status-of-ValueSet-Instance.fsh b/input/fsh/dk-marital-status-of-ValueSet-Instance.fsh deleted file mode 100644 index 25c7c2760..000000000 --- a/input/fsh/dk-marital-status-of-ValueSet-Instance.fsh +++ /dev/null @@ -1,30 +0,0 @@ -Instance: dk-marital-status-of-ValueSet -InstanceOf: ValueSet -Title: "DK MaritalStatus" -Description: "This value set defines the set of codes that can be used to indicate the marital status of a person in Denmark." -Usage: #definition -* id = "dk-marital-status" -* url = "http://hl7.dk/fhir/core/ValueSet/dk-marital-status" -* version = "0.9.0" -* name = "DK Marital Status Codes" -* title = "DK MaritalStatus" -* status = #active -* experimental = false -* date = "2019-11-01T09:29:23+11:00" -* publisher = "HL7 Denmark" -* contact[0].name = "HL7 Denmark" -* contact[0].telecom[0].system = #url -* contact[0].telecom[0].value = "https://www.hl7.dk/" -* description = "This value set defines the set of codes that can be used to indicate the marital status of a person in Denmark." -* jurisdiction[0] = urn:iso:std:iso:3166#DK -* copyright = "CC-BY-SA-4.0" -* compose.include[0].valueSet[0] = "http://hl7.org/fhir/ValueSet/marital-status" -* compose.include[1].system = "http://hl7.dk/fhir/core/CodeSystem/dk-marital-status" -* compose.include[1].concept[0].code = #P -* compose.include[1].concept[0].display = "Registered partnership" -* compose.include[1].concept[0].designation[0].language = #da -* compose.include[1].concept[0].designation[0].value = "Registreret partnerskab" -* compose.include[1].concept[1].code = #O -* compose.include[1].concept[1].display = "Dissolved partnership" -* compose.include[1].concept[1].designation[0].language = #da -* compose.include[1].concept[1].designation[0].value = "Ophævet partnerskab" diff --git a/input/fsh/extensions.fsh b/input/fsh/extensions.fsh new file mode 100644 index 000000000..00d4b6d67 --- /dev/null +++ b/input/fsh/extensions.fsh @@ -0,0 +1,44 @@ +Extension: ConditionLastAssertedDate +Id: ConditionLastAssertedDate +Title: "ConditionLastAssertedDate" +Description: "Extension for the last date a Condition-instance was confirmed valid in its current state. E.g. with its current clinical- and verification status, stage and severity. Typically the last performed follow-up" + +* . ^short = "ConditionLastAssertedDate" + * ^definition = "Extension for the last date a Condition-instance was confirmed valid in its current state. E.g. with its current clinical- and verification status, stage and severity. Typically the last performed follow-up" +* value[x] only dateTime + +Extension: NotFollowedAnymore +Id: NotFollowedAnymore +Title: "NotFollowedAnymore" +Description: "Extension for the date where a condition lost focus in a specific clinical context" +* . ^short = "NotFollowedAnymore" + * ^definition = "Extension for the date where a condition lost focus in a specific clinical context" +* value[x] only dateTime + +Extension: RegionalSubDivisionCodes +Id: dk-core-RegionalSubDivisionCodes +Title: "Danish Core Regional Sub Division Codes Extension" +Description: "Identifier holding the official organization identifier for a danish region" +* ^status = #draft +* ^context[0].type = #element +* ^context[=].expression = "Address" +* ^context[+].type = #element +* ^context[=].expression = "Patient.address" +* . ^short = "Danish Core Regional Sub Division Codes Extension" + * ^definition = "Identifier holding the official organization identifier for a danish region" +* value[x] only CodeableConcept + * coding from RegionalSubdivisionCodes (required) + +Extension: MunicipalityCodes +Id: dk-core-municipalityCodes +Title: "Danish Core Municipality codes" +Description: "Identifier holding the official identifier for a danish municipality" +* ^status = #draft +* ^context[0].type = #element +* ^context[=].expression = "Patient.address" +* ^context[+].type = #element +* ^context[=].expression = "Address" +* . ^short = "Danish Core Municipality codes" + * ^definition = "Identifier holding the official identifier for a danish municipality" +* value[x] only CodeableConcept + * coding from MunicipalityCodes (required) \ No newline at end of file diff --git a/input/fsh/instances.fsh b/input/fsh/instances.fsh new file mode 100644 index 000000000..9397d70f1 --- /dev/null +++ b/input/fsh/instances.fsh @@ -0,0 +1,371 @@ +Instance: cpr +InstanceOf: NamingSystem +Title: "cpr" +Description: "The Danish civil registration system (\"CPR\") encompasses basic personal data about anyone with a civil registration number. A civil registration number shall be allocated to anyone who: 1) is registered in the national register in Denmark on the grounds of birth or relocation from abroad; 2) is included under Arbejdsmarkedets TillægsPension (ATP); 3) according to the tax authorities, is required to have a civil registration number for the purpose of tax processing in Denmark." +Usage: #definition +* name = "DkCoreDanishCivilRegistrationSystem" +* status = #active +* kind = #identifier +* date = "1968-04-02" +* publisher = "HL7 Denmark" +* contact.name = "HL7 Denmark" +* contact.telecom.system = #url +* contact.telecom.value = "https://www.hl7.dk/" +* responsible = "CPR-kontoret, Økonomi- og Indenrigsministeriets departement" +* description = "The Danish civil registration system (\"CPR\") encompasses basic personal data about anyone with a civil registration number. A civil registration number shall be allocated to anyone who: 1) is registered in the national register in Denmark on the grounds of birth or relocation from abroad; 2) is included under Arbejdsmarkedets TillægsPension (ATP); 3) according to the tax authorities, is required to have a civil registration number for the purpose of tax processing in Denmark." +* jurisdiction = urn:iso:std:iso:3166#DK +* uniqueId[0].type = #oid +* uniqueId[=].value = "1.2.208.176.1.2" +* uniqueId[+].type = #uri +* uniqueId[=].value = "http://www.cpr.dk/cpr-systemet" + +Instance: sor +InstanceOf: NamingSystem +Title: "sor" +Description: "SOR is provided by the Danish Health Data Authority under the Danish Ministry of Health. The register holds organizations within the Danish health sector, their geographical and virtual addresses as well as codes for their identification and for EDI-communication. Danish Health Data Authority is responsible for issuing and publishing codes to identify organizations across health care sectors and related public and private services. SOR includes organizational data on hospitals, the primary care sector (physiotherapists, general practitioners, dentists etc.) and municipal health service organizations as well as non-health care organizations that need to be able to receive data from the former." +Usage: #definition +* name = "DkCoreSor" +* status = #active +* kind = #identifier +* date = "2021-03-14T16:56:07+01:00" +* publisher = "HL7 Denmark" +* contact.name = "HL7 Denmark" +* contact.telecom.system = #url +* contact.telecom.value = "https://www.hl7.dk/" +* responsible = "The Health Service's Organizational Register was developed in the National Board of Health in 2006-2007 in cooperation with the regions and MedCom" +* type = $v2-0203#PRN "Provider number" +* description = "SOR is provided by the Danish Health Data Authority under the Danish Ministry of Health. The register holds organizations within the Danish health sector, their geographical and virtual addresses as well as codes for their identification and for EDI-communication. Danish Health Data Authority is responsible for issuing and publishing codes to identify organizations across health care sectors and related public and private services. SOR includes organizational data on hospitals, the primary care sector (physiotherapists, general practitioners, dentists etc.) and municipal health service organizations as well as non-health care organizations that need to be able to receive data from the former." +* jurisdiction = urn:iso:std:iso:3166#DK +* uniqueId[0].type = #oid +* uniqueId[=].value = "urn:oid:1.2.208.176.1.1" +* uniqueId[+].type = #uri +* uniqueId[=].value = "https://sundhedsdatastyrelsen.dk/da/registre-og-services/om-sor" + +Instance: HenvisningFraLageTilSygehus +InstanceOf: ServiceRequest +Title: "Henvisning vedr. modermærkekræft" +Description: "Henvisning fra læge til sygehus vedr. mistanke om at John har modermærkekræft" +Usage: #example +* requester = Reference(Organization/LaegerneHasserisBymidte) +* reasonCode.text = "John henvises til onkologisk specialundersøgelse hurtigts muligt pga mistanke om modermærkekræft" +* reasonReference = Reference(Condition/JohnMelanoma) +* subject = Reference(Patient/john) +* authoredOn = "2021-05-01" +* status = #active +* intent = #proposal +* priority = #asap + +Instance: dk-marital-status +InstanceOf: ValueSet +Description: "This value set defines the set of codes that can be used to indicate the marital status of a person in Denmark." +Usage: #definition +* url = "http://hl7.dk/fhir/core/ValueSet/dk-marital-status" +* version = "0.9.0" +* title = "DK MaritalStatus" +* status = #active +* experimental = false +* date = "2019-11-01T09:29:23+11:00" +* publisher = "HL7 Denmark" +* contact.name = "HL7 Denmark" +* contact.telecom.system = #url +* contact.telecom.value = "https://www.hl7.dk/" +* description = "This value set defines the set of codes that can be used to indicate the marital status of a person in Denmark." +* jurisdiction = urn:iso:std:iso:3166#DK +* copyright = "CC-BY-SA-4.0" +* compose.include[0].valueSet = "http://hl7.org/fhir/ValueSet/marital-status" +* compose.include[+].system = "http://hl7.dk/fhir/core/CodeSystem/dk-marital-status" +* compose.include[=].concept[0].code = #P +* compose.include[=].concept[=].display = "Registered partnership" +* compose.include[=].concept[=].designation.language = #da +* compose.include[=].concept[=].designation.value = "Registreret partnerskab" +* compose.include[=].concept[+].code = #O +* compose.include[=].concept[=].display = "Dissolved partnership" +* compose.include[=].concept[=].designation.language = #da +* compose.include[=].concept[=].designation.value = "Ophævet partnerskab" + +Instance: sor-organization-type +InstanceOf: ValueSet +Description: "Value set used for indicating the organization type for organizations from SOR" +Usage: #definition +* url = "http://hl7.dk/fhir/core/ValueSet/sor-organization-type" +* name = "SorOrganizationType" +* status = #active +* title = "DK SOR Organization Type" +* experimental = false +* description = "Value set used for indicating the organization type for organizations from SOR" +* copyright = "This value set includes content from SNOMED CT, which is copyright © 2002+ International Health Terminology Standards Development Organisation (IHTSDO), and distributed by agreement between IHTSDO and HL7. Implementer use of SNOMED CT is not covered by this agreement" +* compose.include[0].system = "http://snomed.info/sct" +* compose.include[=].version = "http://snomed.info/sct/554471000005108" +* compose.include[=].concept[0].code = #554221000005108 +* compose.include[=].concept[=].display = "Dwilling place" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Dwilling place" +* compose.include[=].concept[+].code = #546821000005103 +* compose.include[=].concept[=].display = "Occupational therapy clinic" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Occupational therapy clinic" +* compose.include[=].concept[+].code = #547011000005103 +* compose.include[=].concept[=].display = "Physiotherapy clinic" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Physiotherapy clinic" +* compose.include[=].concept[+].code = #546811000005109 +* compose.include[=].concept[=].display = "Rehabilitation center" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Rehabilitation center" +* compose.include[=].concept[+].code = #550621000005101 +* compose.include[=].concept[=].display = "District nursing" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "District nursing" +* compose.include[=].concept[+].code = #550631000005103 +* compose.include[=].concept[=].display = "Midwife clinic" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Midwife clinic" +* compose.include[=].concept[+].code = #550641000005106 +* compose.include[=].concept[=].display = "Chiropractic clinic" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Chiropractic clinic" +* compose.include[=].concept[+].code = #550651000005108 +* compose.include[=].concept[=].display = "Medical laboratory" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Medical laboratory" +* compose.include[=].concept[+].code = #550661000005105 +* compose.include[=].concept[=].display = "Emergency medical service" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Emergency medical service" +* compose.include[=].concept[+].code = #554211000005102 +* compose.include[=].concept[=].display = "Prehospital unit" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Prehospital unit" +* compose.include[=].concept[+].code = #550711000005101 +* compose.include[=].concept[=].display = "Psychological counseling clinic" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Psychological counseling clinic" +* compose.include[=].concept[+].code = #550671000005100 +* compose.include[=].concept[=].display = "Medical specialist practice site" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Medical specialist practice site" +* compose.include[=].concept[+].code = #554061000005105 +* compose.include[=].concept[=].display = "Chiropodist clinic" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Chiropodist clinic" +* compose.include[=].concept[+].code = #554041000005106 +* compose.include[=].concept[=].display = "Health administration" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Health administration" +* compose.include[=].concept[+].code = #554021000005101 +* compose.include[=].concept[=].display = "Health visitors" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Health visitors" +* compose.include[=].concept[+].code = #550681000005102 +* compose.include[=].concept[=].display = "dental practice" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Dental practice" +* compose.include[=].concept[+].code = #550691000005104 +* compose.include[=].concept[=].display = "Dental care clinic" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Dental care clinic" +* compose.include[=].concept[+].code = #550701000005104 +* compose.include[=].concept[=].display = "Dental technician clinic" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Dental technician clinic" +* compose.include[=].concept[+].code = #554231000005106 +* compose.include[=].concept[=].display = "Vaccination clinic" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Vaccination clinic" +* compose.include[=].concept[+].code = #554051000005108 +* compose.include[=].concept[=].display = "Reflexology clinic" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Reflexology clinic" +* compose.include[=].concept[+].code = #550811000005108 +* compose.include[=].concept[=].display = "Administrative unit" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Administrative unit" +* compose.include[=].concept[+].code = #547211000005108 +* compose.include[=].concept[=].display = "Municipality" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Municipality" +* compose.include[=].concept[+].code = #550891000005100 +* compose.include[=].concept[=].display = "Private" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Private" +* compose.include[=].concept[+].code = #550881000005103 +* compose.include[=].concept[=].display = "Region" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Region" +* compose.include[=].concept[+].code = #550411000005105 +* compose.include[=].concept[=].display = "Other health institution" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Other health institution" +* compose.include[=].concept[+].code = #554851000005102 +* compose.include[=].concept[=].display = "Asylum centre" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Asylum centre" +* compose.include[=].concept[+].code = #550861000005106 +* compose.include[=].concept[=].display = "Physiotherapy and occupational clinic" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Physiotherapy and occupational clinic" +* compose.include[=].concept[+].code = #554881000005108 +* compose.include[=].concept[=].display = "Handicap and psychiatry" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Handicap and psychiatry" +* compose.include[=].concept[+].code = #554861000005100 +* compose.include[=].concept[=].display = "Handicap" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Handicap" +* compose.include[=].concept[+].code = #554821000005109 +* compose.include[=].concept[=].display = "Home care" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Home care" +* compose.include[=].concept[+].code = #554411000005101 +* compose.include[=].concept[=].display = "Employment agency" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Employment agency" +* compose.include[=].concept[+].code = #554871000005105 +* compose.include[=].concept[=].display = "Psychiatry" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Psychiatry" +* compose.include[=].concept[+].code = #550821000005102 +* compose.include[=].concept[=].display = "Service unit" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Service unit" +* compose.include[=].concept[+].code = #550871000005101 +* compose.include[=].concept[=].display = "Emergency admission unit" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Emergency admission unit" +* compose.include[=].concept[+].code = #554241000005103 +* compose.include[=].concept[=].display = "Technical location number" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Technical location number" +* compose.include[=].concept[+].code = #550841000005107 +* compose.include[=].concept[=].display = "Research unit" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Research unit" +* compose.include[=].concept[+].code = #550851000005109 +* compose.include[=].concept[=].display = "Clinical unit" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Clinical unit" +* compose.include[=].concept[+].code = #551611000005102 +* compose.include[=].concept[=].display = "Surgical ward" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Surgical ward" +* compose.include[=].concept[+].code = #554071000005100 +* compose.include[=].concept[=].display = "Hospital pharmacy" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Hospital pharmacy" +* compose.include[=].concept[+].code = #550831000005104 +* compose.include[=].concept[=].display = "Education unit" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Education unit" +* compose.include[=].concept[+].code = #554031000005103 +* compose.include[=].concept[=].display = "dietician clinic" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Dietician clinic" +* compose.include[=].concept[+].code = #557511000005107 +* compose.include[=].concept[=].display = "Acupuncture clinic" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Acupuncture clinic" +* compose.include[=].concept[+].code = #557501000005109 +* compose.include[=].concept[=].display = "Pharmacy branch" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Pharmacy branch" +* compose.include[=].concept[+].code = #557531000005103 +* compose.include[=].concept[=].display = "Prosthetist clinic" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Prosthetist clinic" +* compose.include[=].concept[+].code = #557591000005104 +* compose.include[=].concept[=].display = "Web-based care" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Web-based care" +* compose.include[=].concept[+].code = #557521000005101 +* compose.include[=].concept[=].display = "Alternative treatment clinic" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Alternative treatment clinic" +* compose.include[=].concept[+].code = #557561000005105 +* compose.include[=].concept[=].display = "Consulting firm" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Consulting firm" +* compose.include[=].concept[+].code = #557541000005106 +* compose.include[=].concept[=].display = "Cosmetic treatment clinic" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Cosmetic treatment clinic" +* compose.include[=].concept[+].code = #557581000005102 +* compose.include[=].concept[=].display = "Optometrist or optician clinic" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Optometrist or optician clinic" +* compose.include[=].concept[+].code = #556841000005105 +* compose.include[=].concept[=].display = "Social psychological counseling" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Social psychological counseling" +* compose.include[=].concept[+].code = #557671000005101 +* compose.include[=].concept[=].display = "Osteopathy clinic" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Osteopathy clinic" +* compose.include[+].system = "http://snomed.info/sct" +* compose.include[=].concept[0].code = #398070004 +* compose.include[=].concept[=].display = "State" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "State" +* compose.include[=].concept[+].code = #394761003 +* compose.include[=].concept[=].display = "General practitioner practice site" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "General practitioner practice site" +* compose.include[=].concept[+].code = #20078004 +* compose.include[=].concept[=].display = "Substance abuse treatment center" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Substance abuse treatment center" +* compose.include[=].concept[+].code = #722173008 +* compose.include[=].concept[=].display = "Prison based care site" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Prison based care site" +* compose.include[=].concept[+].code = #702871004 +* compose.include[=].concept[=].display = "Infertility clinic" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Infertility clinic" +* compose.include[=].concept[+].code = #276037005 +* compose.include[=].concept[=].display = "Volunteer helper" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Volunteer helper" +* compose.include[=].concept[+].code = #22232009 +* compose.include[=].concept[=].display = "Hospital" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Hospital" +* compose.include[=].concept[+].code = #702824005 +* compose.include[=].concept[=].display = "Audiology clinic" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Audiology clinic" +* compose.include[=].concept[+].code = #42665001 +* compose.include[=].concept[=].display = "Nursing home" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Nursing home" +* compose.include[=].concept[+].code = #264361005 +* compose.include[=].concept[=].display = "Health centre" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Health centre" +* compose.include[=].concept[+].code = #703069008 +* compose.include[=].concept[=].display = "Nurse practitioner clinic" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Nurse practitioner clinic" +* compose.include[=].concept[+].code = #309964003 +* compose.include[=].concept[=].display = "Radiology department" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Radiology department" +* compose.include[=].concept[+].code = #309904001 +* compose.include[=].concept[=].display = "Intensive care unit" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Intensive care unit" +* compose.include[=].concept[+].code = #309939001 +* compose.include[=].concept[=].display = "Palliative care department" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Palliative care department" +* compose.include[=].concept[+].code = #225728007 +* compose.include[=].concept[=].display = "Accident and Emergency department" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Accident and Emergency department" +* compose.include[=].concept[+].code = #255203001 +* compose.include[=].concept[=].display = "Additional values" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Additional values" +* compose.include[=].concept[+].code = #264372000 +* compose.include[=].concept[=].display = "Pharmacy" +* compose.include[=].concept[=].designation.language = #en-US +* compose.include[=].concept[=].designation.value = "Pharmacy" \ No newline at end of file diff --git a/input/fsh/marital-status-unknown-usage-Invariant.fsh b/input/fsh/marital-status-unknown-usage-Invariant.fsh deleted file mode 100644 index 0dd5cd8f2..000000000 --- a/input/fsh/marital-status-unknown-usage-Invariant.fsh +++ /dev/null @@ -1,4 +0,0 @@ -Invariant: marital-status-unknown-usage -Description: "Status in maritalStatus is unknown in a danish context. Consider mapping the value to UNK" -Severity: #warning -Expression: "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()" \ No newline at end of file diff --git a/input/fsh/min-digits-sor-Invariant.fsh b/input/fsh/min-digits-sor-Invariant.fsh deleted file mode 100644 index ce62ab9c7..000000000 --- a/input/fsh/min-digits-sor-Invariant.fsh +++ /dev/null @@ -1,4 +0,0 @@ -Invariant: min-digits-sor -Description: "SOR Identifiers are at minimum 11 digits long. See https://sundhedsdatastyrelsen.dk/-/media/sds/filer/rammer-og-retningslinjer/organisationsregistrering/adgang-til-sor/info-om-opbygningen-af-sor-ider.pdf" -Severity: #error -Expression: "matches('^([0-9]){11,}$')" \ No newline at end of file diff --git a/input/fsh/sor-Instance.fsh b/input/fsh/sor-Instance.fsh deleted file mode 100644 index 36276bd57..000000000 --- a/input/fsh/sor-Instance.fsh +++ /dev/null @@ -1,20 +0,0 @@ -Instance: sor -InstanceOf: NamingSystem -Description: "SOR is provided by the Danish Health Data Authority under the Danish Ministry of Health. The register holds organizations within the Danish health sector, their geographical and virtual addresses as well as codes for their identification and for EDI-communication. Danish Health Data Authority is responsible for issuing and publishing codes to identify organizations across health care sectors and related public and private services. SOR includes organizational data on hospitals, the primary care sector (physiotherapists, general practitioners, dentists etc.) and municipal health service organizations as well as non-health care organizations that need to be able to receive data from the former." -Usage: #definition -* name = "DkCoreSor" -* status = #active -* kind = #identifier -* date = "2021-03-14T16:56:07+01:00" -* publisher = "HL7 Denmark" -* contact[0].name = "HL7 Denmark" -* contact[0].telecom[0].system = #url -* contact[0].telecom[0].value = "https://www.hl7.dk/" -* responsible = "The Health Service's Organizational Register was developed in the National Board of Health in 2006-2007 in cooperation with the regions and MedCom" -* type = $v2-0203#PRN "Provider number" -* description = "SOR is provided by the Danish Health Data Authority under the Danish Ministry of Health. The register holds organizations within the Danish health sector, their geographical and virtual addresses as well as codes for their identification and for EDI-communication. Danish Health Data Authority is responsible for issuing and publishing codes to identify organizations across health care sectors and related public and private services. SOR includes organizational data on hospitals, the primary care sector (physiotherapists, general practitioners, dentists etc.) and municipal health service organizations as well as non-health care organizations that need to be able to receive data from the former." -* jurisdiction[0] = urn:iso:std:iso:3166#DK -* uniqueId[0].type = #oid -* uniqueId[0].value = "urn:oid:1.2.208.176.1.1" -* uniqueId[1].type = #uri -* uniqueId[1].value = "https://sundhedsdatastyrelsen.dk/da/registre-og-services/om-sor" \ No newline at end of file diff --git a/input/fsh/uuid-Invariant.fsh b/input/fsh/uuid-Invariant.fsh deleted file mode 100644 index 0f9ee0da3..000000000 --- a/input/fsh/uuid-Invariant.fsh +++ /dev/null @@ -1,4 +0,0 @@ -Invariant: uuid -Description: "General UUID expression" -Severity: #error -Expression: "value.matches('urn:uuid:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}')" \ No newline at end of file diff --git a/input/fsh/uuidv5-Invariant.fsh b/input/fsh/uuidv5-Invariant.fsh deleted file mode 100644 index 59c8d8f95..000000000 --- a/input/fsh/uuidv5-Invariant.fsh +++ /dev/null @@ -1,4 +0,0 @@ -Invariant: uuidv5 -Description: "LPR3 episode of care identifiers must conform to a UUIDv5" -Severity: #error -Expression: "value.matches('urn:uuid:[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[5][a-fA-F0-9]{3}-[89aAbB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}')" \ No newline at end of file diff --git a/input/fsh/valueSets.fsh b/input/fsh/valueSets.fsh new file mode 100644 index 000000000..b49c5d7fe --- /dev/null +++ b/input/fsh/valueSets.fsh @@ -0,0 +1,24 @@ +ValueSet: DkCoreProfessionGroupValueSet +Id: DkCoreProfessionGroupValueSet +Title: "DK Profession Group" +Description: "DK Profession Group codes" +* ^status = #active +* ^experimental = false +* include codes from system DkCoreProfessionGroupCodes + +ValueSet: MunicipalityCodes +Id: dk-core-MunicipalityCodes +Title: "DK Municipality Codes" +Description: "Municipality codes used in Denmark" +* ^status = #draft +* ^experimental = true +* include codes from system MunicipalityCodes +* include codes from system GreenlandMunicipalityCodes + +ValueSet: RegionalSubdivisionCodes +Id: dk-core-RegionalSubDivisionCodes +Title: "DK Regional Subdivision Codes" +Description: "Subdivision codes (Regional codes) used in Denmark" +* ^status = #draft +* ^experimental = true +* include codes from system DKCoreRegionalSubdivisionCodes \ No newline at end of file diff --git a/input/pagecontent/StructureDefinition-dk-core-condition-intro.md b/input/pagecontent/StructureDefinition-dk-core-condition-intro.md new file mode 100644 index 000000000..600b7c671 --- /dev/null +++ b/input/pagecontent/StructureDefinition-dk-core-condition-intro.md @@ -0,0 +1,20 @@ +### Scope and usage +The Danish Core Condition profile is intended to encapsulate condition information, as used in the Danish health sector. In dk-core, conditions have been constrained to only containing conditions as stated by health or social sector practitioners This means that conditions, that patients or citizens assert themselves to have, should not be represented using this profile. Patients' own assessments can, in most cases, be represented as Observations or QuestionnaireResponses. However, in some use cases, where the patient asserts the problem, that leads to healthcare interventions or own interventions. It does make sense to represent these as Conditions. In this case, use the international standard [Condition](https://www.hl7.org/fhir/condition.html), not this dk-core Condition profile. + +This way of constraining the Condition profile is within the boundaries of what the Danish Health Data Authority and Local Government Denmark define as a Condition. +* The Danish Health Data Authority, [Begrebsbasen](https://sundhedsdata.iterm.dk/): Helbredstilstand er en tilstand vedrørende helbred der aktuelt vurderes med henblik på sundhedsintervention +* Local Government Denmark, [Fælleskommunale rammearkitektur, FKI](http://info.rammearkitektur.dk/SocialOgSundhed/FKI/ClassDiagram/d2ca33a5-a53c-4f83-82e5-0f9f7ce7a325.htm): Fokustilstand er en borgers helbredsmæssige, funktionsmæssige og/eller sociale situation, på et givet tidspunkt, der er anledning til faglig bekymring, og vurderes mhp. indsats + +We use the Condition profile for describing both conditions that are true for an encounter, and for conditions that are true for a periode of time. "In FHIR, we distinguish between the two using the Condition.category that can take the two values problem-list-item og encounter-diagnosis. In this list, examples of use is compiled: +* LPR3 conditions are encounter-diagnosis +* General practioners can code each encounter with an ICPC code. This is an encounter-diagnosis +* Municipality conditions i.e. FSIII-conditions and FFB-subthemes are problem-list-items +* General practitioners, in some cases, follow a patient condition for a longer periode of time (e.g. high blood pressure, high cholesterol, COPD), and some systems support care pathways for these conditions. These conditions may be categorized as problem-list-items. + +Given that we have a condition, which is a problem-list-item, ending the condition have two meanings: +* The first is that the patient no longer has the condition e.g. a pressure ulcer has healed. In this case, Condition.clinicalStatus=inactive and Condition.abatementTime is the date where the condition was no longer a problem. +* The second meaning of "ended" is that the condition falls out of focus in a professional context e.g. if the patient moves, or another professional group takes over the care for the patient. A Condition no longer in focus can be represented in two ways: + * The Condition.category looses its "problem-list-item" flag. The idea is to state that from a patient viewpoint the condition has not changed, but in this professional context it is no longer in focus. + * The Condition.extension.NotFollowedAnymore is populated with the date that it lost focus in a specific professional context. + +The Condition profile cover both primary sector, secondary sector (medical specialists ([DA] speciallæger) and hospitals) and municipality cases. As such the profile should be usable in most Danish contexts. diff --git a/input/pagecontent/StructureDefinition-dk-core-organization-intro.md b/input/pagecontent/StructureDefinition-dk-core-organization-intro.md index ca53c4e9f..4ef976176 100644 --- a/input/pagecontent/StructureDefinition-dk-core-organization-intro.md +++ b/input/pagecontent/StructureDefinition-dk-core-organization-intro.md @@ -1,5 +1,5 @@ ### Scope and usage -The Danish Core Organization profile is intended to encapsulate the most common and basic data model of organizations in Danish healthcare system, 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. Organization is broardly defined (just as it is in the original FHIR ressource) and may be used to define all organizations directly or indirectly involved in citizen and patient care. +The Danish Core Organization profile is intended to encapsulate the most common and basic data model of organizations in Danish healthcare system, covering both primary sector, secondary sector (medical specialists ([DA] speciallæger) and hospitals) and municipality cases. As such the profile should be usable in most Danish contexts. Organization is broardly defined (just as it is in the original FHIR ressource) and may be used to define all organizations directly or indirectly involved in citizen and patient care. Please notice, that an organization shall always have at least one identifier. Some identifiers are common in a Danish context, why they are included in the profile, see the list below. However, it is allowed to add a new identifier for a special usage. - *EAN identifier*: this specifically, refers to what is commonly known as the **EAN** number - which in fact is a [Global Location Number](https://www.gs1.org/standards/id-keys/gln). @@ -9,3 +9,7 @@ Please notice, that an organization shall always have at least one identifier. S - *CVR identifier*: an official company identifier for Danish companies. - *Kommunal identifier*: the official identifier for a Danish municipality. - *Regional identifier*: the official organization identifier for a Danish region. + +#### Representing a general practitioner + +When using the Danish Core Organization profile for representing a general practitioner, it is recommended to use both a [SOR identifier](https://hl7.dk/fhir/core/StructureDefinition-dk-core-organization-definitions.html#Organization.identifier:SOR-ID) and an [ydernummer identifier](https://hl7.dk/fhir/core/StructureDefinition-dk-core-organization-definitions.html#Organization.identifier:Ydernummer.id). It is recommended that the SOR identifier is on the ‘sundhedsinstitution’ level from the SOR hierarchy. The same SOR identifier can be used for multiple Organization instances of different general practitioner’s practices, and therefore the ydernummer identifier will be the unique identifier for a Danish GP. \ No newline at end of file diff --git a/input/pagecontent/StructureDefinition-dk-core-patient-intro.md b/input/pagecontent/StructureDefinition-dk-core-patient-intro.md index 4bfeaf8a9..f1e8135c5 100644 --- a/input/pagecontent/StructureDefinition-dk-core-patient-intro.md +++ b/input/pagecontent/StructureDefinition-dk-core-patient-intro.md @@ -1,14 +1,18 @@ -## 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. +### Scope and usage +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, secondary sector (specialty doctors and hospitals) and municipality cases. As such the profile should be usable in most Danish contexts. Note that the profile is usable for those that recieve health and social care in muicipalities, even in contexts where they are more commonly known as citizens ([DA] borgere). -## Use of patient identifiers +#### Patient identifiers This patient profile currently only reflects the use of the established national danish patient identifiers called [CPR](https://cpr.dk/). More official identifiers are expected to be used and profiled in the future, eg: * [eID](https://ec.europa.eu/digital-single-market/en/trust-services-and-eid) * [Official replacement CPR numbers](https://cpr.dk/cpr-systemet/erstatningspersonnummer-i-eksterne-systemer/) * **catastrophe** CPR numbers. -## Use of security label on patients +#### DkCoreCprIdentifier + +The element identifier.type describe the specific purpose of an identifier. It is desired to use the code 'NNDNK' from the CodeSystem [IdentifierType](https://terminology.hl7.org/4.0.0/CodeSystem-v2-0203.html) as the type for [DkCoreCprIdentifier](https://hl7.dk/fhir/core/StructureDefinition-dk-core-cpr-identifier.html). However, it is currently not recommended to use this code, due to known problems with the validation tool when validating the code 'NNDNK'. + +### Use of security label on patients Danish citizens that have requested name and address protection ([Navne- og adressebeskyttelse](https://www.retsinformation.dk/eli/lta/2017/646#idee1fb7b6-c7e7-429d-a738-881c5e486fa6)) should be labeled with the security label as follows: ``` diff --git a/input/pagecontent/StructureDefinition-dk-core-practitioner-intro.md b/input/pagecontent/StructureDefinition-dk-core-practitioner-intro.md index 52390fab9..d2eaed696 100644 --- a/input/pagecontent/StructureDefinition-dk-core-practitioner-intro.md +++ b/input/pagecontent/StructureDefinition-dk-core-practitioner-intro.md @@ -1,7 +1,7 @@ ### Scope and usage -The Danish Core Practitioner profile is intended to encapsulate the most common and basic data model of practitioners 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. Practitioner is broardly defined (just as it is in the original FHIR ressource), and may be used to define all the professionals involvel directly or indirectly in citizen and patient care. +The Danish Core Practitioner profile is intended to encapsulate the most common and basic data model of practitioners in Danish healthcare systems covering both primary sector, secondary sector (medical specialists ([DA] speciallæger) and hospitals) and municipality cases. As such the profile should be usable in most Danish contexts. Practitioner is broardly defined (just as it is in the original FHIR ressource), and may be used to define all the professionals involvel directly or indirectly in citizen and patient care. -Be especially aware that the Practitioner profile is only used for describing persons and their qualifications, independent of their current or previous professional roles. Use the international PractitionerRole ressource, if roles of a practitioner needs to be described. This also means that Practitioners are not classified as "Chief Physician" or other titles that denotes their prosition. The profile is simpel and focuses on personal qualifications. +Be especially aware that the Practitioner profile is only used for describing persons and their qualifications, independent of their current or previous professional roles. Use the international PractitionerRole ressource, if roles of a practitioner needs to be described. This also means that Practitioners are not classified as "Chief Physician" or other titles that denotes their prosition. The profile is simple and focuses on personal qualifications. -The qualification.code has an extendable ValueSet that includes all official authorizations as defined by https://www.retsinformation.dk/eli/lta/2019/731, and derived from http://autregwebservice.sst.dk/autregservice.asmx/GetAllProfessionGroups. In the original set, Code (5176) was not uniqe, and have been converted to 5176a and 5176b respectively. However, the official codes should not limit the use of the practioner profile. -E.g. If you need to represent another professional group e.g. social worker OR if you need to represent a qualification, important for a local context e.g. that someone has completed advanced pressure ulcer care training you have different options. You may for example extend the valueSet, add the qualification as plain text, slice the qualification attribute or choose not represent the qualification. \ No newline at end of file +The qualification.code has an extendable ValueSet that includes all official authorizations as defined by [https://www.retsinformation.dk/eli/lta/2019/731](https://www.retsinformation.dk/eli/lta/2019/731), and derived from [http://autregwebservice.sst.dk/autregservice.asmx/GetAllProfessionGroups](http://autregwebservice.sst.dk/autregservice.asmx/GetAllProfessionGroups). In the original set, Code (5176) was not uniqe, and have been converted to 5176a and 5176b respectively. However, the official codes should not limit the use of the practioner profile. +E.g. if you need to represent another professional group e.g. social worker OR if you need to represent a qualification, important for a local context e.g. that someone has completed advanced pressure ulcer care training you have different options. You may for example extend the valueSet, add the qualification as plain text, slice the qualification attribute or choose not to represent the qualification. \ No newline at end of file diff --git a/input/pagecontent/index.md b/input/pagecontent/index.md index 31b20d473..2161d377b 100644 --- a/input/pagecontent/index.md +++ b/input/pagecontent/index.md @@ -8,6 +8,7 @@ This document is a working specification that is expected to be implemented and **Note**: This implementation guide is not (yet) a FHIR API specification, this will be a goal for the next iteration. ### Scope +The target group of this specification is any party that wants to specify FHIR standards for use in the Danish Health Sector. As a core-specification, a party that wants to use the specification should inherit from dk-core and build use-case specific profiles on top. As such, dk-core does not provide profiles for specific use use cases out-of-the-box. This document presents Danish use concepts defined via FHIR processable artefacts: @@ -15,8 +16,9 @@ This document presents Danish use concepts defined via FHIR processable artefact * [Extensions](extensions.html) - are FHIR extensions that are added for local use, covering needed Danish concepts * [Terminologies](terminology.html) - are defined or referenced code systems and value sets for Danish context -### Governance +dk-core is regularily approved by HL7 Denmark and added to the catalogue of approved standards governed by The Danish Health Data Authority, after consideration by RUSA (Rådgivende Udvalg for Standarder og Arkitektur). See the exact approvals for each version in the history page. +### Governance FHIR profiles are managed under HL7 Denmark in the HL7 Danish FHIR working group: * [Source](https://github.com/hl7dk/dk-core) @@ -28,3 +30,43 @@ This guide is the product of collaborative work undertaken with participants fro * [Danish FHIR Implementers Community](https://confluence.hl7.org/display/HD/DK+FHIR+SIG) * [HL7 Denmark](https://www.hl7.dk) + +### Language +The main language of this implementation guide, and the profiles in it, is English. Content that does not have an official English term uses a Danish term instead. Sometimes terms are expalined using both Danish and English. Danish terms and explanaitions are prefixed with 'Da' + +### Connection between dk-core and common Danish architectures and standards +HL7 Denmark includes common Danish architectures and standards if relevant, when content is added to dk-core. This section provides information about principle decisions as well as more specific ones that require explainantion. + +#### Principle decisions +* HL7 Denmark considers Danish legislation as the first source of truth when designing models, HL7 Denmark seeks to represent known named entities relevant for health data interoperability truthfully. +* HL7 Denmark upholds the requirements of the FHIR standard whenever it is possible within the bounderies of the Danish legislation. +* Enitites that are named both in the FHIR standard and Danish legislation, keeps FHIR naming and requirements, but should explain its relation to Danish names/requirements. +* Danish standards and arhitectures are considered when designing FHIR profiles. HL7 Denmark uses them when they are relevant for interoperability of health data, and when they are compatiple with the FHIR standard. Often public information and data models used as basis of public registries are too detailed, to warrant replication in a FHIR standard. E.g. The Organization profile references organisation registries such as SOR and FK-ORG rather than re-constructing each of their attributes in the FHIR-profile, only attributes relevant for interoperability is provided in the FHIR profiles. + +#### Specific decisions +* Patient.maritalStatus uses the extendable ValueSet required by the FHIR standard. However, Danish legislation and registries have two additional statuses not covered by the international ValueSet, so these two codes are added in dk-core. +* Several basic resources such as Patient and Organization has an adress. In dk-core these adresses use the [FHIR datatype](http://hl7.org/fhir/R4/datatypes.html#Address), which is very basic compared to the [Danish Adress standard](https://arkitektur.digst.dk/adresse). However, adresses can be refered faithfully using the international standard e.g. Adress.text can be mapped directly to the Danish Adresse.adressebetegnelse. If more details are needed than FHIR instanses provide, the [Danish adress registry](https://danmarksadresser.dk/om-adresser/danmarks-adresseregister-dar) can be used for look-up. + +### Safety Considerations +This implementation guide defines data elements, resources, formats, and methods for exchanging healthcare data between different participants in the healthcare process. As such, clinical safety is a key concern. Additional guidance regarding safety for the specification’s many and various implementations is available at: [https://www.hl7.org/FHIR/safety.html](https://www.hl7.org/FHIR/safety.html). + +Although the present specification does gives users the opportunity to observe data protection and data security regulations, its use does not guarantee compliance with these regulations. Effective compliance must be ensured by appropriate measures during implementation projects and in daily operations. The corresponding implementation measures are explained in the standard. +In addition, the present specification can only influence compliance with the security regulations in the technical area of standardisation. It cannot influence organisational and contractual matters. + +### License and Legal Terms + +This document is licensed under Creative Commons "No Rights Reserved" ([CC0](https://creativecommons.org/publicdomain/zero/1.0/)). + +HL7®, HEALTH LEVEL SEVEN®, FHIR® and the FHIR ® are trademarks owned by Health Level Seven International, registered with the United States Patent and Trademark Office. + +This implementation guide contains and references intellectual property owned by third parties ("Third Party IP"). Acceptance of these License Terms does not grant any rights with respect to Third Party IP. The licensee alone is responsible for identifying and obtaining any necessary licenses or authorizations to utilize Third Party IP in connection with the specification or otherwise. + +See also http://hl7.org/fhir/license.html + +Following is a non-exhaustive list of third-party artifacts and terminologies that may require a separate license: + +**SNOMED Clinical Terms® (SNOMED CT®)** +This material includes SNOMED Clinical Terms® (SNOMED CT®) which is used by permission of SNOMED International (former known as International Health Terminology Standards Development Organisation IHTSDO). All rights reserved. SNOMED CT®, was originally created by The College of American Pathologists. “SNOMED” and “SNOMED CT” are registered trademarks of SNOMED International. + +**Logical Observation Identifiers Names and Codes LOINC** +This material contains content from LOINC® (http://loinc.org). The LOINC table, LOINC codes, and LOINC panels and forms file are copyright © 1995-2013, Regenstrief Institute, Inc. and the Logical Observation Identifiers Names and Codes (LOINC) Committee and available at no cost under the license at http://loinc.org/terms-of-use. \ No newline at end of file diff --git a/input/resources/address-type-dk-supplement.xml b/input/resources/address-type-dk-supplement.xml deleted file mode 100644 index 4afc4f62d..000000000 --- a/input/resources/address-type-dk-supplement.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/input/resources/address-use-dk-supplement.xml b/input/resources/address-use-dk-supplement.xml deleted file mode 100644 index 8e64b82d0..000000000 --- a/input/resources/address-use-dk-supplement.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/input/resources/care-team-status-dk-supplement.xml b/input/resources/care-team-status-dk-supplement.xml deleted file mode 100644 index a1cd29305..000000000 --- a/input/resources/care-team-status-dk-supplement.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/input/resources/consent-state-codes-dk-supplement.xml b/input/resources/consent-state-codes-dk-supplement.xml deleted file mode 100644 index ae3573261..000000000 --- a/input/resources/consent-state-codes-dk-supplement.xml +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/input/resources/days-of-week-dk-supplement.xml b/input/resources/days-of-week-dk-supplement.xml deleted file mode 100644 index bf66f5884..000000000 --- a/input/resources/days-of-week-dk-supplement.xml +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/input/resources/episode-of-care-status-dk-supplement.xml b/input/resources/episode-of-care-status-dk-supplement.xml deleted file mode 100644 index 4e2804ec0..000000000 --- a/input/resources/episode-of-care-status-dk-supplement.xml +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/input/resources/publication-status-dk-supplement.xml b/input/resources/publication-status-dk-supplement.xml deleted file mode 100644 index 4b7bdb870..000000000 --- a/input/resources/publication-status-dk-supplement.xml +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/input/resources/request-status-dk-supplement.xml b/input/resources/request-status-dk-supplement.xml deleted file mode 100644 index 69460154b..000000000 --- a/input/resources/request-status-dk-supplement.xml +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/input/resources/sor-organization-type.json b/input/resources/sor-organization-type.json deleted file mode 100644 index face7e9fb..000000000 --- a/input/resources/sor-organization-type.json +++ /dev/null @@ -1,704 +0,0 @@ -{ - "resourceType": "ValueSet", - "id": "sor-organization-type", - "url": "http://hl7.dk/fhir/core/ValueSet/sor-organization-type", - "name": "SorOrganizationType", - "status": "active", - "description": "Value set used for indicating the organization type for organizations from SOR", - "copyright": "This value set includes content from SNOMED CT, which is copyright © 2002+ International Health Terminology Standards Development Organisation (IHTSDO), and distributed by agreement between IHTSDO and HL7. Implementer use of SNOMED CT is not covered by this agreement", - "compose": { - "include": [ - { - "system": "http://snomed.info/sct", - "version": "http://snomed.info/sct/554471000005108", - "concept": [ - { - "code": "554221000005108", - "display": "Dwilling place", - "designation": [ - { - "language": "en-US", - "value": "Dwilling place" - } - ] - }, - { - "code": "546821000005103", - "display": "Occupational therapy clinic", - "designation": [ - { - "language": "en-US", - "value": "Occupational therapy clinic" - } - ] - }, - { - "code": "547011000005103", - "display": "Physiotherapy clinic", - "designation": [ - { - "language": "en-US", - "value": "Physiotherapy clinic" - } - ] - }, - { - "code": "546811000005109", - "display": "Rehabilitation center", - "designation": [ - { - "language": "en-US", - "value": "Rehabilitation center" - } - ] - }, - { - "code": "550621000005101", - "display": "District nursing", - "designation": [ - { - "language": "en-US", - "value": "District nursing" - } - ] - }, - { - "code": "550631000005103", - "display": "Midwife clinic", - "designation": [ - { - "language": "en-US", - "value": "Midwife clinic" - } - ] - }, - { - "code": "550641000005106", - "display": "Chiropractic clinic", - "designation": [ - { - "language": "en-US", - "value": "Chiropractic clinic" - } - ] - }, - { - "code": "550651000005108", - "display": "Medical laboratory", - "designation": [ - { - "language": "en-US", - "value": "Medical laboratory" - } - ] - }, - { - "code": "550661000005105", - "display": "Emergency medical service", - "designation": [ - { - "language": "en-US", - "value": "Emergency medical service" - } - ] - }, - { - "code": "554211000005102", - "display": "Prehospital unit", - "designation": [ - { - "language": "en-US", - "value": "Prehospital unit" - } - ] - }, - { - "code": "550711000005101", - "display": "Psychological counseling clinic", - "designation": [ - { - "language": "en-US", - "value": "Psychological counseling clinic" - } - ] - }, - { - "code": "550671000005100", - "display": "Medical specialist practice site", - "designation": [ - { - "language": "en-US", - "value": "Medical specialist practice site" - } - ] - }, - { - "code": "554061000005105", - "display": "Chiropodist clinic", - "designation": [ - { - "language": "en-US", - "value": "Chiropodist clinic" - } - ] - }, - { - "code": "554041000005106", - "display": "Health administration", - "designation": [ - { - "language": "en-US", - "value": "Health administration" - } - ] - }, - { - "code": "554021000005101", - "display": "Health visitors", - "designation": [ - { - "language": "en-US", - "value": "Health visitors" - } - ] - }, - { - "code": "550681000005102", - "display": "dental practice", - "designation": [ - { - "language": "en-US", - "value": "Dental practice" - } - ] - }, - { - "code": "550691000005104", - "display": "Dental care clinic", - "designation": [ - { - "language": "en-US", - "value": "Dental care clinic" - } - ] - }, - { - "code": "550701000005104", - "display": "Dental technician clinic", - "designation": [ - { - "language": "en-US", - "value": "Dental technician clinic" - } - ] - }, - { - "code": "554231000005106", - "display": "Vaccination clinic", - "designation": [ - { - "language": "en-US", - "value": "Vaccination clinic" - } - ] - }, - { - "code": "554051000005108", - "display": "Reflexology clinic", - "designation": [ - { - "language": "en-US", - "value": "Reflexology clinic" - } - ] - }, - { - "code": "550811000005108", - "display": "Administrative unit", - "designation": [ - { - "language": "en-US", - "value": "Administrative unit" - } - ] - }, - { - "code": "547211000005108", - "display": "Municipality", - "designation": [ - { - "language": "en-US", - "value": "Municipality" - } - ] - }, - { - "code": "550891000005100", - "display": "Private", - "designation": [ - { - "language": "en-US", - "value": "Private" - } - ] - }, - { - "code": "550881000005103", - "display": "Region", - "designation": [ - { - "language": "en-US", - "value": "Region" - } - ] - }, - { - "code": "550411000005105", - "display": "Other health institution", - "designation": [ - { - "language": "en-US", - "value": "Other health institution" - } - ] - }, - { - "code": "554851000005102", - "display": "Asylum centre", - "designation": [ - { - "language": "en-US", - "value": "Asylum centre" - } - ] - }, - { - "code": "550861000005106", - "display": "Physiotherapy and occupational clinic", - "designation": [ - { - "language": "en-US", - "value": "Physiotherapy and occupational clinic" - } - ] - }, - { - "code": "554881000005108", - "display": "Handicap and psychiatry", - "designation": [ - { - "language": "en-US", - "value": "Handicap and psychiatry" - } - ] - }, - { - "code": "554861000005100", - "display": "Handicap", - "designation": [ - { - "language": "en-US", - "value": "Handicap" - } - ] - }, - { - "code": "554821000005109", - "display": "Home care", - "designation": [ - { - "language": "en-US", - "value": "Home care" - } - ] - }, - { - "code": "554411000005101", - "display": "Employment agency", - "designation": [ - { - "language": "en-US", - "value": "Employment agency" - } - ] - }, - { - "code": "554871000005105", - "display": "Psychiatry", - "designation": [ - { - "language": "en-US", - "value": "Psychiatry" - } - ] - }, - { - "code": "550821000005102", - "display": "Service unit", - "designation": [ - { - "language": "en-US", - "value": "Service unit" - } - ] - }, - { - "code": "550871000005101", - "display": "Emergency admission unit", - "designation": [ - { - "language": "en-US", - "value": "Emergency admission unit" - } - ] - }, - { - "code": "554241000005103", - "display": "Technical location number", - "designation": [ - { - "language": "en-US", - "value": "Technical location number" - } - ] - }, - { - "code": "550841000005107", - "display": "Research unit", - "designation": [ - { - "language": "en-US", - "value": "Research unit" - } - ] - }, - { - "code": "550851000005109", - "display": "Clinical unit", - "designation": [ - { - "language": "en-US", - "value": "Clinical unit" - } - ] - }, - { - "code": "551611000005102", - "display": "Surgical ward", - "designation": [ - { - "language": "en-US", - "value": "Surgical ward" - } - ] - }, - { - "code": "554071000005100", - "display": "Hospital pharmacy", - "designation": [ - { - "language": "en-US", - "value": "Hospital pharmacy" - } - ] - }, - { - "code": "550831000005104", - "display": "Education unit", - "designation": [ - { - "language": "en-US", - "value": "Education unit" - } - ] - }, - { - "code": "554031000005103", - "display": "dietician clinic", - "designation": [ - { - "language": "en-US", - "value": "Dietician clinic" - } - ] - }, - { - "code": "557511000005107", - "display": "Acupuncture clinic", - "designation": [ - { - "language": "en-US", - "value": "Acupuncture clinic" - } - ] - }, - { - "code": "557501000005109", - "display": "Pharmacy branch", - "designation": [ - { - "language": "en-US", - "value": "Pharmacy branch" - } - ] - }, - { - "code": "557531000005103", - "display": "Prosthetist clinic", - "designation": [ - { - "language": "en-US", - "value": "Prosthetist clinic" - } - ] - }, - { - "code": "557591000005104", - "display": "Web-based care", - "designation": [ - { - "language": "en-US", - "value": "Web-based care" - } - ] - }, - { - "code": "557521000005101", - "display": "Alternative treatment clinic", - "designation": [ - { - "language": "en-US", - "value": "Alternative treatment clinic" - } - ] - }, - { - "code": "557561000005105", - "display": "Consulting firm", - "designation": [ - { - "language": "en-US", - "value": "Consulting firm" - } - ] - }, - { - "code": "557541000005106", - "display": "Cosmetic treatment clinic", - "designation": [ - { - "language": "en-US", - "value": "Cosmetic treatment clinic" - } - ] - }, - { - "code": "557581000005102", - "display": "Optometrist or optician clinic", - "designation": [ - { - "language": "en-US", - "value": "Optometrist or optician clinic" - } - ] - }, - { - "code": "556841000005105", - "display": "Social psychological counseling", - "designation": [ - { - "language": "en-US", - "value": "Social psychological counseling" - } - ] - }, - { - "code": "557671000005101", - "display": "Osteopathy clinic", - "designation": [ - { - "language": "en-US", - "value": "Osteopathy clinic" - } - ] - } - ] - }, - { - "system": "http://snomed.info/sct", - "concept": [ - { - "code": "398070004", - "display": "State", - "designation": [ - { - "language": "en-US", - "value": "State" - } - ] - }, - { - "code": "394761003", - "display": "General practitioner practice site", - "designation": [ - { - "language": "en-US", - "value": "General practitioner practice site" - } - ] - }, - { - "code": "20078004", - "display": "Substance abuse treatment center", - "designation": [ - { - "language": "en-US", - "value": "Substance abuse treatment center" - } - ] - }, - { - "code": "722173008", - "display": "Prison based care site", - "designation": [ - { - "language": "en-US", - "value": "Prison based care site" - } - ] - }, - { - "code": "702871004", - "display": "Infertility clinic", - "designation": [ - { - "language": "en-US", - "value": "Infertility clinic" - } - ] - }, - { - "code": "276037005", - "display": "Volunteer helper", - "designation": [ - { - "language": "en-US", - "value": "Volunteer helper" - } - ] - }, - { - "code": "22232009", - "display": "Hospital", - "designation": [ - { - "language": "en-US", - "value": "Hospital" - } - ] - }, - { - "code": "702824005", - "display": "Audiology clinic", - "designation": [ - { - "language": "en-US", - "value": "Audiology clinic" - } - ] - }, - { - "code": "42665001", - "display": "Nursing home", - "designation": [ - { - "language": "en-US", - "value": "Nursing home" - } - ] - }, - { - "code": "264361005", - "display": "Health centre", - "designation": [ - { - "language": "en-US", - "value": "Health centre" - } - ] - }, - { - "code": "703069008", - "display": "Nurse practitioner clinic", - "designation": [ - { - "language": "en-US", - "value": "Nurse practitioner clinic" - } - ] - }, - { - "code": "309964003", - "display": "Radiology department", - "designation": [ - { - "language": "en-US", - "value": "Radiology department" - } - ] - }, - { - "code": "309904001", - "display": "Intensive care unit", - "designation": [ - { - "language": "en-US", - "value": "Intensive care unit" - } - ] - }, - { - "code": "309939001", - "display": "Palliative care department", - "designation": [ - { - "language": "en-US", - "value": "Palliative care department" - } - ] - }, - { - "code": "225728007", - "display": "Accident and Emergency department", - "designation": [ - { - "language": "en-US", - "value": "Accident and Emergency department" - } - ] - }, - { - "code": "255203001", - "display": "Additional values", - "designation": [ - { - "language": "en-US", - "value": "Additional values" - } - ] - }, - { - "code": "264372000", - "display": "Pharmacy", - "designation": [ - { - "language": "en-US", - "value": "Pharmacy" - } - ] - } - ] - } - ] - } -} \ No newline at end of file diff --git a/package-list.json b/package-list.json deleted file mode 100644 index 4cff6e5a1..000000000 --- a/package-list.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "package-id": "hl7.fhir.dk.core", - "title": "HL7 FHIR Implementation Guide: DK Core", - "canonical": "http://hl7.dk/fhir/core", - "introduction": "Intro text", - "category": "National Core", - "list": [ - { - "version": "current", - "desc": "Continuous Integration Build", - "path": "http://build.fhir.org/ig/hl7dk/dk-core", - "status": "ci-build" - }, - { - "version": "2.0.0", - "desc": "Release version 2.0.0 contains three DKcore profiles. In DkCorePatient the cardinality of the extensions dk-core-RegionalSubDivisionCodes and dk-core-municipalityCodes is changed from 0..* to 0..1 and the MustSupport flags are removed from Patient.id and Patient.name. DkCoreCprIdentifier.system is changed from a ValueSet to a fixed value, where both solutions contain the same OID. In DkCoreOrganization the binding strength of the ValueSet attached to the element Organization.type is changed from required to preferred.", - "status": "release", - "date": "2022-09-07", - "sequence": "Release", - "history_template_repo": "https://github.com/hl7dk/fhir-ig-history-template.git", - "path": "http://hl7.dk/fhir/core/2.0.0", - "fhirversion": "4.0.1", - "current": true - } - ] -} \ No newline at end of file diff --git a/publication-request.json b/publication-request.json new file mode 100644 index 000000000..46db8bea0 --- /dev/null +++ b/publication-request.json @@ -0,0 +1,12 @@ +{ + "package-id": "hl7.fhir.dk.core", + "version": "2.1.0", + "path": "http://hl7.dk/fhir/core/2.1.0", + "status": "release", + "sequence": "Release", + "milestone" : true, + "title": "HL7 FHIR Implementation Guide: DK Core", + "category": "National Core", + "introduction": "A FHIR Implementation Guide for the Danish common needs across healthcare sectors", + "descmd": "DK-core version 2.1.0 has been approved by HL7 Denmark, but it is not part of the national catalogue of ICT standards
to be used in the Danish health care system (Sundhedsdatastyrelsens standardkatalog). The spring 2023 version is expected to go through the needed evaluations to be approved for the national catalogue.

The changes between 2.0.0 and 2.1.0 is:
• Addition of Condition profile with associated documentation and examples
• A disclaimer has been added regarding use of dk-core. It can be read on the IG\\\\'s front page in section 1.7 and 1.8
• Unused LPR3 identifier has been removed
• In the documentation of the patient profile, new details are described regarding NNDNK
• Adding how to represent a GP in the documentation for Organization and Practitioner to avoid SOR vs. ydernummer issues.
• Clarification of primary and secondary sector the in descriptions of the Organization and Practitioner profiles.
• Explanation of the use of Danish/English in the \\\\'Language\\\\' section on the front page of dk-core
• Insertion of specific terms/explanations on all slices and extensions in profiles.
• Target group and inclusion in the standard catalog have been added in the \\\\'Scope\\\\' section on dk-core\\\\'s front page.
• Documentation has been strengthened in Patient and Practitioner profiles in the \\\\'scope and usage\\\\' section.
• The section \\\\'Connection between dk-core and common Danish architectures and standards\\\\' has been added to dk-core\\\\'s front page." +} \ No newline at end of file diff --git a/sushi-config.yaml b/sushi-config.yaml index aeb686484..f05e96447 100644 --- a/sushi-config.yaml +++ b/sushi-config.yaml @@ -7,12 +7,12 @@ canonical: http://hl7.dk/fhir/core name: DKCore title: "HL7 FHIR Implementation Guide: DK Core" description: A FHIR Implementation Guide for the Danish common needs across healthcare sectors -status: draft +status: active # draft version: 2.1.0 fhirVersion: 4.0.1 copyrightYear: 2021+ license: CC0-1.0 -releaseLabel: ci-build +releaseLabel: release # ci-build publisher: name: HL7 Denmark url: http://www.hl7.dk @@ -35,3 +35,4 @@ menu: parameters: show-inherited-invariants: false + ipa-comparison: "{latest}"