Skip to content

Commit 8fa8979

Browse files
tmsMedcomjkiddojacandKirstinerosenbeck
authored
V.3.1.0 rc1 (#112)
* Prepared for 2.3.0 * fixed template * Initial commit of DkCoreBasicParameter #86 * Updated DkCoreBasicParameter and included ValueSets * Updated the IEEEBasicParameter ValueSet: Removed supplemental codes and added descriptions. * Fixed errors and warnings related to observations * BasicParameter examples * Added use of DAR * Update DkCoreObservation.fsh #93 and #88 are handled * Updated naming and added examples * Updated Observation.coding.system #94 and #85 * loinc, and snomed ct codes in basic observation corrected * Condition-instance with SKS Tillægskode added #100 * fixing DkCoreCondition - handling of unconfirmed conditions #98 * Updated Patient instances, version number, removed LPR3 #103, #102 and #101 are handled * Update DkCoreObservation.fsh #94 * Updated observation values and description of profile * Update StructureDefinition-dk-core-observation-intro.md #95 and #96 are handled * adding vital signs panel * Link to Vital signs panel added * Added DAR documentation * Addition of eCPR-identifiers and Patient.identifier slice * Added description of eCPR and update of instances * Update DkCoreeCprIdentifier.fsh * Solved warnings associated with extension, that could be used anywhere * Updated after FHIR SIG review * Fixed QA-errors, updated template Invariant on Observation and ^constraint.requirement = "link" * Updated Conscious-examples and link * Technical FHIRPath correction value. and Observation. * Updated Observation-instances due to publisher update * Updated Observation-instances to accommodate update of publisher * Added note about consequences of new FHIR validator * Corrected misspelling in TechniquesSCTCodes * Updated link to eCPR, added link to hl7.dk and release-note * Update sushi-config.yaml * Update StructureDefinition-dk-core-observation-intro.md --------- Co-authored-by: Jens Kristian Villadsen <[email protected]> Co-authored-by: Jacob Andersen <[email protected]> Co-authored-by: kirstinerosenbeck <[email protected]>
1 parent 9711778 commit 8fa8979

20 files changed

+757
-133
lines changed

ig.ini

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
[IG]
22
ig = fsh-generated/resources/ImplementationGuide-hl7.fhir.dk.core.json
33
template = https://github.com/hl7dk/dk-ig-template
4-
;template = fhir.base.template#current

input/fsh/DkCoreBasicParameter.fsh

+328
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,328 @@
1+
Profile: DkCoreBasicObservation
2+
Parent: dk-core-observation
3+
Id: dk-core-basic-observation
4+
Title: "Danish Core Basic Observation Profile"
5+
Description: "HL7 Denmark core profile for basic observations, which is a profiling of DkCoreObservation."
6+
* category 1..1
7+
* category = $observation-category#vital-signs
8+
* code.coding[LOINC] 1..
9+
* code.coding[LOINC] from LoincBasicObservation (extensible)
10+
* code.coding[SNOMEDCT] from SCTBasicObservation (extensible)
11+
* code.coding[NPU] from NPUBasicObservation (extensible)
12+
* code.coding[IEEE] from IEEEBasicObservation (extensible)
13+
* valueQuantity.system from UCUMBasicUnits (extensible)
14+
* component.valueQuantity.system from UCUMBasicUnits (extensible)
15+
16+
17+
18+
Instance: ObservationRespiratoryBasicObservation
19+
InstanceOf: DkCoreBasicObservation
20+
Title: "John's Respiratory rate measurement (Basic observation)"
21+
Description: "A simple basic observation of a hyperventilating patient"
22+
Usage: #example
23+
* category = $observation-category#vital-signs
24+
* status = #final
25+
* code.coding[LOINC] = $LOINC#9279-1 "Respiratory rate"
26+
* valueQuantity.value = 50
27+
* valueQuantity.code = #/min
28+
* valueQuantity.system = $ucum
29+
* valueQuantity.unit = "/min"
30+
* effectiveDateTime = 2023-11-20T18:00:00+01:00
31+
* subject = Reference(john)
32+
* performer = Reference(AbrahamLaege)
33+
34+
Instance: ObservationOxySatBasicObservationOrg
35+
InstanceOf: DkCoreBasicObservation
36+
Title: "John's oxygen saturation measurement (Basic observation)"
37+
Usage: #example
38+
* category = $observation-category#vital-signs
39+
* status = #final
40+
* code.coding[LOINC] = $LOINC#2708-6 "Oxygen saturation in Arterial blood"
41+
* code.coding[IEEE] = $IEEEx73#150456 "MDC_PULS_OXIM_SAT_O2"
42+
* valueQuantity.value = 97.0
43+
* valueQuantity.code = #%
44+
* valueQuantity.system = $ucum
45+
* valueQuantity.unit = "%"
46+
* effectiveDateTime = 2023-11-01T12:00:00+01:00
47+
* subject = Reference(john)
48+
* performer = Reference(AbrahamLaege)
49+
50+
Instance: ObservationOxySatObservation
51+
InstanceOf: DkCoreObservation
52+
Title: "John's oxygen saturation measurement (Observation)"
53+
Description: """
54+
This example suggests a way to handle the oxygen saturation case, where the original measurement
55+
was reported in '%' by a device or typed in manually, and then 'translated' to the NPU system,
56+
which requires the value to be unitless.
57+
"""
58+
Usage: #example
59+
* category = $observation-category#vital-signs
60+
* status = #final
61+
* code.coding[NPU] = $NPU#NPU27280 "Hb(Fe; O₂-bind.;aB)—Oxygen(O₂); sat.(Pulse oximetry) = ?"
62+
* valueQuantity.value = 0.97
63+
* valueQuantity.code = #1
64+
* valueQuantity.system = $ucum
65+
* subject = Reference(john)
66+
* performer = Reference(AbrahamLaege)
67+
* effectiveDateTime = 2023-11-01T12:00:00+01:00
68+
* contained[0] = ObservationOxySatBasicObservationOrg
69+
* derivedFrom = Reference(ObservationOxySatBasicObservationOrg)
70+
71+
72+
/* **************
73+
*
74+
* TOBS example
75+
*
76+
* ************** */
77+
78+
Instance: ElseConsciousness
79+
InstanceOf: DkCoreObservation
80+
Usage: #example
81+
* status = #final
82+
* code = $sct#6942003
83+
* subject = Reference(else)
84+
* valueCodeableConcept.coding[+] = $sct#450847001
85+
* method = $sct#733985002 "Reported (qualifier value)"
86+
* effectiveDateTime = "2023-09-12T17:45:00.000Z"
87+
* performer = Reference(SidselSygeplejerske)
88+
89+
Instance: ElseBloodPressure
90+
InstanceOf: DkCoreBasicObservation
91+
Usage: #example
92+
* status = #final
93+
* category = $observation-category#vital-signs
94+
* code.coding[SNOMEDCT] = $sct#75367002
95+
* code.coding[LOINC] = $LOINC#85354-9
96+
* subject = Reference(else)
97+
* component[0].code.coding[LOINC] = $LOINC#8480-6
98+
* component[=].code.coding[SNOMEDCT] = $sct#407554009
99+
* component[=].valueQuantity = 147 'mm[Hg]' "mmHg"
100+
* component[+].code.coding[LOINC] = $LOINC#8462-4
101+
* component[=].code.coding[SNOMEDCT] = $sct#407555005
102+
* component[=].valueQuantity = 95 'mm[Hg]' "mmHg"
103+
* method = $sct#272391002 "Measurement technique (qualifier value)"
104+
* effectiveDateTime = "2023-09-12T17:45:00.000Z"
105+
* performer = Reference(SidselSygeplejerske)
106+
107+
108+
Instance: ElseBodyTemperature
109+
InstanceOf: DkCoreBasicObservation
110+
Usage: #example
111+
* status = #final
112+
* category = $observation-category#vital-signs
113+
* code.coding[SNOMEDCT] = $sct#276885007
114+
* code.coding[LOINC] = $LOINC#8310-5
115+
* subject = Reference(else)
116+
* method = $sct#272391002 "Measurement technique (qualifier value)"
117+
* effectiveDateTime = "2023-09-12T17:45:00.000Z"
118+
* valueQuantity = 38.7 'Cel' "grader celcius"
119+
* performer = Reference(SidselSygeplejerske)
120+
121+
Instance: ElseHeartRate
122+
InstanceOf: DkCoreBasicObservation
123+
Usage: #example
124+
* status = #final
125+
* category = $observation-category#vital-signs
126+
* code.coding[SNOMEDCT] = $sct#364075005
127+
* code.coding[LOINC] = $LOINC#8867-4
128+
* subject = Reference(else)
129+
* method = $sct#272391002 "Measurement technique (qualifier value)"
130+
* effectiveDateTime = "2023-09-12T17:45:00.000Z"
131+
* valueQuantity = 92 '/min' "slag/minut"
132+
* performer = Reference(SidselSygeplejerske)
133+
134+
Instance: ElseRespirationRate
135+
InstanceOf: DkCoreBasicObservation
136+
Usage: #example
137+
* status = #final
138+
* category = $observation-category#vital-signs
139+
* code.coding[SNOMEDCT] = $sct#86290005
140+
* code.coding[LOINC] = $LOINC#9279-1
141+
* subject = Reference(else)
142+
* method = $sct#272391002 "Measurement technique (qualifier value)"
143+
* effectiveDateTime = "2023-09-12T17:45:00.000Z"
144+
* valueQuantity = 19 '/min' "/min"
145+
* performer = Reference(SidselSygeplejerske)
146+
147+
Instance: ElsesTOBSscore
148+
InstanceOf: DkCoreObservation
149+
Usage: #example
150+
* status = #final
151+
* code.coding = $Medcom#MCS88125 "Pt—Tidlig Opsporing af Begyndende Sygdom (TOBS) score; antal (værdi 0-15) = ?"
152+
* subject = Reference(else)
153+
* effectiveDateTime = "2023-09-12T17:45:00.000Z"
154+
* valueQuantity.value = 3
155+
* valueQuantity.code = #1
156+
* valueQuantity.system = $ucum
157+
* performer = Reference(SidselSygeplejerske)
158+
159+
160+
Instance: ElsesTOBS
161+
InstanceOf: Bundle
162+
Title: "Else's TOBS measurements"
163+
Description: "An example of TOBS (Danish: Tidlig opsporing af begyndende sygdom), which includes level of consciousness, heart rate, respiration rate, blood pressure and temperature."
164+
Usage: #example
165+
* type = #collection
166+
* timestamp = "2023-09-12T17:45:00.000Z"
167+
* entry[+].fullUrl = "Patient/else"
168+
* entry[=].resource = else
169+
* entry[+].fullUrl = "Observation/ElseConsciousness"
170+
* entry[=].resource = ElseConsciousness
171+
* entry[+].fullUrl = "Observation/ElseBloodPressure"
172+
* entry[=].resource = ElseBloodPressure
173+
* entry[+].fullUrl = "Observation/ElseBodyTemperature"
174+
* entry[=].resource = ElseBodyTemperature
175+
* entry[+].fullUrl = "Observation/ElseHeartRate"
176+
* entry[=].resource = ElseHeartRate
177+
* entry[+].fullUrl = "Observation/ElseRespirationRate"
178+
* entry[=].resource = ElseRespirationRate
179+
* entry[+].fullUrl = "Observation/ElsesTOBSscore"
180+
* entry[=].resource = ElsesTOBSscore
181+
* entry[+].fullUrl = "Practitioner/SidselSygeplejerske"
182+
* entry[=].resource = SidselSygeplejerske
183+
184+
/* **************
185+
*
186+
* TOKS eksempel inkl. GCS
187+
*
188+
* ************** */
189+
190+
Instance: MaxConsciousness
191+
InstanceOf: DkCoreObservation
192+
Usage: #example
193+
* status = #final
194+
* category = $observation-category#vital-signs
195+
* code.coding[0] = $sct#6942003
196+
* code.coding[LOINC] = $LOINC#80288-4
197+
* subject = Reference(Max)
198+
* valueCodeableConcept.coding = $sct#450847001
199+
* method = $sct#733985002 "Reported (qualifier value)"
200+
* effectiveDateTime = "2023-08-08T13:30:00.000Z"
201+
202+
Instance: MaxRespirationRate
203+
InstanceOf: DkCoreBasicObservation
204+
Usage: #example
205+
* status = #final
206+
* code.coding[SNOMEDCT] = $sct#86290005
207+
* code.coding[LOINC] = $LOINC#9279-1
208+
* subject = Reference(Max)
209+
* method = $sct#272391002 "Measurement technique (qualifier value)"
210+
* effectiveDateTime = "2023-08-08T13:30:00.000Z"
211+
* valueQuantity = 13 '/min' "/min"
212+
213+
Instance: MaxHeartRate
214+
InstanceOf: DkCoreBasicObservation
215+
Usage: #example
216+
* status = #final
217+
* category = $observation-category#vital-signs
218+
* code.coding[SKS] = $SKS#ZZ3140
219+
* code.coding[LOINC] = $LOINC#8867-4
220+
* subject = Reference(Max)
221+
* effectiveDateTime = "2023-08-08T13:30:00.000Z"
222+
* method = $sct#272391002 "Measurement technique (qualifier value)"
223+
* valueQuantity = 68 '/min' "slag/minut"
224+
225+
Instance: MaxBodyTemperature
226+
InstanceOf: DkCoreBasicObservation
227+
Usage: #example
228+
* status = #final
229+
* category = $observation-category#vital-signs
230+
* code.coding[SKS] = $SKS#ZZ0253
231+
* code.coding[LOINC] = $LOINC#8310-5
232+
* subject = Reference(Max)
233+
* effectiveDateTime = "2023-08-08T13:30:00.000Z"
234+
* method = $sct#272391002 "Measurement technique (qualifier value)"
235+
* valueQuantity = 37 'Cel' "grader celcius"
236+
237+
Instance: MaxBloodPressure
238+
InstanceOf: DkCoreBasicObservation
239+
Usage: #example
240+
* status = #final
241+
* category = $observation-category#vital-signs
242+
* code.coding[SKS] = $SKS#ZZ3160
243+
* code.coding[LOINC] = $LOINC#85354-9
244+
* subject = Reference(Max)
245+
* effectiveDateTime = "2023-08-08T13:30:00.000Z"
246+
* method = $sct#272391002 "Measurement technique (qualifier value)"
247+
* component[0].code.coding[0] = $LOINC#8480-6
248+
* component[=].code.coding[+] = $sct#407554009
249+
* component[=].valueQuantity = 156 'mm[Hg]' "mmHg"
250+
* component[+].code.coding[0] = $LOINC#8462-4
251+
* component[=].code.coding[+] = $sct#407555005
252+
* component[=].valueQuantity = 78 'mm[Hg]' "mmHg"
253+
254+
Instance: MaxSaturation
255+
InstanceOf: DkCoreBasicObservation
256+
Usage: #example
257+
* category = $observation-category#vital-signs
258+
* status = #final
259+
* code.coding[LOINC] = $LOINC#2708-6 "Oxygen saturation in Arterial blood"
260+
* valueQuantity = 99.0 '%' "%"
261+
* subject = Reference(Max)
262+
* effectiveDateTime = "2023-08-08T13:30:00.000Z"
263+
* method = $sct#272391002 "Measurement technique (qualifier value)"
264+
265+
Instance: MaxGlasgowComaScale
266+
InstanceOf: DkCoreObservation
267+
Usage: #example
268+
* status = #final
269+
* code.coding[LOINC] = $LOINC#9269-2
270+
* code.coding[+] = $sct#248241002
271+
* subject = Reference(Max)
272+
* valueQuantity = 13 '{score}'
273+
* referenceRange[0].high = 8 '{score}'
274+
* referenceRange[=].type.text = "Severe TBI"
275+
* referenceRange[+].low = 9 '{score}'
276+
* referenceRange[=].high = 12 '{score}'
277+
* referenceRange[=].type.text = "Moderate TBI"
278+
* referenceRange[+].low = 13 '{score}'
279+
* referenceRange[=].type.text = "Mild TBI"
280+
* effectiveDateTime = "2023-08-08T13:30:00.000Z"
281+
* component[0].code = $LOINC#9268-4 "Glasgow coma score motor"
282+
* component[=].valueCodeableConcept.coding = $LOINC#LA6566-9 "Localizing pain"
283+
* component[+].code = $LOINC#9270-0 "Glasgow coma score verbal"
284+
* component[=].valueCodeableConcept.coding = $LOINC#LA6560-2 "Confused"
285+
* component[+].code = $LOINC#9267-6 "Glasgow coma score eye opening"
286+
* component[=].valueCodeableConcept.coding = $LOINC#LA6556-0 "Eyes open spontaneously"
287+
288+
289+
Instance: MaxTOKS
290+
InstanceOf: Bundle
291+
Title: "Max TOKS measurements, including Glasgow Coma Scale assesment"
292+
Description: "An example of TOBS (Danish: Tidlig opsporing af begyndende sygdom), which includes level of consciousness, heart rate, respiration rate, blood pressure and temperature."
293+
Usage: #example
294+
* type = #collection
295+
* timestamp = "2023-08-08T13:30:00.000Z"
296+
* entry[+].fullUrl = "Patient/Max"
297+
* entry[=].resource = Max
298+
* entry[+].fullUrl = "Observation/MaxConsciousness"
299+
* entry[=].resource = MaxConsciousness
300+
* entry[+].fullUrl = "Observation/MaxBloodPressure"
301+
* entry[=].resource = MaxBloodPressure
302+
* entry[+].fullUrl = "Observation/MaxBodyTemperature"
303+
* entry[=].resource = MaxBodyTemperature
304+
* entry[+].fullUrl = "Observation/MaxHeartRate"
305+
* entry[=].resource = MaxHeartRate
306+
* entry[+].fullUrl = "Observation/MaxRespirationRate"
307+
* entry[=].resource = MaxRespirationRate
308+
* entry[+].fullUrl = "Observation/MaxGlasgowComaScale"
309+
* entry[=].resource = MaxGlasgowComaScale
310+
311+
/* **************
312+
*
313+
* Vital signs panel
314+
*
315+
* ************** */
316+
317+
Instance: MaxVitalSignsPanel
318+
InstanceOf: DkCoreBasicObservation
319+
Usage: #example
320+
* category = $observation-category#vital-signs
321+
* status = #final
322+
* code.coding[LOINC] = $LOINC#85353-1 "Vital signs, weight, height, head circumference, oxygen saturation and BMI panel"
323+
* subject = Reference(Max)
324+
* effectiveDateTime = "2023-08-08T13:30:00.000Z"
325+
* hasMember[+] = Reference(MaxBloodPressure)
326+
* hasMember[+] = Reference(MaxRespirationRate)
327+
* hasMember[+] = Reference(MaxHeartRate)
328+
* hasMember[+] = Reference(MaxBodyTemperature)

0 commit comments

Comments
 (0)