Skip to content

Commit

Permalink
Updated Patient instances, version number, removed LPR3
Browse files Browse the repository at this point in the history
#103, #102 and #101 are handled
  • Loading branch information
tmsMedcom committed Oct 16, 2023
1 parent cb0424c commit f469735
Show file tree
Hide file tree
Showing 6 changed files with 69 additions and 52 deletions.
101 changes: 57 additions & 44 deletions input/fsh/DkCoreBasicParameter.fsh
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Profile: DkCoreBasicObservation
Parent: dk-core-observation
Id: dk-core-basic-observation
Title: "Danish Core Basic Observations"
Title: "Danish Core Basic Observation Profile"
Description: "HL7 Denmark core profile for basic observations, which is a profiling of DkCoreObservation."
* category 1..1
* category = $observation-category#vital-signs
Expand Down Expand Up @@ -89,14 +89,14 @@ InstanceOf: DkCoreBasicObservation
Usage: #example
* status = #final
* category = $observation-category#vital-signs
* code.coding[0] = $sct#75367002
* code.coding[SNOMEDCT] = $sct#75367002
* code.coding[LOINC] = $LOINC#85354-9
* subject = Reference(else)
* component[0].code.coding[LOINC] = $LOINC#8480-6
* component[=].code.coding[+] = $sct#407554009
* component[=].code.coding[SNOMEDCT] = $sct#407554009
* component[=].valueQuantity = 128 'mm[Hg]' "mmHg"
* component[+].code.coding[LOINC] = $LOINC#8462-4
* component[=].code.coding[+] = $sct#407555005
* component[=].code.coding[SNOMEDCT] = $sct#407555005
* component[=].valueQuantity = 80 'mm[Hg]' "mmHg"
* method = $sct#272391002 "Measurement technique (qualifier value)"
* effectiveDateTime = "2023-09-12T17:45:00.000Z"
Expand All @@ -108,7 +108,7 @@ InstanceOf: DkCoreBasicObservation
Usage: #example
* status = #final
* category = $observation-category#vital-signs
* code.coding[0] = $sct#276885007
* code.coding[SNOMEDCT] = $sct#276885007
* code.coding[LOINC] = $LOINC#8310-5
* subject = Reference(else)
* method = $sct#272391002 "Measurement technique (qualifier value)"
Expand All @@ -121,7 +121,7 @@ InstanceOf: DkCoreBasicObservation
Usage: #example
* status = #final
* category = $observation-category#vital-signs
* code.coding[0] = $sct#364075005
* code.coding[SNOMEDCT] = $sct#364075005
* code.coding[LOINC] = $LOINC#8867-4
* subject = Reference(else)
* method = $sct#272391002 "Measurement technique (qualifier value)"
Expand All @@ -134,14 +134,27 @@ InstanceOf: DkCoreBasicObservation
Usage: #example
* status = #final
* category = $observation-category#vital-signs
* code.coding[0] = $sct#86290005
* code.coding[SNOMEDCT] = $sct#86290005
* code.coding[LOINC] = $LOINC#9279-1
* subject = Reference(else)
* method = $sct#272391002 "Measurement technique (qualifier value)"
* effectiveDateTime = "2023-09-12T17:45:00.000Z"
* valueQuantity = 13 '/min' "/min"
* performer = Reference(SidselSygeplejerske)

Instance: ElsesTOBSscore
InstanceOf: DkCoreObservation
Usage: #example
* status = #final
* code.coding = $Medcom#MCS88125 "Pt—Tidlig Opsporing af Begyndende Sygdom (TOBS) score; antal (værdi 0-15) = ?"
* subject = Reference(else)
* effectiveDateTime = "2023-09-12T17:45:00.000Z"
* valueQuantity.value = 3
* valueQuantity.code = #1
* valueQuantity.system = $ucum
* performer = Reference(SidselSygeplejerske)


Instance: ElsesTOBS
InstanceOf: Bundle
Title: "Else's TOBS measurements"
Expand Down Expand Up @@ -170,89 +183,89 @@ Usage: #example
*
* ************** */

Instance: MogensensConsciousness
Instance: MaxConsciousness
InstanceOf: DkCoreObservation
Usage: #example
* status = #final
* category = $observation-category#vital-signs
* code.coding[0] = $sct#86290005
* code.coding[LOINC] = $LOINC#9279-1
* subject = Reference(mogensen)
* subject = Reference(Max)
* valueCodeableConcept.coding[+] = $sct#450847001
* method = $sct#733985002 "Reported (qualifier value)"
* effectiveDateTime = "2023-08-08T13:30:00.000Z"

Instance: MogensensRespirationRate
Instance: MaxRespirationRate
InstanceOf: DkCoreBasicObservation
Usage: #example
* status = #final
* code.coding[0] = $sct#86290005
* code.coding[SNOMEDCT] = $sct#86290005
* code.coding[LOINC] = $LOINC#9279-1
* subject = Reference(mogensen)
* subject = Reference(Max)
* method = $sct#272391002 "Measurement technique (qualifier value)"
* effectiveDateTime = "2023-08-08T13:30:00.000Z"
* valueQuantity = 13 '/min' "/min"

Instance: MogensensHeartRate
Instance: MaxHeartRate
InstanceOf: DkCoreBasicObservation
Usage: #example
* status = #final
* category = $observation-category#vital-signs
* code.coding[0] = $sct#364075005
* code.coding[SKS] = $SKS#ZZ3140
* code.coding[LOINC] = $LOINC#8867-4
* subject = Reference(mogensen)
* subject = Reference(Max)
* effectiveDateTime = "2023-08-08T13:30:00.000Z"
* method = $sct#272391002 "Measurement technique (qualifier value)"
* valueQuantity = 68 '/min' "slag/minut"

Instance: MogensensBodyTemperature
Instance: MaxBodyTemperature
InstanceOf: DkCoreBasicObservation
Usage: #example
* status = #final
* category = $observation-category#vital-signs
* code.coding[0] = $sct#276885007
* code.coding[SKS] = $SKS#ZZ0253
* code.coding[LOINC] = $LOINC#8310-5
* subject = Reference(mogensen)
* subject = Reference(Max)
* effectiveDateTime = "2023-08-08T13:30:00.000Z"
* method = $sct#272391002 "Measurement technique (qualifier value)"
* valueQuantity = 37 'Cel' "grader celcius"

Instance: MogensensBloodPressure
Instance: MaxBloodPressure
InstanceOf: DkCoreBasicObservation
Usage: #example
* status = #final
* category = $observation-category#vital-signs
* code.coding[0] = $sct#75367002
* code.coding[SKS] = $SKS#ZZ3160
* code.coding[LOINC] = $LOINC#85354-9
* subject = Reference(mogensen)
* subject = Reference(Max)
* effectiveDateTime = "2023-08-08T13:30:00.000Z"
* method = $sct#272391002 "Measurement technique (qualifier value)"
* component[0].code.coding[LOINC] = $LOINC#8480-6
* component[0].code.coding[0] = $LOINC#8480-6
* component[=].code.coding[+] = $sct#407554009
* component[=].valueQuantity = 156 'mm[Hg]' "mmHg"
* component[+].code.coding[LOINC] = $LOINC#8462-4
* component[+].code.coding[0] = $LOINC#8462-4
* component[=].code.coding[+] = $sct#407555005
* component[=].valueQuantity = 78 'mm[Hg]' "mmHg"

Instance: MogensensSaturation
Instance: MaxSaturation
InstanceOf: DkCoreBasicObservation
Usage: #example
* category = $observation-category#vital-signs
* status = #final
* code.coding[LOINC] = $LOINC#2708-6 "Oxygen saturation in Arterial blood"
* valueQuantity = 99.0 '%' "%"
* subject = Reference(mogensen)
* subject = Reference(Max)
* effectiveDateTime = "2023-08-08T13:30:00.000Z"
* method = $sct#272391002 "Measurement technique (qualifier value)"

Instance: MogensensGlasgowComaScale
Instance: MaxGlasgowComaScale
InstanceOf: DkCoreObservation
Usage: #example
* status = #final
* code.coding[LOINC] = $LOINC#9269-2
* code.coding[+] = $sct#248241002
* subject = Reference(mogensen)
* valueQuantity = 13 '{score}' "{score}"
* subject = Reference(Max)
* valueQuantity = 13 '{score}'
* referenceRange[0].high = 8 '{score}'
* referenceRange[=].type.text = "Severe TBI"
* referenceRange[+].low = 9 '{score}'
Expand All @@ -269,24 +282,24 @@ Usage: #example
* component[=].valueCodeableConcept.coding = $LOINC#LA6556-0 "Eyes open spontaneously"


Instance: MogensensTOKS
Instance: MaxTOKS
InstanceOf: Bundle
Title: "Mogensens TOKS measurements, including Glasgow Coma Scale assesment"
Title: "Max TOKS measurements, including Glasgow Coma Scale assesment"
Description: "An example of TOBS (Danish: Tidlig opsporing af begyndende sygdom), which includes level of consciousness, heart rate, respiration rate, blood pressure and temperature."
Usage: #example
* type = #collection
* timestamp = "2023-08-08T13:30:00.000Z"
* entry[+].fullUrl = "Patient/mogensen"
* entry[=].resource = mogensen
* entry[+].fullUrl = "Observation/MogensensConsciousness"
* entry[=].resource = MogensensConsciousness
* entry[+].fullUrl = "Observation/MogensensBloodPressure"
* entry[=].resource = MogensensBloodPressure
* entry[+].fullUrl = "Observation/MogensensBodyTemperature"
* entry[=].resource = MogensensBodyTemperature
* entry[+].fullUrl = "Observation/MogensensHeartRate"
* entry[=].resource = MogensensHeartRate
* entry[+].fullUrl = "Observation/MogensensRespirationRate"
* entry[=].resource = MogensensRespirationRate
* entry[+].fullUrl = "Observation/MogensensGlasgowComaScale"
* entry[=].resource = MogensensGlasgowComaScale
* entry[+].fullUrl = "Patient/Max"
* entry[=].resource = Max
* entry[+].fullUrl = "Observation/MaxConsciousness"
* entry[=].resource = MaxConsciousness
* entry[+].fullUrl = "Observation/MaxBloodPressure"
* entry[=].resource = MaxBloodPressure
* entry[+].fullUrl = "Observation/MaxBodyTemperature"
* entry[=].resource = MaxBodyTemperature
* entry[+].fullUrl = "Observation/MaxHeartRate"
* entry[=].resource = MaxHeartRate
* entry[+].fullUrl = "Observation/MaxRespirationRate"
* entry[=].resource = MaxRespirationRate
* entry[+].fullUrl = "Observation/MaxGlasgowComaScale"
* entry[=].resource = MaxGlasgowComaScale
9 changes: 6 additions & 3 deletions input/fsh/DkCorePatient.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,8 @@ Description: "Example of a patient with confidential adress and name"
Usage: #example
* text.div = "<div xmlns=\"http://www.w3.org/1999/xhtml\">This instance is an example of a Danish citizen who has requested name and address protection (Navne- og adressebeskyttelse), why the instance is marked with a security label. Only personnel using systems in public/official affairs are allowed to see name and address for the citizen, why these information are included in the profile.<p></p><div style=\"display: inline-block; background-color: #d9e0e7; padding: 6px; margin: 4px; border: 1px solid #8da1b4; border-radius: 5px; line-height: 60%\"><p style=\"margin-bottom: 0px\">Resource \"Confidential\"</p><p style=\"margin-bottom: 0px\">Profile: <a href=\"StructureDefinition-dk-core-patient.html\">Danish Core Patient Profile</a></p><p style=\"margin-bottom: 0px\">Security Labels: <span title=\"{http://terminology.hl7.org/CodeSystem/v3-Confidentiality http://terminology.hl7.org/CodeSystem/v3-Confidentiality}\">http://terminology.hl7.org/CodeSystem/v3-Confidentiality</span></p></div><p><b>identifier</b>: id: 1502779995</p><p><b>name</b>: Hans Hansen (OFFICIAL)</p><p><b>gender</b>: male</p><p><b>birthDate</b>: 1976-08-09</p><p><b>address</b>: Julianevej 22 6000 Kolding (HOME)</p></div>"
* text.status = #additional
* meta.security.code = $v3-Confidentiality#R
* meta.security.display = "Restricted"
* identifier.system = "urn:oid:1.2.208.176.1.2"
* identifier.value = "1502779995"
* name.use = #official
Expand Down Expand Up @@ -122,16 +124,17 @@ Usage: #example
* generalPractitioner.identifier.value = "487341000016005"
* generalPractitioner.display = "Charlottenlund Lægehus"

Instance: mogensen
Instance: Max
InstanceOf: DkCorePatient
Title: "Example of valid patient with danish marital status"
Description: "Example of valid patient with danish marital status"
Usage: #example
* identifier.system = "urn:oid:1.2.208.176.1.2"
* identifier.value = "0107729995"
* name.use = #official
* name.family = "Mogensen"
* name.given = "Jan"
* name.family = "Berggren"
* name.given[0] = "Max"
* name.given[1] = "Test"
* name.prefix = "Mr"
* gender = #male
* birthDate = "1972-07-01"
Expand Down
4 changes: 2 additions & 2 deletions input/fsh/Lpr3Identifier.fsh
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Profile: Lpr3Identifier
/* Profile: Lpr3Identifier
Parent: Identifier
Id: lpr3-Identifier
Title: "LPR3 Identifier"
Expand All @@ -17,4 +17,4 @@ Description: "Identifier holding a LPR3 identifier for an organization"
Invariant: uuidv5
Description: "LPR3 episode of care identifiers must conform to a UUIDv5"
Severity: #error
Expression: "value.matches('urn:uuid:[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[5][a-fA-F0-9]{3}-[89aAbB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}')"
Expression: "value.matches('urn:uuid:[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[5][a-fA-F0-9]{3}-[89aAbB][a-fA-F0-9]{3}-[a-fA-F0-9]{12}')" */
1 change: 1 addition & 0 deletions input/fsh/aliases.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,4 @@ Alias: $observation-bodyweight = http://hl7.org/fhir/StructureDefinition/bodywei
Alias: $observation-heartrate = http://hl7.org/fhir/StructureDefinition/heartrate
Alias: $observation-bp = http://hl7.org/fhir/StructureDefinition/bp
Alias: $LOINC-vitalsigns = http://hl7.org/fhir/ValueSet/observation-vitalsignresult
Alias: $v3-Confidentiality = http://terminology.hl7.org/CodeSystem/v3-Confidentiality
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ The table below includes instances of the DkCoreBasicObservation used to represe

Example | Description
----------------- | ------------------------
[Glasgow Coma Scale (GCS)](./Bundle-MogensensGlasgowComaScale.html) | This example includes the relevant observation related to Glasgow Coma Scale. This scale is used to assess the level of consciousness in people with brain damage.
[TOKS (Danish: Tidlig opsporing af kritisk sygdom)](./Bundle-MogensensTOKS.html) | TOKS is a scoring system used to determine if a patient is in a critical state at a early state. The example includes basic observations, such as heartrate, temperature and more, as well as a Glasgow Coma Scale.
[Glasgow Coma Scale (GCS)](./Bundle-MaxGlasgowComaScale.html) | This example includes the relevant observation related to Glasgow Coma Scale. This scale is used to assess the level of consciousness in people with brain damage.
[TOKS (Danish: Tidlig opsporing af kritisk sygdom)](./Bundle-MaxTOKS.html) | TOKS is a scoring system used to determine if a patient is in a critical state at a early state. The example includes basic observations, such as heartrate, temperature and more, as well as a Glasgow Coma Scale.
[TOBS (Danish: Tidlig opsporing af begyndende sygdom)](./Bundle-ElsesTOBS.html) | TOBS is a scoring system used to determine if a citizen is in the early state of illnesses. The example includes basic observations, such as heartrate, temperature and more, as well as a reference to the performer of the observations.
[Vital signs panel](./Bundle-VitalSignPanel.html) | ...
[John's oxygen saturation measurement (Basic observation)](./Observation-ObservationOxySatBasicObservationOrg.html) | This example suggests a way to handle the oxygen saturation case, where the original measurement was reported in '%' by a device or typed in manually, and then 'translated' to the NPU system, which requires the value to be unitless.
Expand Down
2 changes: 1 addition & 1 deletion sushi-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ name: DKCore
title: "HL7 FHIR Implementation Guide: DK Core"
description: A FHIR Implementation Guide for the Danish common needs across healthcare sectors
status: draft # active
version: 2.3.0
version: 3.1.0
fhirVersion: 4.0.1
copyrightYear: 2021+
license: CC0-1.0
Expand Down

0 comments on commit f469735

Please sign in to comment.