From f64c9c93082f3267a5c7ce708276be416c642fff Mon Sep 17 00:00:00 2001 From: Jens Kristian Villadsen Date: Wed, 8 May 2024 17:42:43 +0200 Subject: [PATCH 01/40] Added Location and PractitionerRole --- input/fsh/DkCoreLocation.fsh | 8 +++++++ input/fsh/DkCorePractitionerRole.fsh | 31 ++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 input/fsh/DkCoreLocation.fsh create mode 100644 input/fsh/DkCorePractitionerRole.fsh diff --git a/input/fsh/DkCoreLocation.fsh b/input/fsh/DkCoreLocation.fsh new file mode 100644 index 000000000..a8993bafd --- /dev/null +++ b/input/fsh/DkCoreLocation.fsh @@ -0,0 +1,8 @@ +Profile: DkCoreLocation +Parent: Location +Id: dk-core-location +Title: "Danish Core Location Profile" +Description: "HL7 Denmark core profile for locations" +* managingOrganization only Reference(DkCoreOrganization) +* partOf only Reference(DkCoreLocation) + diff --git a/input/fsh/DkCorePractitionerRole.fsh b/input/fsh/DkCorePractitionerRole.fsh new file mode 100644 index 000000000..d27ca2475 --- /dev/null +++ b/input/fsh/DkCorePractitionerRole.fsh @@ -0,0 +1,31 @@ +Profile: DkCorePractitionerRole +Parent: PractitionerRole +Id: dk-core-practitioner-role +Title: "Danish Core PractitionerRole Profile" +Description: "HL7 Denmark core profile for health professional roles" +* organization only Reference(DkCoreOrganization) +* practitioner only Reference(DkCorePractitioner) +* location only Reference(DkCoreLocation) +* + + +Instance: AbrahamPractitionerRole +InstanceOf: DkCorePractitionerRole +Title: "Licensed physician in primary care" +Description: "This is an example of PractitionerRole profile. The example describes the service which practitioner is performing in a specific location in a specific role." +Usage: #example +* active = true +* practitioner = Reference(AbrahamLaege) +* organization = Reference(CenterForDiabetes) +* code = http://terminology.hl7.org/CodeSystem/v2-0286#RP +* specialty = http://snomed.info/sct/554471000005108/version/20240331#408443003 +//* location = Reference(LocationExample) +* availableTime[0].daysOfWeek[0] = #mon +* availableTime[=].daysOfWeek[+] = #tue +* availableTime[=].daysOfWeek[+] = #wed +* availableTime[=].availableStartTime = "09:00:00" +* availableTime[=].availableEndTime = "15:30:00" +* availableTime[+].daysOfWeek[0] = #thu +* availableTime[=].daysOfWeek[+] = #fri +* availableTime[=].availableStartTime = "09:00:00" +* availableTime[=].availableEndTime = "12:00:00" \ No newline at end of file From 0cd61b1fc13541782b27c6b8da3b1d8960309640 Mon Sep 17 00:00:00 2001 From: Jens Kristian Villadsen Date: Wed, 8 May 2024 18:04:04 +0200 Subject: [PATCH 02/40] fatfingered a '*' --- input/fsh/DkCorePractitionerRole.fsh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/input/fsh/DkCorePractitionerRole.fsh b/input/fsh/DkCorePractitionerRole.fsh index d27ca2475..745f1def8 100644 --- a/input/fsh/DkCorePractitionerRole.fsh +++ b/input/fsh/DkCorePractitionerRole.fsh @@ -5,8 +5,7 @@ Title: "Danish Core PractitionerRole Profile" Description: "HL7 Denmark core profile for health professional roles" * organization only Reference(DkCoreOrganization) * practitioner only Reference(DkCorePractitioner) -* location only Reference(DkCoreLocation) -* +* location only Reference(DkCoreLocation) Instance: AbrahamPractitionerRole From 7fd0058ce71ee7602b855d8c407936752be6eaa4 Mon Sep 17 00:00:00 2001 From: Jens Kristian Villadsen Date: Wed, 8 May 2024 19:13:54 +0200 Subject: [PATCH 03/40] Moved NPU subset into its own Code System fragment. --- input/fsh/codeSystems.fsh | 25 +++++++++++++++++++++++++ input/fsh/valueSets.fsh | 24 ++++++++++++------------ 2 files changed, 37 insertions(+), 12 deletions(-) diff --git a/input/fsh/codeSystems.fsh b/input/fsh/codeSystems.fsh index 786c422b5..c6db1000b 100644 --- a/input/fsh/codeSystems.fsh +++ b/input/fsh/codeSystems.fsh @@ -798,3 +798,28 @@ Description: "DK Related Person Relationship Codes" * ^definition = "The player of the role is the primary caretaker of the scoping person." * ^designation.language = #da * ^designation.value = "Primær omsorgsperson" + + +CodeSystem: NPUSubset +Id: dk-npu-subset +Title: "DK NPU Subset" +Description: "DK NPU Subsetted code system used in DK Core" +* ^url = $NPU +* ^experimental = false +* ^caseSensitive = false +* ^status = #active +* ^content = #fragment +* #NPU03011 "Hb(Fe; O₂-bind.;aB)—Oxygen(O₂); sat. = ?" + * ^designation.language = #da + * ^designation.value = "Hb(Fe; O₂-bind.;aB)—Oxygen(O₂); mætn. = ?" +* #NPU27280 "Hb(Fe; O₂-bind.;aB)—Oxygen(O₂); sat.(Pulse oximetry) = ?" +* #NPU04034 "Pt(spec.)—Blood; temp. = ? °C" +* #NPU08676 "Pt—Body; temp. = ? °C" +* #NPU58033 "Artery(spec.)—Blood pressure(systolic); pr.(proc.) = ? mmHg" +* #NPU57947 "Artery(spec.)—Blood; pr.(systolic;proc.) = ? mmHg" +* #NPU58034 "Artery(spec.)—Blood pressure(diastolic); pr.(proc.) = ? mmHg" +* #NPU57948 "Artery(spec.)—Blood; pr.(diastolic;proc.) = ? mmHg" +* #NPU21692 "Heart—Systole; freq. = ? * 1/min" +* #NPU03794 "Pt—Body; height = ? m" +* #NPU03804 "Pt—Body; mass = ? kg" +* #NPU27281 "Pt—Body; mass coefficient(mass/squared height) = ? kg/m²" \ No newline at end of file diff --git a/input/fsh/valueSets.fsh b/input/fsh/valueSets.fsh index b76059a2c..a09fc4c3c 100644 --- a/input/fsh/valueSets.fsh +++ b/input/fsh/valueSets.fsh @@ -208,18 +208,18 @@ Id: dk-core-NPUBasicObservation Title: "DK Core NPU Basic Observation" Description: "NPU codes for Basic Observations usable in Denmark" * ^experimental = false -* $NPU#NPU03011 "Hb(Fe; O₂-bind.;aB)—Oxygen(O₂); sat. = ?" -* $NPU#NPU27280 "Hb(Fe; O₂-bind.;aB)—Oxygen(O₂); sat.(Pulse oximetry) = ?" -* $NPU#NPU04034 "Pt(spec.)—Blood; temp. = ? °C" -* $NPU#NPU08676 "Pt—Body; temp. = ? °C" -* $NPU#NPU58033 "Artery(spec.)—Blood pressure(systolic); pr.(proc.) = ? mmHg" -* $NPU#NPU57947 "Artery(spec.)—Blood; pr.(systolic;proc.) = ? mmHg" -* $NPU#NPU58034 "Artery(spec.)—Blood pressure(diastolic); pr.(proc.) = ? mmHg" -* $NPU#NPU57948 "Artery(spec.)—Blood; pr.(diastolic;proc.) = ? mmHg" -* $NPU#NPU21692 "Heart—Systole; freq. = ? * 1/min" -* $NPU#NPU03794 "Pt—Body; height = ? m" -* $NPU#NPU03804 "Pt—Body; mass = ? kg" -* $NPU#NPU27281 "Pt—Body; mass coefficient(mass/squared height) = ? kg/m²" +* $NPU#NPU03011 +* $NPU#NPU27280 +* $NPU#NPU04034 +* $NPU#NPU08676 +* $NPU#NPU58033 +* $NPU#NPU57947 +* $NPU#NPU58034 +* $NPU#NPU57948 +* $NPU#NPU21692 +* $NPU#NPU03794 +* $NPU#NPU03804 +* $NPU#NPU27281 ValueSet: UCUMBasicUnits Id: dk-core-UCUM-BasicUnits From b2a71d72d50869159708fbce4861e048f69b0312 Mon Sep 17 00:00:00 2001 From: Jens Kristian Villadsen Date: Wed, 8 May 2024 20:05:39 +0200 Subject: [PATCH 04/40] Remove special treatment of NPU --- sushi-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sushi-config.yaml b/sushi-config.yaml index e69417b22..211650f70 100644 --- a/sushi-config.yaml +++ b/sushi-config.yaml @@ -38,7 +38,7 @@ menu: parameters: show-inherited-invariants: false ipa-comparison: "{last}" - special-url: [urn:oid:1.2.208.176.2.1, urn:iso:std:iso:11073:10101, urn:oid:1.2.208.176.2.4, urn:oid:1.2.208.176.2.21, urn:oid:1.2.208.176.2.4.12] + special-url: [urn:iso:std:iso:11073:10101, urn:oid:1.2.208.176.2.4, urn:oid:1.2.208.176.2.21, urn:oid:1.2.208.176.2.4.12] dependencies: hl7.fhir.uv.phd: 1.0.0 From 30efca157fd9255d01fb771346a4bcf9b93199e8 Mon Sep 17 00:00:00 2001 From: Jens Kristian Villadsen Date: Thu, 9 May 2024 15:50:54 +0200 Subject: [PATCH 05/40] Testing out fragments for NPU --- input/fsh/codeSystems.fsh | 303 +++++++++++++++++++++++++++++++++++++- 1 file changed, 302 insertions(+), 1 deletion(-) diff --git a/input/fsh/codeSystems.fsh b/input/fsh/codeSystems.fsh index c6db1000b..345ca13a7 100644 --- a/input/fsh/codeSystems.fsh +++ b/input/fsh/codeSystems.fsh @@ -822,4 +822,305 @@ Description: "DK NPU Subsetted code system used in DK Core" * #NPU21692 "Heart—Systole; freq. = ? * 1/min" * #NPU03794 "Pt—Body; height = ? m" * #NPU03804 "Pt—Body; mass = ? kg" -* #NPU27281 "Pt—Body; mass coefficient(mass/squared height) = ? kg/m²" \ No newline at end of file +* #NPU27281 "Pt—Body; mass coefficient(mass/squared height) = ? kg/m²" + +CodeSystem: Npu +Id: npu +* ^content = #fragment +* ^url = "https://www.npu-terminology.org/" +* ^version = "EN211028" +* ^copyright = "The International Union of Pure and Applied Chemistry (IUPAC) and the International Federation of Clinical Chemistry and laboratory medicine (IFCC)" +* #NPU03011 """Hb(Fe; O2-bind.; aB)\u2014Oxygen(O2); sat. = ?""" +* #NPU03011 ^designation.language = #da +* #NPU03011 ^designation.value = """Hb(Fe; O2-bind.;aB)\u2014Oxygen(O2); mætn. = ?""" +* #NPU03011 ^property[0].code = #ChangeDate +* #NPU03011 ^property[=].valueDateTime = "2000-12-20T00:00:00+01:00" +* #NPU03011 ^property[+].code = #ChangeComment +* #NPU03011 ^property[=].valueString = "Name changed" +* #NPU03011 ^property[+].code = #CreatedDate +* #NPU03011 ^property[=].valueDateTime = "1996-12-24T00:00:00+01:00" +* #NPU03011 ^property[+].code = #System +* #NPU03011 ^property[=].valueString = "Hb" +* #NPU03011 ^property[+].code = #SysSpec +* #NPU03011 ^property[=].valueString = "Fe; O2-bind.;aB" +* #NPU03011 ^property[+].code = #Component +* #NPU03011 ^property[=].valueString = "Oxygen" +* #NPU03011 ^property[+].code = #CompSpec +* #NPU03011 ^property[=].valueString = "O2" +* #NPU03011 ^property[+].code = #Kind-of-property +* #NPU03011 ^property[=].valueString = "sat." +* #NPU03011 ^property[+].code = #Speciality +* #NPU03011 ^property[=].valueString = "CLC" +* #NPU03011 ^property[+].code = #"Code value" +* #NPU03011 ^property[=].valueString = "3011" +* #NPU03011 ^property[+].code = #"Scale type" +* #NPU03011 ^property[=].valueString = "Ratio" +* #NPU03011 ^property[+].code = #STATUS +* #NPU03011 ^property[=].valueString = "ACTIVE" +* #NPU27280 """Hb(Fe; O2-bind.; aB)\u2014Oxygen(O2); sat.(Pulse oximetry) = ?""" +* #NPU27280 ^designation.language = #da +* #NPU27280 ^designation.value = """Hb(Fe; O2-bind.;aB)—Oxygen(O2); mætn.(pulsoximetri) = ?""" +* #NPU27280 ^property[0].code = #CreatedDate +* #NPU27280 ^property[=].valueDateTime = "2007-11-23T00:00:00+01:00" +* #NPU27280 ^property[+].code = #System +* #NPU27280 ^property[=].valueString = "Hb" +* #NPU27280 ^property[+].code = #SysSpec +* #NPU27280 ^property[=].valueString = "Fe; O2-bind.;aB" +* #NPU27280 ^property[+].code = #Component +* #NPU27280 ^property[=].valueString = "Oxygen" +* #NPU27280 ^property[+].code = #CompSpec +* #NPU27280 ^property[=].valueString = "O2" +* #NPU27280 ^property[+].code = #Kind-of-property +* #NPU27280 ^property[=].valueString = "sat." +* #NPU27280 ^property[+].code = #Proc +* #NPU27280 ^property[=].valueString = "Pulse oximetry" +* #NPU27280 ^property[+].code = #Speciality +* #NPU27280 ^property[=].valueString = "CLC" +* #NPU27280 ^property[+].code = #"Code value" +* #NPU27280 ^property[=].valueString = "27280" +* #NPU27280 ^property[+].code = #"Scale type" +* #NPU27280 ^property[=].valueString = "Ratio" +* #NPU27280 ^property[+].code = #STATUS +* #NPU27280 ^property[=].valueString = "ACTIVE" +* #NPU04034 """Pt(spec.)\u2014Blood; temp. = ? \u00b0C""" +* #NPU04034 ^designation.language = #da +* #NPU04034 ^designation.value = """Pt(spec.)—Blod; temp. = ? °C""" +* #NPU04034 ^property[0].code = #CreatedDate +* #NPU04034 ^property[=].valueDateTime = "1996-05-08T00:00:00+02:00" +* #NPU04034 ^property[+].code = #System +* #NPU04034 ^property[=].valueString = "Pt" +* #NPU04034 ^property[+].code = #SysSpec +* #NPU04034 ^property[=].valueString = "spec." +* #NPU04034 ^property[+].code = #Component +* #NPU04034 ^property[=].valueString = "Blood" +* #NPU04034 ^property[+].code = #Kind-of-property +* #NPU04034 ^property[=].valueString = "temp." +* #NPU04034 ^property[+].code = #Unit +* #NPU04034 ^property[=].valueString = "°C" +* #NPU04034 ^property[+].code = #Speciality +* #NPU04034 ^property[=].valueString = "CLC" +* #NPU04034 ^property[+].code = #"Code value" +* #NPU04034 ^property[=].valueString = "4034" +* #NPU04034 ^property[+].code = #"Scale type" +* #NPU04034 ^property[=].valueString = "Differential" +* #NPU04034 ^property[+].code = #STATUS +* #NPU04034 ^property[=].valueString = "ACTIVE" +* #NPU08676 """Pt\u2014Body; temp. = ? \u00b0C""" +* #NPU08676 ^designation.language = #da +* #NPU08676 ^designation.value = """Pt—Legeme; temp. = ? °C""" +* #NPU08676 ^property[0].code = #CreatedDate +* #NPU08676 ^property[=].valueDateTime = "1997-04-15T00:00:00+02:00" +* #NPU08676 ^property[+].code = #System +* #NPU08676 ^property[=].valueString = "Pt" +* #NPU08676 ^property[+].code = #Component +* #NPU08676 ^property[=].valueString = "Body" +* #NPU08676 ^property[+].code = #Kind-of-property +* #NPU08676 ^property[=].valueString = "temp." +* #NPU08676 ^property[+].code = #Unit +* #NPU08676 ^property[=].valueString = "°C" +* #NPU08676 ^property[+].code = #Speciality +* #NPU08676 ^property[=].valueString = "CLC" +* #NPU08676 ^property[+].code = #"Code value" +* #NPU08676 ^property[=].valueString = "8676" +* #NPU08676 ^property[+].code = #"Scale type" +* #NPU08676 ^property[=].valueString = "Differential" +* #NPU08676 ^property[+].code = #STATUS +* #NPU08676 ^property[=].valueString = "ACTIVE" +* #NPU58033 """Artery(spec.)\u2014Blood pressure(systolic); pr.(proc.) = ? mmHg""" +* #NPU58033 ^designation.language = #da +* #NPU58033 ^designation.value = """Arterie(spec.)—Blodtryk(systolisk); tryk(proc.) = ? mmHg""" +* #NPU58033 ^property[0].code = #ChangeDate +* #NPU58033 ^property[=].valueDateTime = "2021-03-19T00:00:00+01:00" +* #NPU58033 ^property[+].code = #ChangeComment +* #NPU58033 ^property[=].valueString = "Specification changed" +* #NPU58033 ^property[+].code = #CreatedDate +* #NPU58033 ^property[=].valueDateTime = "2017-12-18T00:00:00+01:00" +* #NPU58033 ^property[+].code = #System +* #NPU58033 ^property[=].valueString = "Artery" +* #NPU58033 ^property[+].code = #SysSpec +* #NPU58033 ^property[=].valueString = "spec." +* #NPU58033 ^property[+].code = #Component +* #NPU58033 ^property[=].valueString = "Blood pressure" +* #NPU58033 ^property[+].code = #CompSpec +* #NPU58033 ^property[=].valueString = "systolic" +* #NPU58033 ^property[+].code = #Kind-of-property +* #NPU58033 ^property[=].valueString = "pr." +* #NPU58033 ^property[+].code = #Proc +* #NPU58033 ^property[=].valueString = "proc." +* #NPU58033 ^property[+].code = #Unit +* #NPU58033 ^property[=].valueString = "mmHg" +* #NPU58033 ^property[+].code = #Speciality +* #NPU58033 ^property[=].valueString = "CLC" +* #NPU58033 ^property[+].code = #"Code value" +* #NPU58033 ^property[=].valueString = "58033" +* #NPU58033 ^property[+].code = #"Scale type" +* #NPU58033 ^property[=].valueString = "Ratio" +* #NPU58033 ^property[+].code = #STATUS +* #NPU58033 ^property[=].valueString = "ACTIVE" +* #NPU57947 """Artery(spec.)\u2014Blood; pr.(systolic; proc.) = ? mmHg""" +* #NPU57947 ^designation.language = #da +* #NPU57947 ^designation.value = """Arterie(spec.)—Blod; tryk(systolisk;proc.) = ? mmHg""" +* #NPU57947 ^property[0].code = #CreatedDate +* #NPU57947 ^property[=].valueDateTime = "2017-12-05T00:00:00+01:00" +* #NPU57947 ^property[+].code = #System +* #NPU57947 ^property[=].valueString = "Artery" +* #NPU57947 ^property[+].code = #SysSpec +* #NPU57947 ^property[=].valueString = "spec." +* #NPU57947 ^property[+].code = #Component +* #NPU57947 ^property[=].valueString = "Blood" +* #NPU57947 ^property[+].code = #Kind-of-property +* #NPU57947 ^property[=].valueString = "pr." +* #NPU57947 ^property[+].code = #Proc +* #NPU57947 ^property[=].valueString = "systolic;proc." +* #NPU57947 ^property[+].code = #Unit +* #NPU57947 ^property[=].valueString = "mmHg" +* #NPU57947 ^property[+].code = #Speciality +* #NPU57947 ^property[=].valueString = "CLC" +* #NPU57947 ^property[+].code = #"Code value" +* #NPU57947 ^property[=].valueString = "57947" +* #NPU57947 ^property[+].code = #"Scale type" +* #NPU57947 ^property[=].valueString = "Ratio" +* #NPU57947 ^property[+].code = #STATUS +* #NPU57947 ^property[=].valueString = "ACTIVE" +* #NPU58034 """Artery(spec.)\u2014Blood pressure(diastolic); pr.(proc.) = ? mmHg""" +* #NPU58034 ^designation.language = #da +* #NPU58034 ^designation.value = """Arterie(spec.)—Blodtryk(diastolisk); tryk(proc.) = ? mmHg""" +* #NPU58034 ^property[0].code = #CreatedDate +* #NPU58034 ^property[=].valueDateTime = "2017-12-18T00:00:00+01:00" +* #NPU58034 ^property[+].code = #System +* #NPU58034 ^property[=].valueString = "Artery" +* #NPU58034 ^property[+].code = #SysSpec +* #NPU58034 ^property[=].valueString = "spec." +* #NPU58034 ^property[+].code = #Component +* #NPU58034 ^property[=].valueString = "Blood pressure" +* #NPU58034 ^property[+].code = #CompSpec +* #NPU58034 ^property[=].valueString = "diastolic" +* #NPU58034 ^property[+].code = #Kind-of-property +* #NPU58034 ^property[=].valueString = "pr." +* #NPU58034 ^property[+].code = #Proc +* #NPU58034 ^property[=].valueString = "proc." +* #NPU58034 ^property[+].code = #Unit +* #NPU58034 ^property[=].valueString = "mmHg" +* #NPU58034 ^property[+].code = #Speciality +* #NPU58034 ^property[=].valueString = "CLC" +* #NPU58034 ^property[+].code = #"Code value" +* #NPU58034 ^property[=].valueString = "58034" +* #NPU58034 ^property[+].code = #"Scale type" +* #NPU58034 ^property[=].valueString = "Ratio" +* #NPU58034 ^property[+].code = #STATUS +* #NPU58034 ^property[=].valueString = "ACTIVE" +* #NPU57948 """Artery(spec.)\u2014Blood; pr.(diastolic; proc.) = ? mmHg""" +* #NPU58034 ^designation.language = #da +* #NPU58034 ^designation.value = """Arterie(spec.)—Blod; tryk(diastolisk;proc.) = ? mmHg""" +* #NPU57948 ^property[0].code = #CreatedDate +* #NPU57948 ^property[=].valueDateTime = "2017-12-05T00:00:00+01:00" +* #NPU57948 ^property[+].code = #System +* #NPU57948 ^property[=].valueString = "Artery" +* #NPU57948 ^property[+].code = #SysSpec +* #NPU57948 ^property[=].valueString = "spec." +* #NPU57948 ^property[+].code = #Component +* #NPU57948 ^property[=].valueString = "Blood" +* #NPU57948 ^property[+].code = #Kind-of-property +* #NPU57948 ^property[=].valueString = "pr." +* #NPU57948 ^property[+].code = #Proc +* #NPU57948 ^property[=].valueString = "diastolic;proc." +* #NPU57948 ^property[+].code = #Unit +* #NPU57948 ^property[=].valueString = "mmHg" +* #NPU57948 ^property[+].code = #Speciality +* #NPU57948 ^property[=].valueString = "CLC" +* #NPU57948 ^property[+].code = #"Code value" +* #NPU57948 ^property[=].valueString = "57948" +* #NPU57948 ^property[+].code = #"Scale type" +* #NPU57948 ^property[=].valueString = "Ratio" +* #NPU57948 ^property[+].code = #STATUS +* #NPU57948 ^property[=].valueString = "ACTIVE" +* #NPU21692 """Heart\u2014Systole; frequency = ? \u00d7 1/min""" +* #NPU21692 ^designation.language = #da +* #NPU21692 ^designation.value = """Hjerte—Systole; frekv. = ? × 1/min""" +* #NPU21692 ^property[0].code = #CreatedDate +* #NPU21692 ^property[=].valueDateTime = "2004-09-29T00:00:00+02:00" +* #NPU21692 ^property[+].code = #System +* #NPU21692 ^property[=].valueString = "Heart" +* #NPU21692 ^property[+].code = #Component +* #NPU21692 ^property[=].valueString = "Systole" +* #NPU21692 ^property[+].code = #Kind-of-property +* #NPU21692 ^property[=].valueString = "frequency" +* #NPU21692 ^property[+].code = #Unit +* #NPU21692 ^property[=].valueString = "× 1/min" +* #NPU21692 ^property[+].code = #Speciality +* #NPU21692 ^property[=].valueString = "FUN" +* #NPU21692 ^property[+].code = #"Code value" +* #NPU21692 ^property[=].valueString = "21692" +* #NPU21692 ^property[+].code = #"Scale type" +* #NPU21692 ^property[=].valueString = "Ratio" +* #NPU21692 ^property[+].code = #STATUS +* #NPU21692 ^property[=].valueString = "ACTIVE" +* #NPU03794 """Pt\u2014Body; height = ? m""" +* #NPU03794 ^designation.language = #da +* #NPU03794 ^designation.value = """Pt—Legeme; højde = ? m""" +* #NPU03794 ^property[0].code = #CreatedDate +* #NPU03794 ^property[=].valueDateTime = "1997-04-15T00:00:00+02:00" +* #NPU03794 ^property[+].code = #System +* #NPU03794 ^property[=].valueString = "Pt" +* #NPU03794 ^property[+].code = #Component +* #NPU03794 ^property[=].valueString = "Body" +* #NPU03794 ^property[+].code = #Kind-of-property +* #NPU03794 ^property[=].valueString = "height" +* #NPU03794 ^property[+].code = #Unit +* #NPU03794 ^property[=].valueString = "m" +* #NPU03794 ^property[+].code = #Speciality +* #NPU03794 ^property[=].valueString = "CLC" +* #NPU03794 ^property[+].code = #"Code value" +* #NPU03794 ^property[=].valueString = "3794" +* #NPU03794 ^property[+].code = #"Scale type" +* #NPU03794 ^property[=].valueString = "Ratio" +* #NPU03794 ^property[+].code = #STATUS +* #NPU03794 ^property[=].valueString = "ACTIVE" +* #NPU03804 """Pt\u2014Body; mass = ? kg""" +* #NPU03804 ^designation.language = #da +* #NPU03804 ^designation.value = """Pt—Legeme; masse = ? kg""" +* #NPU03804 ^property[0].code = #CreatedDate +* #NPU03804 ^property[=].valueDateTime = "1996-01-01T00:00:00+01:00" +* #NPU03804 ^property[+].code = #System +* #NPU03804 ^property[=].valueString = "Pt" +* #NPU03804 ^property[+].code = #Component +* #NPU03804 ^property[=].valueString = "Body" +* #NPU03804 ^property[+].code = #Kind-of-property +* #NPU03804 ^property[=].valueString = "mass" +* #NPU03804 ^property[+].code = #Unit +* #NPU03804 ^property[=].valueString = "kg" +* #NPU03804 ^property[+].code = #Speciality +* #NPU03804 ^property[=].valueString = "CLC" +* #NPU03804 ^property[+].code = #"Code value" +* #NPU03804 ^property[=].valueString = "3804" +* #NPU03804 ^property[+].code = #"Scale type" +* #NPU03804 ^property[=].valueString = "Ratio" +* #NPU03804 ^property[+].code = #STATUS +* #NPU03804 ^property[=].valueString = "ACTIVE" +* #NPU27281 """Pt\u2014Body; mass coefficient(mass/squared height) = ? kg/m\u00b2""" +* #NPU27281 ^designation.language = #da +* #NPU27281 ^designation.value = """Pt—Legeme; massekoefficient(masse/kvadreret højde) = ? kg/m²""" +* #NPU27281 ^property[0].code = #ChangeDate +* #NPU27281 ^property[=].valueDateTime = "2007-12-06T00:00:00+01:00" +* #NPU27281 ^property[+].code = #ChangeComment +* #NPU27281 ^property[=].valueString = "Unit defined" +* #NPU27281 ^property[+].code = #CreatedDate +* #NPU27281 ^property[=].valueDateTime = "2007-11-23T00:00:00+01:00" +* #NPU27281 ^property[+].code = #System +* #NPU27281 ^property[=].valueString = "Pt" +* #NPU27281 ^property[+].code = #Component +* #NPU27281 ^property[=].valueString = "Body" +* #NPU27281 ^property[+].code = #Kind-of-property +* #NPU27281 ^property[=].valueString = "mass coefficient" +* #NPU27281 ^property[+].code = #Proc +* #NPU27281 ^property[=].valueString = "mass/squared height" +* #NPU27281 ^property[+].code = #Unit +* #NPU27281 ^property[=].valueString = "kg/m²" +* #NPU27281 ^property[+].code = #Speciality +* #NPU27281 ^property[=].valueString = "CLC" +* #NPU27281 ^property[+].code = #"Code value" +* #NPU27281 ^property[=].valueString = "27281" +* #NPU27281 ^property[+].code = #"Scale type" +* #NPU27281 ^property[=].valueString = "Ratio" +* #NPU27281 ^property[+].code = #STATUS +* #NPU27281 ^property[=].valueString = "ACTIVE" \ No newline at end of file From dd02de041b8e758cac29b33233558592401ca7df Mon Sep 17 00:00:00 2001 From: Jens Kristian Villadsen Date: Thu, 9 May 2024 16:15:54 +0200 Subject: [PATCH 06/40] Adjusted unicodes --- input/fsh/codeSystems.fsh | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/input/fsh/codeSystems.fsh b/input/fsh/codeSystems.fsh index 345ca13a7..844796552 100644 --- a/input/fsh/codeSystems.fsh +++ b/input/fsh/codeSystems.fsh @@ -830,9 +830,9 @@ Id: npu * ^url = "https://www.npu-terminology.org/" * ^version = "EN211028" * ^copyright = "The International Union of Pure and Applied Chemistry (IUPAC) and the International Federation of Clinical Chemistry and laboratory medicine (IFCC)" -* #NPU03011 """Hb(Fe; O2-bind.; aB)\u2014Oxygen(O2); sat. = ?""" +* #NPU03011 """Hb(Fe; O\u2082-bind.; aB)\u2014Oxygen(O\u2082); sat. = ?""" * #NPU03011 ^designation.language = #da -* #NPU03011 ^designation.value = """Hb(Fe; O2-bind.;aB)\u2014Oxygen(O2); mætn. = ?""" +* #NPU03011 ^designation.value = """Hb(Fe; O\u2082-bind.;aB)\u2014Oxygen(O\u2082); mætn. = ?""" * #NPU03011 ^property[0].code = #ChangeDate * #NPU03011 ^property[=].valueDateTime = "2000-12-20T00:00:00+01:00" * #NPU03011 ^property[+].code = #ChangeComment @@ -842,11 +842,11 @@ Id: npu * #NPU03011 ^property[+].code = #System * #NPU03011 ^property[=].valueString = "Hb" * #NPU03011 ^property[+].code = #SysSpec -* #NPU03011 ^property[=].valueString = "Fe; O2-bind.;aB" +* #NPU03011 ^property[=].valueString = "Fe; O\u2082-bind.;aB" * #NPU03011 ^property[+].code = #Component * #NPU03011 ^property[=].valueString = "Oxygen" * #NPU03011 ^property[+].code = #CompSpec -* #NPU03011 ^property[=].valueString = "O2" +* #NPU03011 ^property[=].valueString = "O\u2082" * #NPU03011 ^property[+].code = #Kind-of-property * #NPU03011 ^property[=].valueString = "sat." * #NPU03011 ^property[+].code = #Speciality @@ -857,19 +857,19 @@ Id: npu * #NPU03011 ^property[=].valueString = "Ratio" * #NPU03011 ^property[+].code = #STATUS * #NPU03011 ^property[=].valueString = "ACTIVE" -* #NPU27280 """Hb(Fe; O2-bind.; aB)\u2014Oxygen(O2); sat.(Pulse oximetry) = ?""" +* #NPU27280 """Hb(Fe; O\u2082-bind.; aB)\u2014Oxygen(O\u2082); sat.(Pulse oximetry) = ?""" * #NPU27280 ^designation.language = #da -* #NPU27280 ^designation.value = """Hb(Fe; O2-bind.;aB)—Oxygen(O2); mætn.(pulsoximetri) = ?""" +* #NPU27280 ^designation.value = """Hb(Fe; O\u2082-bind.;aB)—Oxygen(O\u2082); mætn.(pulsoximetri) = ?""" * #NPU27280 ^property[0].code = #CreatedDate * #NPU27280 ^property[=].valueDateTime = "2007-11-23T00:00:00+01:00" * #NPU27280 ^property[+].code = #System * #NPU27280 ^property[=].valueString = "Hb" * #NPU27280 ^property[+].code = #SysSpec -* #NPU27280 ^property[=].valueString = "Fe; O2-bind.;aB" +* #NPU27280 ^property[=].valueString = "Fe; O\u2082-bind.;aB" * #NPU27280 ^property[+].code = #Component * #NPU27280 ^property[=].valueString = "Oxygen" * #NPU27280 ^property[+].code = #CompSpec -* #NPU27280 ^property[=].valueString = "O2" +* #NPU27280 ^property[=].valueString = "O\u2082" * #NPU27280 ^property[+].code = #Kind-of-property * #NPU27280 ^property[=].valueString = "sat." * #NPU27280 ^property[+].code = #Proc @@ -1010,8 +1010,8 @@ Id: npu * #NPU58034 ^property[+].code = #STATUS * #NPU58034 ^property[=].valueString = "ACTIVE" * #NPU57948 """Artery(spec.)\u2014Blood; pr.(diastolic; proc.) = ? mmHg""" -* #NPU58034 ^designation.language = #da -* #NPU58034 ^designation.value = """Arterie(spec.)—Blod; tryk(diastolisk;proc.) = ? mmHg""" +* #NPU57948 ^designation.language = #da +* #NPU57948 ^designation.value = """Arterie(spec.)—Blod; tryk(diastolisk;proc.) = ? mmHg""" * #NPU57948 ^property[0].code = #CreatedDate * #NPU57948 ^property[=].valueDateTime = "2017-12-05T00:00:00+01:00" * #NPU57948 ^property[+].code = #System From 0bef5182ef489c094982ec78d13b268785b83409 Mon Sep 17 00:00:00 2001 From: Jens Kristian Villadsen Date: Thu, 9 May 2024 17:14:21 +0200 Subject: [PATCH 07/40] Corrected descriptions --- input/fsh/aliases.fsh | 2 +- input/fsh/codeSystems.fsh | 79 +++++++++++++++------------------------ input/fsh/valueSets.fsh | 28 +++++++------- 3 files changed, 45 insertions(+), 64 deletions(-) diff --git a/input/fsh/aliases.fsh b/input/fsh/aliases.fsh index 077f28550..7d09ab1b1 100644 --- a/input/fsh/aliases.fsh +++ b/input/fsh/aliases.fsh @@ -13,7 +13,7 @@ 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 Alias: $ucum = http://unitsofmeasure.org -Alias: $NPU = urn:oid:1.2.208.176.2.1 +Alias: $NPU = urn:oid:1.2.208.176.2.1 // This OID is wrong. It should be using the url stated on https://jira.hl7.org/browse/HTA-130 - being http://npu-terminology.org/ Alias: $Medcom = http://medcomfhir.dk/ig/terminology/CodeSystem/medcom-observation-codes Alias: $SKS = urn:oid:1.2.208.176.2.4 Alias: $LOINC = http://loinc.org diff --git a/input/fsh/codeSystems.fsh b/input/fsh/codeSystems.fsh index 844796552..bb61e7963 100644 --- a/input/fsh/codeSystems.fsh +++ b/input/fsh/codeSystems.fsh @@ -800,39 +800,20 @@ Description: "DK Related Person Relationship Codes" * ^designation.value = "Primær omsorgsperson" -CodeSystem: NPUSubset -Id: dk-npu-subset +CodeSystem: NPU +Id: dk-npu-fragment Title: "DK NPU Subset" -Description: "DK NPU Subsetted code system used in DK Core" -* ^url = $NPU +Description: "DK NPU Subsetted code system used in DK Core. The full version of NPU can be found at http://labterm.dk" +* ^content = #fragment +* ^status = #active * ^experimental = false * ^caseSensitive = false -* ^status = #active -* ^content = #fragment -* #NPU03011 "Hb(Fe; O₂-bind.;aB)—Oxygen(O₂); sat. = ?" - * ^designation.language = #da - * ^designation.value = "Hb(Fe; O₂-bind.;aB)—Oxygen(O₂); mætn. = ?" -* #NPU27280 "Hb(Fe; O₂-bind.;aB)—Oxygen(O₂); sat.(Pulse oximetry) = ?" -* #NPU04034 "Pt(spec.)—Blood; temp. = ? °C" -* #NPU08676 "Pt—Body; temp. = ? °C" -* #NPU58033 "Artery(spec.)—Blood pressure(systolic); pr.(proc.) = ? mmHg" -* #NPU57947 "Artery(spec.)—Blood; pr.(systolic;proc.) = ? mmHg" -* #NPU58034 "Artery(spec.)—Blood pressure(diastolic); pr.(proc.) = ? mmHg" -* #NPU57948 "Artery(spec.)—Blood; pr.(diastolic;proc.) = ? mmHg" -* #NPU21692 "Heart—Systole; freq. = ? * 1/min" -* #NPU03794 "Pt—Body; height = ? m" -* #NPU03804 "Pt—Body; mass = ? kg" -* #NPU27281 "Pt—Body; mass coefficient(mass/squared height) = ? kg/m²" - -CodeSystem: Npu -Id: npu -* ^content = #fragment -* ^url = "https://www.npu-terminology.org/" +* ^url = $NPU * ^version = "EN211028" * ^copyright = "The International Union of Pure and Applied Chemistry (IUPAC) and the International Federation of Clinical Chemistry and laboratory medicine (IFCC)" -* #NPU03011 """Hb(Fe; O\u2082-bind.; aB)\u2014Oxygen(O\u2082); sat. = ?""" +* #NPU03011 "Hb(Fe; O\u2082-bind.; aB)\u2014Oxygen(O\u2082); sat. = ?" * #NPU03011 ^designation.language = #da -* #NPU03011 ^designation.value = """Hb(Fe; O\u2082-bind.;aB)\u2014Oxygen(O\u2082); mætn. = ?""" +* #NPU03011 ^designation.value = "Hb(Fe; O\u2082-bind.;aB)\u2014Oxygen(O\u2082); mætn. = ?" * #NPU03011 ^property[0].code = #ChangeDate * #NPU03011 ^property[=].valueDateTime = "2000-12-20T00:00:00+01:00" * #NPU03011 ^property[+].code = #ChangeComment @@ -857,9 +838,9 @@ Id: npu * #NPU03011 ^property[=].valueString = "Ratio" * #NPU03011 ^property[+].code = #STATUS * #NPU03011 ^property[=].valueString = "ACTIVE" -* #NPU27280 """Hb(Fe; O\u2082-bind.; aB)\u2014Oxygen(O\u2082); sat.(Pulse oximetry) = ?""" +* #NPU27280 "Hb(Fe; O\u2082-bind.; aB)\u2014Oxygen(O\u2082); sat.(Pulse oximetry) = ?" * #NPU27280 ^designation.language = #da -* #NPU27280 ^designation.value = """Hb(Fe; O\u2082-bind.;aB)—Oxygen(O\u2082); mætn.(pulsoximetri) = ?""" +* #NPU27280 ^designation.value = "Hb(Fe; O\u2082-bind.;aB)—Oxygen(O\u2082); mætn.(pulsoximetri) = ?" * #NPU27280 ^property[0].code = #CreatedDate * #NPU27280 ^property[=].valueDateTime = "2007-11-23T00:00:00+01:00" * #NPU27280 ^property[+].code = #System @@ -882,9 +863,9 @@ Id: npu * #NPU27280 ^property[=].valueString = "Ratio" * #NPU27280 ^property[+].code = #STATUS * #NPU27280 ^property[=].valueString = "ACTIVE" -* #NPU04034 """Pt(spec.)\u2014Blood; temp. = ? \u00b0C""" +* #NPU04034 "Pt(spec.)\u2014Blood; temp. = ? \u00b0C" * #NPU04034 ^designation.language = #da -* #NPU04034 ^designation.value = """Pt(spec.)—Blod; temp. = ? °C""" +* #NPU04034 ^designation.value = "Pt(spec.)—Blod; temp. = ? °C" * #NPU04034 ^property[0].code = #CreatedDate * #NPU04034 ^property[=].valueDateTime = "1996-05-08T00:00:00+02:00" * #NPU04034 ^property[+].code = #System @@ -905,9 +886,9 @@ Id: npu * #NPU04034 ^property[=].valueString = "Differential" * #NPU04034 ^property[+].code = #STATUS * #NPU04034 ^property[=].valueString = "ACTIVE" -* #NPU08676 """Pt\u2014Body; temp. = ? \u00b0C""" +* #NPU08676 "Pt\u2014Body; temp. = ? \u00b0C" * #NPU08676 ^designation.language = #da -* #NPU08676 ^designation.value = """Pt—Legeme; temp. = ? °C""" +* #NPU08676 ^designation.value = "Pt—Legeme; temp. = ? °C" * #NPU08676 ^property[0].code = #CreatedDate * #NPU08676 ^property[=].valueDateTime = "1997-04-15T00:00:00+02:00" * #NPU08676 ^property[+].code = #System @@ -926,9 +907,9 @@ Id: npu * #NPU08676 ^property[=].valueString = "Differential" * #NPU08676 ^property[+].code = #STATUS * #NPU08676 ^property[=].valueString = "ACTIVE" -* #NPU58033 """Artery(spec.)\u2014Blood pressure(systolic); pr.(proc.) = ? mmHg""" +* #NPU58033 "Artery(spec.)\u2014Blood pressure(systolic); pr.(proc.) = ? mmHg" * #NPU58033 ^designation.language = #da -* #NPU58033 ^designation.value = """Arterie(spec.)—Blodtryk(systolisk); tryk(proc.) = ? mmHg""" +* #NPU58033 ^designation.value = "Arterie(spec.)—Blodtryk(systolisk); tryk(proc.) = ? mmHg" * #NPU58033 ^property[0].code = #ChangeDate * #NPU58033 ^property[=].valueDateTime = "2021-03-19T00:00:00+01:00" * #NPU58033 ^property[+].code = #ChangeComment @@ -957,9 +938,9 @@ Id: npu * #NPU58033 ^property[=].valueString = "Ratio" * #NPU58033 ^property[+].code = #STATUS * #NPU58033 ^property[=].valueString = "ACTIVE" -* #NPU57947 """Artery(spec.)\u2014Blood; pr.(systolic; proc.) = ? mmHg""" +* #NPU57947 "Artery(spec.)\u2014Blood; pr.(systolic; proc.) = ? mmHg" * #NPU57947 ^designation.language = #da -* #NPU57947 ^designation.value = """Arterie(spec.)—Blod; tryk(systolisk;proc.) = ? mmHg""" +* #NPU57947 ^designation.value = "Arterie(spec.)—Blod; tryk(systolisk;proc.) = ? mmHg" * #NPU57947 ^property[0].code = #CreatedDate * #NPU57947 ^property[=].valueDateTime = "2017-12-05T00:00:00+01:00" * #NPU57947 ^property[+].code = #System @@ -982,9 +963,9 @@ Id: npu * #NPU57947 ^property[=].valueString = "Ratio" * #NPU57947 ^property[+].code = #STATUS * #NPU57947 ^property[=].valueString = "ACTIVE" -* #NPU58034 """Artery(spec.)\u2014Blood pressure(diastolic); pr.(proc.) = ? mmHg""" +* #NPU58034 "Artery(spec.)\u2014Blood pressure(diastolic); pr.(proc.) = ? mmHg" * #NPU58034 ^designation.language = #da -* #NPU58034 ^designation.value = """Arterie(spec.)—Blodtryk(diastolisk); tryk(proc.) = ? mmHg""" +* #NPU58034 ^designation.value = "Arterie(spec.)—Blodtryk(diastolisk); tryk(proc.) = ? mmHg" * #NPU58034 ^property[0].code = #CreatedDate * #NPU58034 ^property[=].valueDateTime = "2017-12-18T00:00:00+01:00" * #NPU58034 ^property[+].code = #System @@ -1009,9 +990,9 @@ Id: npu * #NPU58034 ^property[=].valueString = "Ratio" * #NPU58034 ^property[+].code = #STATUS * #NPU58034 ^property[=].valueString = "ACTIVE" -* #NPU57948 """Artery(spec.)\u2014Blood; pr.(diastolic; proc.) = ? mmHg""" +* #NPU57948 "Artery(spec.)\u2014Blood; pr.(diastolic; proc.) = ? mmHg" * #NPU57948 ^designation.language = #da -* #NPU57948 ^designation.value = """Arterie(spec.)—Blod; tryk(diastolisk;proc.) = ? mmHg""" +* #NPU57948 ^designation.value = "Arterie(spec.)—Blod; tryk(diastolisk;proc.) = ? mmHg" * #NPU57948 ^property[0].code = #CreatedDate * #NPU57948 ^property[=].valueDateTime = "2017-12-05T00:00:00+01:00" * #NPU57948 ^property[+].code = #System @@ -1034,9 +1015,9 @@ Id: npu * #NPU57948 ^property[=].valueString = "Ratio" * #NPU57948 ^property[+].code = #STATUS * #NPU57948 ^property[=].valueString = "ACTIVE" -* #NPU21692 """Heart\u2014Systole; frequency = ? \u00d7 1/min""" +* #NPU21692 "Heart\u2014Systole; frequency = ? \u00d7 1/min" * #NPU21692 ^designation.language = #da -* #NPU21692 ^designation.value = """Hjerte—Systole; frekv. = ? × 1/min""" +* #NPU21692 ^designation.value = "Hjerte—Systole; frekv. = ? × 1/min" * #NPU21692 ^property[0].code = #CreatedDate * #NPU21692 ^property[=].valueDateTime = "2004-09-29T00:00:00+02:00" * #NPU21692 ^property[+].code = #System @@ -1055,9 +1036,9 @@ Id: npu * #NPU21692 ^property[=].valueString = "Ratio" * #NPU21692 ^property[+].code = #STATUS * #NPU21692 ^property[=].valueString = "ACTIVE" -* #NPU03794 """Pt\u2014Body; height = ? m""" +* #NPU03794 "Pt\u2014Body; height = ? m" * #NPU03794 ^designation.language = #da -* #NPU03794 ^designation.value = """Pt—Legeme; højde = ? m""" +* #NPU03794 ^designation.value = "Pt—Legeme; højde = ? m" * #NPU03794 ^property[0].code = #CreatedDate * #NPU03794 ^property[=].valueDateTime = "1997-04-15T00:00:00+02:00" * #NPU03794 ^property[+].code = #System @@ -1076,9 +1057,9 @@ Id: npu * #NPU03794 ^property[=].valueString = "Ratio" * #NPU03794 ^property[+].code = #STATUS * #NPU03794 ^property[=].valueString = "ACTIVE" -* #NPU03804 """Pt\u2014Body; mass = ? kg""" +* #NPU03804 "Pt\u2014Body; mass = ? kg" * #NPU03804 ^designation.language = #da -* #NPU03804 ^designation.value = """Pt—Legeme; masse = ? kg""" +* #NPU03804 ^designation.value = "Pt—Legeme; masse = ? kg" * #NPU03804 ^property[0].code = #CreatedDate * #NPU03804 ^property[=].valueDateTime = "1996-01-01T00:00:00+01:00" * #NPU03804 ^property[+].code = #System @@ -1097,9 +1078,9 @@ Id: npu * #NPU03804 ^property[=].valueString = "Ratio" * #NPU03804 ^property[+].code = #STATUS * #NPU03804 ^property[=].valueString = "ACTIVE" -* #NPU27281 """Pt\u2014Body; mass coefficient(mass/squared height) = ? kg/m\u00b2""" +* #NPU27281 "Pt\u2014Body; mass coefficient(mass/squared height) = ? kg/m\u00b2" * #NPU27281 ^designation.language = #da -* #NPU27281 ^designation.value = """Pt—Legeme; massekoefficient(masse/kvadreret højde) = ? kg/m²""" +* #NPU27281 ^designation.value = "Pt—Legeme; massekoefficient(masse/kvadreret højde) = ? kg/m²" * #NPU27281 ^property[0].code = #ChangeDate * #NPU27281 ^property[=].valueDateTime = "2007-12-06T00:00:00+01:00" * #NPU27281 ^property[+].code = #ChangeComment diff --git a/input/fsh/valueSets.fsh b/input/fsh/valueSets.fsh index a09fc4c3c..9c5472c7d 100644 --- a/input/fsh/valueSets.fsh +++ b/input/fsh/valueSets.fsh @@ -26,20 +26,20 @@ Id: dk-core-LoincBasicObservation Title: "DK Core LOINC Basic Observations" Description: "LOINC codes describing Basic Observations usable in Denmark." * ^experimental = false -* $LOINC#9279-1 "Respiratory rate" -* $LOINC#8867-4 "Heart rate" -* $LOINC#2708-6 "Oxygen saturation in Arterial blood" -* $LOINC#8310-5 "Body temperature" -* $LOINC#85353-1 "Vital signs, weight, height, head circumference, oxygen saturation & BMI panel" -* $LOINC#8302-2 "Body height" -* $LOINC#9843-4 "Head Occipital-frontal circumference" -* $LOINC#29463-7 "Body weight" -* $LOINC#39156-5 "Body mass index (BMI) [Ratio]" -* $LOINC#85354-9 "Blood pressure panel with all children optional" -* $LOINC#8480-6 "Systolic blood pressure" -* $LOINC#8462-4 "Diastolic blood pressure" -* $LOINC#8478-0 "Mean blood pressure" -* $LOINC#59408-5 "Oxygen saturation in Arterial blood by Pulse oximetry" +* $LOINC#9279-1 //"Respiratory rate" +* $LOINC#8867-4 //"Heart rate" +* $LOINC#2708-6 //"Oxygen saturation in Arterial blood" +* $LOINC#8310-5 //"Body temperature" +* $LOINC#85353-1 //"Vital signs, weight, height, head circumference, oxygen saturation & BMI panel" +* $LOINC#8302-2 //"Body height" +* $LOINC#9843-4 //"Head Occipital-frontal circumference" +* $LOINC#29463-7 //"Body weight" +* $LOINC#39156-5 //"Body mass index (BMI) [Ratio]" +* $LOINC#85354-9 //"Blood pressure panel with all children optional" +* $LOINC#8480-6 //"Systolic blood pressure" +* $LOINC#8462-4 //"Diastolic blood pressure" +* $LOINC#8478-0 //"Mean blood pressure" +* $LOINC#59408-5 //"Oxygen saturation in Arterial blood by Pulse oximetry" ValueSet: SCTBasicObservation Id: dk-core-SCTBasicObservation From a2de2fc7b6a5f1638bcdf45e39f9512aa922f509 Mon Sep 17 00:00:00 2001 From: Jens Kristian Villadsen Date: Thu, 9 May 2024 17:56:59 +0200 Subject: [PATCH 08/40] Mapped "comments" using https://hl7.org/fhir/codesystem.html#defined-props --- input/fsh/codeSystems.fsh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/input/fsh/codeSystems.fsh b/input/fsh/codeSystems.fsh index bb61e7963..b1a572d13 100644 --- a/input/fsh/codeSystems.fsh +++ b/input/fsh/codeSystems.fsh @@ -816,7 +816,7 @@ Description: "DK NPU Subsetted code system used in DK Core. The full version of * #NPU03011 ^designation.value = "Hb(Fe; O\u2082-bind.;aB)\u2014Oxygen(O\u2082); mætn. = ?" * #NPU03011 ^property[0].code = #ChangeDate * #NPU03011 ^property[=].valueDateTime = "2000-12-20T00:00:00+01:00" -* #NPU03011 ^property[+].code = #ChangeComment +* #NPU03011 ^property[+].code = http://hl7.org/fhir/concept-properties#comment * #NPU03011 ^property[=].valueString = "Name changed" * #NPU03011 ^property[+].code = #CreatedDate * #NPU03011 ^property[=].valueDateTime = "1996-12-24T00:00:00+01:00" @@ -912,7 +912,7 @@ Description: "DK NPU Subsetted code system used in DK Core. The full version of * #NPU58033 ^designation.value = "Arterie(spec.)—Blodtryk(systolisk); tryk(proc.) = ? mmHg" * #NPU58033 ^property[0].code = #ChangeDate * #NPU58033 ^property[=].valueDateTime = "2021-03-19T00:00:00+01:00" -* #NPU58033 ^property[+].code = #ChangeComment +* #NPU58033 ^property[+].code = http://hl7.org/fhir/concept-properties#comment * #NPU58033 ^property[=].valueString = "Specification changed" * #NPU58033 ^property[+].code = #CreatedDate * #NPU58033 ^property[=].valueDateTime = "2017-12-18T00:00:00+01:00" @@ -1083,7 +1083,7 @@ Description: "DK NPU Subsetted code system used in DK Core. The full version of * #NPU27281 ^designation.value = "Pt—Legeme; massekoefficient(masse/kvadreret højde) = ? kg/m²" * #NPU27281 ^property[0].code = #ChangeDate * #NPU27281 ^property[=].valueDateTime = "2007-12-06T00:00:00+01:00" -* #NPU27281 ^property[+].code = #ChangeComment +* #NPU27281 ^property[+].code = http://hl7.org/fhir/concept-properties#comment * #NPU27281 ^property[=].valueString = "Unit defined" * #NPU27281 ^property[+].code = #CreatedDate * #NPU27281 ^property[=].valueDateTime = "2007-11-23T00:00:00+01:00" From 222308dc01df90086e71d1cb7ba9b84675830490 Mon Sep 17 00:00:00 2001 From: Jens Kristian Villadsen Date: Fri, 10 May 2024 10:14:52 +0200 Subject: [PATCH 09/40] Added correct property concept values --- input/fsh/codeSystems.fsh | 107 +++++++++++++++++++++++++++++++++++--- 1 file changed, 99 insertions(+), 8 deletions(-) diff --git a/input/fsh/codeSystems.fsh b/input/fsh/codeSystems.fsh index b1a572d13..508938760 100644 --- a/input/fsh/codeSystems.fsh +++ b/input/fsh/codeSystems.fsh @@ -799,7 +799,6 @@ Description: "DK Related Person Relationship Codes" * ^designation.language = #da * ^designation.value = "Primær omsorgsperson" - CodeSystem: NPU Id: dk-npu-fragment Title: "DK NPU Subset" @@ -811,13 +810,33 @@ Description: "DK NPU Subsetted code system used in DK Core. The full version of * ^url = $NPU * ^version = "EN211028" * ^copyright = "The International Union of Pure and Applied Chemistry (IUPAC) and the International Federation of Clinical Chemistry and laboratory medicine (IFCC)" + +* ^property[0].uri = "http://hl7.org/fhir/concept-properties#comment" +* ^property[=].type = #string +* ^property[=].description = "A string that provides additional detail pertinent to the use or understanding of the concept" +* ^property[=].code = #comment + +* ^property[+].uri = "http://hl7.org/fhir/concept-properties#effectiveDate" +* ^property[=].type = #dateTime +* ^property[=].description = "The date at which the concept status was last changed" +* ^property[=].code = #effectiveDate + +* ^property[+].uri = "http://hl7.org/fhir/concept-properties#status" +* ^property[=].type = #code +* ^property[=].description = "A code that indicates the status of the concept. Typical values are active, experimental, deprecated, and retired" +* ^property[=].code = #status + +* ^property[+].uri = "http://hl7.org/fhir/concept-properties#inactive" +* ^property[=].type = #boolean +* ^property[=].description = "True if the concept is not considered active - e.g. not a valid concept any more. Property type is boolean, default value is false. Note that the status property may also be used to indicate that a concept is inactive" +* ^property[=].code = #inactive + + * #NPU03011 "Hb(Fe; O\u2082-bind.; aB)\u2014Oxygen(O\u2082); sat. = ?" * #NPU03011 ^designation.language = #da * #NPU03011 ^designation.value = "Hb(Fe; O\u2082-bind.;aB)\u2014Oxygen(O\u2082); mætn. = ?" * #NPU03011 ^property[0].code = #ChangeDate * #NPU03011 ^property[=].valueDateTime = "2000-12-20T00:00:00+01:00" -* #NPU03011 ^property[+].code = http://hl7.org/fhir/concept-properties#comment -* #NPU03011 ^property[=].valueString = "Name changed" * #NPU03011 ^property[+].code = #CreatedDate * #NPU03011 ^property[=].valueDateTime = "1996-12-24T00:00:00+01:00" * #NPU03011 ^property[+].code = #System @@ -838,6 +857,12 @@ Description: "DK NPU Subsetted code system used in DK Core. The full version of * #NPU03011 ^property[=].valueString = "Ratio" * #NPU03011 ^property[+].code = #STATUS * #NPU03011 ^property[=].valueString = "ACTIVE" + * ^property[+].code = #effectiveDate + * ^property[=].valueDateTime = "2000-12-20T00:00:00+01:00" + * ^property[+].code = #status + * ^property[=].valueBoolean = true + * ^property[+].code = #comment + * ^property[=].valueString = "Unit defined" * #NPU27280 "Hb(Fe; O\u2082-bind.; aB)\u2014Oxygen(O\u2082); sat.(Pulse oximetry) = ?" * #NPU27280 ^designation.language = #da * #NPU27280 ^designation.value = "Hb(Fe; O\u2082-bind.;aB)—Oxygen(O\u2082); mætn.(pulsoximetri) = ?" @@ -863,6 +888,12 @@ Description: "DK NPU Subsetted code system used in DK Core. The full version of * #NPU27280 ^property[=].valueString = "Ratio" * #NPU27280 ^property[+].code = #STATUS * #NPU27280 ^property[=].valueString = "ACTIVE" + * ^property[+].code = #effectiveDate + * ^property[=].valueDateTime = "2007-11-23T00:00:00+01:00" + * ^property[+].code = #status + * ^property[=].valueBoolean = true + * ^property[+].code = #comment + * ^property[=].valueString = "Unit defined" * #NPU04034 "Pt(spec.)\u2014Blood; temp. = ? \u00b0C" * #NPU04034 ^designation.language = #da * #NPU04034 ^designation.value = "Pt(spec.)—Blod; temp. = ? °C" @@ -886,6 +917,12 @@ Description: "DK NPU Subsetted code system used in DK Core. The full version of * #NPU04034 ^property[=].valueString = "Differential" * #NPU04034 ^property[+].code = #STATUS * #NPU04034 ^property[=].valueString = "ACTIVE" + * ^property[+].code = #effectiveDate + * ^property[=].valueDateTime = "1996-05-08T00:00:00+02:00" + * ^property[+].code = #status + * ^property[=].valueBoolean = true + * ^property[+].code = #comment + * ^property[=].valueString = "Unit defined" * #NPU08676 "Pt\u2014Body; temp. = ? \u00b0C" * #NPU08676 ^designation.language = #da * #NPU08676 ^designation.value = "Pt—Legeme; temp. = ? °C" @@ -907,13 +944,17 @@ Description: "DK NPU Subsetted code system used in DK Core. The full version of * #NPU08676 ^property[=].valueString = "Differential" * #NPU08676 ^property[+].code = #STATUS * #NPU08676 ^property[=].valueString = "ACTIVE" + * ^property[+].code = #effectiveDate + * ^property[=].valueDateTime = "1997-04-15T00:00:00+02:00" + * ^property[+].code = #status + * ^property[=].valueBoolean = true + * ^property[+].code = #comment + * ^property[=].valueString = "Unit defined" * #NPU58033 "Artery(spec.)\u2014Blood pressure(systolic); pr.(proc.) = ? mmHg" * #NPU58033 ^designation.language = #da * #NPU58033 ^designation.value = "Arterie(spec.)—Blodtryk(systolisk); tryk(proc.) = ? mmHg" * #NPU58033 ^property[0].code = #ChangeDate * #NPU58033 ^property[=].valueDateTime = "2021-03-19T00:00:00+01:00" -* #NPU58033 ^property[+].code = http://hl7.org/fhir/concept-properties#comment -* #NPU58033 ^property[=].valueString = "Specification changed" * #NPU58033 ^property[+].code = #CreatedDate * #NPU58033 ^property[=].valueDateTime = "2017-12-18T00:00:00+01:00" * #NPU58033 ^property[+].code = #System @@ -938,6 +979,14 @@ Description: "DK NPU Subsetted code system used in DK Core. The full version of * #NPU58033 ^property[=].valueString = "Ratio" * #NPU58033 ^property[+].code = #STATUS * #NPU58033 ^property[=].valueString = "ACTIVE" + * ^property[+].code = #effectiveDate + * ^property[=].valueDateTime = "2021-03-19T00:00:00+01:00" + * ^property[+].code = #status + * ^property[=].valueCoding = #deprecated + * ^property[+].code = #comment + * ^property[=].valueString = "Specification changed" + * ^property[+].code = #inactive + * ^property[=].valueBoolean = true * #NPU57947 "Artery(spec.)\u2014Blood; pr.(systolic; proc.) = ? mmHg" * #NPU57947 ^designation.language = #da * #NPU57947 ^designation.value = "Arterie(spec.)—Blod; tryk(systolisk;proc.) = ? mmHg" @@ -963,6 +1012,12 @@ Description: "DK NPU Subsetted code system used in DK Core. The full version of * #NPU57947 ^property[=].valueString = "Ratio" * #NPU57947 ^property[+].code = #STATUS * #NPU57947 ^property[=].valueString = "ACTIVE" + * ^property[+].code = #effectiveDate + * ^property[=].valueDateTime = "2017-12-05T00:00:00+01:00" + * ^property[+].code = #status + * ^property[=].valueBoolean = true + * ^property[+].code = #comment + * ^property[=].valueString = "Unit defined" * #NPU58034 "Artery(spec.)\u2014Blood pressure(diastolic); pr.(proc.) = ? mmHg" * #NPU58034 ^designation.language = #da * #NPU58034 ^designation.value = "Arterie(spec.)—Blodtryk(diastolisk); tryk(proc.) = ? mmHg" @@ -990,6 +1045,14 @@ Description: "DK NPU Subsetted code system used in DK Core. The full version of * #NPU58034 ^property[=].valueString = "Ratio" * #NPU58034 ^property[+].code = #STATUS * #NPU58034 ^property[=].valueString = "ACTIVE" + * ^property[+].code = #effectiveDate + * ^property[=].valueDateTime = "2017-12-18T00:00:00+01:00" + * ^property[+].code = #status + * ^property[=].valueCoding = #deprecated + * ^property[+].code = #comment + * ^property[=].valueString = "Specification changed" + * ^property[+].code = #inactive + * ^property[=].valueBoolean = true * #NPU57948 "Artery(spec.)\u2014Blood; pr.(diastolic; proc.) = ? mmHg" * #NPU57948 ^designation.language = #da * #NPU57948 ^designation.value = "Arterie(spec.)—Blod; tryk(diastolisk;proc.) = ? mmHg" @@ -1015,6 +1078,12 @@ Description: "DK NPU Subsetted code system used in DK Core. The full version of * #NPU57948 ^property[=].valueString = "Ratio" * #NPU57948 ^property[+].code = #STATUS * #NPU57948 ^property[=].valueString = "ACTIVE" + * ^property[+].code = #effectiveDate + * ^property[=].valueDateTime = "2017-12-05T00:00:00+01:00" + * ^property[+].code = #status + * ^property[=].valueBoolean = true + * ^property[+].code = #comment + * ^property[=].valueString = "Unit defined" * #NPU21692 "Heart\u2014Systole; frequency = ? \u00d7 1/min" * #NPU21692 ^designation.language = #da * #NPU21692 ^designation.value = "Hjerte—Systole; frekv. = ? × 1/min" @@ -1036,6 +1105,12 @@ Description: "DK NPU Subsetted code system used in DK Core. The full version of * #NPU21692 ^property[=].valueString = "Ratio" * #NPU21692 ^property[+].code = #STATUS * #NPU21692 ^property[=].valueString = "ACTIVE" + * ^property[+].code = #effectiveDate + * ^property[=].valueDateTime = "2004-09-29T00:00:00+02:00" + * ^property[+].code = #status + * ^property[=].valueBoolean = true + * ^property[+].code = #comment + * ^property[=].valueString = "Unit defined" * #NPU03794 "Pt\u2014Body; height = ? m" * #NPU03794 ^designation.language = #da * #NPU03794 ^designation.value = "Pt—Legeme; højde = ? m" @@ -1057,6 +1132,12 @@ Description: "DK NPU Subsetted code system used in DK Core. The full version of * #NPU03794 ^property[=].valueString = "Ratio" * #NPU03794 ^property[+].code = #STATUS * #NPU03794 ^property[=].valueString = "ACTIVE" + * ^property[+].code = #effectiveDate + * ^property[=].valueDateTime = "1997-04-15T00:00:00+02:00" + * ^property[+].code = #status + * ^property[=].valueBoolean = true + * ^property[+].code = #comment + * ^property[=].valueString = "Unit defined" * #NPU03804 "Pt\u2014Body; mass = ? kg" * #NPU03804 ^designation.language = #da * #NPU03804 ^designation.value = "Pt—Legeme; masse = ? kg" @@ -1078,13 +1159,17 @@ Description: "DK NPU Subsetted code system used in DK Core. The full version of * #NPU03804 ^property[=].valueString = "Ratio" * #NPU03804 ^property[+].code = #STATUS * #NPU03804 ^property[=].valueString = "ACTIVE" + * ^property[+].code = #effectiveDate + * ^property[=].valueDateTime = "1996-01-01T00:00:00+01:00" + * ^property[+].code = #status + * ^property[=].valueBoolean = true + * ^property[+].code = #comment + * ^property[=].valueString = "Unit defined" * #NPU27281 "Pt\u2014Body; mass coefficient(mass/squared height) = ? kg/m\u00b2" * #NPU27281 ^designation.language = #da * #NPU27281 ^designation.value = "Pt—Legeme; massekoefficient(masse/kvadreret højde) = ? kg/m²" * #NPU27281 ^property[0].code = #ChangeDate * #NPU27281 ^property[=].valueDateTime = "2007-12-06T00:00:00+01:00" -* #NPU27281 ^property[+].code = http://hl7.org/fhir/concept-properties#comment -* #NPU27281 ^property[=].valueString = "Unit defined" * #NPU27281 ^property[+].code = #CreatedDate * #NPU27281 ^property[=].valueDateTime = "2007-11-23T00:00:00+01:00" * #NPU27281 ^property[+].code = #System @@ -1104,4 +1189,10 @@ Description: "DK NPU Subsetted code system used in DK Core. The full version of * #NPU27281 ^property[+].code = #"Scale type" * #NPU27281 ^property[=].valueString = "Ratio" * #NPU27281 ^property[+].code = #STATUS -* #NPU27281 ^property[=].valueString = "ACTIVE" \ No newline at end of file +* #NPU27281 ^property[=].valueString = "ACTIVE" + * ^property[+].code = #effectiveDate + * ^property[=].valueDateTime = "2007-12-06T00:00:00+01:00" + * ^property[+].code = #status + * ^property[=].valueBoolean = true + * ^property[+].code = #comment + * ^property[=].valueString = "Unit defined" \ No newline at end of file From a772a754a5516f7ec7bdb1fe86392a1b4d75e198 Mon Sep 17 00:00:00 2001 From: Jens Kristian Villadsen Date: Fri, 10 May 2024 21:10:25 +0200 Subject: [PATCH 10/40] Removed locale duplicate displays Made SCT alias target DK by default --- input/fsh/aliases.fsh | 2 +- input/fsh/instances.fsh | 287 ---------------------------------------- input/fsh/valueSets.fsh | 104 +++++++++++++-- 3 files changed, 91 insertions(+), 302 deletions(-) diff --git a/input/fsh/aliases.fsh b/input/fsh/aliases.fsh index 7d09ab1b1..87d74e2ad 100644 --- a/input/fsh/aliases.fsh +++ b/input/fsh/aliases.fsh @@ -1,4 +1,4 @@ -Alias: $sct = http://snomed.info/sct +Alias: $sct = http://snomed.info/sct|http://snomed.info/sct/554471000005108 // Danish version - append e.g. /version/20240331 to get a more specific version 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 diff --git a/input/fsh/instances.fsh b/input/fsh/instances.fsh index 677ab058f..569844e84 100644 --- a/input/fsh/instances.fsh +++ b/input/fsh/instances.fsh @@ -82,290 +82,3 @@ Title: "DK Core Marital Status" * 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" -Title: "DK Core SOR Organization Type" -Usage: #definition -* experimental = false -* url = "http://hl7.dk/fhir/core/ValueSet/sor-organization-type" -* name = "SorOrganizationType" -* status = #active -* title = "DK SOR Organization Type" -* 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/valueSets.fsh b/input/fsh/valueSets.fsh index 9c5472c7d..952f95b78 100644 --- a/input/fsh/valueSets.fsh +++ b/input/fsh/valueSets.fsh @@ -226,19 +226,19 @@ Id: dk-core-UCUM-BasicUnits Title: "DK Core UCUM Basic Units" Description: "UCUM codes to represent units for basic Observations usable in Denmark" * ^experimental = false -* $ucum#% "percent" -* $ucum#cm "centimeter" -* $ucum#[in_i] "inch (international)" -* $ucum#kg "kilogram" -* $ucum#g "gram" -* $ucum#[lb_av] "pound (US and British)" -* $ucum#Cel "degree Celsius" -* $ucum#[degF] "degree Fahrenheit" -* $ucum#mm[Hg] "millimeter of mercury" -* $ucum#/min "per minute" -* $ucum#kg/m2 "kilogram / (meter ^ 2)" -* $ucum#m2 "square meter" -* $ucum#{fraction} "fraction" +* $ucum#% +* $ucum#cm +* $ucum#[in_i] +* $ucum#kg +* $ucum#g +* $ucum#[lb_av] +* $ucum#Cel +* $ucum#[degF] +* $ucum#mm[Hg] +* $ucum#/min +* $ucum#kg/m2 +* $ucum#m2 +* $ucum#{fraction} ValueSet: TechniquesSCTCodes Id: dk-core-TechniquesSCTCodes @@ -281,4 +281,80 @@ Description: "DK Related Person Relationship Types" * $v3-RoleCode#GUARD // "guardian" * $v3-RoleCode#NOK // "next of kin" * $v3-RoleCode#POWATT // "power of attorney" -* include codes from system DkRelatedPersonRelationshipCodes \ No newline at end of file +* include codes from system DkRelatedPersonRelationshipCodes + +ValueSet: SorOrganizationType +Id: sor-organization-type +Title: "DK SOR Organization Type" +Description: "Value set used for indicating the organization type for organizations from SOR" +* ^experimental = false +* ^status = #active +* ^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" +* $sct#554221000005108 +* $sct#546821000005103 +* $sct#547011000005103 +* $sct#546811000005109 +* $sct#550621000005101 +* $sct#550631000005103 +* $sct#550641000005106 +* $sct#550651000005108 +* $sct#550661000005105 +* $sct#554211000005102 +* $sct#550711000005101 +* $sct#550671000005100 +* $sct#554061000005105 +* $sct#554041000005106 +* $sct#554021000005101 +* $sct#550681000005102 +* $sct#550691000005104 +* $sct#550701000005104 +* $sct#554231000005106 +* $sct#554051000005108 +* $sct#550811000005108 +* $sct#547211000005108 +* $sct#550891000005100 +* $sct#550881000005103 +* $sct#550411000005105 +* $sct#554851000005102 +* $sct#550861000005106 +* $sct#554881000005108 +* $sct#554861000005100 +* $sct#554821000005109 +* $sct#554411000005101 +* $sct#554871000005105 +* $sct#550821000005102 +* $sct#550871000005101 +* $sct#554241000005103 +* $sct#550841000005107 +* $sct#550851000005109 +* $sct#551611000005102 +* $sct#554071000005100 +* $sct#550831000005104 +* $sct#554031000005103 +* $sct#557511000005107 +* $sct#557501000005109 +* $sct#557531000005103 +* $sct#557591000005104 +* $sct#557521000005101 +* $sct#557561000005105 +* $sct#557541000005106 +* $sct#557581000005102 +* $sct#556841000005105 +* $sct#557671000005101 +* $sct#398070004 +* $sct#394761003 +* $sct#20078004 +* $sct#722173008 +* $sct#702871004 +* $sct#276037005 +* $sct#22232009 +* $sct#702824005 +* $sct#42665001 +* $sct#264361005 +* $sct#703069008 +* $sct#309964003 +* $sct#309904001 +* $sct#309939001 +* $sct#225728007 +* $sct#255203001 +* $sct#264372000 \ No newline at end of file From 44e5602842cf24b518b553e329578dd751d21c4d Mon Sep 17 00:00:00 2001 From: Jens Kristian Villadsen Date: Sun, 12 May 2024 10:38:27 +0200 Subject: [PATCH 11/40] Refined used of DK profiles --- input/fsh/DkCoreCondition.fsh | 4 ++-- input/fsh/DkCoreObservation.fsh | 4 ++-- input/fsh/DkCorePatient.fsh | 2 ++ 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/input/fsh/DkCoreCondition.fsh b/input/fsh/DkCoreCondition.fsh index c47dd21fd..ddbcf9e66 100644 --- a/input/fsh/DkCoreCondition.fsh +++ b/input/fsh/DkCoreCondition.fsh @@ -39,8 +39,8 @@ Description: "HL7 Denmark core profile for professionally asserted conditions, a * system 1.. * system = "urn:oid:1.2.208.176.2.31" * subject only Reference(DkCorePatient) -* recorder only Reference(DkCorePractitioner or PractitionerRole or DkCorePatient or DkCoreRelatedPerson) -* asserter only Reference(DkCorePractitioner or PractitionerRole) +* recorder only Reference(DkCorePractitioner or DkCorePractitionerRole or DkCorePatient or DkCoreRelatedPerson) +* asserter only Reference(DkCorePractitioner or DkCorePractitionerRole) Instance: ConditionPressureUlcer InstanceOf: DkCoreCondition diff --git a/input/fsh/DkCoreObservation.fsh b/input/fsh/DkCoreObservation.fsh index 84d4ca427..2129128b8 100644 --- a/input/fsh/DkCoreObservation.fsh +++ b/input/fsh/DkCoreObservation.fsh @@ -44,9 +44,9 @@ Description: "HL7 Denmark core profile for observations" * system 1.. * system = $SKS (exactly) * code 1.. -* subject only Reference(DkCorePatient or Group or Location or Device) +* subject only Reference(DkCorePatient or Group or DkCoreLocation or Device) * subject 1.. -* performer only Reference(DkCorePractitioner or DkCoreOrganization or DkCorePatient or PractitionerRole or CareTeam or DkCoreRelatedPerson) +* performer only Reference(DkCorePractitioner or DkCoreOrganization or DkCorePatient or DkCorePractitionerRole or CareTeam or DkCoreRelatedPerson) * device ^short = "The device used for the measurement. It is recommended that when information about the device is sent, it is contained in the same Bundle as the Observation the device measured." * valueQuantity.system = $ucum * component.code.coding ^slicing.discriminator.type = #value diff --git a/input/fsh/DkCorePatient.fsh b/input/fsh/DkCorePatient.fsh index a0fb35fc7..b22b4baab 100644 --- a/input/fsh/DkCorePatient.fsh +++ b/input/fsh/DkCorePatient.fsh @@ -36,9 +36,11 @@ Description: "HL7 Denmark core profile for a patient" * generalPractitioner ^slicing.discriminator.type = #value * ^slicing.discriminator.path = "identifier.system" * ^slicing.rules = #open +* generalPractitioner only Reference(DkCoreOrganization or DkCorePractitioner or DkCorePractitionerRole) * generalPractitioner contains referencedSORUnit 0..* * generalPractitioner[referencedSORUnit] ^short = "[DA] Praktiserende læges SOR-id på sundhedsinstistutionsniveau" * identifier only SORIdentifier +* managingOrganization only Reference(DkCoreOrganization) * contact.relationship from RelatedPersonRelationshipTypes (extensible) * link.other only Reference(DkCorePatient or DkCoreRelatedPerson) From 9811e03a4a69d09be8abc3c976acdeff80b4e78e Mon Sep 17 00:00:00 2001 From: Jens Kristian Villadsen Date: Sun, 12 May 2024 10:39:24 +0200 Subject: [PATCH 12/40] indented properties --- input/fsh/codeSystems.fsh | 585 +++++++++++++++++++------------------- 1 file changed, 290 insertions(+), 295 deletions(-) diff --git a/input/fsh/codeSystems.fsh b/input/fsh/codeSystems.fsh index 508938760..fde43d446 100644 --- a/input/fsh/codeSystems.fsh +++ b/input/fsh/codeSystems.fsh @@ -803,396 +803,391 @@ CodeSystem: NPU Id: dk-npu-fragment Title: "DK NPU Subset" Description: "DK NPU Subsetted code system used in DK Core. The full version of NPU can be found at http://labterm.dk" -* ^content = #fragment +* ^url = $NPU * ^status = #active +* ^content = #fragment * ^experimental = false * ^caseSensitive = false -* ^url = $NPU * ^version = "EN211028" * ^copyright = "The International Union of Pure and Applied Chemistry (IUPAC) and the International Federation of Clinical Chemistry and laboratory medicine (IFCC)" - * ^property[0].uri = "http://hl7.org/fhir/concept-properties#comment" * ^property[=].type = #string * ^property[=].description = "A string that provides additional detail pertinent to the use or understanding of the concept" * ^property[=].code = #comment - * ^property[+].uri = "http://hl7.org/fhir/concept-properties#effectiveDate" * ^property[=].type = #dateTime * ^property[=].description = "The date at which the concept status was last changed" * ^property[=].code = #effectiveDate - * ^property[+].uri = "http://hl7.org/fhir/concept-properties#status" * ^property[=].type = #code * ^property[=].description = "A code that indicates the status of the concept. Typical values are active, experimental, deprecated, and retired" * ^property[=].code = #status - * ^property[+].uri = "http://hl7.org/fhir/concept-properties#inactive" * ^property[=].type = #boolean * ^property[=].description = "True if the concept is not considered active - e.g. not a valid concept any more. Property type is boolean, default value is false. Note that the status property may also be used to indicate that a concept is inactive" * ^property[=].code = #inactive - * #NPU03011 "Hb(Fe; O\u2082-bind.; aB)\u2014Oxygen(O\u2082); sat. = ?" -* #NPU03011 ^designation.language = #da -* #NPU03011 ^designation.value = "Hb(Fe; O\u2082-bind.;aB)\u2014Oxygen(O\u2082); mætn. = ?" -* #NPU03011 ^property[0].code = #ChangeDate -* #NPU03011 ^property[=].valueDateTime = "2000-12-20T00:00:00+01:00" -* #NPU03011 ^property[+].code = #CreatedDate -* #NPU03011 ^property[=].valueDateTime = "1996-12-24T00:00:00+01:00" -* #NPU03011 ^property[+].code = #System -* #NPU03011 ^property[=].valueString = "Hb" -* #NPU03011 ^property[+].code = #SysSpec -* #NPU03011 ^property[=].valueString = "Fe; O\u2082-bind.;aB" -* #NPU03011 ^property[+].code = #Component -* #NPU03011 ^property[=].valueString = "Oxygen" -* #NPU03011 ^property[+].code = #CompSpec -* #NPU03011 ^property[=].valueString = "O\u2082" -* #NPU03011 ^property[+].code = #Kind-of-property -* #NPU03011 ^property[=].valueString = "sat." -* #NPU03011 ^property[+].code = #Speciality -* #NPU03011 ^property[=].valueString = "CLC" -* #NPU03011 ^property[+].code = #"Code value" -* #NPU03011 ^property[=].valueString = "3011" -* #NPU03011 ^property[+].code = #"Scale type" -* #NPU03011 ^property[=].valueString = "Ratio" -* #NPU03011 ^property[+].code = #STATUS -* #NPU03011 ^property[=].valueString = "ACTIVE" + * ^designation.language = #da + * ^designation.value = "Hb(Fe; O\u2082-bind.;aB)\u2014Oxygen(O\u2082); mætn. = ?" + * ^property[0].code = #ChangeDate + * ^property[=].valueDateTime = "2000-12-20T00:00:00+01:00" + * ^property[+].code = #CreatedDate + * ^property[=].valueDateTime = "1996-12-24T00:00:00+01:00" + * ^property[+].code = #System + * ^property[=].valueString = "Hb" + * ^property[+].code = #SysSpec + * ^property[=].valueString = "Fe; O₂-bind.;aB" + * ^property[+].code = #Component + * ^property[=].valueString = "Oxygen" + * ^property[+].code = #CompSpec + * ^property[=].valueString = "O₂" + * ^property[+].code = #Kind-of-property + * ^property[=].valueString = "sat." + * ^property[+].code = #Speciality + * ^property[=].valueString = "CLC" + * ^property[+].code = #"Code value" + * ^property[=].valueString = "3011" + * ^property[+].code = #"Scale type" + * ^property[=].valueString = "Ratio" + * ^property[+].code = #STATUS + * ^property[=].valueString = "ACTIVE" * ^property[+].code = #effectiveDate * ^property[=].valueDateTime = "2000-12-20T00:00:00+01:00" * ^property[+].code = #status - * ^property[=].valueBoolean = true + * ^property[=].valueCode = #active * ^property[+].code = #comment * ^property[=].valueString = "Unit defined" * #NPU27280 "Hb(Fe; O\u2082-bind.; aB)\u2014Oxygen(O\u2082); sat.(Pulse oximetry) = ?" -* #NPU27280 ^designation.language = #da -* #NPU27280 ^designation.value = "Hb(Fe; O\u2082-bind.;aB)—Oxygen(O\u2082); mætn.(pulsoximetri) = ?" -* #NPU27280 ^property[0].code = #CreatedDate -* #NPU27280 ^property[=].valueDateTime = "2007-11-23T00:00:00+01:00" -* #NPU27280 ^property[+].code = #System -* #NPU27280 ^property[=].valueString = "Hb" -* #NPU27280 ^property[+].code = #SysSpec -* #NPU27280 ^property[=].valueString = "Fe; O\u2082-bind.;aB" -* #NPU27280 ^property[+].code = #Component -* #NPU27280 ^property[=].valueString = "Oxygen" -* #NPU27280 ^property[+].code = #CompSpec -* #NPU27280 ^property[=].valueString = "O\u2082" -* #NPU27280 ^property[+].code = #Kind-of-property -* #NPU27280 ^property[=].valueString = "sat." -* #NPU27280 ^property[+].code = #Proc -* #NPU27280 ^property[=].valueString = "Pulse oximetry" -* #NPU27280 ^property[+].code = #Speciality -* #NPU27280 ^property[=].valueString = "CLC" -* #NPU27280 ^property[+].code = #"Code value" -* #NPU27280 ^property[=].valueString = "27280" -* #NPU27280 ^property[+].code = #"Scale type" -* #NPU27280 ^property[=].valueString = "Ratio" -* #NPU27280 ^property[+].code = #STATUS -* #NPU27280 ^property[=].valueString = "ACTIVE" + * ^designation.language = #da + * ^designation.value = "Hb(Fe; O\u2082-bind.;aB)—Oxygen(O\u2082); mætn.(pulsoximetri) = ?" + * ^property[0].code = #CreatedDate + * ^property[=].valueDateTime = "2007-11-23T00:00:00+01:00" + * ^property[+].code = #System + * ^property[=].valueString = "Hb" + * ^property[+].code = #SysSpec + * ^property[=].valueString = "Fe; O₂-bind.;aB" + * ^property[+].code = #Component + * ^property[=].valueString = "Oxygen" + * ^property[+].code = #CompSpec + * ^property[=].valueString = "O₂" + * ^property[+].code = #Kind-of-property + * ^property[=].valueString = "sat." + * ^property[+].code = #Proc + * ^property[=].valueString = "Pulse oximetry" + * ^property[+].code = #Speciality + * ^property[=].valueString = "CLC" + * ^property[+].code = #"Code value" + * ^property[=].valueString = "27280" + * ^property[+].code = #"Scale type" + * ^property[=].valueString = "Ratio" + * ^property[+].code = #STATUS + * ^property[=].valueString = "ACTIVE" * ^property[+].code = #effectiveDate * ^property[=].valueDateTime = "2007-11-23T00:00:00+01:00" * ^property[+].code = #status - * ^property[=].valueBoolean = true + * ^property[=].valueCode = #active * ^property[+].code = #comment * ^property[=].valueString = "Unit defined" * #NPU04034 "Pt(spec.)\u2014Blood; temp. = ? \u00b0C" -* #NPU04034 ^designation.language = #da -* #NPU04034 ^designation.value = "Pt(spec.)—Blod; temp. = ? °C" -* #NPU04034 ^property[0].code = #CreatedDate -* #NPU04034 ^property[=].valueDateTime = "1996-05-08T00:00:00+02:00" -* #NPU04034 ^property[+].code = #System -* #NPU04034 ^property[=].valueString = "Pt" -* #NPU04034 ^property[+].code = #SysSpec -* #NPU04034 ^property[=].valueString = "spec." -* #NPU04034 ^property[+].code = #Component -* #NPU04034 ^property[=].valueString = "Blood" -* #NPU04034 ^property[+].code = #Kind-of-property -* #NPU04034 ^property[=].valueString = "temp." -* #NPU04034 ^property[+].code = #Unit -* #NPU04034 ^property[=].valueString = "°C" -* #NPU04034 ^property[+].code = #Speciality -* #NPU04034 ^property[=].valueString = "CLC" -* #NPU04034 ^property[+].code = #"Code value" -* #NPU04034 ^property[=].valueString = "4034" -* #NPU04034 ^property[+].code = #"Scale type" -* #NPU04034 ^property[=].valueString = "Differential" -* #NPU04034 ^property[+].code = #STATUS -* #NPU04034 ^property[=].valueString = "ACTIVE" + * ^designation.language = #da + * ^designation.value = "Pt(spec.)—Blod; temp. = ? °C" + * ^property[0].code = #CreatedDate + * ^property[=].valueDateTime = "1996-05-08T00:00:00+02:00" + * ^property[+].code = #System + * ^property[=].valueString = "Pt" + * ^property[+].code = #SysSpec + * ^property[=].valueString = "spec." + * ^property[+].code = #Component + * ^property[=].valueString = "Blood" + * ^property[+].code = #Kind-of-property + * ^property[=].valueString = "temp." + * ^property[+].code = #Unit + * ^property[=].valueString = "°C" + * ^property[+].code = #Speciality + * ^property[=].valueString = "CLC" + * ^property[+].code = #"Code value" + * ^property[=].valueString = "4034" + * ^property[+].code = #"Scale type" + * ^property[=].valueString = "Differential" + * ^property[+].code = #STATUS + * ^property[=].valueString = "ACTIVE" * ^property[+].code = #effectiveDate * ^property[=].valueDateTime = "1996-05-08T00:00:00+02:00" * ^property[+].code = #status - * ^property[=].valueBoolean = true + * ^property[=].valueCode = #active * ^property[+].code = #comment * ^property[=].valueString = "Unit defined" * #NPU08676 "Pt\u2014Body; temp. = ? \u00b0C" -* #NPU08676 ^designation.language = #da -* #NPU08676 ^designation.value = "Pt—Legeme; temp. = ? °C" -* #NPU08676 ^property[0].code = #CreatedDate -* #NPU08676 ^property[=].valueDateTime = "1997-04-15T00:00:00+02:00" -* #NPU08676 ^property[+].code = #System -* #NPU08676 ^property[=].valueString = "Pt" -* #NPU08676 ^property[+].code = #Component -* #NPU08676 ^property[=].valueString = "Body" -* #NPU08676 ^property[+].code = #Kind-of-property -* #NPU08676 ^property[=].valueString = "temp." -* #NPU08676 ^property[+].code = #Unit -* #NPU08676 ^property[=].valueString = "°C" -* #NPU08676 ^property[+].code = #Speciality -* #NPU08676 ^property[=].valueString = "CLC" -* #NPU08676 ^property[+].code = #"Code value" -* #NPU08676 ^property[=].valueString = "8676" -* #NPU08676 ^property[+].code = #"Scale type" -* #NPU08676 ^property[=].valueString = "Differential" -* #NPU08676 ^property[+].code = #STATUS -* #NPU08676 ^property[=].valueString = "ACTIVE" + * ^designation.language = #da + * ^designation.value = "Pt—Legeme; temp. = ? °C" + * ^property[0].code = #CreatedDate + * ^property[=].valueDateTime = "1997-04-15T00:00:00+02:00" + * ^property[+].code = #System + * ^property[=].valueString = "Pt" + * ^property[+].code = #Component + * ^property[=].valueString = "Body" + * ^property[+].code = #Kind-of-property + * ^property[=].valueString = "temp." + * ^property[+].code = #Unit + * ^property[=].valueString = "°C" + * ^property[+].code = #Speciality + * ^property[=].valueString = "CLC" + * ^property[+].code = #"Code value" + * ^property[=].valueString = "8676" + * ^property[+].code = #"Scale type" + * ^property[=].valueString = "Differential" + * ^property[+].code = #STATUS + * ^property[=].valueString = "ACTIVE" * ^property[+].code = #effectiveDate * ^property[=].valueDateTime = "1997-04-15T00:00:00+02:00" * ^property[+].code = #status - * ^property[=].valueBoolean = true + * ^property[=].valueCode = #active * ^property[+].code = #comment * ^property[=].valueString = "Unit defined" * #NPU58033 "Artery(spec.)\u2014Blood pressure(systolic); pr.(proc.) = ? mmHg" -* #NPU58033 ^designation.language = #da -* #NPU58033 ^designation.value = "Arterie(spec.)—Blodtryk(systolisk); tryk(proc.) = ? mmHg" -* #NPU58033 ^property[0].code = #ChangeDate -* #NPU58033 ^property[=].valueDateTime = "2021-03-19T00:00:00+01:00" -* #NPU58033 ^property[+].code = #CreatedDate -* #NPU58033 ^property[=].valueDateTime = "2017-12-18T00:00:00+01:00" -* #NPU58033 ^property[+].code = #System -* #NPU58033 ^property[=].valueString = "Artery" -* #NPU58033 ^property[+].code = #SysSpec -* #NPU58033 ^property[=].valueString = "spec." -* #NPU58033 ^property[+].code = #Component -* #NPU58033 ^property[=].valueString = "Blood pressure" -* #NPU58033 ^property[+].code = #CompSpec -* #NPU58033 ^property[=].valueString = "systolic" -* #NPU58033 ^property[+].code = #Kind-of-property -* #NPU58033 ^property[=].valueString = "pr." -* #NPU58033 ^property[+].code = #Proc -* #NPU58033 ^property[=].valueString = "proc." -* #NPU58033 ^property[+].code = #Unit -* #NPU58033 ^property[=].valueString = "mmHg" -* #NPU58033 ^property[+].code = #Speciality -* #NPU58033 ^property[=].valueString = "CLC" -* #NPU58033 ^property[+].code = #"Code value" -* #NPU58033 ^property[=].valueString = "58033" -* #NPU58033 ^property[+].code = #"Scale type" -* #NPU58033 ^property[=].valueString = "Ratio" -* #NPU58033 ^property[+].code = #STATUS -* #NPU58033 ^property[=].valueString = "ACTIVE" + * ^designation.language = #da + * ^designation.value = "Arterie(spec.)—Blodtryk(systolisk); tryk(proc.) = ? mmHg" + * ^property[0].code = #ChangeDate + * ^property[=].valueDateTime = "2021-03-19T00:00:00+01:00" + * ^property[+].code = #CreatedDate + * ^property[=].valueDateTime = "2017-12-18T00:00:00+01:00" + * ^property[+].code = #System + * ^property[=].valueString = "Artery" + * ^property[+].code = #SysSpec + * ^property[=].valueString = "spec." + * ^property[+].code = #Component + * ^property[=].valueString = "Blood pressure" + * ^property[+].code = #CompSpec + * ^property[=].valueString = "systolic" + * ^property[+].code = #Kind-of-property + * ^property[=].valueString = "pr." + * ^property[+].code = #Proc + * ^property[=].valueString = "proc." + * ^property[+].code = #Unit + * ^property[=].valueString = "mmHg" + * ^property[+].code = #Speciality + * ^property[=].valueString = "CLC" + * ^property[+].code = #"Code value" + * ^property[=].valueString = "58033" + * ^property[+].code = #"Scale type" + * ^property[=].valueString = "Ratio" + * ^property[+].code = #STATUS + * ^property[=].valueString = "ACTIVE" * ^property[+].code = #effectiveDate * ^property[=].valueDateTime = "2021-03-19T00:00:00+01:00" * ^property[+].code = #status - * ^property[=].valueCoding = #deprecated + * ^property[=].valueCode = #deprecated * ^property[+].code = #comment * ^property[=].valueString = "Specification changed" * ^property[+].code = #inactive * ^property[=].valueBoolean = true * #NPU57947 "Artery(spec.)\u2014Blood; pr.(systolic; proc.) = ? mmHg" -* #NPU57947 ^designation.language = #da -* #NPU57947 ^designation.value = "Arterie(spec.)—Blod; tryk(systolisk;proc.) = ? mmHg" -* #NPU57947 ^property[0].code = #CreatedDate -* #NPU57947 ^property[=].valueDateTime = "2017-12-05T00:00:00+01:00" -* #NPU57947 ^property[+].code = #System -* #NPU57947 ^property[=].valueString = "Artery" -* #NPU57947 ^property[+].code = #SysSpec -* #NPU57947 ^property[=].valueString = "spec." -* #NPU57947 ^property[+].code = #Component -* #NPU57947 ^property[=].valueString = "Blood" -* #NPU57947 ^property[+].code = #Kind-of-property -* #NPU57947 ^property[=].valueString = "pr." -* #NPU57947 ^property[+].code = #Proc -* #NPU57947 ^property[=].valueString = "systolic;proc." -* #NPU57947 ^property[+].code = #Unit -* #NPU57947 ^property[=].valueString = "mmHg" -* #NPU57947 ^property[+].code = #Speciality -* #NPU57947 ^property[=].valueString = "CLC" -* #NPU57947 ^property[+].code = #"Code value" -* #NPU57947 ^property[=].valueString = "57947" -* #NPU57947 ^property[+].code = #"Scale type" -* #NPU57947 ^property[=].valueString = "Ratio" -* #NPU57947 ^property[+].code = #STATUS -* #NPU57947 ^property[=].valueString = "ACTIVE" + * ^designation.language = #da + * ^designation.value = "Arterie(spec.)—Blod; tryk(systolisk;proc.) = ? mmHg" + * ^property[0].code = #CreatedDate + * ^property[=].valueDateTime = "2017-12-05T00:00:00+01:00" + * ^property[+].code = #System + * ^property[=].valueString = "Artery" + * ^property[+].code = #SysSpec + * ^property[=].valueString = "spec." + * ^property[+].code = #Component + * ^property[=].valueString = "Blood" + * ^property[+].code = #Kind-of-property + * ^property[=].valueString = "pr." + * ^property[+].code = #Proc + * ^property[=].valueString = "systolic;proc." + * ^property[+].code = #Unit + * ^property[=].valueString = "mmHg" + * ^property[+].code = #Speciality + * ^property[=].valueString = "CLC" + * ^property[+].code = #"Code value" + * ^property[=].valueString = "57947" + * ^property[+].code = #"Scale type" + * ^property[=].valueString = "Ratio" + * ^property[+].code = #STATUS + * ^property[=].valueString = "ACTIVE" * ^property[+].code = #effectiveDate * ^property[=].valueDateTime = "2017-12-05T00:00:00+01:00" * ^property[+].code = #status - * ^property[=].valueBoolean = true + * ^property[=].valueCode = #active * ^property[+].code = #comment * ^property[=].valueString = "Unit defined" * #NPU58034 "Artery(spec.)\u2014Blood pressure(diastolic); pr.(proc.) = ? mmHg" -* #NPU58034 ^designation.language = #da -* #NPU58034 ^designation.value = "Arterie(spec.)—Blodtryk(diastolisk); tryk(proc.) = ? mmHg" -* #NPU58034 ^property[0].code = #CreatedDate -* #NPU58034 ^property[=].valueDateTime = "2017-12-18T00:00:00+01:00" -* #NPU58034 ^property[+].code = #System -* #NPU58034 ^property[=].valueString = "Artery" -* #NPU58034 ^property[+].code = #SysSpec -* #NPU58034 ^property[=].valueString = "spec." -* #NPU58034 ^property[+].code = #Component -* #NPU58034 ^property[=].valueString = "Blood pressure" -* #NPU58034 ^property[+].code = #CompSpec -* #NPU58034 ^property[=].valueString = "diastolic" -* #NPU58034 ^property[+].code = #Kind-of-property -* #NPU58034 ^property[=].valueString = "pr." -* #NPU58034 ^property[+].code = #Proc -* #NPU58034 ^property[=].valueString = "proc." -* #NPU58034 ^property[+].code = #Unit -* #NPU58034 ^property[=].valueString = "mmHg" -* #NPU58034 ^property[+].code = #Speciality -* #NPU58034 ^property[=].valueString = "CLC" -* #NPU58034 ^property[+].code = #"Code value" -* #NPU58034 ^property[=].valueString = "58034" -* #NPU58034 ^property[+].code = #"Scale type" -* #NPU58034 ^property[=].valueString = "Ratio" -* #NPU58034 ^property[+].code = #STATUS -* #NPU58034 ^property[=].valueString = "ACTIVE" + * ^designation.language = #da + * ^designation.value = "Arterie(spec.)—Blodtryk(diastolisk); tryk(proc.) = ? mmHg" + * ^property[0].code = #CreatedDate + * ^property[=].valueDateTime = "2017-12-18T00:00:00+01:00" + * ^property[+].code = #System + * ^property[=].valueString = "Artery" + * ^property[+].code = #SysSpec + * ^property[=].valueString = "spec." + * ^property[+].code = #Component + * ^property[=].valueString = "Blood pressure" + * ^property[+].code = #CompSpec + * ^property[=].valueString = "diastolic" + * ^property[+].code = #Kind-of-property + * ^property[=].valueString = "pr." + * ^property[+].code = #Proc + * ^property[=].valueString = "proc." + * ^property[+].code = #Unit + * ^property[=].valueString = "mmHg" + * ^property[+].code = #Speciality + * ^property[=].valueString = "CLC" + * ^property[+].code = #"Code value" + * ^property[=].valueString = "58034" + * ^property[+].code = #"Scale type" + * ^property[=].valueString = "Ratio" + * ^property[+].code = #STATUS + * ^property[=].valueString = "ACTIVE" * ^property[+].code = #effectiveDate * ^property[=].valueDateTime = "2017-12-18T00:00:00+01:00" * ^property[+].code = #status - * ^property[=].valueCoding = #deprecated + * ^property[=].valueCode = #deprecated * ^property[+].code = #comment * ^property[=].valueString = "Specification changed" * ^property[+].code = #inactive * ^property[=].valueBoolean = true * #NPU57948 "Artery(spec.)\u2014Blood; pr.(diastolic; proc.) = ? mmHg" -* #NPU57948 ^designation.language = #da -* #NPU57948 ^designation.value = "Arterie(spec.)—Blod; tryk(diastolisk;proc.) = ? mmHg" -* #NPU57948 ^property[0].code = #CreatedDate -* #NPU57948 ^property[=].valueDateTime = "2017-12-05T00:00:00+01:00" -* #NPU57948 ^property[+].code = #System -* #NPU57948 ^property[=].valueString = "Artery" -* #NPU57948 ^property[+].code = #SysSpec -* #NPU57948 ^property[=].valueString = "spec." -* #NPU57948 ^property[+].code = #Component -* #NPU57948 ^property[=].valueString = "Blood" -* #NPU57948 ^property[+].code = #Kind-of-property -* #NPU57948 ^property[=].valueString = "pr." -* #NPU57948 ^property[+].code = #Proc -* #NPU57948 ^property[=].valueString = "diastolic;proc." -* #NPU57948 ^property[+].code = #Unit -* #NPU57948 ^property[=].valueString = "mmHg" -* #NPU57948 ^property[+].code = #Speciality -* #NPU57948 ^property[=].valueString = "CLC" -* #NPU57948 ^property[+].code = #"Code value" -* #NPU57948 ^property[=].valueString = "57948" -* #NPU57948 ^property[+].code = #"Scale type" -* #NPU57948 ^property[=].valueString = "Ratio" -* #NPU57948 ^property[+].code = #STATUS -* #NPU57948 ^property[=].valueString = "ACTIVE" + * ^designation.language = #da + * ^designation.value = "Arterie(spec.)—Blod; tryk(diastolisk;proc.) = ? mmHg" + * ^property[0].code = #CreatedDate + * ^property[=].valueDateTime = "2017-12-05T00:00:00+01:00" + * ^property[+].code = #System + * ^property[=].valueString = "Artery" + * ^property[+].code = #SysSpec + * ^property[=].valueString = "spec." + * ^property[+].code = #Component + * ^property[=].valueString = "Blood" + * ^property[+].code = #Kind-of-property + * ^property[=].valueString = "pr." + * ^property[+].code = #Proc + * ^property[=].valueString = "diastolic;proc." + * ^property[+].code = #Unit + * ^property[=].valueString = "mmHg" + * ^property[+].code = #Speciality + * ^property[=].valueString = "CLC" + * ^property[+].code = #"Code value" + * ^property[=].valueString = "57948" + * ^property[+].code = #"Scale type" + * ^property[=].valueString = "Ratio" + * ^property[+].code = #STATUS + * ^property[=].valueString = "ACTIVE" * ^property[+].code = #effectiveDate * ^property[=].valueDateTime = "2017-12-05T00:00:00+01:00" * ^property[+].code = #status - * ^property[=].valueBoolean = true + * ^property[=].valueCode = #active * ^property[+].code = #comment * ^property[=].valueString = "Unit defined" * #NPU21692 "Heart\u2014Systole; frequency = ? \u00d7 1/min" -* #NPU21692 ^designation.language = #da -* #NPU21692 ^designation.value = "Hjerte—Systole; frekv. = ? × 1/min" -* #NPU21692 ^property[0].code = #CreatedDate -* #NPU21692 ^property[=].valueDateTime = "2004-09-29T00:00:00+02:00" -* #NPU21692 ^property[+].code = #System -* #NPU21692 ^property[=].valueString = "Heart" -* #NPU21692 ^property[+].code = #Component -* #NPU21692 ^property[=].valueString = "Systole" -* #NPU21692 ^property[+].code = #Kind-of-property -* #NPU21692 ^property[=].valueString = "frequency" -* #NPU21692 ^property[+].code = #Unit -* #NPU21692 ^property[=].valueString = "× 1/min" -* #NPU21692 ^property[+].code = #Speciality -* #NPU21692 ^property[=].valueString = "FUN" -* #NPU21692 ^property[+].code = #"Code value" -* #NPU21692 ^property[=].valueString = "21692" -* #NPU21692 ^property[+].code = #"Scale type" -* #NPU21692 ^property[=].valueString = "Ratio" -* #NPU21692 ^property[+].code = #STATUS -* #NPU21692 ^property[=].valueString = "ACTIVE" + * ^designation.language = #da + * ^designation.value = "Hjerte—Systole; frekv. = ? × 1/min" + * ^property[0].code = #CreatedDate + * ^property[=].valueDateTime = "2004-09-29T00:00:00+02:00" + * ^property[+].code = #System + * ^property[=].valueString = "Heart" + * ^property[+].code = #Component + * ^property[=].valueString = "Systole" + * ^property[+].code = #Kind-of-property + * ^property[=].valueString = "frequency" + * ^property[+].code = #Unit + * ^property[=].valueString = "× 1/min" + * ^property[+].code = #Speciality + * ^property[=].valueString = "FUN" + * ^property[+].code = #"Code value" + * ^property[=].valueString = "21692" + * ^property[+].code = #"Scale type" + * ^property[=].valueString = "Ratio" + * ^property[+].code = #STATUS + * ^property[=].valueString = "ACTIVE" * ^property[+].code = #effectiveDate * ^property[=].valueDateTime = "2004-09-29T00:00:00+02:00" * ^property[+].code = #status - * ^property[=].valueBoolean = true + * ^property[=].valueCode = #active * ^property[+].code = #comment * ^property[=].valueString = "Unit defined" * #NPU03794 "Pt\u2014Body; height = ? m" -* #NPU03794 ^designation.language = #da -* #NPU03794 ^designation.value = "Pt—Legeme; højde = ? m" -* #NPU03794 ^property[0].code = #CreatedDate -* #NPU03794 ^property[=].valueDateTime = "1997-04-15T00:00:00+02:00" -* #NPU03794 ^property[+].code = #System -* #NPU03794 ^property[=].valueString = "Pt" -* #NPU03794 ^property[+].code = #Component -* #NPU03794 ^property[=].valueString = "Body" -* #NPU03794 ^property[+].code = #Kind-of-property -* #NPU03794 ^property[=].valueString = "height" -* #NPU03794 ^property[+].code = #Unit -* #NPU03794 ^property[=].valueString = "m" -* #NPU03794 ^property[+].code = #Speciality -* #NPU03794 ^property[=].valueString = "CLC" -* #NPU03794 ^property[+].code = #"Code value" -* #NPU03794 ^property[=].valueString = "3794" -* #NPU03794 ^property[+].code = #"Scale type" -* #NPU03794 ^property[=].valueString = "Ratio" -* #NPU03794 ^property[+].code = #STATUS -* #NPU03794 ^property[=].valueString = "ACTIVE" + * ^designation.language = #da + * ^designation.value = "Pt—Legeme; højde = ? m" + * ^property[0].code = #CreatedDate + * ^property[=].valueDateTime = "1997-04-15T00:00:00+02:00" + * ^property[+].code = #System + * ^property[=].valueString = "Pt" + * ^property[+].code = #Component + * ^property[=].valueString = "Body" + * ^property[+].code = #Kind-of-property + * ^property[=].valueString = "height" + * ^property[+].code = #Unit + * ^property[=].valueString = "m" + * ^property[+].code = #Speciality + * ^property[=].valueString = "CLC" + * ^property[+].code = #"Code value" + * ^property[=].valueString = "3794" + * ^property[+].code = #"Scale type" + * ^property[=].valueString = "Ratio" + * ^property[+].code = #STATUS + * ^property[=].valueString = "ACTIVE" * ^property[+].code = #effectiveDate * ^property[=].valueDateTime = "1997-04-15T00:00:00+02:00" * ^property[+].code = #status - * ^property[=].valueBoolean = true + * ^property[=].valueCode = #active * ^property[+].code = #comment * ^property[=].valueString = "Unit defined" * #NPU03804 "Pt\u2014Body; mass = ? kg" -* #NPU03804 ^designation.language = #da -* #NPU03804 ^designation.value = "Pt—Legeme; masse = ? kg" -* #NPU03804 ^property[0].code = #CreatedDate -* #NPU03804 ^property[=].valueDateTime = "1996-01-01T00:00:00+01:00" -* #NPU03804 ^property[+].code = #System -* #NPU03804 ^property[=].valueString = "Pt" -* #NPU03804 ^property[+].code = #Component -* #NPU03804 ^property[=].valueString = "Body" -* #NPU03804 ^property[+].code = #Kind-of-property -* #NPU03804 ^property[=].valueString = "mass" -* #NPU03804 ^property[+].code = #Unit -* #NPU03804 ^property[=].valueString = "kg" -* #NPU03804 ^property[+].code = #Speciality -* #NPU03804 ^property[=].valueString = "CLC" -* #NPU03804 ^property[+].code = #"Code value" -* #NPU03804 ^property[=].valueString = "3804" -* #NPU03804 ^property[+].code = #"Scale type" -* #NPU03804 ^property[=].valueString = "Ratio" -* #NPU03804 ^property[+].code = #STATUS -* #NPU03804 ^property[=].valueString = "ACTIVE" + * ^designation.language = #da + * ^designation.value = "Pt—Legeme; masse = ? kg" + * ^property[0].code = #CreatedDate + * ^property[=].valueDateTime = "1996-01-01T00:00:00+01:00" + * ^property[+].code = #System + * ^property[=].valueString = "Pt" + * ^property[+].code = #Component + * ^property[=].valueString = "Body" + * ^property[+].code = #Kind-of-property + * ^property[=].valueString = "mass" + * ^property[+].code = #Unit + * ^property[=].valueString = "kg" + * ^property[+].code = #Speciality + * ^property[=].valueString = "CLC" + * ^property[+].code = #"Code value" + * ^property[=].valueString = "3804" + * ^property[+].code = #"Scale type" + * ^property[=].valueString = "Ratio" + * ^property[+].code = #STATUS + * ^property[=].valueString = "ACTIVE" * ^property[+].code = #effectiveDate * ^property[=].valueDateTime = "1996-01-01T00:00:00+01:00" * ^property[+].code = #status - * ^property[=].valueBoolean = true + * ^property[=].valueCode = #active * ^property[+].code = #comment * ^property[=].valueString = "Unit defined" * #NPU27281 "Pt\u2014Body; mass coefficient(mass/squared height) = ? kg/m\u00b2" -* #NPU27281 ^designation.language = #da -* #NPU27281 ^designation.value = "Pt—Legeme; massekoefficient(masse/kvadreret højde) = ? kg/m²" -* #NPU27281 ^property[0].code = #ChangeDate -* #NPU27281 ^property[=].valueDateTime = "2007-12-06T00:00:00+01:00" -* #NPU27281 ^property[+].code = #CreatedDate -* #NPU27281 ^property[=].valueDateTime = "2007-11-23T00:00:00+01:00" -* #NPU27281 ^property[+].code = #System -* #NPU27281 ^property[=].valueString = "Pt" -* #NPU27281 ^property[+].code = #Component -* #NPU27281 ^property[=].valueString = "Body" -* #NPU27281 ^property[+].code = #Kind-of-property -* #NPU27281 ^property[=].valueString = "mass coefficient" -* #NPU27281 ^property[+].code = #Proc -* #NPU27281 ^property[=].valueString = "mass/squared height" -* #NPU27281 ^property[+].code = #Unit -* #NPU27281 ^property[=].valueString = "kg/m²" -* #NPU27281 ^property[+].code = #Speciality -* #NPU27281 ^property[=].valueString = "CLC" -* #NPU27281 ^property[+].code = #"Code value" -* #NPU27281 ^property[=].valueString = "27281" -* #NPU27281 ^property[+].code = #"Scale type" -* #NPU27281 ^property[=].valueString = "Ratio" -* #NPU27281 ^property[+].code = #STATUS -* #NPU27281 ^property[=].valueString = "ACTIVE" + * ^designation.language = #da + * ^designation.value = "Pt—Legeme; massekoefficient(masse/kvadreret højde) = ? kg/m²" + * ^property[0].code = #ChangeDate + * ^property[=].valueDateTime = "2007-12-06T00:00:00+01:00" + * ^property[+].code = #CreatedDate + * ^property[=].valueDateTime = "2007-11-23T00:00:00+01:00" + * ^property[+].code = #System + * ^property[=].valueString = "Pt" + * ^property[+].code = #Component + * ^property[=].valueString = "Body" + * ^property[+].code = #Kind-of-property + * ^property[=].valueString = "mass coefficient" + * ^property[+].code = #Proc + * ^property[=].valueString = "mass/squared height" + * ^property[+].code = #Unit + * ^property[=].valueString = "kg/m²" + * ^property[+].code = #Speciality + * ^property[=].valueString = "CLC" + * ^property[+].code = #"Code value" + * ^property[=].valueString = "27281" + * ^property[+].code = #"Scale type" + * ^property[=].valueString = "Ratio" + * ^property[+].code = #STATUS + * ^property[=].valueString = "ACTIVE" * ^property[+].code = #effectiveDate * ^property[=].valueDateTime = "2007-12-06T00:00:00+01:00" * ^property[+].code = #status - * ^property[=].valueBoolean = true + * ^property[=].valueCode = #active * ^property[+].code = #comment * ^property[=].valueString = "Unit defined" \ No newline at end of file From 3162abb738fd6253c4a47f7e16e374d4fdd8620d Mon Sep 17 00:00:00 2001 From: Jens Kristian Villadsen Date: Sun, 12 May 2024 10:39:55 +0200 Subject: [PATCH 13/40] Reintroduced special url for NPU to remove IGP error. --- sushi-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sushi-config.yaml b/sushi-config.yaml index 211650f70..e69417b22 100644 --- a/sushi-config.yaml +++ b/sushi-config.yaml @@ -38,7 +38,7 @@ menu: parameters: show-inherited-invariants: false ipa-comparison: "{last}" - special-url: [urn:iso:std:iso:11073:10101, urn:oid:1.2.208.176.2.4, urn:oid:1.2.208.176.2.21, urn:oid:1.2.208.176.2.4.12] + special-url: [urn:oid:1.2.208.176.2.1, urn:iso:std:iso:11073:10101, urn:oid:1.2.208.176.2.4, urn:oid:1.2.208.176.2.21, urn:oid:1.2.208.176.2.4.12] dependencies: hl7.fhir.uv.phd: 1.0.0 From b57f86348a46091c79bcc10245a8009bd6e670c7 Mon Sep 17 00:00:00 2001 From: Jens Kristian Villadsen Date: Tue, 25 Jun 2024 23:11:05 +0200 Subject: [PATCH 14/40] Feature ipa support (#132) * Introduced IPA support * Update dep of IPA * Adjusted to 1.0.0 * Removed merge files * Added compliesWith and child profile for IPA compliance (#133) * Changed to imposeProfile --- input/fsh/DkCoreCondition.fsh | 2 +- input/fsh/DkCoreObservation.fsh | 9 +++++++++ input/fsh/DkCorePatient.fsh | 2 +- input/fsh/DkCorePractitioner.fsh | 2 +- sushi-config.yaml | 2 ++ 5 files changed, 14 insertions(+), 3 deletions(-) diff --git a/input/fsh/DkCoreCondition.fsh b/input/fsh/DkCoreCondition.fsh index ddbcf9e66..5a0b5749e 100644 --- a/input/fsh/DkCoreCondition.fsh +++ b/input/fsh/DkCoreCondition.fsh @@ -1,5 +1,5 @@ Profile: DkCoreCondition -Parent: Condition +Parent: IPACondition 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" diff --git a/input/fsh/DkCoreObservation.fsh b/input/fsh/DkCoreObservation.fsh index 2129128b8..a28effd6f 100644 --- a/input/fsh/DkCoreObservation.fsh +++ b/input/fsh/DkCoreObservation.fsh @@ -1,3 +1,12 @@ +Profile: IPADkCoreObservation +Parent: DkCoreObservation +Title: "Danish Core IPA Observation Profiles" +Description: "HL7 Denmark core profile for IPA compliant observations" +* subject only Reference(DkCorePatient) +* extension + * url = "http://hl7.org/fhir/StructureDefinition/structuredefinition-imposeProfile" + * valueCanonical = "http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-observation" + Profile: DkCoreObservation Parent: Observation Id: dk-core-observation diff --git a/input/fsh/DkCorePatient.fsh b/input/fsh/DkCorePatient.fsh index b22b4baab..1e9222a52 100644 --- a/input/fsh/DkCorePatient.fsh +++ b/input/fsh/DkCorePatient.fsh @@ -1,5 +1,5 @@ Profile: DkCorePatient -Parent: Patient +Parent: IPAPatient Id: dk-core-patient Title: "Danish Core Patient Profile" Description: "HL7 Denmark core profile for a patient" diff --git a/input/fsh/DkCorePractitioner.fsh b/input/fsh/DkCorePractitioner.fsh index d9bef145d..906d55ab9 100644 --- a/input/fsh/DkCorePractitioner.fsh +++ b/input/fsh/DkCorePractitioner.fsh @@ -1,5 +1,5 @@ Profile: DkCorePractitioner -Parent: Practitioner +Parent: IPAPractitioner 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" diff --git a/sushi-config.yaml b/sushi-config.yaml index e69417b22..dfb5ec0b4 100644 --- a/sushi-config.yaml +++ b/sushi-config.yaml @@ -25,6 +25,7 @@ jurisdiction: urn:iso:std:iso:3166#DK "Denmark" # │ To use a provided input/includes/menu.xml file, delete the "menu" property below. │ # ╰────────────────────────────────────────────────────────────────────────────────────────────────╯ + menu: Table of Contents: toc.html Home: index.html @@ -42,3 +43,4 @@ parameters: dependencies: hl7.fhir.uv.phd: 1.0.0 + hl7.fhir.uv.ipa: 1.0.0 From ab6e42235811eac0393038301d827494faa573c5 Mon Sep 17 00:00:00 2001 From: Jens Kristian Villadsen Date: Tue, 25 Jun 2024 23:18:59 +0200 Subject: [PATCH 15/40] Update release-notes.md --- release-notes.md | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/release-notes.md b/release-notes.md index 25e44a408..3039b5b39 100644 --- a/release-notes.md +++ b/release-notes.md @@ -1,15 +1,5 @@ -Dk-core version 3.2.0 has been approved by HL7 Denmark. +Dk-core version 3.3.0 has been approved by HL7 Denmark. -The changes between 3.1.0 and 3.2.0 are: -* Addition of the profile DkCoreRelatedPerson which includes - * Associated documentation and examples, - * ValueSet named DK Related Person Relationship Types, - * CodeSystem named DK Related Person Relationship Codes, and - * CodeSystem supplement named DK Role Code. -* Updated references in existing DkCoreCondition, DkCoreObservation, DkCorePatient from RelatedPerson resource to DkCoreRelatedPerson. -* Updated the ValueSet on Patient.contact.relationship to be DK Related Person Relationship Types. -* Added description of how to handle CPR registry civilstand and status values in DkCorePatient. -* Added the identifier ProducentId, and included it as identifier in DkCoreOrganization. An example is included to support the usage. -* Updated link to dokumentation in SORIdentifier. -* Added an example for DkCoreCondition concerning regional problem-list-items. -* Minor linguistic adjustments \ No newline at end of file +The changes between 3.3.0 and 3.3.0 are: +* Minor linguistic adjustments +* Introduced the use of IPA profiles as base profiles where it makes sense. From 9311f2b5df0cf114795687797abd99c67153999a Mon Sep 17 00:00:00 2001 From: Jens Kristian Villadsen Date: Tue, 25 Jun 2024 23:19:15 +0200 Subject: [PATCH 16/40] Update release-notes.md --- release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release-notes.md b/release-notes.md index 3039b5b39..3639b55dc 100644 --- a/release-notes.md +++ b/release-notes.md @@ -1,5 +1,5 @@ Dk-core version 3.3.0 has been approved by HL7 Denmark. -The changes between 3.3.0 and 3.3.0 are: +The changes between 3.2.0 and 3.3.0 are: * Minor linguistic adjustments * Introduced the use of IPA profiles as base profiles where it makes sense. From db1e2d39f00ed29b49451870d4c75590c50455c6 Mon Sep 17 00:00:00 2001 From: Jens Kristian Villadsen Date: Tue, 25 Jun 2024 23:40:46 +0200 Subject: [PATCH 17/40] Added proper base definition --- input/fsh/DkCorePractitionerRole.fsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/fsh/DkCorePractitionerRole.fsh b/input/fsh/DkCorePractitionerRole.fsh index 745f1def8..8b254abb6 100644 --- a/input/fsh/DkCorePractitionerRole.fsh +++ b/input/fsh/DkCorePractitionerRole.fsh @@ -1,5 +1,5 @@ Profile: DkCorePractitionerRole -Parent: PractitionerRole +Parent: IPAPractitionerRole Id: dk-core-practitioner-role Title: "Danish Core PractitionerRole Profile" Description: "HL7 Denmark core profile for health professional roles" From 47b198e7a428c34add4dc53d27c4cf09a1f65b13 Mon Sep 17 00:00:00 2001 From: Jens Kristian Villadsen Date: Wed, 26 Jun 2024 16:34:28 +0200 Subject: [PATCH 18/40] Fix: Changed to assignment instead of declaration of imposeProfile --- input/fsh/DkCoreObservation.fsh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/input/fsh/DkCoreObservation.fsh b/input/fsh/DkCoreObservation.fsh index a28effd6f..b7258a77e 100644 --- a/input/fsh/DkCoreObservation.fsh +++ b/input/fsh/DkCoreObservation.fsh @@ -2,10 +2,9 @@ Profile: IPADkCoreObservation Parent: DkCoreObservation Title: "Danish Core IPA Observation Profiles" Description: "HL7 Denmark core profile for IPA compliant observations" +* ^extension[0].url = "http://hl7.org/fhir/StructureDefinition/structuredefinition-imposeProfile" +* ^extension[=].valueCanonical = "http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-observation" * subject only Reference(DkCorePatient) -* extension - * url = "http://hl7.org/fhir/StructureDefinition/structuredefinition-imposeProfile" - * valueCanonical = "http://hl7.org/fhir/uv/ipa/StructureDefinition/ipa-observation" Profile: DkCoreObservation Parent: Observation From 6e8a7dfe517cf9415767e852279b902803e3fa3f Mon Sep 17 00:00:00 2001 From: Jens Kristian Villadsen Date: Thu, 27 Jun 2024 12:45:16 +0200 Subject: [PATCH 19/40] Update DkCoreObservation.fsh --- input/fsh/DkCoreObservation.fsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/fsh/DkCoreObservation.fsh b/input/fsh/DkCoreObservation.fsh index b7258a77e..4eaee0025 100644 --- a/input/fsh/DkCoreObservation.fsh +++ b/input/fsh/DkCoreObservation.fsh @@ -9,7 +9,7 @@ Description: "HL7 Denmark core profile for IPA compliant observations" Profile: DkCoreObservation Parent: Observation Id: dk-core-observation -Title: "Danish Core Observation Profiles" +Title: "Danish Core Observation Profile" Description: "HL7 Denmark core profile for observations" * obeys dk-core-observation-mandatory-units * code.coding ^slicing.discriminator.type = #value From 60ede935bfe5b00d6bc26a1d611f5023bf4bfbc2 Mon Sep 17 00:00:00 2001 From: tmsMedcom <88831880+tmsMedcom@users.noreply.github.com> Date: Mon, 1 Jul 2024 14:48:40 +0200 Subject: [PATCH 20/40] Initial commit of ServiceRequest --- input/fsh/DkCoreServiceRequest.fsh | 72 +++++++++++++++++++ ...Definition-dk-core-servicerequest-intro.md | 16 +++++ 2 files changed, 88 insertions(+) create mode 100644 input/fsh/DkCoreServiceRequest.fsh create mode 100644 input/pagecontent/StructureDefinition-dk-core-servicerequest-intro.md diff --git a/input/fsh/DkCoreServiceRequest.fsh b/input/fsh/DkCoreServiceRequest.fsh new file mode 100644 index 000000000..c56bd2f40 --- /dev/null +++ b/input/fsh/DkCoreServiceRequest.fsh @@ -0,0 +1,72 @@ +Profile: DkCoreServiceRequest +Parent: ServiceRequest +Id: dk-core-servicerequest +Title: "Danish Core ServiceRequest Profile" +Description: "HL7 Denmark core profile for requesting a service, such as diagnostic investigations, nursing services, treatments, and more." +* subject only Reference(DkCorePatient) +* requester only Reference(DkCorePractitioner or PractitionerRole or DkCoreOrganization or DkCorePatient or DkCoreRelatedPerson or Device) +* performer only Reference(DkCorePractitioner or PractitionerRole or DkCoreOrganization or DkCorePatient or DkCoreRelatedPerson or HealthcareService or Device or CareTeam) +* category from DkCoreServiceRequestCategoryValues (extensible) +* code from DkCoreServiceRequestCodes (preferred) + + +CodeSystem: DkCoreServiceRequestCategory +Id: dk-core-servicerequest-category +Title: "DK Categories for ServiceRequest" +Description: "DK Category" +* ^experimental = false +* ^status = #active +* ^content = #complete +* ^caseSensitive = false +* #municipalityservice "Municipality service" + * ^designation.language = #da + * ^designation.value = "Kommunal service" +* #regionalservice "Regional service - Hospital??" + * ^designation.language = #da + * ^designation.value = "Regional service" +* #primarysektorservice "Primary sector service" + * ^designation.language = #da + * ^designation.value = "Primær sektor service" +* #laboratoryservice "Laboratory service" + * ^designation.language = #da + * ^designation.value = "Primær sektor service" + +CodeSystem: DkCoreServiceRequestCodes +Id: dk-core-servicerequest-codes +Title: "DK Codes for ServiceRequest" +Description: "DK Codes" +* ^experimental = false +* ^status = #active +* ^content = #complete +* ^caseSensitive = false +* #homecarenursering "Homecare nursering" + * ^designation.language = #da + * ^designation.value = "Hjemmesygepleje" + + + +ValueSet: DkCoreServiceRequestCategoryValues +Id: dk-core-servicerequest-category-values +Title: "DK Categories for ServiceRequest" +Description: "DK Category" +* ^experimental = false +* ^status = #active +* include codes from system DkCoreServiceRequestCategory + +ValueSet: DkCoreServiceRequestCodeValues +Id: dk-core-servicerequest-code-values +Title: "DK Codes for ServiceRequest" +Description: "DK Code" +* ^experimental = false +* ^status = #active +* include codes from system DkCoreServiceRequestCodes + + +Instance: JohnsServiceRequest +InstanceOf: DkCoreServiceRequest +Title: "Request for nursing care of John." +Description: "Request for nursing care of John." +Usage: #example +* status = #active +* intent = #plan +* subject.reference = "Patient/john" \ No newline at end of file diff --git a/input/pagecontent/StructureDefinition-dk-core-servicerequest-intro.md b/input/pagecontent/StructureDefinition-dk-core-servicerequest-intro.md new file mode 100644 index 000000000..a8c89701c --- /dev/null +++ b/input/pagecontent/StructureDefinition-dk-core-servicerequest-intro.md @@ -0,0 +1,16 @@ +### Scope and usage +* **Subject**: Afgrænses til kun at være DkCorePatient? + * Det betyder at Group, Location, og Device ikke understøttes. + +* **Category**: Hvilke koder, skal inkluderes? + * findes der CodeSystems som allerede holder denne type koder? + * Definition: + +* Code: Hvilke koder er relevante? + * Definition: + + + + +**Forskelle R4 vs. R5** +* R4: ReasonCode er CodeableConcept, R5: Reason er Reference From 8c088e391ac4f3f06526e32416d727f8ed835330 Mon Sep 17 00:00:00 2001 From: tmsMedcom <88831880+tmsMedcom@users.noreply.github.com> Date: Mon, 1 Jul 2024 15:02:18 +0200 Subject: [PATCH 21/40] Update DkCoreServiceRequest.fsh --- input/fsh/DkCoreServiceRequest.fsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/fsh/DkCoreServiceRequest.fsh b/input/fsh/DkCoreServiceRequest.fsh index c56bd2f40..7954446d9 100644 --- a/input/fsh/DkCoreServiceRequest.fsh +++ b/input/fsh/DkCoreServiceRequest.fsh @@ -7,7 +7,7 @@ Description: "HL7 Denmark core profile for requesting a service, such as diagnos * requester only Reference(DkCorePractitioner or PractitionerRole or DkCoreOrganization or DkCorePatient or DkCoreRelatedPerson or Device) * performer only Reference(DkCorePractitioner or PractitionerRole or DkCoreOrganization or DkCorePatient or DkCoreRelatedPerson or HealthcareService or Device or CareTeam) * category from DkCoreServiceRequestCategoryValues (extensible) -* code from DkCoreServiceRequestCodes (preferred) +* code from DkCoreServiceRequestCategoryValues (preferred) CodeSystem: DkCoreServiceRequestCategory From 5fca95b219ff1a012f2539dab1609d4af5bcf0bd Mon Sep 17 00:00:00 2001 From: tmsMedcom <88831880+tmsMedcom@users.noreply.github.com> Date: Tue, 2 Jul 2024 12:52:12 +0200 Subject: [PATCH 22/40] Added content for ServiceRequest --- input/fsh/DkCoreServiceRequest.fsh | 57 +++---------------- ...ctureDefinition-dk-core-condition-intro.md | 2 +- ...Definition-dk-core-servicerequest-intro.md | 22 ++++--- 3 files changed, 21 insertions(+), 60 deletions(-) diff --git a/input/fsh/DkCoreServiceRequest.fsh b/input/fsh/DkCoreServiceRequest.fsh index 7954446d9..ee4c4a934 100644 --- a/input/fsh/DkCoreServiceRequest.fsh +++ b/input/fsh/DkCoreServiceRequest.fsh @@ -3,63 +3,19 @@ Parent: ServiceRequest Id: dk-core-servicerequest Title: "Danish Core ServiceRequest Profile" Description: "HL7 Denmark core profile for requesting a service, such as diagnostic investigations, nursing services, treatments, and more." -* subject only Reference(DkCorePatient) +* subject only Reference(DkCorePatient or Group) * requester only Reference(DkCorePractitioner or PractitionerRole or DkCoreOrganization or DkCorePatient or DkCoreRelatedPerson or Device) * performer only Reference(DkCorePractitioner or PractitionerRole or DkCoreOrganization or DkCorePatient or DkCoreRelatedPerson or HealthcareService or Device or CareTeam) -* category from DkCoreServiceRequestCategoryValues (extensible) -* code from DkCoreServiceRequestCategoryValues (preferred) +* code from DkCoreServiceRequestCodes (preferred) -CodeSystem: DkCoreServiceRequestCategory -Id: dk-core-servicerequest-category -Title: "DK Categories for ServiceRequest" -Description: "DK Category" -* ^experimental = false -* ^status = #active -* ^content = #complete -* ^caseSensitive = false -* #municipalityservice "Municipality service" - * ^designation.language = #da - * ^designation.value = "Kommunal service" -* #regionalservice "Regional service - Hospital??" - * ^designation.language = #da - * ^designation.value = "Regional service" -* #primarysektorservice "Primary sector service" - * ^designation.language = #da - * ^designation.value = "Primær sektor service" -* #laboratoryservice "Laboratory service" - * ^designation.language = #da - * ^designation.value = "Primær sektor service" - -CodeSystem: DkCoreServiceRequestCodes +ValueSet: DkCoreServiceRequestCodes Id: dk-core-servicerequest-codes -Title: "DK Codes for ServiceRequest" +Title: "DK codes for ServiceRequest" Description: "DK Codes" * ^experimental = false * ^status = #active -* ^content = #complete -* ^caseSensitive = false -* #homecarenursering "Homecare nursering" - * ^designation.language = #da - * ^designation.value = "Hjemmesygepleje" - - - -ValueSet: DkCoreServiceRequestCategoryValues -Id: dk-core-servicerequest-category-values -Title: "DK Categories for ServiceRequest" -Description: "DK Category" -* ^experimental = false -* ^status = #active -* include codes from system DkCoreServiceRequestCategory - -ValueSet: DkCoreServiceRequestCodeValues -Id: dk-core-servicerequest-code-values -Title: "DK Codes for ServiceRequest" -Description: "DK Code" -* ^experimental = false -* ^status = #active -* include codes from system DkCoreServiceRequestCodes +* codes from system $sct where concept is-a 224891009 Instance: JohnsServiceRequest @@ -69,4 +25,5 @@ Description: "Request for nursing care of John." Usage: #example * status = #active * intent = #plan -* subject.reference = "Patient/john" \ No newline at end of file +* subject.reference = "Patient/john" +* code.coding = $sct#658161000005107 "hjemmesygepleje" diff --git a/input/pagecontent/StructureDefinition-dk-core-condition-intro.md b/input/pagecontent/StructureDefinition-dk-core-condition-intro.md index 7a7ea5341..3a3d96062 100644 --- a/input/pagecontent/StructureDefinition-dk-core-condition-intro.md +++ b/input/pagecontent/StructureDefinition-dk-core-condition-intro.md @@ -1,5 +1,5 @@ ### 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. +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 diff --git a/input/pagecontent/StructureDefinition-dk-core-servicerequest-intro.md b/input/pagecontent/StructureDefinition-dk-core-servicerequest-intro.md index a8c89701c..ea244fc4e 100644 --- a/input/pagecontent/StructureDefinition-dk-core-servicerequest-intro.md +++ b/input/pagecontent/StructureDefinition-dk-core-servicerequest-intro.md @@ -1,16 +1,20 @@ ### Scope and usage -* **Subject**: Afgrænses til kun at være DkCorePatient? - * Det betyder at Group, Location, og Device ikke understøttes. -* **Category**: Hvilke koder, skal inkluderes? - * findes der CodeSystems som allerede holder denne type koder? - * Definition: +> Work in progress -* Code: Hvilke koder er relevante? - * Definition: +The Danish Core ServiceRequest profile is intended to support cross sector requests for services within the health sector. In dk-core, the ServiceRequest resource have been constrained to only contain DkCorePatient and Group as subject of the request. This is choosen to ensure a focused and relevant ValueSet for the ServiceRequest.code. +#### Category, code and orderDetail +In the ServiceRequest resource there are three levels of categorization. +**Category:** +The top level is the ServiceRequest.category, which classifies the services on a high level. In the resource, the examples are `laboratory procedure` or `counseling`, but another example could be to categorize the ServiceRequest into `virtual` or `in-person`. No profiling has been performed for this element. + +**Code:** +The middle level is ServiceRequest.code, which identifies the service that is being requested. This could be SNOMED CT concepts for `Home nursing care services` or `Mental health counseling service`. In this profile, a preferred ValueSet binding is included which contains all children of the SNOMED CT `224891009 Healthcare services`. This is chosen as these children are used to define the services a healthcare unit provides in SOR, a register for Danish health care organizations. The included SNOMED CT concepts is already associated with a sector, for example primary care or nursing care. To avoid redundant information in an instances it is recommended not to populate the ServiceRequest.categoy element to include a code that defines the sector in which the service is provided. However, if it is relevant to categorize the ServiceRequest into `virtual` or `in-person`, this can be done. +Since the ValueSet has the binding 'preferred', it is allowed to include other codes for this element. + +**OrderDetail:** +The most detailed level is at ServiceRequest.orderDetail, which included additional detail or instruction concerning how the service should be delivered. This can be specific to each organization and does not nessecary have to be included when sending a ServiceRequest, but can be enriched by the performer of the service. -**Forskelle R4 vs. R5** -* R4: ReasonCode er CodeableConcept, R5: Reason er Reference From ac59b43f51b3b5783d48d4de8a8bb8443fdec41c Mon Sep 17 00:00:00 2001 From: tmsMedcom <88831880+tmsMedcom@users.noreply.github.com> Date: Tue, 2 Jul 2024 13:22:31 +0200 Subject: [PATCH 23/40] Update DkCoreServiceRequest.fsh --- input/fsh/DkCoreServiceRequest.fsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/fsh/DkCoreServiceRequest.fsh b/input/fsh/DkCoreServiceRequest.fsh index ee4c4a934..44c0fb7d0 100644 --- a/input/fsh/DkCoreServiceRequest.fsh +++ b/input/fsh/DkCoreServiceRequest.fsh @@ -15,7 +15,7 @@ Title: "DK codes for ServiceRequest" Description: "DK Codes" * ^experimental = false * ^status = #active -* codes from system $sct where concept is-a 224891009 +* codes from system $sct where concept is-a #224891009 Instance: JohnsServiceRequest From 85c8c385a000cb6a8e1b9aff403fc3b5f81fb85a Mon Sep 17 00:00:00 2001 From: Jens Kristian Villadsen Date: Sun, 11 Aug 2024 17:55:48 +0200 Subject: [PATCH 24/40] Added ignores for NPU-errors --- input/ignoreWarnings.txt | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/input/ignoreWarnings.txt b/input/ignoreWarnings.txt index 7a87bcbf9..106ce40b6 100644 --- a/input/ignoreWarnings.txt +++ b/input/ignoreWarnings.txt @@ -13,8 +13,21 @@ # This code DOES exist and is published by IEEE. But somehow the code system tooling missed it along the way ERROR: Bundle/ContinuaBundleWithDevice: Bundle.entry[7].resource/*Observation/BloodPressureStatus.Poul.133527*/.code.coding[0]: Local Error: Resolved system urn:iso:std:iso:11073:10101 (v2.0.1), but the definition is not complete. Server Error: The code "8410608" is not valid in the system urn:iso:std:iso:11073:10101; The code provided (urn:iso:std:iso:11073:10101#8410608) is not valid in the value set 'All codes known to the system' (from http://tx.fhir.org/r4) for 'urn:iso:std:iso:11073:10101#8410608' +# These info's are caused by the properties used in the NPU Subset. +%The property 'ChangeDate' has no definition in CodeSystem.property. Many terminology tools won't know what to do with it +%The property 'CreatedDate' has no definition in CodeSystem.property. Many terminology tools won't know what to do with it +%The property 'System' has no definition in CodeSystem.property. Many terminology tools won't know what to do with it +%The property 'SysSpec' has no definition in CodeSystem.property. Many terminology tools won't know what to do with it +%The property 'Component' has no definition in CodeSystem.property. Many terminology tools won't know what to do with it +%The property 'CompSpec' has no definition in CodeSystem.property. Many terminology tools won't know what to do with it +%The property 'Kind-of-property' has no definition in CodeSystem.property. Many terminology tools won't know what to do with it +%The property 'Speciality' has no definition in CodeSystem.property. Many terminology tools won't know what to do with it +%The property 'Code value' has no definition in CodeSystem.property. Many terminology tools won't know what to do with it +%The property 'Scale type' has no definition in CodeSystem.property. Many terminology tools won't know what to do with it +%The property 'STATUS' has no definition in CodeSystem.property. Many terminology tools won't know what to do with it +%The property 'Unit' has no definition in CodeSystem.property. Many terminology tools won't know what to do with it + # These "Slicing Information" are very noisy and do not contribute anything useful in this context % This element does not match any known slice defined in the profile % INFORMATION: Bundle/ContinuaBundleWithDevice: Bundle.entry[5].resource/*Observation/BloodPressure.Poul.643992*/.derivedFrom[0]: Details for Observation/CoincidentTimeStamp.0222 matching against profile http://hl7.org/fhir/StructureDefinition/vitalsigns|4.0.1 INFORMATION: Bundle/ContinuaBundleWithDevice: Bundle.entry[6].resource/*Observation/HeartRate.Poul.1974654*/.derivedFrom[0]: Details for Observation/CoincidentTimeStamp.0222 matching against profile http://hl7.org/fhir/StructureDefinition/vitalsigns|4.0.1 - From 718d50d9b44cfa91c7b9d54ccea1a06584854df2 Mon Sep 17 00:00:00 2001 From: tmsMedcom <88831880+tmsMedcom@users.noreply.github.com> Date: Wed, 28 Aug 2024 09:21:04 +0200 Subject: [PATCH 25/40] Update name of profile and content of DkCoreServiceRequestCodes --- input/fsh/DkCoreServiceRequest.fsh | 18 +- input/fsh/valueSets.fsh | 351 ++++++++++++++++++++++++++++- 2 files changed, 355 insertions(+), 14 deletions(-) diff --git a/input/fsh/DkCoreServiceRequest.fsh b/input/fsh/DkCoreServiceRequest.fsh index 44c0fb7d0..0ac3f93da 100644 --- a/input/fsh/DkCoreServiceRequest.fsh +++ b/input/fsh/DkCoreServiceRequest.fsh @@ -1,22 +1,14 @@ -Profile: DkCoreServiceRequest +Profile: DkCorePersonServiceRequest Parent: ServiceRequest -Id: dk-core-servicerequest -Title: "Danish Core ServiceRequest Profile" -Description: "HL7 Denmark core profile for requesting a service, such as diagnostic investigations, nursing services, treatments, and more." -* subject only Reference(DkCorePatient or Group) +Id: dk-core-person-servicerequest +Title: "Danish Core Person ServiceRequest Profile" +Description: "HL7 Denmark core profile for requesting a service, such as diagnostic investigations, nursing services, treatments, and more for a Patient." +* subject only Reference(DkCorePatient) * requester only Reference(DkCorePractitioner or PractitionerRole or DkCoreOrganization or DkCorePatient or DkCoreRelatedPerson or Device) * performer only Reference(DkCorePractitioner or PractitionerRole or DkCoreOrganization or DkCorePatient or DkCoreRelatedPerson or HealthcareService or Device or CareTeam) * code from DkCoreServiceRequestCodes (preferred) -ValueSet: DkCoreServiceRequestCodes -Id: dk-core-servicerequest-codes -Title: "DK codes for ServiceRequest" -Description: "DK Codes" -* ^experimental = false -* ^status = #active -* codes from system $sct where concept is-a #224891009 - Instance: JohnsServiceRequest InstanceOf: DkCoreServiceRequest diff --git a/input/fsh/valueSets.fsh b/input/fsh/valueSets.fsh index b76059a2c..098435bfd 100644 --- a/input/fsh/valueSets.fsh +++ b/input/fsh/valueSets.fsh @@ -281,4 +281,353 @@ Description: "DK Related Person Relationship Types" * $v3-RoleCode#GUARD // "guardian" * $v3-RoleCode#NOK // "next of kin" * $v3-RoleCode#POWATT // "power of attorney" -* include codes from system DkRelatedPersonRelationshipCodes \ No newline at end of file +* include codes from system DkRelatedPersonRelationshipCodes + +ValueSet: DkCoreProfessionGroupValueSet +Id: DkCoreProfessionGroupValueSet +Title: "DK Profession Group" +Description: "DK Profession Group codes" +* ^experimental = false +* ^status = #active +* include codes from system DkCoreProfessionGroupCodes + +ValueSet: MunicipalityCodes +Id: dk-core-MunicipalityCodes +Title: "DK Municipality Codes" +Description: "Municipality codes used in Denmark" +* ^experimental = false +* 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" +* ^experimental = false +* include codes from system DKCoreRegionalSubdivisionCodes + +ValueSet: LoincBasicObservation +Id: dk-core-LoincBasicObservation +Title: "DK Core LOINC Basic Observations" +Description: "LOINC codes describing Basic Observations usable in Denmark." +* ^experimental = false +* $LOINC#9279-1 "Respiratory rate" +* $LOINC#8867-4 "Heart rate" +* $LOINC#2708-6 "Oxygen saturation in Arterial blood" +* $LOINC#8310-5 "Body temperature" +* $LOINC#85353-1 "Vital signs, weight, height, head circumference, oxygen saturation & BMI panel" +* $LOINC#8302-2 "Body height" +* $LOINC#9843-4 "Head Occipital-frontal circumference" +* $LOINC#29463-7 "Body weight" +* $LOINC#39156-5 "Body mass index (BMI) [Ratio]" +* $LOINC#85354-9 "Blood pressure panel with all children optional" +* $LOINC#8480-6 "Systolic blood pressure" +* $LOINC#8462-4 "Diastolic blood pressure" +* $LOINC#8478-0 "Mean blood pressure" +* $LOINC#59408-5 "Oxygen saturation in Arterial blood by Pulse oximetry" + +ValueSet: SCTBasicObservation +Id: dk-core-SCTBasicObservation +Title: "DK Core SNOMED CT Basic Observation" +Description: "SNOMED CT codes for Basic Observations usable in Denmark" +* ^experimental = false +//Vital signs +* $sct#446226005 //Diastolic blood pressure on admission +* $sct#400975005 //Standing diastolic blood pressure +* $sct#407557002 //Lying diastolic blood pressure +* $sct#407555005 //Sitting diastolic blood pressure +* $sct#271650006 //Diastolic blood pressure +* $sct#72313002 //Systolic arterial pressure +* $sct#400974009 //Standing systolic blood pressure +* $sct#399304008 //Systolic blood pressure on admission +* $sct#407556006 //Lying systolic blood pressure +* $sct#407554009 //Sitting systolic blood pressure +* $sct#271649006 //Systolic blood pressure +* codes from system $sct where concept is-a #431314004 //SpO2 +* $sct#422119006 //Brachial pulse rate +* $sct#429614003 //Posterior tibial pulse rate +* $sct#429525003 //Dorsalis pedis pulse rate +* $sct#399017001 //Heart rate on admission +* $sct#78564009 //Pulse rate +* $sct#444981005 //Resting heart rate +* $sct#364075005 //Heart rate +* $sct#424927000 //Body weight with shoes +* $sct#445541000 // Dry body weight +* $sct#425024002 // Body weight without shoes +* $sct#364589006 //Birth weight +* $sct#27113001 //Body weight +* codes from system $sct where concept is-a #86290005 //(Respiratory rate) +* codes from system $sct where concept is-a #276885007 // Core Body temperature +* $sct#1153637007 //Body height (observable entity)| +* $sct#248333004 //|Standing height (observable entity)| +* $sct#1149101003 //|Recumbent body height| +* $sct#1162392001 //|Pre-amputation measured body height| + + +ValueSet: IEEEBasicObservation +Id: dk-core-IEEEBasicObservation +Title: "Dk Core IEEE Basic Observation" +Description: "IEEE MDC codes for Basic Observations usable in Denmark" +* ^experimental = false +* ^copyright = "IEEE" +* ^purpose = """ +### Purpose of this ValueSet +This ValueSet comprises the most common IEEE MDC codes used to represent observations +that are considered "basic" by this profile. This ValueSet is **not** meant to be exhaustive! + +The origin of an MDC code is usually the equipment used to perform the measurement, +and often the code carries supplemental information about how (or where on the body) +the observation was performed. +""" +* $IEEEx73#151562 "MDC_RESP_RATE" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "Rate of breathing; method not specified." +* $IEEEx73#151570 "MDC_AWAY_RESP_RATE" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "Rate of breathing; method: direct airway flow measurement." +* $IEEEx73#151578 "MDC_TTHOR_RESP_RATE" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "Rate of breathing; method: transthoracic impedance variations." +* $IEEEx73#151594 "MDC_CO2_RESP_RATE" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "Rate of breathing; method: carbon dioxide measurement." +* $IEEEx73#151602 "MDC_PRESS_RESP_RATE" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "Rate of breathing; method: non-airway pressure measurement, e.g. central venous blood pressure (CVP)." +* $IEEEx73#151650 "MDC_ACOUSTIC_RESP_RATE" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "Rate of breathing; method: acoustic." +* $IEEEx73#151658 "MDC_PULS_OXIM_PLETH_RESP_RATE" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "Rate of breathing; method: SpO2 plethysmography." +* $IEEEx73#8410992 "MDC_SABTE_RESP_RATE" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "Value of respiration rate. [measured by sleep apnoea breathing therapy equipment]" +* $IEEEx73#149514 "MDC_PULS_RATE" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "Rate of blood pulse in an artery." +* $IEEEx73#149522 "MDC_BLD_PULS_RATE_INV" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "Rate of blood pulse in an artery, measured invasively." +* $IEEEx73#149546 "MDC_PULS_RATE_NON_INV" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "Rate of blood pulse in an artery, measured non-invasively." +* $IEEEx73#149530 "MDC_PULS_OXIM_PULS_RATE" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "Rate of blood pulse as obtained by pulse oximetry." +* $IEEEx73#147842 "MDC_ECG_HEART_RATE" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "Rate of cardiac beats (ECG)." +* $IEEEx73#8410590 "MDC_ECG_HEART_RATE_INSTANT" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "Instantaneous heart rate." +* $IEEEx73#149554 "MDC_TTHOR_HEART_RATE" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "Heart rate obtained from the variation of transthoracic impedance." +* $IEEEx73#149562 "MDC_PALPATION_HEART_RATE" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "Heart rate obtained from an artery that is close to the surface and a pulse can be felt." +* $IEEEx73#8454258 "MDC_HF_HR" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "This is an object representing the heart rate over a period of time. [Exercise / fitness equipment]" +* $IEEEx73#150324 "MDC_SAT_O2_ART" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "Arterial oxygen saturation. [no method]" +* $IEEEx73#150456 "MDC_PULS_OXIM_SAT_O2" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "Oxygen saturation. [using pulse oximetry]" +* $IEEEx73#150364 "MDC_TEMP_BODY" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "Body temperature. [unspecified]" +* $IEEEx73#150368 "MDC_TEMP_CORE" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "Core temperature." +* $IEEEx73#150388 "MDC_TEMP_SKIN" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "Skin temperature." +* $IEEEx73#150392 "MDC_TEMP_TYMP" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "Tympanic temperature." +* $IEEEx73#188420 "MDC_TEMP_RECT" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "Rectal temperature." +* $IEEEx73#188424 "MDC_TEMP_ORAL" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "Oral temperature." +* $IEEEx73#188428 "MDC_TEMP_EAR" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "Ear temperature." +* $IEEEx73#188452 "MDC_TEMP_AXILLA" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "Axillary (armpit) temperature." +* $IEEEx73#188456 "MDC_TEMP_GIT" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "Gastro-intestinal tract temperature." +* $IEEEx73#188740 "MDC_LEN_BODY_ACTUAL" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "The actual height of the patient." +* $IEEEx73#153856 "MDC_CIRCUM_HEAD" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "Circumference of the head." +* $IEEEx73#188736 "MDC_MASS_BODY_ACTUAL" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "The measurement of the mass of patient." +* $IEEEx73#188752 "MDC_RATIO_MASS_BODY_LEN_SQ" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "The individual's body weight, in kilograms, divided by the square of height, in meters." +* $IEEEx73#150020 "MDC_PRESS_BLD_NONINV" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "Pressure of the blood, obtained noninvasively." +* $IEEEx73#150021 "MDC_PRESS_BLD_NONINV_SYS" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "Pressure of the blood, obtained noninvasively, at the systolic phase." +* $IEEEx73#150022 "MDC_PRESS_BLD_NONINV_DIA" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "Pressure of the blood, obtained noninvasively, at the diastolic phase." +* $IEEEx73#150023 "MDC_PRESS_BLD_NONINV_MEAN" + * ^designation.use = $sct#900000000000003001 + * ^designation.value = "Pressure of the blood, obtained noninvasively, as computed by averaging on one cycle." + +ValueSet: NPUBasicObservation +Id: dk-core-NPUBasicObservation +Title: "DK Core NPU Basic Observation" +Description: "NPU codes for Basic Observations usable in Denmark" +* ^experimental = false +* $NPU#NPU03011 "Hb(Fe; O₂-bind.;aB)—Oxygen(O₂); sat. = ?" +* $NPU#NPU27280 "Hb(Fe; O₂-bind.;aB)—Oxygen(O₂); sat.(Pulse oximetry) = ?" +* $NPU#NPU04034 "Pt(spec.)—Blood; temp. = ? °C" +* $NPU#NPU08676 "Pt—Body; temp. = ? °C" +* $NPU#NPU58033 "Artery(spec.)—Blood pressure(systolic); pr.(proc.) = ? mmHg" +* $NPU#NPU57947 "Artery(spec.)—Blood; pr.(systolic;proc.) = ? mmHg" +* $NPU#NPU58034 "Artery(spec.)—Blood pressure(diastolic); pr.(proc.) = ? mmHg" +* $NPU#NPU57948 "Artery(spec.)—Blood; pr.(diastolic;proc.) = ? mmHg" +* $NPU#NPU21692 "Heart—Systole; freq. = ? * 1/min" +* $NPU#NPU03794 "Pt—Body; height = ? m" +* $NPU#NPU03804 "Pt—Body; mass = ? kg" +* $NPU#NPU27281 "Pt—Body; mass coefficient(mass/squared height) = ? kg/m²" + +ValueSet: UCUMBasicUnits +Id: dk-core-UCUM-BasicUnits +Title: "DK Core UCUM Basic Units" +Description: "UCUM codes to represent units for basic Observations usable in Denmark" +* ^experimental = false +* $ucum#% "percent" +* $ucum#cm "centimeter" +* $ucum#[in_i] "inch (international)" +* $ucum#kg "kilogram" +* $ucum#g "gram" +* $ucum#[lb_av] "pound (US and British)" +* $ucum#Cel "degree Celsius" +* $ucum#[degF] "degree Fahrenheit" +* $ucum#mm[Hg] "millimeter of mercury" +* $ucum#/min "per minute" +* $ucum#kg/m2 "kilogram / (meter ^ 2)" +* $ucum#m2 "square meter" +* $ucum#{fraction} "fraction" + +ValueSet: TechniquesSCTCodes +Id: dk-core-TechniquesSCTCodes +Title: "DK TechniquesSCTCodes" +Description: "SNOMED CT Codes for the technique used when obtaining an observation" +* ^experimental = false +* $sct#761996005 "Estimation technique (qualifier value)" +* $sct#733985002 "Reported (qualifier value)" +* $sct#272391002 "Measurement technique (qualifier value)" + +ValueSet: DkCoreDeCPRValueSet +Id: DkCoreDeCPRValueSet +Title: "DK D-eCPR OID values" +Description: "DK D-eCPR OID values" +* ^experimental = false +* ^status = #active +* include codes from system DkCoreDeCPRCodes + +ValueSet: RelatedPersonRelationshipTypes +Id: dk-core-RelatedPersonRelationshipTypes +Title: "DK Related Person Relationship Types" +Description: "DK Related Person Relationship Types" +* ^experimental = false +* ^status = #active +* $v3-RoleCode#FAMMEMB // "family member" +* $v3-RoleCode#CHILD // "child" +* $v3-RoleCode#DAUC // "daughter" +* $v3-RoleCode#SONC // "son" +* $v3-RoleCode#GRNDCHILD // "grandchild" +* $v3-RoleCode#CHLDINLAW // "child-in-law" +* $v3-RoleCode#PRN // "parent" +* $v3-RoleCode#FTH // "father" +* $v3-RoleCode#MTH // "mother" +* $v3-RoleCode#SIB // "sibling" +* $v3-RoleCode#DOMPART // "domestic partner" +* $v3-RoleCode#SPS // "spouse" +* $v3-RoleCode#FRND // "unrelated friend" +* $v3-RoleCode#NBOR // "neighbor" +* $v3-RoleCode#ROOM // "Roommate" +* $v3-RoleCode#GUARD // "guardian" +* $v3-RoleCode#NOK // "next of kin" +* $v3-RoleCode#POWATT // "power of attorney" +* include codes from system DkRelatedPersonRelationshipCodes + + + +ValueSet: DkCoreServiceRequestCodes +Id: dk-core-servicerequest-codes +Title: "DK codes for ServiceRequest" +Description: "DK Codes for Danish healthcare services" +* ^experimental = false +* ^status = #active +* $sct#773568002 "akutmedicin" +* $sct#408443003 "almen medicin" +* $sct#394577000 "anæstesiologi" +* $sct#394821009 "arbejdsmedicin" +* $sct#394588006 "børne- og ungdomspsykiatri" +* $sct#394582007 "dermato-venerologi" +* $sct#394914008 "diagnostisk radiologi" +* $sct#394583002 "endokrinologi" +* $sct#394811001 "geriatri" +* $sct#394585009 "gynækologi og obstetrik" +* $sct#408472002 "hepatologi" +* $sct#394803006 "hæmatologi" +* $sct#394807007 "infektionsmedicin" +* $sct#419192003 "intern medicin" +* $sct#394579002 "kardiologi" +* $sct#408463005 "karkirurgi" +* $sct#394609007 "kirurgi" +* $sct#551411000005104 "kirurgisk gastroenterologi" +* $sct#394596001 "klinisk biokemi" +* $sct#394600006 "klinisk farmakologi" +* $sct#394601005 "klinisk fysiologi og nuklearmedicin (snomed: klinisk fysiologi)" +* $sct#394580004 "klinisk genetik" +* $sct#421661004 "klinisk immunologi" +* $sct#408454008 "klinisk mikrobiologi" +* $sct#394809005 "klinisk neurofysiologi" +* $sct#394592004 "klinisk onkologi" +* $sct#418112009 "lungesygdomme" +* $sct#394805004 "medicinsk allergologi" +* $sct#394584008 "medicinsk gastroenterologi" +* $sct#394589003 "nefrologi" +* $sct#394610002 "neurokirurgi" +* $sct#394591006 "neurologi" +* $sct#394812008 "odontologi (snomed: odontologiske specialer)" +* $sct#394594003 "oftalmologi" +* $sct#394608004 "ortodonti" +* $sct#394801008 "ortopædisk kirurgi" +* $sct#394604002 "oto-rhino-laryngologi" +* $sct#394915009 "patologisk anatomi og cytologi" +* $sct#394611003 "plastikkirurgi" +* $sct#394587001 "psykiatri" +* $sct#394537008 "pædiatri" +* $sct#394810000 "reumatologi" +* $sct#394581000 "samfundsmedicin" +* $sct#394605001 "tand-, mund- og kæbekirurgi" +* $sct#394603008 "thoraxkirurgi" +* $sct#408448007 "tropemedicin" +* $sct#394612005 "urologi" +* $sct#658171000005102 "hjemmepleje" +* $sct#658161000005107 "hjemmesygepleje" +* $sct#658151000005105 "sundhedsfremme og forebyggelse" +* $sct#658191000005101 "sundhedspleje" +* $sct#658201000005103 "kommunal tandpleje" +* $sct#658141000005108 "genoptræning efter hospitalsophold" +* $sct#658181000005104 "hjælpemiddelområdet" +* $sct#2903041000005106 "det kommunale omsorgs-, social- og sundhedsområde" From 71cfc8e5ae2127f81991c0a837282e8a9cd7490a Mon Sep 17 00:00:00 2001 From: kirstinerosenbeck Date: Mon, 9 Sep 2024 13:29:56 +0200 Subject: [PATCH 26/40] priority valueset, reasoncode and reason reference added to ServiceRequest --- input/fsh/DkCoreServiceRequest.fsh | 34 +- input/fsh/valueSets.fsh | 554 +++++++++++++++-------------- 2 files changed, 312 insertions(+), 276 deletions(-) diff --git a/input/fsh/DkCoreServiceRequest.fsh b/input/fsh/DkCoreServiceRequest.fsh index 0ac3f93da..37f317e9f 100644 --- a/input/fsh/DkCoreServiceRequest.fsh +++ b/input/fsh/DkCoreServiceRequest.fsh @@ -7,15 +7,45 @@ Description: "HL7 Denmark core profile for requesting a service, such as diagnos * requester only Reference(DkCorePractitioner or PractitionerRole or DkCoreOrganization or DkCorePatient or DkCoreRelatedPerson or Device) * performer only Reference(DkCorePractitioner or PractitionerRole or DkCoreOrganization or DkCorePatient or DkCoreRelatedPerson or HealthcareService or Device or CareTeam) * code from DkCoreServiceRequestCodes (preferred) - +* priority from DkCorePriorityCodes (required) +* reasonReference only Reference(DkCoreCondition or DkCoreObservation or DiagnosticReport or DocumentReference) +* reasonCode.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 reason" + * ^short = "Reason code, [DA] begrundelses-kode" +* reasonCode.coding contains + FSIIIConditionCode 0..1 and + SCTCode 0..1 and + FFBConditionCode 0..1 and + SKS-D 0..1 and + ICPC2code 0..1 +* reasonCode.coding[FSIIIConditionCode] ^short = "[DA] FSIII tilstandskode" + * system 1.. + * system = "urn:oid:1.2.208.176.2.21" +* reasonCode.coding[SCTCode] + * ^short = "SNOMED CT kode, typisk klinisk fund eller procedure" + * system 1.. + * system = "http://snomed.info/sct" +* reasonCode.coding[FFBConditionCode] ^short = "[DA] FFB undertemakode" + * system 1.. + * system = "urn:oid:1.2.208.176.2.22" +* reasonCode.coding[SKS] ^short = "[DA] Kode fra SKS, typisk diagnose eller procedure" + * system 1.. + * system = "urn:oid:1.2.208.176.2.4.12" +* reasonCode.coding[ICPC2code] ^short = "ICPC2 code" + * system 1.. + * system = "urn:oid:1.2.208.176.2.31" Instance: JohnsServiceRequest -InstanceOf: DkCoreServiceRequest +InstanceOf: DkCorePersonServiceRequest Title: "Request for nursing care of John." Description: "Request for nursing care of John." Usage: #example * status = #active * intent = #plan +* priority = http://hl7.org/fhir/request-priority#routine * subject.reference = "Patient/john" * code.coding = $sct#658161000005107 "hjemmesygepleje" diff --git a/input/fsh/valueSets.fsh b/input/fsh/valueSets.fsh index 098435bfd..83a550c26 100644 --- a/input/fsh/valueSets.fsh +++ b/input/fsh/valueSets.fsh @@ -283,292 +283,290 @@ Description: "DK Related Person Relationship Types" * $v3-RoleCode#POWATT // "power of attorney" * include codes from system DkRelatedPersonRelationshipCodes -ValueSet: DkCoreProfessionGroupValueSet -Id: DkCoreProfessionGroupValueSet -Title: "DK Profession Group" -Description: "DK Profession Group codes" -* ^experimental = false -* ^status = #active -* include codes from system DkCoreProfessionGroupCodes +// ValueSet: DkCoreProfessionGroupValueSet +// Id: DkCoreProfessionGroupValueSet +// Title: "DK Profession Group" +// Description: "DK Profession Group codes" +// * ^experimental = false +// * ^status = #active +// * include codes from system DkCoreProfessionGroupCodes -ValueSet: MunicipalityCodes -Id: dk-core-MunicipalityCodes -Title: "DK Municipality Codes" -Description: "Municipality codes used in Denmark" -* ^experimental = false -* include codes from system MunicipalityCodes -* include codes from system GreenlandMunicipalityCodes +// ValueSet: MunicipalityCodes +// Id: dk-core-MunicipalityCodes +// Title: "DK Municipality Codes" +// Description: "Municipality codes used in Denmark" +// * ^experimental = false +// * 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" -* ^experimental = false -* include codes from system DKCoreRegionalSubdivisionCodes +// ValueSet: RegionalSubdivisionCodes +// Id: dk-core-RegionalSubDivisionCodes +// Title: "DK Regional Subdivision Codes" +// Description: "Subdivision codes (Regional codes) used in Denmark" +// * ^experimental = false +// * include codes from system DKCoreRegionalSubdivisionCodes -ValueSet: LoincBasicObservation -Id: dk-core-LoincBasicObservation -Title: "DK Core LOINC Basic Observations" -Description: "LOINC codes describing Basic Observations usable in Denmark." -* ^experimental = false -* $LOINC#9279-1 "Respiratory rate" -* $LOINC#8867-4 "Heart rate" -* $LOINC#2708-6 "Oxygen saturation in Arterial blood" -* $LOINC#8310-5 "Body temperature" -* $LOINC#85353-1 "Vital signs, weight, height, head circumference, oxygen saturation & BMI panel" -* $LOINC#8302-2 "Body height" -* $LOINC#9843-4 "Head Occipital-frontal circumference" -* $LOINC#29463-7 "Body weight" -* $LOINC#39156-5 "Body mass index (BMI) [Ratio]" -* $LOINC#85354-9 "Blood pressure panel with all children optional" -* $LOINC#8480-6 "Systolic blood pressure" -* $LOINC#8462-4 "Diastolic blood pressure" -* $LOINC#8478-0 "Mean blood pressure" -* $LOINC#59408-5 "Oxygen saturation in Arterial blood by Pulse oximetry" +// ValueSet: LoincBasicObservation +// Id: dk-core-LoincBasicObservation +// Title: "DK Core LOINC Basic Observations" +// Description: "LOINC codes describing Basic Observations usable in Denmark." +// * ^experimental = false +// * $LOINC#9279-1 "Respiratory rate" +// * $LOINC#8867-4 "Heart rate" +// * $LOINC#2708-6 "Oxygen saturation in Arterial blood" +// * $LOINC#8310-5 "Body temperature" +// * $LOINC#85353-1 "Vital signs, weight, height, head circumference, oxygen saturation & BMI panel" +// * $LOINC#8302-2 "Body height" +// * $LOINC#9843-4 "Head Occipital-frontal circumference" +// * $LOINC#29463-7 "Body weight" +// * $LOINC#39156-5 "Body mass index (BMI) [Ratio]" +// * $LOINC#85354-9 "Blood pressure panel with all children optional" +// * $LOINC#8480-6 "Systolic blood pressure" +// * $LOINC#8462-4 "Diastolic blood pressure" +// * $LOINC#8478-0 "Mean blood pressure" +// * $LOINC#59408-5 "Oxygen saturation in Arterial blood by Pulse oximetry" -ValueSet: SCTBasicObservation -Id: dk-core-SCTBasicObservation -Title: "DK Core SNOMED CT Basic Observation" -Description: "SNOMED CT codes for Basic Observations usable in Denmark" -* ^experimental = false -//Vital signs -* $sct#446226005 //Diastolic blood pressure on admission -* $sct#400975005 //Standing diastolic blood pressure -* $sct#407557002 //Lying diastolic blood pressure -* $sct#407555005 //Sitting diastolic blood pressure -* $sct#271650006 //Diastolic blood pressure -* $sct#72313002 //Systolic arterial pressure -* $sct#400974009 //Standing systolic blood pressure -* $sct#399304008 //Systolic blood pressure on admission -* $sct#407556006 //Lying systolic blood pressure -* $sct#407554009 //Sitting systolic blood pressure -* $sct#271649006 //Systolic blood pressure -* codes from system $sct where concept is-a #431314004 //SpO2 -* $sct#422119006 //Brachial pulse rate -* $sct#429614003 //Posterior tibial pulse rate -* $sct#429525003 //Dorsalis pedis pulse rate -* $sct#399017001 //Heart rate on admission -* $sct#78564009 //Pulse rate -* $sct#444981005 //Resting heart rate -* $sct#364075005 //Heart rate -* $sct#424927000 //Body weight with shoes -* $sct#445541000 // Dry body weight -* $sct#425024002 // Body weight without shoes -* $sct#364589006 //Birth weight -* $sct#27113001 //Body weight -* codes from system $sct where concept is-a #86290005 //(Respiratory rate) -* codes from system $sct where concept is-a #276885007 // Core Body temperature -* $sct#1153637007 //Body height (observable entity)| -* $sct#248333004 //|Standing height (observable entity)| -* $sct#1149101003 //|Recumbent body height| -* $sct#1162392001 //|Pre-amputation measured body height| +// ValueSet: SCTBasicObservation +// Id: dk-core-SCTBasicObservation +// Title: "DK Core SNOMED CT Basic Observation" +// Description: "SNOMED CT codes for Basic Observations usable in Denmark" +// * ^experimental = false +// //Vital signs +// * $sct#446226005 //Diastolic blood pressure on admission +// * $sct#400975005 //Standing diastolic blood pressure +// * $sct#407557002 //Lying diastolic blood pressure +// * $sct#407555005 //Sitting diastolic blood pressure +// * $sct#271650006 //Diastolic blood pressure +// * $sct#72313002 //Systolic arterial pressure +// * $sct#400974009 //Standing systolic blood pressure +// * $sct#399304008 //Systolic blood pressure on admission +// * $sct#407556006 //Lying systolic blood pressure +// * $sct#407554009 //Sitting systolic blood pressure +// * $sct#271649006 //Systolic blood pressure +// * codes from system $sct where concept is-a #431314004 //SpO2 +// * $sct#422119006 //Brachial pulse rate +// * $sct#429614003 //Posterior tibial pulse rate +// * $sct#429525003 //Dorsalis pedis pulse rate +// * $sct#399017001 //Heart rate on admission +// * $sct#78564009 //Pulse rate +// * $sct#444981005 //Resting heart rate +// * $sct#364075005 //Heart rate +// * $sct#424927000 //Body weight with shoes +// * $sct#445541000 // Dry body weight +// * $sct#425024002 // Body weight without shoes +// * $sct#364589006 //Birth weight +// * $sct#27113001 //Body weight +// * codes from system $sct where concept is-a #86290005 //(Respiratory rate) +// * codes from system $sct where concept is-a #276885007 // Core Body temperature +// * $sct#1153637007 //Body height (observable entity)| +// * $sct#248333004 //|Standing height (observable entity)| +// * $sct#1149101003 //|Recumbent body height| +// * $sct#1162392001 //|Pre-amputation measured body height| -ValueSet: IEEEBasicObservation -Id: dk-core-IEEEBasicObservation -Title: "Dk Core IEEE Basic Observation" -Description: "IEEE MDC codes for Basic Observations usable in Denmark" -* ^experimental = false -* ^copyright = "IEEE" -* ^purpose = """ -### Purpose of this ValueSet -This ValueSet comprises the most common IEEE MDC codes used to represent observations -that are considered "basic" by this profile. This ValueSet is **not** meant to be exhaustive! +// ValueSet: IEEEBasicObservation +// Id: dk-core-IEEEBasicObservation +// Title: "Dk Core IEEE Basic Observation" +// Description: "IEEE MDC codes for Basic Observations usable in Denmark" +// * ^experimental = false +// * ^copyright = "IEEE" +// * ^purpose = """ +// ### Purpose of this ValueSet +// This ValueSet comprises the most common IEEE MDC codes used to represent observations +// that are considered "basic" by this profile. This ValueSet is **not** meant to be exhaustive! -The origin of an MDC code is usually the equipment used to perform the measurement, -and often the code carries supplemental information about how (or where on the body) -the observation was performed. -""" -* $IEEEx73#151562 "MDC_RESP_RATE" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "Rate of breathing; method not specified." -* $IEEEx73#151570 "MDC_AWAY_RESP_RATE" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "Rate of breathing; method: direct airway flow measurement." -* $IEEEx73#151578 "MDC_TTHOR_RESP_RATE" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "Rate of breathing; method: transthoracic impedance variations." -* $IEEEx73#151594 "MDC_CO2_RESP_RATE" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "Rate of breathing; method: carbon dioxide measurement." -* $IEEEx73#151602 "MDC_PRESS_RESP_RATE" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "Rate of breathing; method: non-airway pressure measurement, e.g. central venous blood pressure (CVP)." -* $IEEEx73#151650 "MDC_ACOUSTIC_RESP_RATE" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "Rate of breathing; method: acoustic." -* $IEEEx73#151658 "MDC_PULS_OXIM_PLETH_RESP_RATE" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "Rate of breathing; method: SpO2 plethysmography." -* $IEEEx73#8410992 "MDC_SABTE_RESP_RATE" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "Value of respiration rate. [measured by sleep apnoea breathing therapy equipment]" -* $IEEEx73#149514 "MDC_PULS_RATE" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "Rate of blood pulse in an artery." -* $IEEEx73#149522 "MDC_BLD_PULS_RATE_INV" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "Rate of blood pulse in an artery, measured invasively." -* $IEEEx73#149546 "MDC_PULS_RATE_NON_INV" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "Rate of blood pulse in an artery, measured non-invasively." -* $IEEEx73#149530 "MDC_PULS_OXIM_PULS_RATE" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "Rate of blood pulse as obtained by pulse oximetry." -* $IEEEx73#147842 "MDC_ECG_HEART_RATE" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "Rate of cardiac beats (ECG)." -* $IEEEx73#8410590 "MDC_ECG_HEART_RATE_INSTANT" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "Instantaneous heart rate." -* $IEEEx73#149554 "MDC_TTHOR_HEART_RATE" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "Heart rate obtained from the variation of transthoracic impedance." -* $IEEEx73#149562 "MDC_PALPATION_HEART_RATE" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "Heart rate obtained from an artery that is close to the surface and a pulse can be felt." -* $IEEEx73#8454258 "MDC_HF_HR" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "This is an object representing the heart rate over a period of time. [Exercise / fitness equipment]" -* $IEEEx73#150324 "MDC_SAT_O2_ART" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "Arterial oxygen saturation. [no method]" -* $IEEEx73#150456 "MDC_PULS_OXIM_SAT_O2" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "Oxygen saturation. [using pulse oximetry]" -* $IEEEx73#150364 "MDC_TEMP_BODY" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "Body temperature. [unspecified]" -* $IEEEx73#150368 "MDC_TEMP_CORE" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "Core temperature." -* $IEEEx73#150388 "MDC_TEMP_SKIN" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "Skin temperature." -* $IEEEx73#150392 "MDC_TEMP_TYMP" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "Tympanic temperature." -* $IEEEx73#188420 "MDC_TEMP_RECT" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "Rectal temperature." -* $IEEEx73#188424 "MDC_TEMP_ORAL" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "Oral temperature." -* $IEEEx73#188428 "MDC_TEMP_EAR" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "Ear temperature." -* $IEEEx73#188452 "MDC_TEMP_AXILLA" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "Axillary (armpit) temperature." -* $IEEEx73#188456 "MDC_TEMP_GIT" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "Gastro-intestinal tract temperature." -* $IEEEx73#188740 "MDC_LEN_BODY_ACTUAL" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "The actual height of the patient." -* $IEEEx73#153856 "MDC_CIRCUM_HEAD" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "Circumference of the head." -* $IEEEx73#188736 "MDC_MASS_BODY_ACTUAL" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "The measurement of the mass of patient." -* $IEEEx73#188752 "MDC_RATIO_MASS_BODY_LEN_SQ" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "The individual's body weight, in kilograms, divided by the square of height, in meters." -* $IEEEx73#150020 "MDC_PRESS_BLD_NONINV" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "Pressure of the blood, obtained noninvasively." -* $IEEEx73#150021 "MDC_PRESS_BLD_NONINV_SYS" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "Pressure of the blood, obtained noninvasively, at the systolic phase." -* $IEEEx73#150022 "MDC_PRESS_BLD_NONINV_DIA" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "Pressure of the blood, obtained noninvasively, at the diastolic phase." -* $IEEEx73#150023 "MDC_PRESS_BLD_NONINV_MEAN" - * ^designation.use = $sct#900000000000003001 - * ^designation.value = "Pressure of the blood, obtained noninvasively, as computed by averaging on one cycle." +// The origin of an MDC code is usually the equipment used to perform the measurement, +// and often the code carries supplemental information about how (or where on the body) +// the observation was performed. +// """ +// * $IEEEx73#151562 "MDC_RESP_RATE" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "Rate of breathing; method not specified." +// * $IEEEx73#151570 "MDC_AWAY_RESP_RATE" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "Rate of breathing; method: direct airway flow measurement." +// * $IEEEx73#151578 "MDC_TTHOR_RESP_RATE" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "Rate of breathing; method: transthoracic impedance variations." +// * $IEEEx73#151594 "MDC_CO2_RESP_RATE" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "Rate of breathing; method: carbon dioxide measurement." +// * $IEEEx73#151602 "MDC_PRESS_RESP_RATE" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "Rate of breathing; method: non-airway pressure measurement, e.g. central venous blood pressure (CVP)." +// * $IEEEx73#151650 "MDC_ACOUSTIC_RESP_RATE" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "Rate of breathing; method: acoustic." +// * $IEEEx73#151658 "MDC_PULS_OXIM_PLETH_RESP_RATE" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "Rate of breathing; method: SpO2 plethysmography." +// * $IEEEx73#8410992 "MDC_SABTE_RESP_RATE" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "Value of respiration rate. [measured by sleep apnoea breathing therapy equipment]" +// * $IEEEx73#149514 "MDC_PULS_RATE" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "Rate of blood pulse in an artery." +// * $IEEEx73#149522 "MDC_BLD_PULS_RATE_INV" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "Rate of blood pulse in an artery, measured invasively." +// * $IEEEx73#149546 "MDC_PULS_RATE_NON_INV" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "Rate of blood pulse in an artery, measured non-invasively." +// * $IEEEx73#149530 "MDC_PULS_OXIM_PULS_RATE" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "Rate of blood pulse as obtained by pulse oximetry." +// * $IEEEx73#147842 "MDC_ECG_HEART_RATE" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "Rate of cardiac beats (ECG)." +// * $IEEEx73#8410590 "MDC_ECG_HEART_RATE_INSTANT" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "Instantaneous heart rate." +// * $IEEEx73#149554 "MDC_TTHOR_HEART_RATE" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "Heart rate obtained from the variation of transthoracic impedance." +// * $IEEEx73#149562 "MDC_PALPATION_HEART_RATE" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "Heart rate obtained from an artery that is close to the surface and a pulse can be felt." +// * $IEEEx73#8454258 "MDC_HF_HR" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "This is an object representing the heart rate over a period of time. [Exercise / fitness equipment]" +// * $IEEEx73#150324 "MDC_SAT_O2_ART" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "Arterial oxygen saturation. [no method]" +// * $IEEEx73#150456 "MDC_PULS_OXIM_SAT_O2" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "Oxygen saturation. [using pulse oximetry]" +// * $IEEEx73#150364 "MDC_TEMP_BODY" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "Body temperature. [unspecified]" +// * $IEEEx73#150368 "MDC_TEMP_CORE" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "Core temperature." +// * $IEEEx73#150388 "MDC_TEMP_SKIN" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "Skin temperature." +// * $IEEEx73#150392 "MDC_TEMP_TYMP" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "Tympanic temperature." +// * $IEEEx73#188420 "MDC_TEMP_RECT" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "Rectal temperature." +// * $IEEEx73#188424 "MDC_TEMP_ORAL" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "Oral temperature." +// * $IEEEx73#188428 "MDC_TEMP_EAR" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "Ear temperature." +// * $IEEEx73#188452 "MDC_TEMP_AXILLA" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "Axillary (armpit) temperature." +// * $IEEEx73#188456 "MDC_TEMP_GIT" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "Gastro-intestinal tract temperature." +// * $IEEEx73#188740 "MDC_LEN_BODY_ACTUAL" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "The actual height of the patient." +// * $IEEEx73#153856 "MDC_CIRCUM_HEAD" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "Circumference of the head." +// * $IEEEx73#188736 "MDC_MASS_BODY_ACTUAL" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "The measurement of the mass of patient." +// * $IEEEx73#188752 "MDC_RATIO_MASS_BODY_LEN_SQ" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "The individual's body weight, in kilograms, divided by the square of height, in meters." +// * $IEEEx73#150020 "MDC_PRESS_BLD_NONINV" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "Pressure of the blood, obtained noninvasively." +// * $IEEEx73#150021 "MDC_PRESS_BLD_NONINV_SYS" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "Pressure of the blood, obtained noninvasively, at the systolic phase." +// * $IEEEx73#150022 "MDC_PRESS_BLD_NONINV_DIA" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "Pressure of the blood, obtained noninvasively, at the diastolic phase." +// * $IEEEx73#150023 "MDC_PRESS_BLD_NONINV_MEAN" +// * ^designation.use = $sct#900000000000003001 +// * ^designation.value = "Pressure of the blood, obtained noninvasively, as computed by averaging on one cycle." -ValueSet: NPUBasicObservation -Id: dk-core-NPUBasicObservation -Title: "DK Core NPU Basic Observation" -Description: "NPU codes for Basic Observations usable in Denmark" -* ^experimental = false -* $NPU#NPU03011 "Hb(Fe; O₂-bind.;aB)—Oxygen(O₂); sat. = ?" -* $NPU#NPU27280 "Hb(Fe; O₂-bind.;aB)—Oxygen(O₂); sat.(Pulse oximetry) = ?" -* $NPU#NPU04034 "Pt(spec.)—Blood; temp. = ? °C" -* $NPU#NPU08676 "Pt—Body; temp. = ? °C" -* $NPU#NPU58033 "Artery(spec.)—Blood pressure(systolic); pr.(proc.) = ? mmHg" -* $NPU#NPU57947 "Artery(spec.)—Blood; pr.(systolic;proc.) = ? mmHg" -* $NPU#NPU58034 "Artery(spec.)—Blood pressure(diastolic); pr.(proc.) = ? mmHg" -* $NPU#NPU57948 "Artery(spec.)—Blood; pr.(diastolic;proc.) = ? mmHg" -* $NPU#NPU21692 "Heart—Systole; freq. = ? * 1/min" -* $NPU#NPU03794 "Pt—Body; height = ? m" -* $NPU#NPU03804 "Pt—Body; mass = ? kg" -* $NPU#NPU27281 "Pt—Body; mass coefficient(mass/squared height) = ? kg/m²" - -ValueSet: UCUMBasicUnits -Id: dk-core-UCUM-BasicUnits -Title: "DK Core UCUM Basic Units" -Description: "UCUM codes to represent units for basic Observations usable in Denmark" -* ^experimental = false -* $ucum#% "percent" -* $ucum#cm "centimeter" -* $ucum#[in_i] "inch (international)" -* $ucum#kg "kilogram" -* $ucum#g "gram" -* $ucum#[lb_av] "pound (US and British)" -* $ucum#Cel "degree Celsius" -* $ucum#[degF] "degree Fahrenheit" -* $ucum#mm[Hg] "millimeter of mercury" -* $ucum#/min "per minute" -* $ucum#kg/m2 "kilogram / (meter ^ 2)" -* $ucum#m2 "square meter" -* $ucum#{fraction} "fraction" - -ValueSet: TechniquesSCTCodes -Id: dk-core-TechniquesSCTCodes -Title: "DK TechniquesSCTCodes" -Description: "SNOMED CT Codes for the technique used when obtaining an observation" -* ^experimental = false -* $sct#761996005 "Estimation technique (qualifier value)" -* $sct#733985002 "Reported (qualifier value)" -* $sct#272391002 "Measurement technique (qualifier value)" +// ValueSet: NPUBasicObservation +// Id: dk-core-NPUBasicObservation +// Title: "DK Core NPU Basic Observation" +// Description: "NPU codes for Basic Observations usable in Denmark" +// * ^experimental = false +// * $NPU#NPU03011 "Hb(Fe; O₂-bind.;aB)—Oxygen(O₂); sat. = ?" +// * $NPU#NPU27280 "Hb(Fe; O₂-bind.;aB)—Oxygen(O₂); sat.(Pulse oximetry) = ?" +// * $NPU#NPU04034 "Pt(spec.)—Blood; temp. = ? °C" +// * $NPU#NPU08676 "Pt—Body; temp. = ? °C" +// * $NPU#NPU58033 "Artery(spec.)—Blood pressure(systolic); pr.(proc.) = ? mmHg" +// * $NPU#NPU57947 "Artery(spec.)—Blood; pr.(systolic;proc.) = ? mmHg" +// * $NPU#NPU58034 "Artery(spec.)—Blood pressure(diastolic); pr.(proc.) = ? mmHg" +// * $NPU#NPU57948 "Artery(spec.)—Blood; pr.(diastolic;proc.) = ? mmHg" +// * $NPU#NPU21692 "Heart—Systole; freq. = ? * 1/min" +// * $NPU#NPU03794 "Pt—Body; height = ? m" +// * $NPU#NPU03804 "Pt—Body; mass = ? kg" +// * $NPU#NPU27281 "Pt—Body; mass coefficient(mass/squared height) = ? kg/m²" -ValueSet: DkCoreDeCPRValueSet -Id: DkCoreDeCPRValueSet -Title: "DK D-eCPR OID values" -Description: "DK D-eCPR OID values" -* ^experimental = false -* ^status = #active -* include codes from system DkCoreDeCPRCodes +// ValueSet: UCUMBasicUnits +// Id: dk-core-UCUM-BasicUnits +// Title: "DK Core UCUM Basic Units" +// Description: "UCUM codes to represent units for basic Observations usable in Denmark" +// * ^experimental = false +// * $ucum#% "percent" +// * $ucum#cm "centimeter" +// * $ucum#[in_i] "inch (international)" +// * $ucum#kg "kilogram" +// * $ucum#g "gram" +// * $ucum#[lb_av] "pound (US and British)" +// * $ucum#Cel "degree Celsius" +// * $ucum#[degF] "degree Fahrenheit" +// * $ucum#mm[Hg] "millimeter of mercury" +// * $ucum#/min "per minute" +// * $ucum#kg/m2 "kilogram / (meter ^ 2)" +// * $ucum#m2 "square meter" +// * $ucum#{fraction} "fraction" -ValueSet: RelatedPersonRelationshipTypes -Id: dk-core-RelatedPersonRelationshipTypes -Title: "DK Related Person Relationship Types" -Description: "DK Related Person Relationship Types" -* ^experimental = false -* ^status = #active -* $v3-RoleCode#FAMMEMB // "family member" -* $v3-RoleCode#CHILD // "child" -* $v3-RoleCode#DAUC // "daughter" -* $v3-RoleCode#SONC // "son" -* $v3-RoleCode#GRNDCHILD // "grandchild" -* $v3-RoleCode#CHLDINLAW // "child-in-law" -* $v3-RoleCode#PRN // "parent" -* $v3-RoleCode#FTH // "father" -* $v3-RoleCode#MTH // "mother" -* $v3-RoleCode#SIB // "sibling" -* $v3-RoleCode#DOMPART // "domestic partner" -* $v3-RoleCode#SPS // "spouse" -* $v3-RoleCode#FRND // "unrelated friend" -* $v3-RoleCode#NBOR // "neighbor" -* $v3-RoleCode#ROOM // "Roommate" -* $v3-RoleCode#GUARD // "guardian" -* $v3-RoleCode#NOK // "next of kin" -* $v3-RoleCode#POWATT // "power of attorney" -* include codes from system DkRelatedPersonRelationshipCodes +// ValueSet: TechniquesSCTCodes +// Id: dk-core-TechniquesSCTCodes +// Title: "DK TechniquesSCTCodes" +// Description: "SNOMED CT Codes for the technique used when obtaining an observation" +// * ^experimental = false +// * $sct#761996005 "Estimation technique (qualifier value)" +// * $sct#733985002 "Reported (qualifier value)" +// * $sct#272391002 "Measurement technique (qualifier value)" +// ValueSet: DkCoreDeCPRValueSet +// Id: DkCoreDeCPRValueSet +// Title: "DK D-eCPR OID values" +// Description: "DK D-eCPR OID values" +// * ^experimental = false +// * ^status = #active +// * include codes from system DkCoreDeCPRCodes +// ValueSet: RelatedPersonRelationshipTypes +// Id: dk-core-RelatedPersonRelationshipTypes +// Title: "DK Related Person Relationship Types" +// Description: "DK Related Person Relationship Types" +// * ^experimental = false +// * ^status = #active +// * $v3-RoleCode#FAMMEMB // "family member" +// * $v3-RoleCode#CHILD // "child" +// * $v3-RoleCode#DAUC // "daughter" +// * $v3-RoleCode#SONC // "son" +// * $v3-RoleCode#GRNDCHILD // "grandchild" +// * $v3-RoleCode#CHLDINLAW // "child-in-law" +// * $v3-RoleCode#PRN // "parent" +// * $v3-RoleCode#FTH // "father" +// * $v3-RoleCode#MTH // "mother" +// * $v3-RoleCode#SIB // "sibling" +// * $v3-RoleCode#DOMPART // "domestic partner" +// * $v3-RoleCode#SPS // "spouse" +// * $v3-RoleCode#FRND // "unrelated friend" +// * $v3-RoleCode#NBOR // "neighbor" +// * $v3-RoleCode#ROOM // "Roommate" +// * $v3-RoleCode#GUARD // "guardian" +// * $v3-RoleCode#NOK // "next of kin" +// * $v3-RoleCode#POWATT // "power of attorney" +// * include codes from system DkRelatedPersonRelationshipCodes ValueSet: DkCoreServiceRequestCodes Id: dk-core-servicerequest-codes @@ -631,3 +629,11 @@ Description: "DK Codes for Danish healthcare services" * $sct#658141000005108 "genoptræning efter hospitalsophold" * $sct#658181000005104 "hjælpemiddelområdet" * $sct#2903041000005106 "det kommunale omsorgs-, social- og sundhedsområde" + +ValueSet: DkCorePriorityCodes +Id: dk-core-priority-codes +Title: "DK priority codes" +Description: "DK Codes for priority" +* include codes from valueset http://hl7.org/fhir/ValueSet/request-priority +* exclude http://hl7.org/fhir/request-priority#urgent +* exclude http://hl7.org/fhir/request-priority#stat \ No newline at end of file From ad107e78a65936bdf4f02f15b9d093833e7f3732 Mon Sep 17 00:00:00 2001 From: kirstinerosenbeck Date: Mon, 9 Sep 2024 14:53:42 +0200 Subject: [PATCH 27/40] changed slice name --- input/fsh/DkCoreServiceRequest.fsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/fsh/DkCoreServiceRequest.fsh b/input/fsh/DkCoreServiceRequest.fsh index 37f317e9f..c33955c0b 100644 --- a/input/fsh/DkCoreServiceRequest.fsh +++ b/input/fsh/DkCoreServiceRequest.fsh @@ -19,7 +19,7 @@ Description: "HL7 Denmark core profile for requesting a service, such as diagnos FSIIIConditionCode 0..1 and SCTCode 0..1 and FFBConditionCode 0..1 and - SKS-D 0..1 and + SKS 0..1 and ICPC2code 0..1 * reasonCode.coding[FSIIIConditionCode] ^short = "[DA] FSIII tilstandskode" * system 1.. From efd67c7cb655244119ef39c8004edaff45cebc99 Mon Sep 17 00:00:00 2001 From: tmsMedcom <88831880+tmsMedcom@users.noreply.github.com> Date: Mon, 23 Sep 2024 08:02:56 +0200 Subject: [PATCH 28/40] Update StructureDefinition-dk-core-servicerequest-intro.md --- .../StructureDefinition-dk-core-servicerequest-intro.md | 1 + 1 file changed, 1 insertion(+) diff --git a/input/pagecontent/StructureDefinition-dk-core-servicerequest-intro.md b/input/pagecontent/StructureDefinition-dk-core-servicerequest-intro.md index ea244fc4e..672994ccc 100644 --- a/input/pagecontent/StructureDefinition-dk-core-servicerequest-intro.md +++ b/input/pagecontent/StructureDefinition-dk-core-servicerequest-intro.md @@ -18,3 +18,4 @@ Since the ValueSet has the binding 'preferred', it is allowed to include other c **OrderDetail:** The most detailed level is at ServiceRequest.orderDetail, which included additional detail or instruction concerning how the service should be delivered. This can be specific to each organization and does not nessecary have to be included when sending a ServiceRequest, but can be enriched by the performer of the service. + From 81cfc4f782282bb690bb72e3a5201971ab7bcedd Mon Sep 17 00:00:00 2001 From: tmsMedcom <88831880+tmsMedcom@users.noreply.github.com> Date: Mon, 23 Sep 2024 08:09:19 +0200 Subject: [PATCH 29/40] Updated name of intro-file --- ...=> StructureDefinition-dk-core-person-servicerequest-intro.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename input/pagecontent/{StructureDefinition-dk-core-servicerequest-intro.md => StructureDefinition-dk-core-person-servicerequest-intro.md} (100%) diff --git a/input/pagecontent/StructureDefinition-dk-core-servicerequest-intro.md b/input/pagecontent/StructureDefinition-dk-core-person-servicerequest-intro.md similarity index 100% rename from input/pagecontent/StructureDefinition-dk-core-servicerequest-intro.md rename to input/pagecontent/StructureDefinition-dk-core-person-servicerequest-intro.md From 2f73e99c7113d3ce6a9139b8166d7a54dcbc96c9 Mon Sep 17 00:00:00 2001 From: tmsMedcom <88831880+tmsMedcom@users.noreply.github.com> Date: Mon, 23 Sep 2024 08:13:20 +0200 Subject: [PATCH 30/40] Update valueSets.fsh --- input/fsh/valueSets.fsh | 1 + 1 file changed, 1 insertion(+) diff --git a/input/fsh/valueSets.fsh b/input/fsh/valueSets.fsh index 83a550c26..bbe51e31d 100644 --- a/input/fsh/valueSets.fsh +++ b/input/fsh/valueSets.fsh @@ -634,6 +634,7 @@ ValueSet: DkCorePriorityCodes Id: dk-core-priority-codes Title: "DK priority codes" Description: "DK Codes for priority" +* ^experimental = false * include codes from valueset http://hl7.org/fhir/ValueSet/request-priority * exclude http://hl7.org/fhir/request-priority#urgent * exclude http://hl7.org/fhir/request-priority#stat \ No newline at end of file From 0fdbbbd2a735d9c01de4e310781da49e85597d7b Mon Sep 17 00:00:00 2001 From: kirstinerosenbeck Date: Mon, 7 Oct 2024 14:31:14 +0200 Subject: [PATCH 31/40] ServiceRequest coding updated in the profile, as well as in the documentation. --- input/fsh/DkCoreServiceRequest.fsh | 2 +- ...reDefinition-dk-core-person-servicerequest-intro.md | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/input/fsh/DkCoreServiceRequest.fsh b/input/fsh/DkCoreServiceRequest.fsh index c33955c0b..dd934bcf7 100644 --- a/input/fsh/DkCoreServiceRequest.fsh +++ b/input/fsh/DkCoreServiceRequest.fsh @@ -6,7 +6,7 @@ Description: "HL7 Denmark core profile for requesting a service, such as diagnos * subject only Reference(DkCorePatient) * requester only Reference(DkCorePractitioner or PractitionerRole or DkCoreOrganization or DkCorePatient or DkCoreRelatedPerson or Device) * performer only Reference(DkCorePractitioner or PractitionerRole or DkCoreOrganization or DkCorePatient or DkCoreRelatedPerson or HealthcareService or Device or CareTeam) -* code from DkCoreServiceRequestCodes (preferred) +* category from DkCoreServiceRequestCodes (preferred) * priority from DkCorePriorityCodes (required) * reasonReference only Reference(DkCoreCondition or DkCoreObservation or DiagnosticReport or DocumentReference) * reasonCode.coding ^slicing.discriminator.type = #value diff --git a/input/pagecontent/StructureDefinition-dk-core-person-servicerequest-intro.md b/input/pagecontent/StructureDefinition-dk-core-person-servicerequest-intro.md index 672994ccc..fad3a52b8 100644 --- a/input/pagecontent/StructureDefinition-dk-core-person-servicerequest-intro.md +++ b/input/pagecontent/StructureDefinition-dk-core-person-servicerequest-intro.md @@ -9,13 +9,13 @@ The Danish Core ServiceRequest profile is intended to support cross sector reque In the ServiceRequest resource there are three levels of categorization. **Category:** -The top level is the ServiceRequest.category, which classifies the services on a high level. In the resource, the examples are `laboratory procedure` or `counseling`, but another example could be to categorize the ServiceRequest into `virtual` or `in-person`. No profiling has been performed for this element. +The top level is the ServiceRequest.category, which classifies the services on a high level. Category is for finding the kinds of ServiceRequests reliably, and can contain more than one code, and relate to different aspects. In Denmark, it is recommended to include one of the NSP/SOR Practice setting codes, as one of the category-codes. The codes are included in this implementation guide as an example binding. The official source of the codes is: +https://svn.medcom.dk/svn/releases/Standarder/IHE/OID/DKIHE_Metadata-Common_Code_systems-Value_sets.xlsx + +Another example of the use of category, related to a different aspect, could be to categorize the ServiceRequest into `virtual` or `in-person`. **Code:** -The middle level is ServiceRequest.code, which identifies the service that is being requested. This could be SNOMED CT concepts for `Home nursing care services` or `Mental health counseling service`. In this profile, a preferred ValueSet binding is included which contains all children of the SNOMED CT `224891009 Healthcare services`. This is chosen as these children are used to define the services a healthcare unit provides in SOR, a register for Danish health care organizations. The included SNOMED CT concepts is already associated with a sector, for example primary care or nursing care. To avoid redundant information in an instances it is recommended not to populate the ServiceRequest.categoy element to include a code that defines the sector in which the service is provided. However, if it is relevant to categorize the ServiceRequest into `virtual` or `in-person`, this can be done. -Since the ValueSet has the binding 'preferred', it is allowed to include other codes for this element. +The middle level is ServiceRequest.code, which identifies the service being requested. This is actually the most important code, and it is recommended to populate this attribute whenever possible. The service request code should semantically be a procedure-code. However, be aware that this does not nessesarily mean that it has to be populated with a very specific code. In cross-sector use cases, it is often the case that the sender-organization does not nessesarily know the exact procedure - but they know the kind of procedure or where to start. For example, a general practitioner could use the code 284394000 'Examination of spine' when having a patient with back pain that needs to be examined at the hospital. It would not be expected that the general practitioner would detail a final procedure actually performed in the hospital such as 178625001 'Primary lumbar microdiscectomy'. A good example of SNOMED CT procedure codes, can be found in the international patient summary see https://build.fhir.org/ig/HL7/fhir-ips/ValueSet-procedures-uv-ips.html **OrderDetail:** The most detailed level is at ServiceRequest.orderDetail, which included additional detail or instruction concerning how the service should be delivered. This can be specific to each organization and does not nessecary have to be included when sending a ServiceRequest, but can be enriched by the performer of the service. - - From d6f4decc7361903145d8afeb9fb52212c4307500 Mon Sep 17 00:00:00 2001 From: kirstinerosenbeck Date: Mon, 7 Oct 2024 14:53:38 +0200 Subject: [PATCH 32/40] ServiceRequest example corrected, documentation for priority and reasonCode added --- input/fsh/DkCoreServiceRequest.fsh | 4 ++-- ...eDefinition-dk-core-person-servicerequest-intro.md | 11 +++++++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/input/fsh/DkCoreServiceRequest.fsh b/input/fsh/DkCoreServiceRequest.fsh index dd934bcf7..686002029 100644 --- a/input/fsh/DkCoreServiceRequest.fsh +++ b/input/fsh/DkCoreServiceRequest.fsh @@ -6,7 +6,7 @@ Description: "HL7 Denmark core profile for requesting a service, such as diagnos * subject only Reference(DkCorePatient) * requester only Reference(DkCorePractitioner or PractitionerRole or DkCoreOrganization or DkCorePatient or DkCoreRelatedPerson or Device) * performer only Reference(DkCorePractitioner or PractitionerRole or DkCoreOrganization or DkCorePatient or DkCoreRelatedPerson or HealthcareService or Device or CareTeam) -* category from DkCoreServiceRequestCodes (preferred) +* category from DkCoreServiceRequestCodes (example) * priority from DkCorePriorityCodes (required) * reasonReference only Reference(DkCoreCondition or DkCoreObservation or DiagnosticReport or DocumentReference) * reasonCode.coding ^slicing.discriminator.type = #value @@ -48,4 +48,4 @@ Usage: #example * intent = #plan * priority = http://hl7.org/fhir/request-priority#routine * subject.reference = "Patient/john" -* code.coding = $sct#658161000005107 "hjemmesygepleje" +* category = $sct#658161000005107 "hjemmesygepleje" diff --git a/input/pagecontent/StructureDefinition-dk-core-person-servicerequest-intro.md b/input/pagecontent/StructureDefinition-dk-core-person-servicerequest-intro.md index fad3a52b8..c862b217f 100644 --- a/input/pagecontent/StructureDefinition-dk-core-person-servicerequest-intro.md +++ b/input/pagecontent/StructureDefinition-dk-core-person-servicerequest-intro.md @@ -2,20 +2,23 @@ > Work in progress -The Danish Core ServiceRequest profile is intended to support cross sector requests for services within the health sector. In dk-core, the ServiceRequest resource have been constrained to only contain DkCorePatient and Group as subject of the request. This is choosen to ensure a focused and relevant ValueSet for the ServiceRequest.code. +The Danish Core ServiceRequest profile is intended to support cross sector requests for services within the health sector. In dk-core, the ServiceRequest resource have been constrained to only contain DkCorePatient and Group as subject of the request. This is choosen to ensure a focused and relevant ValueSet for the ServiceRequest.code. + +Notice that the international ValeSet for priority have been reduced to only two values i.e. 'routine' and 'asap' because only these two concepts are of widespread use in Denmark. 'routine' is the same as the danish 'elektiv'. 'asap' is the same as the danish 'akut'. + +The reasonCode has been sliced and refers to different recommended systems. These are the same as in the condition-profile. Read the documentation there, before using the reasonCode in this profile. #### Category, code and orderDetail In the ServiceRequest resource there are three levels of categorization. **Category:** -The top level is the ServiceRequest.category, which classifies the services on a high level. Category is for finding the kinds of ServiceRequests reliably, and can contain more than one code, and relate to different aspects. In Denmark, it is recommended to include one of the NSP/SOR Practice setting codes, as one of the category-codes. The codes are included in this implementation guide as an example binding. The official source of the codes is: -https://svn.medcom.dk/svn/releases/Standarder/IHE/OID/DKIHE_Metadata-Common_Code_systems-Value_sets.xlsx +The top level is the ServiceRequest.category, which classifies the services on a high level. Category is for finding the kinds of ServiceRequests reliably, and can contain more than one code, and relate to different aspects. In Denmark, it is recommended to include one of the NSP/SOR Practice setting codes, as one of the category-codes. The codes are included in this implementation guide as an example binding. The official source of the codes is [here](https://svn.medcom.dk/svn/releases/Standarder/IHE/OID/DKIHE_Metadata-Common_Code_systems-Value_sets.xlsx) Another example of the use of category, related to a different aspect, could be to categorize the ServiceRequest into `virtual` or `in-person`. **Code:** -The middle level is ServiceRequest.code, which identifies the service being requested. This is actually the most important code, and it is recommended to populate this attribute whenever possible. The service request code should semantically be a procedure-code. However, be aware that this does not nessesarily mean that it has to be populated with a very specific code. In cross-sector use cases, it is often the case that the sender-organization does not nessesarily know the exact procedure - but they know the kind of procedure or where to start. For example, a general practitioner could use the code 284394000 'Examination of spine' when having a patient with back pain that needs to be examined at the hospital. It would not be expected that the general practitioner would detail a final procedure actually performed in the hospital such as 178625001 'Primary lumbar microdiscectomy'. A good example of SNOMED CT procedure codes, can be found in the international patient summary see https://build.fhir.org/ig/HL7/fhir-ips/ValueSet-procedures-uv-ips.html +The middle level is ServiceRequest.code, which identifies the service being requested. This is actually the most important code, and it is recommended to populate this attribute whenever possible. The service request code should semantically be a procedure-code. However, be aware that this does not nessesarily mean that it has to be populated with a very specific code. In cross-sector use cases, it is often the case that the sender-organization does not nessesarily know the exact procedure - but they know the kind of procedure or where to start. For example, a general practitioner could use the code 284394000 'Examination of spine' when having a patient with back pain that needs to be examined at the hospital. It would not be expected that the general practitioner would detail a final procedure actually performed in the hospital such as 178625001 'Primary lumbar microdiscectomy'. A good example of SNOMED CT procedure codes, can be found in the international patient summary see the [IPS implementation guide](https://build.fhir.org/ig/HL7/fhir-ips/ValueSet-procedures-uv-ips.html) **OrderDetail:** The most detailed level is at ServiceRequest.orderDetail, which included additional detail or instruction concerning how the service should be delivered. This can be specific to each organization and does not nessecary have to be included when sending a ServiceRequest, but can be enriched by the performer of the service. From d1888fd6721cd553ac153ca24a79b779e406a3c7 Mon Sep 17 00:00:00 2001 From: tmsMedcom <88831880+tmsMedcom@users.noreply.github.com> Date: Thu, 17 Oct 2024 10:00:21 +0200 Subject: [PATCH 33/40] Update DkCorePatient.fsh #126 --- input/fsh/DkCorePatient.fsh | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/input/fsh/DkCorePatient.fsh b/input/fsh/DkCorePatient.fsh index a0fb35fc7..7060e0e3f 100644 --- a/input/fsh/DkCorePatient.fsh +++ b/input/fsh/DkCorePatient.fsh @@ -32,6 +32,16 @@ Description: "HL7 Denmark core profile for a patient" RegionalSubDivisionCodes named regionalSubDivisionCodes 0..1 * extension[municipalityCode] ^short = "[DA] Kommunekode" * extension[regionalSubDivisionCodes] ^short = "[DA] Regionskode" +* address ^slicing.discriminator.type = #value + * ^slicing.discriminator.path = "use" + * ^slicing.rules = #open +* address contains + official 0..1 +* address[official] ^short = "An official address" + * use 1.. + * use = #official (exactly) + * extension contains http://hl7.org/fhir/StructureDefinition/address-official named address-official 0..1 + * extension[address-official] ^short = "Indicate that this address is meant to be the 'official' address for that person. In Denmark this is the [address registered in the CPR-register](https://www.retsinformation.dk/eli/lta/2023/1010)." * maritalStatus from $dk-marital-status_1 (extensible) * generalPractitioner ^slicing.discriminator.type = #value * ^slicing.discriminator.path = "identifier.system" @@ -60,6 +70,8 @@ Usage: #example * 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.extension[+].url = "http://hl7.org/fhir/StructureDefinition/address-official" +* address.extension[=].valueBoolean = true * address.use = #home * address.type = #postal * address.line = "Nordre Ringgade 3" From 9efa3b0de95158c9f4b9290498339de684f98515 Mon Sep 17 00:00:00 2001 From: tmsMedcom <88831880+tmsMedcom@users.noreply.github.com> Date: Thu, 17 Oct 2024 13:32:37 +0200 Subject: [PATCH 34/40] Update DkCorePatient.fsh #126 --- input/fsh/DkCorePatient.fsh | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/input/fsh/DkCorePatient.fsh b/input/fsh/DkCorePatient.fsh index 7060e0e3f..e455efdee 100644 --- a/input/fsh/DkCorePatient.fsh +++ b/input/fsh/DkCorePatient.fsh @@ -38,10 +38,10 @@ Description: "HL7 Denmark core profile for a patient" * address contains official 0..1 * address[official] ^short = "An official address" - * use 1.. - * use = #official (exactly) * extension contains http://hl7.org/fhir/StructureDefinition/address-official named address-official 0..1 * extension[address-official] ^short = "Indicate that this address is meant to be the 'official' address for that person. In Denmark this is the [address registered in the CPR-register](https://www.retsinformation.dk/eli/lta/2023/1010)." + * extension[address-official].valueBoolean = true + * extension[address-official].valueCodeableConcept = #DK * maritalStatus from $dk-marital-status_1 (extensible) * generalPractitioner ^slicing.discriminator.type = #value * ^slicing.discriminator.path = "identifier.system" @@ -66,12 +66,13 @@ Usage: #example * name.given[1] = "Test" * gender = #male * birthDate = "1958-08-01" -* 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.extension[+].url = "http://hl7.org/fhir/StructureDefinition/address-official" -* address.extension[=].valueBoolean = true +* address.extension[municipalityCode].url = "http://hl7.dk/fhir/core/StructureDefinition/dk-core-municipalityCodes" +* address.extension[municipalityCode].valueCodeableConcept = $dk-core-municipality-codes#0330 +* address.extension[regionalSubDivisionCodes].url = "http://hl7.dk/fhir/core/StructureDefinition/dk-core-RegionalSubDivisionCodes" +* address.extension[regionalSubDivisionCodes].valueCodeableConcept = $dk-core-regional-subdivision-codes#DK-85 +* address.extension[address-official].url = "http://hl7.org/fhir/StructureDefinition/address-official" +* address.extension[address-official].valueBoolean = true +* address.extension[address-official].valueCodeableConcept = urn:iso:std:iso:3166#DK * address.use = #home * address.type = #postal * address.line = "Nordre Ringgade 3" From 652337afa9323c376f2da862be2e7656d0245666 Mon Sep 17 00:00:00 2001 From: tmsMedcom <88831880+tmsMedcom@users.noreply.github.com> Date: Thu, 17 Oct 2024 13:33:10 +0200 Subject: [PATCH 35/40] Updated ServiceRequest ValueSet --- input/fsh/valueSets.fsh | 224 +++++++++++++----- ...ion-dk-core-person-servicerequest-intro.md | 2 +- 2 files changed, 169 insertions(+), 57 deletions(-) diff --git a/input/fsh/valueSets.fsh b/input/fsh/valueSets.fsh index bbe51e31d..ebd2cc99d 100644 --- a/input/fsh/valueSets.fsh +++ b/input/fsh/valueSets.fsh @@ -571,64 +571,176 @@ Description: "DK Related Person Relationship Types" ValueSet: DkCoreServiceRequestCodes Id: dk-core-servicerequest-codes Title: "DK codes for ServiceRequest" -Description: "DK Codes for Danish healthcare services" +Description: "Value set used to describe Danish healthcare services" * ^experimental = false * ^status = #active -* $sct#773568002 "akutmedicin" -* $sct#408443003 "almen medicin" -* $sct#394577000 "anæstesiologi" -* $sct#394821009 "arbejdsmedicin" -* $sct#394588006 "børne- og ungdomspsykiatri" -* $sct#394582007 "dermato-venerologi" -* $sct#394914008 "diagnostisk radiologi" -* $sct#394583002 "endokrinologi" -* $sct#394811001 "geriatri" -* $sct#394585009 "gynækologi og obstetrik" -* $sct#408472002 "hepatologi" -* $sct#394803006 "hæmatologi" -* $sct#394807007 "infektionsmedicin" -* $sct#419192003 "intern medicin" -* $sct#394579002 "kardiologi" -* $sct#408463005 "karkirurgi" -* $sct#394609007 "kirurgi" -* $sct#551411000005104 "kirurgisk gastroenterologi" -* $sct#394596001 "klinisk biokemi" -* $sct#394600006 "klinisk farmakologi" -* $sct#394601005 "klinisk fysiologi og nuklearmedicin (snomed: klinisk fysiologi)" -* $sct#394580004 "klinisk genetik" -* $sct#421661004 "klinisk immunologi" -* $sct#408454008 "klinisk mikrobiologi" -* $sct#394809005 "klinisk neurofysiologi" -* $sct#394592004 "klinisk onkologi" -* $sct#418112009 "lungesygdomme" -* $sct#394805004 "medicinsk allergologi" -* $sct#394584008 "medicinsk gastroenterologi" -* $sct#394589003 "nefrologi" -* $sct#394610002 "neurokirurgi" -* $sct#394591006 "neurologi" -* $sct#394812008 "odontologi (snomed: odontologiske specialer)" -* $sct#394594003 "oftalmologi" -* $sct#394608004 "ortodonti" -* $sct#394801008 "ortopædisk kirurgi" -* $sct#394604002 "oto-rhino-laryngologi" -* $sct#394915009 "patologisk anatomi og cytologi" -* $sct#394611003 "plastikkirurgi" -* $sct#394587001 "psykiatri" -* $sct#394537008 "pædiatri" -* $sct#394810000 "reumatologi" -* $sct#394581000 "samfundsmedicin" -* $sct#394605001 "tand-, mund- og kæbekirurgi" -* $sct#394603008 "thoraxkirurgi" -* $sct#408448007 "tropemedicin" -* $sct#394612005 "urologi" -* $sct#658171000005102 "hjemmepleje" -* $sct#658161000005107 "hjemmesygepleje" -* $sct#658151000005105 "sundhedsfremme og forebyggelse" -* $sct#658191000005101 "sundhedspleje" -* $sct#658201000005103 "kommunal tandpleje" -* $sct#658141000005108 "genoptræning efter hospitalsophold" -* $sct#658181000005104 "hjælpemiddelområdet" -* $sct#2903041000005106 "det kommunale omsorgs-, social- og sundhedsområde" +* ^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/version/20240331" +* ^compose.include[=].concept[0].code = #773568002 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "akutmedicin" +* ^compose.include[=].concept[+].code = #408443003 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "almen medicin" +* ^compose.include[=].concept[+].code = #394577000 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "anæstesiologi" +* ^compose.include[=].concept[+].code = #394821009 +* ^compose.include[=].concept[=].designation.value = "arbejdsmedicin" +* ^compose.include[=].concept[+].code = #394588006 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "børne- og ungdomspsykiatri" +* ^compose.include[=].concept[+].code = #394582007 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "dermato-venerologi" +* ^compose.include[=].concept[+].code = #394914008 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "diagnostisk radiologi" +* ^compose.include[=].concept[+].code = #394583002 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "endokrinologi" +* ^compose.include[=].concept[+].code = #394811001 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "geriatri" +* ^compose.include[=].concept[+].code = #394585009 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "gynækologi og obstetrik" +* ^compose.include[=].concept[+].code = #408472002 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "hepatologi" +* ^compose.include[=].concept[+].code = #394803006 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "hæmatologi" +* ^compose.include[=].concept[+].code = #394807007 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "infektionsmedicin" +* ^compose.include[=].concept[+].code = #419192003 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "intern medicin" +* ^compose.include[=].concept[+].code = #394579002 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "kardiologi" +* ^compose.include[=].concept[+].code = #408463005 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "karkirurgi" +* ^compose.include[=].concept[+].code = #394609007 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "kirurgi" +* ^compose.include[=].concept[+].code = #551411000005104 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "kirurgisk gastroenterologi" +* ^compose.include[=].concept[+].code = #394596001 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "klinisk biokemi" +* ^compose.include[=].concept[+].code = #394600006 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "klinisk farmakologi" +* ^compose.include[=].concept[+].code = #394601005 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "klinisk fysiologi og nuklearmedicin (snomed: klinisk fysiologi)" +* ^compose.include[=].concept[+].code = #394580004 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "klinisk genetik" +* ^compose.include[=].concept[+].code = #421661004 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "klinisk immunologi" +* ^compose.include[=].concept[+].code = #408454008 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "klinisk mikrobiologi" +* ^compose.include[=].concept[+].code = #394809005 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "klinisk neurofysiologi" +* ^compose.include[=].concept[+].code = #394592004 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "klinisk onkologi" +* ^compose.include[=].concept[+].code = #418112009 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "lungesygdomme" +* ^compose.include[=].concept[+].code = #394805004 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "medicinsk allergologi" +* ^compose.include[=].concept[+].code = #394584008 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "medicinsk gastroenterologi" +* ^compose.include[=].concept[+].code = #394589003 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "nefrologi" +* ^compose.include[=].concept[+].code = #394610002 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "neurokirurgi" +* ^compose.include[=].concept[+].code = #394591006 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "neurologi" +* ^compose.include[=].concept[+].code = #394812008 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "odontologi (snomed: odontologiske specialer)" +* ^compose.include[=].concept[+].code = #394594003 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "oftalmologi" +* ^compose.include[=].concept[+].code = #394608004 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "ortodonti" +* ^compose.include[=].concept[+].code = #394801008 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "ortopædisk kirurgi" +* ^compose.include[=].concept[+].code = #394604002 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "oto-rhino-laryngologi" +* ^compose.include[=].concept[+].code = #394915009 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "patologisk anatomi og cytologi" +* ^compose.include[=].concept[+].code = #394611003 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "plastikkirurgi" +* ^compose.include[=].concept[+].code = #394587001 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "psykiatri" +* ^compose.include[=].concept[+].code = #394537008 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "pædiatri" +* ^compose.include[=].concept[+].code = #394810000 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "reumatologi" +* ^compose.include[=].concept[+].code = #394581000 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "samfundsmedicin" +* ^compose.include[=].concept[+].code = #394605001 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "tand-, mund- og kæbekirurgi" +* ^compose.include[=].concept[+].code = #394603008 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "thoraxkirurgi" +* ^compose.include[=].concept[+].code = #408448007 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "tropemedicin" +* ^compose.include[=].concept[+].code = #394612005 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "urologi" +* ^compose.include[=].concept[+].code = #658171000005102 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "hjemmepleje" +* ^compose.include[=].concept[+].code = #658161000005107 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "hjemmesygepleje" +* ^compose.include[=].concept[+].code = #658151000005105 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "sundhedsfremme og forebyggelse" +* ^compose.include[=].concept[+].code = #658191000005101 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "sundhedspleje" +* ^compose.include[=].concept[+].code = #658201000005103 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "kommunal tandpleje" +* ^compose.include[=].concept[+].code = #658141000005108 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "genoptræning efter hospitalsophold" +* ^compose.include[=].concept[+].code = #658181000005104 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "hjælpemiddelområdet" +* ^compose.include[=].concept[+].code = #2903041000005106 +* ^compose.include[=].concept[=].designation.language = #da +* ^compose.include[=].concept[=].designation.value = "det kommunale omsorgs-, social- og sundhedsområde" ValueSet: DkCorePriorityCodes Id: dk-core-priority-codes diff --git a/input/pagecontent/StructureDefinition-dk-core-person-servicerequest-intro.md b/input/pagecontent/StructureDefinition-dk-core-person-servicerequest-intro.md index c862b217f..f383fb1ee 100644 --- a/input/pagecontent/StructureDefinition-dk-core-person-servicerequest-intro.md +++ b/input/pagecontent/StructureDefinition-dk-core-person-servicerequest-intro.md @@ -13,7 +13,7 @@ The reasonCode has been sliced and refers to different recommended systems. Thes In the ServiceRequest resource there are three levels of categorization. **Category:** -The top level is the ServiceRequest.category, which classifies the services on a high level. Category is for finding the kinds of ServiceRequests reliably, and can contain more than one code, and relate to different aspects. In Denmark, it is recommended to include one of the NSP/SOR Practice setting codes, as one of the category-codes. The codes are included in this implementation guide as an example binding. The official source of the codes is [here](https://svn.medcom.dk/svn/releases/Standarder/IHE/OID/DKIHE_Metadata-Common_Code_systems-Value_sets.xlsx) +The top level is the ServiceRequest.category, which classifies the services on a high level. Category is for finding the kinds of ServiceRequests reliably, and can contain more than one code, and relate to different aspects. In Denmark, it is recommended to include one of the NSP/SOR Practice setting codes, as one of the category-codes. The codes are included in this implementation guide as an example binding. The official source of the codes is [here](https://svn.medcom.dk/svn/releases/Standarder/IHE/OID/DK-IHE_Metadata-Common_Code_systems-Value_sets.xlsx). Another example of the use of category, related to a different aspect, could be to categorize the ServiceRequest into `virtual` or `in-person`. From c8cf222377aa73a0b4debbf3e731cabe72f55447 Mon Sep 17 00:00:00 2001 From: Christian Gasser Date: Tue, 8 Oct 2024 17:18:45 +0200 Subject: [PATCH 36/40] Updated scope and usage section according to https://github.com/hl7dk/dk-core/issues/136 --- .../StructureDefinition-dk-core-related-person-intro.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/input/pagecontent/StructureDefinition-dk-core-related-person-intro.md b/input/pagecontent/StructureDefinition-dk-core-related-person-intro.md index 0278bc194..68c66b99d 100644 --- a/input/pagecontent/StructureDefinition-dk-core-related-person-intro.md +++ b/input/pagecontent/StructureDefinition-dk-core-related-person-intro.md @@ -1,7 +1,9 @@ ### Scope and usage The Danish Core Related Person profile is intended to encapsulate the most common and basic data model of persons related to patients/persons 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 related persons to those that receive health and social care in municipalities, even in contexts where receivers of care are more commonly known as citizens ([DA] borgere). -Note also, that the intended use of Related Person is to describe a relationship in itself and that privileges which might be associated to a relationship (e.g. power of attorney) should be expressed by other means. +Note, that professional relationships between a patient and a healthcare professional are expressed by other means e.g. through `Patient.generalPractitioner`. + +Note also, that the intended use of Related Person is to describe a relationship, where privileges which might be associated to the relationship should be expressed by other means, e.g.the actual rights associated with being power of attorney, should be described in a legally binding document, and that document can be represented with the Consent resource. ### Identifiers for related persons This related person profile currently reflects the use of the established national Danish citizen identifiers called [CPR](https://cpr.dk/) and (where relevant) the use of replacement CPR numbers ([DA] Erstatnings-CPR-numre eller eCPR). From 685688397673854ca1107fc92f5014569e4a75d8 Mon Sep 17 00:00:00 2001 From: Christian Gasser Date: Tue, 8 Oct 2024 17:26:00 +0200 Subject: [PATCH 37/40] Updated scope and usage section according to https://github.com/hl7dk/dk-core/issues/135 --- .../StructureDefinition-dk-core-related-person-intro.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/input/pagecontent/StructureDefinition-dk-core-related-person-intro.md b/input/pagecontent/StructureDefinition-dk-core-related-person-intro.md index 68c66b99d..52299c0dc 100644 --- a/input/pagecontent/StructureDefinition-dk-core-related-person-intro.md +++ b/input/pagecontent/StructureDefinition-dk-core-related-person-intro.md @@ -5,6 +5,8 @@ Note, that professional relationships between a patient and a healthcare profess Note also, that the intended use of Related Person is to describe a relationship, where privileges which might be associated to the relationship should be expressed by other means, e.g.the actual rights associated with being power of attorney, should be described in a legally binding document, and that document can be represented with the Consent resource. +Note furthermore, that a patients primary contact when possible should be expressed through `Patient.contact`. However, when this is not feasible Related Person may be used. + ### Identifiers for related persons This related person profile currently reflects the use of the established national Danish citizen identifiers called [CPR](https://cpr.dk/) and (where relevant) the use of replacement CPR numbers ([DA] Erstatnings-CPR-numre eller eCPR). From 3ed5a6189c45b5850871f72c64c6557f95b9b8d7 Mon Sep 17 00:00:00 2001 From: kirstinerosenbeck Date: Tue, 8 Oct 2024 17:57:38 +0200 Subject: [PATCH 38/40] added to relationship value set and code system supplement to account for #135 and #134 --- input/fsh/codeSystems.fsh | 7 +++++++ input/fsh/valueSets.fsh | 1 + .../StructureDefinition-dk-core-related-person-intro.md | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/input/fsh/codeSystems.fsh b/input/fsh/codeSystems.fsh index 786c422b5..9ebfb5c64 100644 --- a/input/fsh/codeSystems.fsh +++ b/input/fsh/codeSystems.fsh @@ -779,6 +779,9 @@ Title: "DK Role Code" * #POWATT * ^designation.language = #da * ^designation.value = "Fuldmagtshaver" +* #ECON + * ^designation.language = #da + * ^designation.value = "Primær kontakt" CodeSystem: DkRelatedPersonRelationshipCodes Id: dk-relatedperson-relationshipcodes @@ -798,3 +801,7 @@ Description: "DK Related Person Relationship Codes" * ^definition = "The player of the role is the primary caretaker of the scoping person." * ^designation.language = #da * ^designation.value = "Primær omsorgsperson" +* #PROCON "Professional contact" + * ^definition = "A professional acting as a contact of the scoping person." + * ^designation.language = #da + * ^designation.value = "Professionel kontakt" \ No newline at end of file diff --git a/input/fsh/valueSets.fsh b/input/fsh/valueSets.fsh index ebd2cc99d..f50e20092 100644 --- a/input/fsh/valueSets.fsh +++ b/input/fsh/valueSets.fsh @@ -281,6 +281,7 @@ Description: "DK Related Person Relationship Types" * $v3-RoleCode#GUARD // "guardian" * $v3-RoleCode#NOK // "next of kin" * $v3-RoleCode#POWATT // "power of attorney" +* $v3-RoleCode#ECON // "emergency contact" * include codes from system DkRelatedPersonRelationshipCodes // ValueSet: DkCoreProfessionGroupValueSet diff --git a/input/pagecontent/StructureDefinition-dk-core-related-person-intro.md b/input/pagecontent/StructureDefinition-dk-core-related-person-intro.md index 52299c0dc..a5b73b699 100644 --- a/input/pagecontent/StructureDefinition-dk-core-related-person-intro.md +++ b/input/pagecontent/StructureDefinition-dk-core-related-person-intro.md @@ -21,7 +21,7 @@ The element RelatedPerson.identifier includes two slices to represent eCPR. Each * For D-eCPR, the [DkCoreDeCprIdentifier](./StructureDefinition-dk-core-d-ecpr-identifier.html) must be used, which includes a ValueSet of OID's that may be used as system. The OIDs represent the D-eCPR in general and D-eCPR for each of the five regions. Further, the identifier includes an invariant describing the requirements for the structure of the identifier, [based on guidelines from Danish Health Data Authority](https://www.nspop.dk/pages/viewpage.action?pageId=226757583#eCPRFormater(XeCPRogDeCPR)-Formatetfordecentraleerstatningspersonnumre-D-eCPR). ### Relationship codes -The relationships in [DK Core Related Person Relationship Types](ValueSet-dk-core-RelatedPersonRelationshipTypes.html) are intended to cover the most common use cases within the Danish healthcare sector. For the relationship codes that are included from the general relationship codes [danish translations](CodeSystem-role-code-dk-supplement.html) are provided. In cases when other relationships need to be expressed, codes from the general [Related Person Relationship Type](http://hl7.org/fhir/R4/valueset-relatedperson-relationshiptype.html) should be used when possible. +The relationships in [DK Core Related Person Relationship Types](ValueSet-dk-core-RelatedPersonRelationshipTypes.html) are intended to cover the most common use cases within the Danish healthcare sector. For the relationship codes that are included from the general relationship codes [danish translations](CodeSystem-role-code-dk-supplement.html) are provided. In cases when other relationships need to be expressed, codes from the general [Related Person Relationship Type](http://hl7.org/fhir/R4/valueset-relatedperson-relationshiptype.html) or [HL7 Role Code System](http://terminology.hl7.org/CodeSystem/v3-RoleCode) should be used when possible. In the latter system is e.g. the code 'CCO', which is a clinical companion (DA: Servicehund). ### Use of security label on related persons 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: From 72cf3ef267598873091dd21c8db17514ae2bedba Mon Sep 17 00:00:00 2001 From: tmsMedcom <88831880+tmsMedcom@users.noreply.github.com> Date: Fri, 18 Oct 2024 08:05:33 +0200 Subject: [PATCH 39/40] Update DkCorePatient.fsh #126 --- input/fsh/DkCorePatient.fsh | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/input/fsh/DkCorePatient.fsh b/input/fsh/DkCorePatient.fsh index 02fe9c5db..4793a2a73 100644 --- a/input/fsh/DkCorePatient.fsh +++ b/input/fsh/DkCorePatient.fsh @@ -29,19 +29,11 @@ Description: "HL7 Denmark core profile for a patient" * 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 + RegionalSubDivisionCodes named regionalSubDivisionCodes 0..1 and + http://hl7.org/fhir/StructureDefinition/address-official named address-official 0..1 * extension[municipalityCode] ^short = "[DA] Kommunekode" * extension[regionalSubDivisionCodes] ^short = "[DA] Regionskode" -* address ^slicing.discriminator.type = #value - * ^slicing.discriminator.path = "use" - * ^slicing.rules = #open -* address contains - official 0..1 -* address[official] ^short = "An official address" - * extension contains http://hl7.org/fhir/StructureDefinition/address-official named address-official 0..1 - * extension[address-official] ^short = "Indicate that this address is meant to be the 'official' address for that person. In Denmark this is the [address registered in the CPR-register](https://www.retsinformation.dk/eli/lta/2023/1010)." - * extension[address-official].valueBoolean = true - * extension[address-official].valueCodeableConcept = #DK + * extension[address-official] ^short = "Indicate that this address is meant to be the 'official' address for that person. This can be indicated by setting the boolean to 'true' or adding a code for the country, e.g. 'DK'. In Denmark the official is the address registered in the CPR-register, see: https://www.retsinformation.dk/eli/lta/2023/1010." * maritalStatus from $dk-marital-status_1 (extensible) * generalPractitioner ^slicing.discriminator.type = #value * ^slicing.discriminator.path = "identifier.system" @@ -73,7 +65,6 @@ Usage: #example * address.extension[regionalSubDivisionCodes].url = "http://hl7.dk/fhir/core/StructureDefinition/dk-core-RegionalSubDivisionCodes" * address.extension[regionalSubDivisionCodes].valueCodeableConcept = $dk-core-regional-subdivision-codes#DK-85 * address.extension[address-official].url = "http://hl7.org/fhir/StructureDefinition/address-official" -* address.extension[address-official].valueBoolean = true * address.extension[address-official].valueCodeableConcept = urn:iso:std:iso:3166#DK * address.use = #home * address.type = #postal From 7cd066254e42b30b3b764077d2b8bdd675712054 Mon Sep 17 00:00:00 2001 From: Jens Kristian Villadsen Date: Sun, 27 Oct 2024 13:29:23 +0100 Subject: [PATCH 40/40] Fixed NPU error codes --- input/fsh/codeSystems.fsh | 57 +++++++++++++++++++++++++++++++++++++++ publication-request.json | 6 ++--- release-notes.md | 1 + 3 files changed, 61 insertions(+), 3 deletions(-) diff --git a/input/fsh/codeSystems.fsh b/input/fsh/codeSystems.fsh index 2113aefaa..5ea3c4a8a 100644 --- a/input/fsh/codeSystems.fsh +++ b/input/fsh/codeSystems.fsh @@ -818,23 +818,80 @@ Description: "DK NPU Subsetted code system used in DK Core. The full version of * ^caseSensitive = false * ^version = "EN211028" * ^copyright = "The International Union of Pure and Applied Chemistry (IUPAC) and the International Federation of Clinical Chemistry and laboratory medicine (IFCC)" + * ^property[0].uri = "http://hl7.org/fhir/concept-properties#comment" * ^property[=].type = #string * ^property[=].description = "A string that provides additional detail pertinent to the use or understanding of the concept" * ^property[=].code = #comment + * ^property[+].uri = "http://hl7.org/fhir/concept-properties#effectiveDate" * ^property[=].type = #dateTime * ^property[=].description = "The date at which the concept status was last changed" * ^property[=].code = #effectiveDate + * ^property[+].uri = "http://hl7.org/fhir/concept-properties#status" * ^property[=].type = #code * ^property[=].description = "A code that indicates the status of the concept. Typical values are active, experimental, deprecated, and retired" * ^property[=].code = #status + * ^property[+].uri = "http://hl7.org/fhir/concept-properties#inactive" * ^property[=].type = #boolean * ^property[=].description = "True if the concept is not considered active - e.g. not a valid concept any more. Property type is boolean, default value is false. Note that the status property may also be used to indicate that a concept is inactive" * ^property[=].code = #inactive +* ^property[+].uri = "https://iupac.org/fhir/npu/concept-properties#ChangeDate" +* ^property[=].type = #dateTime +* ^property[=].code = #ChangeDate + +* ^property[+].uri = "https://iupac.org/fhir/npu/concept-properties#CreatedDate" +* ^property[=].type = #dateTime +* ^property[=].code = #CreatedDate + +* ^property[+].uri = "https://iupac.org/fhir/npu/concept-properties#System" +* ^property[=].type = #string +* ^property[=].code = #System + +* ^property[+].uri = "https://iupac.org/fhir/npu/concept-properties#SysSpec" +* ^property[=].type = #string +* ^property[=].code = #SysSpec + +* ^property[+].uri = "https://iupac.org/fhir/npu/concept-properties#Component" +* ^property[=].type = #string +* ^property[=].code = #Component + +* ^property[+].uri = "https://iupac.org/fhir/npu/concept-properties#CompSpec" +* ^property[=].type = #string +* ^property[=].code = #CompSpec + +* ^property[+].uri = "https://iupac.org/fhir/npu/concept-properties#Kind-of-property" +* ^property[=].type = #string +* ^property[=].code = #Kind-of-property + +* ^property[+].uri = "https://iupac.org/fhir/npu/concept-properties#Speciality" +* ^property[=].type = #string +* ^property[=].code = #Speciality + +* ^property[+].uri = "https://iupac.org/fhir/npu/concept-properties#Code-value" +* ^property[=].type = #string +* ^property[=].code = #"Code value" + +* ^property[+].uri = "https://iupac.org/fhir/npu/concept-properties#Scale-type" +* ^property[=].type = #string +* ^property[=].code = #"Scale type" + +* ^property[+].uri = "https://iupac.org/fhir/npu/concept-properties#Proc" +* ^property[=].type = #string +* ^property[=].code = #Proc + +* ^property[+].uri = "https://iupac.org/fhir/npu/concept-properties#Unit" +* ^property[=].type = #string +* ^property[=].code = #"Unit" + +* ^property[+].uri = "https://iupac.org/fhir/npu/concept-properties#STATUS" +* ^property[=].type = #string +* ^property[=].code = #STATUS + + * #NPU03011 "Hb(Fe; O\u2082-bind.; aB)\u2014Oxygen(O\u2082); sat. = ?" * ^designation.language = #da * ^designation.value = "Hb(Fe; O\u2082-bind.;aB)\u2014Oxygen(O\u2082); mætn. = ?" diff --git a/publication-request.json b/publication-request.json index aa58a5fcf..b165f10df 100644 --- a/publication-request.json +++ b/publication-request.json @@ -1,14 +1,14 @@ { "package-id": "hl7.fhir.dk.core", - "version": "3.2.0", - "path": "http://hl7.dk/fhir/core/3.2.0", + "version": "3.3.0", + "path": "http://hl7.dk/fhir/core/3.3.0", "status": "release", "sequence": "Release", "mode" : "milestone", "title": "HL7 FHIR Implementation Guide: DK Core", "category": "National Core", "introduction": "A FHIR Implementation Guide for the Danish common needs across healthcare sectors", - "desc": "DK Core version 3.2.0", + "desc": "DK Core version 3.3.0", "descmd": "@release-notes.md", "first": false, "ci-build": "https://build.fhir.org/ig/hl7dk/dk-core" diff --git a/release-notes.md b/release-notes.md index 3639b55dc..ccb100c94 100644 --- a/release-notes.md +++ b/release-notes.md @@ -3,3 +3,4 @@ Dk-core version 3.3.0 has been approved by HL7 Denmark. The changes between 3.2.0 and 3.3.0 are: * Minor linguistic adjustments * Introduced the use of IPA profiles as base profiles where it makes sense. +* Refined NPU Fragment Code System \ No newline at end of file