From 3289ead40c0f91ee49a04187ac21f79779b2c52c Mon Sep 17 00:00:00 2001 From: lpg-tech Date: Mon, 26 Jun 2023 19:54:40 +0200 Subject: [PATCH] add ServiceRequest examples --- input/fsh/instances/LabOrder-Document.fsh | 2 +- .../LabOrder-ServiceRequest-chloride.fsh | 35 ++++++++++++++++ .../LabOrder-ServiceRequest-coag.fsh | 27 ------------ .../LabOrder-ServiceRequest-container.fsh | 29 ------------- ...er-ServiceRequest-creatinine-clearance.fsh | 39 +++++++++++++++++ .../LabOrder-ServiceRequest-creatinine.fsh | 35 ++++++++++++++++ .../LabOrder-ServiceRequest-electrolytes.fsh | 35 ++++++++++++++++ .../LabOrder-ServiceRequest-generic.fsh | 42 ++++++++++++------- .../instances/LabOrder-ServiceRequest-hem.fsh | 41 ------------------ .../LabOrder-ServiceRequest-potassium.fsh | 6 +-- ...fsh => LabOrder-ServiceRequest-sodium.fsh} | 21 ++++++---- ...der-ServiceRequest-urine24h-creatinine.fsh | 35 ++++++++++++++++ input/fsh/instances/LabOrder-form.fsh | 2 +- ...ine.fsh => procedure-creatinine-serum.fsh} | 6 +-- .../procedure-hemoglobin-panel.fsh | 33 +++++++++++++++ .../observation-blood-hemoglobin.fsh | 24 +++++++++++ .../observation-serum-creatinine.fsh | 2 +- .../PlanDefinition/Creatinine-Clearance.fsh | 2 +- .../PlanDefinition/Creatinine-serum.fsh | 2 +- .../specimen-blood-EDTA.fsh | 26 ++++++++++++ input/fsh/instances/specimen/Urine-24h.fsh | 2 +- input/fsh/profiles/ChLabOrderSRSingletest.fsh | 2 +- 22 files changed, 314 insertions(+), 134 deletions(-) create mode 100644 input/fsh/instances/LabOrder-ServiceRequest-chloride.fsh delete mode 100644 input/fsh/instances/LabOrder-ServiceRequest-coag.fsh delete mode 100644 input/fsh/instances/LabOrder-ServiceRequest-container.fsh create mode 100644 input/fsh/instances/LabOrder-ServiceRequest-creatinine-clearance.fsh create mode 100644 input/fsh/instances/LabOrder-ServiceRequest-creatinine.fsh create mode 100644 input/fsh/instances/LabOrder-ServiceRequest-electrolytes.fsh delete mode 100644 input/fsh/instances/LabOrder-ServiceRequest-hem.fsh rename input/fsh/instances/{LabOrder-ServiceRequest-cc.fsh => LabOrder-ServiceRequest-sodium.fsh} (57%) create mode 100644 input/fsh/instances/LabOrder-ServiceRequest-urine24h-creatinine.fsh rename input/fsh/instances/lab-compendium/ActivityDefinition/{procedure-serum-creatinine.fsh => procedure-creatinine-serum.fsh} (92%) create mode 100644 input/fsh/instances/lab-compendium/ActivityDefinition/procedure-hemoglobin-panel.fsh create mode 100644 input/fsh/instances/lab-compendium/ObservationDefinition/observation-blood-hemoglobin.fsh create mode 100644 input/fsh/instances/lab-compendium/SpecimenDefinition/specimen-blood-EDTA.fsh diff --git a/input/fsh/instances/LabOrder-Document.fsh b/input/fsh/instances/LabOrder-Document.fsh index 8d0dbd78..487b2a47 100644 --- a/input/fsh/instances/LabOrder-Document.fsh +++ b/input/fsh/instances/LabOrder-Document.fsh @@ -27,7 +27,7 @@ Usage: #example * entry[+].fullUrl = "http://example.com/fhir/QuestionnaireResponse/LabOrder-qr" //entry[6] * entry[=].resource = LabOrder-QuestionnaireResponse -* entry[+].fullUrl = "http://example.com/fhir/ServiceRequest/LabOrder-sr-potassium" // entry[7] +* entry[+].fullUrl = "http://example.com/fhir/ServiceRequest/LabOrder-potassium" // entry[7] * entry[=].resource = LabOrder-ServiceRequest-potassium // // ---- SR for Coagulation Tests ---- diff --git a/input/fsh/instances/LabOrder-ServiceRequest-chloride.fsh b/input/fsh/instances/LabOrder-ServiceRequest-chloride.fsh new file mode 100644 index 00000000..c34648ca --- /dev/null +++ b/input/fsh/instances/LabOrder-ServiceRequest-chloride.fsh @@ -0,0 +1,35 @@ +Instance: LabOrder-ServiceRequest-chloride +InstanceOf: ChLabOrderSRSingletest +Title: "LabOrder Service Request for Clinical Chemistry Tests" +Description: "Example for Service Request of Chloride [Moles/volume] in Serum or Plasma" +Usage: #example +* id = "LabOrder-chloride" +* identifier[placerOrderIdentifier].type = $v2-0203#PLAC "Placer Identifier" +* identifier[placerOrderIdentifier].system = "urn:oid:2.16.756.5.30" +* identifier[placerOrderIdentifier].value = "123" +* instantiatesCanonical = "http://fhir.ch/ig/ch-lab-order/lab-compendium/ActivityDefinition/procedure-chloride-serum" + +// ---- grouperID, must be repeated in all dependent SR ---- +* requisition.type = $v2-0203#PLAC "Placer Identifier" +* requisition.system = "urn:oid:2.16.756.5.30" +* requisition.value = "ReqID-1234567" + +* status = #active +* intent = #original-order +* category = $servicerequest-categories#RequestForLabExam "Anforderung Laboruntersuchung" + +// What is being ordered +// * basedOn = Reference(SR-example) +// ---- Clinical Chemistry Tests ---- +* code.coding[0] = $loinc#2075-0 "Chloride [Moles/volume] in Serum or Plasma" + +// orderDetails: Additional order information, codeableConcept + +* priority = #urgent +* subject = Reference(Patient/HansGuggindieluft) +* requester = Reference(MarcMustermannArztpraxis) +* reasonCode = $sct#90688005 +* reasonCode.text = "Chronic renal failure syndrome (disorder)" +* insurance = Reference(HealthInsuranceCard) +* specimen[0] = Reference(Specimen/Serum) "Serum specimen" +// * specimen[+] = Reference(Specimen/Blood) \ No newline at end of file diff --git a/input/fsh/instances/LabOrder-ServiceRequest-coag.fsh b/input/fsh/instances/LabOrder-ServiceRequest-coag.fsh deleted file mode 100644 index 28cc0812..00000000 --- a/input/fsh/instances/LabOrder-ServiceRequest-coag.fsh +++ /dev/null @@ -1,27 +0,0 @@ -Instance: LabOrder-ServiceRequest-coag -InstanceOf: ChOrfServiceRequest -Title: "LabOrder Service Request for Coagulation Tests" -Description: "Example for Service Request due to suspected deep vein thrombosis" -Usage: #example -* id = "LabOrder-coag" -* identifier[placerOrderIdentifier].type = $v2-0203#PLAC "Placer Identifier" -* identifier[placerOrderIdentifier].system = "urn:oid:2.16.756.5.30" -* identifier[placerOrderIdentifier].value = "123" -* status = #active -* intent = #original-order -* category = $servicerequest-categories#RequestForLabExam "Anforderung Laboruntersuchung" - -// ---- Coagulation Tests ---- -* code.coding[0] = $loinc#55398-2 "Short Fibrin D-dimer FEU and DDU panel - Platelet poor plasma" -* code.coding[+] = $loinc#38875-1 "INR in Platelet poor plasma or Blood by Coagulation assay" - -// orderDetails: Additional order information, codeableConcept - -* priority = #urgent -* subject = Reference(Patient/HansGuggindieluft) -* requester = Reference(MarcMustermannArztpraxis) -* reasonCode = $sct#404223003 -* reasonCode.text = "Deep venous thrombosis of lower extremity" -* insurance = Reference(HealthInsuranceCard) -* specimen[0] = Reference(Specimen/Serum) "Serum specimen" -* specimen[+] = Reference(Specimen/Blood-coag) \ No newline at end of file diff --git a/input/fsh/instances/LabOrder-ServiceRequest-container.fsh b/input/fsh/instances/LabOrder-ServiceRequest-container.fsh deleted file mode 100644 index f4ea985d..00000000 --- a/input/fsh/instances/LabOrder-ServiceRequest-container.fsh +++ /dev/null @@ -1,29 +0,0 @@ -Instance: LabOrder-ServiceRequest-container -InstanceOf: ChOrfServiceRequest -Title: "LabOrder Service Request for multiple Lab Tests" -Description: "Example for Service Request as container for multiple Service Requests" -Usage: #example -* id = "LabOrder-container" -* identifier[placerOrderIdentifier].type = $v2-0203#PLAC "Placer Identifier" -* identifier[placerOrderIdentifier].system = "urn:oid:2.16.756.5.30" -* identifier[placerOrderIdentifier].value = "123" - -// der SR referenziert auf 3 weitere SR -* basedOn[0] = Reference(LabOrder-ServiceRequest-hem) -* basedOn[+] = Reference(LabOrder-ServiceRequest-coag) -* basedOn[+] = Reference(LabOrder-ServiceRequest-cc) -* basedOn[+] = Reference(LabOrder-ServiceRequest-container) - -* status = #active -* intent = #original-order -* category = $servicerequest-categories#RequestForLabExam "Anforderung Laboruntersuchung" - - -* priority = #urgent -* subject = Reference(Patient/HansGuggindieluft) -* requester = Reference(MarcMustermannArztpraxis) -* reasonCode = $sct#404223003 -* reasonCode.text = "Deep venous thrombosis of lower extremity" -* insurance = Reference(HealthInsuranceCard) -* specimen[0] = Reference(Specimen/Serum) "Serum specimen" -// * specimen[+] = Reference(Specimen/Blood) \ No newline at end of file diff --git a/input/fsh/instances/LabOrder-ServiceRequest-creatinine-clearance.fsh b/input/fsh/instances/LabOrder-ServiceRequest-creatinine-clearance.fsh new file mode 100644 index 00000000..2fa6444c --- /dev/null +++ b/input/fsh/instances/LabOrder-ServiceRequest-creatinine-clearance.fsh @@ -0,0 +1,39 @@ +Instance: LabOrder-ServiceRequest-creatinine-clearance +InstanceOf: ChLabOrderSRSingletest +Title: "LabOrder Service Request for Creatinine clearance" +Description: "Example for Service Request of Creatinine [Moles/volume] and 24h Urin Creatinen" +Usage: #example +* id = "LabOrder-creatinine-clearance" +* identifier[placerOrderIdentifier].type = $v2-0203#PLAC "Placer Identifier" +* identifier[placerOrderIdentifier].system = "urn:oid:2.16.756.5.30" +* identifier[placerOrderIdentifier].value = "123" +* instantiatesCanonical = "http://fhir.ch/ig/ch-lab-order/lab-compendium/ActivityDefinition/procedure-creatinine-clearance" + +// der SR referenziert auf 3 weitere SR +* basedOn[0] = Reference(LabOrder-ServiceRequest-urine24h-creatinine) +* basedOn[+] = Reference(LabOrder-ServiceRequest-creatinine) + +// ---- grouperID, must be repeated in all dependent SR ---- +* requisition.type = $v2-0203#PLAC "Placer Identifier" +* requisition.system = "urn:oid:2.16.756.5.30" +* requisition.value = "ReqID-1234567" + +* status = #active +* intent = #original-order +* category = $servicerequest-categories#RequestForLabExam "Anforderung Laboruntersuchung" + +// What is being ordered +// * basedOn = Reference(SR-example) +// ---- Clinical Chemistry Tests ---- +* code.coding[0] = $loinc#2164-2 "Creatinine renal clearance in 24 hour Urine and Serum or Plasma" + +// orderDetails: Additional order information, codeableConcept + +* priority = #urgent +* subject = Reference(Patient/HansGuggindieluft) +* requester = Reference(MarcMustermannArztpraxis) +* reasonCode = $sct#90688005 +* reasonCode.text = "Chronic renal failure syndrome (disorder)" +* insurance = Reference(HealthInsuranceCard) +* specimen[0] = Reference(Specimen/Serum) "Serum specimen" +// * specimen[+] = Reference(Specimen/Blood) \ No newline at end of file diff --git a/input/fsh/instances/LabOrder-ServiceRequest-creatinine.fsh b/input/fsh/instances/LabOrder-ServiceRequest-creatinine.fsh new file mode 100644 index 00000000..084d75a5 --- /dev/null +++ b/input/fsh/instances/LabOrder-ServiceRequest-creatinine.fsh @@ -0,0 +1,35 @@ +Instance: LabOrder-ServiceRequest-creatinine +InstanceOf: ChLabOrderSRSingletest +Title: "LabOrder Service Request for Serum Creatinine" +Description: "Example for Service Request of Creatinine [Moles/volume] in Serum or Plasma" +Usage: #example +* id = "LabOrder-creatinine" +* identifier[placerOrderIdentifier].type = $v2-0203#PLAC "Placer Identifier" +* identifier[placerOrderIdentifier].system = "urn:oid:2.16.756.5.30" +* identifier[placerOrderIdentifier].value = "123" +* instantiatesCanonical = "http://fhir.ch/ig/ch-lab-order/lab-compendium/ActivityDefinition/procedure-creatinine-serum" + +// ---- grouperID, must be repeated in all dependent SR ---- +* requisition.type = $v2-0203#PLAC "Placer Identifier" +* requisition.system = "urn:oid:2.16.756.5.30" +* requisition.value = "ReqID-1234567" + +* status = #active +* intent = #original-order +* category = $servicerequest-categories#RequestForLabExam "Anforderung Laboruntersuchung" + +// What is being ordered +// * basedOn = Reference(SR-example) +// ---- Clinical Chemistry Tests ---- +* code.coding[0] = $loinc#14682-9 "Creatinine [Moles/volume] in Serum or Plasma" + +// orderDetails: Additional order information, codeableConcept + +* priority = #urgent +* subject = Reference(Patient/HansGuggindieluft) +* requester = Reference(MarcMustermannArztpraxis) +* reasonCode = $sct#90688005 +* reasonCode.text = "Chronic renal failure syndrome (disorder)" +* insurance = Reference(HealthInsuranceCard) +* specimen[0] = Reference(Specimen/Serum) "Serum specimen" +// * specimen[+] = Reference(Specimen/Blood) \ No newline at end of file diff --git a/input/fsh/instances/LabOrder-ServiceRequest-electrolytes.fsh b/input/fsh/instances/LabOrder-ServiceRequest-electrolytes.fsh new file mode 100644 index 00000000..d9e87bcd --- /dev/null +++ b/input/fsh/instances/LabOrder-ServiceRequest-electrolytes.fsh @@ -0,0 +1,35 @@ +Instance: LabOrder-ServiceRequest-electrolytes +InstanceOf: ChLabOrderSRContainer +Title: "LabOrder Service Request for Electrolytes in Serum" +Description: "Example for Service Request as container for multiple Service Requests" +Usage: #example +* id = "LabOrder-electrolytes" +* identifier[placerOrderIdentifier].type = $v2-0203#PLAC "Placer Identifier" +* identifier[placerOrderIdentifier].system = "urn:oid:2.16.756.5.30" +* identifier[placerOrderIdentifier].value = "123" +* instantiatesCanonical = "http://fhir.ch/ig/ch-lab-order/lab-compendium/ActivityDefinition/procedure-sodium-serum" +* instantiatesCanonical = "http://fhir.ch/ig/ch-lab-order/lab-compendium/ActivityDefinition/procedure-potassium-serum" +* instantiatesCanonical = "http://fhir.ch/ig/ch-lab-order/lab-compendium/ActivityDefinition/procedure-chloride-serum" + +// der SR referenziert auf 3 weitere SR +* basedOn[0] = Reference(LabOrder-ServiceRequest-sodium) +* basedOn[+] = Reference(LabOrder-ServiceRequest-potassium) +* basedOn[+] = Reference(LabOrder-ServiceRequest-chloride) // TODO + +// ---- grouperID, must be repeated in all dependent SR ---- +* requisition.type = $v2-0203#PLAC "Placer Identifier" +* requisition.system = "urn:oid:2.16.756.5.30" +* requisition.value = "ReqID-1234567" + +* status = #active +* intent = #original-order +* category = $servicerequest-categories#RequestForLabExam "Anforderung Laboruntersuchung" + +* priority = #urgent +* subject = Reference(Patient/HansGuggindieluft) +* requester = Reference(MarcMustermannArztpraxis) +* reasonCode = $sct#404223003 +* reasonCode.text = "Deep venous thrombosis of lower extremity" +* insurance = Reference(HealthInsuranceCard) +* specimen[0] = Reference(Specimen/Serum) "Serum specimen" +// * specimen[+] = Reference(Specimen/Blood) \ No newline at end of file diff --git a/input/fsh/instances/LabOrder-ServiceRequest-generic.fsh b/input/fsh/instances/LabOrder-ServiceRequest-generic.fsh index 703aa9bb..45431015 100644 --- a/input/fsh/instances/LabOrder-ServiceRequest-generic.fsh +++ b/input/fsh/instances/LabOrder-ServiceRequest-generic.fsh @@ -1,25 +1,35 @@ Instance: LabOrder-ServiceRequest-generic -InstanceOf: ChOrfServiceRequest -Title: "laborder lab" -Description: "Example for generic Service Request" +InstanceOf: ChLabOrderSRSingletest +Title: "LabOrder Service Request some single test" +Description: "Example for Service Request single test" Usage: #example +* id = "LabOrder-generic" * identifier[placerOrderIdentifier].type = $v2-0203#PLAC "Placer Identifier" * identifier[placerOrderIdentifier].system = "urn:oid:2.16.756.5.30" -* identifier[placerOrderIdentifier].value = "7601000234407" // Prefix 760..769 is GS1 Schweiz, Suisse, Svizzera -// * identifier[+].type = $v2-0203#FILL "Filler Identifier" -// * identifier[=].system = "http://example.com/identifier" -// * identifier[=].value = "456" +* identifier[placerOrderIdentifier].value = "123" +* instantiatesCanonical = "http://fhir.ch/ig/ch-lab-order/lab-compendium/ActivityDefinition/procedure-hemoglobine-panel" + +// ---- grouperID, must be repeated in all dependent SR ---- +* requisition.type = $v2-0203#PLAC "Placer Identifier" +* requisition.system = "urn:oid:2.16.756.5.30" +* requisition.value = "ReqID-1234567" + * status = #active * intent = #original-order -* category = $sct#108252007 -* category.text = "Laboratory procedure (procedure)" +* category = $servicerequest-categories#RequestForLabExam "Anforderung Laboruntersuchung" + +// What is being ordered +// * basedOn = Reference(SR-example) +// ---- Clinical Chemistry Tests ---- +* code.coding[0] = $loinc#59260-0 "Hemoglobin [Moles/volume] in Blood" + +// orderDetails: Additional order information, codeableConcept + * priority = #urgent -* subject = Reference(HansGuggindieluft) +* subject = Reference(Patient/HansGuggindieluft) * requester = Reference(MarcMustermannArztpraxis) -* performerType = $sct#61246008 -* performerType.text = "Laboratory medicine specialist (occupation)" -* performer = Reference(EvaErlenmeyerLaborPipette) -* reasonCode = $sct#404223003 -* reasonCode.text = "Deep venous thrombosis of lower extremity" +* reasonCode = $sct#90688005 +* reasonCode.text = "Chronic renal failure syndrome (disorder)" * insurance = Reference(HealthInsuranceCard) -* specimen = Reference(Serum) "Serum specimen" \ No newline at end of file +* specimen[0] = Reference(Specimen/Blood) "Blood" +// * specimen[+] = Reference(Specimen/Blood) \ No newline at end of file diff --git a/input/fsh/instances/LabOrder-ServiceRequest-hem.fsh b/input/fsh/instances/LabOrder-ServiceRequest-hem.fsh deleted file mode 100644 index d5c1fd50..00000000 --- a/input/fsh/instances/LabOrder-ServiceRequest-hem.fsh +++ /dev/null @@ -1,41 +0,0 @@ -Instance: LabOrder-ServiceRequest-hem -InstanceOf: ChOrfServiceRequest -Title: "LabOrder Service Request for Hematology Tests" -Description: "Example for Service Request Hematology Tests" -Usage: #example -* id = "LabOrder-hem" -* identifier[placerOrderIdentifier].type = $v2-0203#PLAC "Placer Identifier" -* identifier[placerOrderIdentifier].system = "urn:oid:2.16.756.5.30" -* identifier[placerOrderIdentifier].value = "123" - -* status = #active -* intent = #original-order -* category = $servicerequest-categories#RequestForLabExam "Anforderung Laboruntersuchung" -// code: what is being requested (procedure codes SNOMED CT, Test Codes LOINC), CodeableConcept -// code has an array of codings - -// Hematology -* code.coding[0] = $loinc#24360-0 "Hemoglobin and Hematocrit panel - Blood" -* code.coding[+] = $loinc#43113-0 "Hemoglobin electrophoresis panel in Blood" -// * code.coding[+] = $loinc#57021-8 "CBC W Auto Differential panel - Blood" -// * code.coding[+] = $loinc#58410-2 "CBC panel - Blood by Automated count" -// * code.coding[+] = $loinc#57023-4 "Auto Differential panel - Blood" - -// Coagulation -// * code.coding[+] = $loinc#55398-2 "Short Fibrin D-dimer FEU and DDU panel - Platelet poor plasma" -// * code.coding[+] = $loinc#38875-1 "INR in Platelet poor plasma or Blood by Coagulation assay" - -// Chemistry -// * code.coding[+] = $loinc#1988-5 "C reactive protein [Mass/Volume] in Serum or Plasma" -// * code.coding[+] = $loinc#76485-2 "C reactive protein [Moles/volume] in Serum or Plasma" - -// orderDetails: Additional order information, codeableConcept - -* priority = #urgent -* subject = Reference(Patient/HansGuggindieluft) -* requester = Reference(MarcMustermannArztpraxis) -* reasonCode = $sct#404223003 -* reasonCode.text = "Deep venous thrombosis of lower extremity" -* insurance = Reference(HealthInsuranceCard) -* specimen[0] = Reference(Specimen/Serum) "Serum specimen" -* specimen[+] = Reference(Specimen/Blood) \ No newline at end of file diff --git a/input/fsh/instances/LabOrder-ServiceRequest-potassium.fsh b/input/fsh/instances/LabOrder-ServiceRequest-potassium.fsh index 8166ef28..80beaa8b 100644 --- a/input/fsh/instances/LabOrder-ServiceRequest-potassium.fsh +++ b/input/fsh/instances/LabOrder-ServiceRequest-potassium.fsh @@ -3,7 +3,7 @@ InstanceOf: ChLabOrderSRSingletest Title: "LabOrder Service Request for Clinical Chemistry Tests" Description: "Example for Service Request of Potassium [Moles/volume] in Serum or Plasma" Usage: #example -* id = "LabOrder-sr-potassium" +* id = "LabOrder-potassium" * identifier[placerOrderIdentifier].type = $v2-0203#PLAC "Placer Identifier" * identifier[placerOrderIdentifier].system = "urn:oid:2.16.756.5.30" * identifier[placerOrderIdentifier].value = "123" @@ -28,8 +28,8 @@ Usage: #example * priority = #urgent * subject = Reference(Patient/HansGuggindieluft) * requester = Reference(MarcMustermannArztpraxis) -* reasonCode = $sct#404223003 -* reasonCode.text = "Deep venous thrombosis of lower extremity" +* reasonCode = $sct#90688005 +* reasonCode.text = "Chronic renal failure syndrome (disorder)" * insurance = Reference(HealthInsuranceCard) * specimen[0] = Reference(Specimen/Serum) "Serum specimen" // * specimen[+] = Reference(Specimen/Blood) \ No newline at end of file diff --git a/input/fsh/instances/LabOrder-ServiceRequest-cc.fsh b/input/fsh/instances/LabOrder-ServiceRequest-sodium.fsh similarity index 57% rename from input/fsh/instances/LabOrder-ServiceRequest-cc.fsh rename to input/fsh/instances/LabOrder-ServiceRequest-sodium.fsh index fbe07a44..dd0663cb 100644 --- a/input/fsh/instances/LabOrder-ServiceRequest-cc.fsh +++ b/input/fsh/instances/LabOrder-ServiceRequest-sodium.fsh @@ -1,12 +1,18 @@ -Instance: LabOrder-ServiceRequest-cc -InstanceOf: ChOrfServiceRequest +Instance: LabOrder-ServiceRequest-sodium +InstanceOf: ChLabOrderSRSingletest Title: "LabOrder Service Request for Clinical Chemistry Tests" -Description: "Example for Service Request due to suspected deep vein thrombosis" +Description: "Example for Service Request of Sodium [Moles/volume] in Serum or Plasma" Usage: #example -* id = "LabOrder-cc" +* id = "LabOrder-sodium" * identifier[placerOrderIdentifier].type = $v2-0203#PLAC "Placer Identifier" * identifier[placerOrderIdentifier].system = "urn:oid:2.16.756.5.30" * identifier[placerOrderIdentifier].value = "123" +* instantiatesCanonical = "http://fhir.ch/ig/ch-lab-order/lab-compendium/ActivityDefinition/procedure-sodium-serum" + +// ---- grouperID, must be repeated in all dependent SR ---- +* requisition.type = $v2-0203#PLAC "Placer Identifier" +* requisition.system = "urn:oid:2.16.756.5.30" +* requisition.value = "ReqID-1234567" * status = #active * intent = #original-order @@ -15,16 +21,15 @@ Usage: #example // What is being ordered // * basedOn = Reference(SR-example) // ---- Clinical Chemistry Tests ---- -* code.coding[0] = $loinc#1988-5 "C reactive protein [Mass/Volume] in Serum or Plasma" -* code.coding[+] = $loinc#76485-2 "C reactive protein [Moles/volume] in Serum or Plasma" +* code.coding[0] = $loinc#2951-2 "Sodium [Moles/volume] in Serum or Plasma" // orderDetails: Additional order information, codeableConcept * priority = #urgent * subject = Reference(Patient/HansGuggindieluft) * requester = Reference(MarcMustermannArztpraxis) -* reasonCode = $sct#404223003 -* reasonCode.text = "Deep venous thrombosis of lower extremity" +* reasonCode = $sct#90688005 +* reasonCode.text = "Chronic renal failure syndrome (disorder)" * insurance = Reference(HealthInsuranceCard) * specimen[0] = Reference(Specimen/Serum) "Serum specimen" // * specimen[+] = Reference(Specimen/Blood) \ No newline at end of file diff --git a/input/fsh/instances/LabOrder-ServiceRequest-urine24h-creatinine.fsh b/input/fsh/instances/LabOrder-ServiceRequest-urine24h-creatinine.fsh new file mode 100644 index 00000000..0bd3b972 --- /dev/null +++ b/input/fsh/instances/LabOrder-ServiceRequest-urine24h-creatinine.fsh @@ -0,0 +1,35 @@ +Instance: LabOrder-ServiceRequest-urine24h-creatinine +InstanceOf: ChLabOrderSRSingletest +Title: "LabOrder Service Request for Clinical Chemistry Tests" +Description: "Example for Service Request of Creatinine [Moles/volume] in Serum or Plasma" +Usage: #example +* id = "LabOrder-u24-creatinine" +* identifier[placerOrderIdentifier].type = $v2-0203#PLAC "Placer Identifier" +* identifier[placerOrderIdentifier].system = "urn:oid:2.16.756.5.30" +* identifier[placerOrderIdentifier].value = "123" +* instantiatesCanonical = "http://fhir.ch/ig/ch-lab-order/lab-compendium/ActivityDefinition/procedure-creatinine-serum" + +// ---- grouperID, must be repeated in all dependent SR ---- +* requisition.type = $v2-0203#PLAC "Placer Identifier" +* requisition.system = "urn:oid:2.16.756.5.30" +* requisition.value = "ReqID-1234567" + +* status = #active +* intent = #original-order +* category = $servicerequest-categories#RequestForLabExam "Anforderung Laboruntersuchung" + +// What is being ordered +// * basedOn = Reference(SR-example) +// ---- Clinical Chemistry Tests ---- +* code.coding[0] = $loinc#25886-3 "Creatinine [Moles/volume] in 24 hour Urine" + +// orderDetails: Additional order information, codeableConcept + +* priority = #urgent +* subject = Reference(Patient/HansGuggindieluft) +* requester = Reference(MarcMustermannArztpraxis) +* reasonCode = $sct#90688005 +* reasonCode.text = "Chronic renal failure syndrome (disorder)" +* insurance = Reference(HealthInsuranceCard) +* specimen[0] = Reference(Specimen/Serum) "Serum specimen" +// * specimen[+] = Reference(Specimen/Blood) \ No newline at end of file diff --git a/input/fsh/instances/LabOrder-form.fsh b/input/fsh/instances/LabOrder-form.fsh index 7b4a0502..3f7bd0a7 100644 --- a/input/fsh/instances/LabOrder-form.fsh +++ b/input/fsh/instances/LabOrder-form.fsh @@ -849,7 +849,7 @@ Usage: #example // ---- E4 Creatinine concentration serum ---- // =========================================== * item[=].item[=].item[=].item[=].item[+].linkId = "lab-compendium.Gantenbein.labServices.CreatinineSerum" // item[9][0][0][6] -* item[=].item[=].item[=].item[=].item[=].definition = "http://fhir.ch/ig/ch-lab-order/ActivityDefinition/procedure-serum-creatinine" +* item[=].item[=].item[=].item[=].item[=].definition = "http://fhir.ch/ig/ch-lab-order/ActivityDefinition/procedure-creatinine-serum" * item[=].item[=].item[=].item[=].item[=].text = "Analysen Labor Gantenbein Creatinine Serum" * item[=].item[=].item[=].item[=].item[=].code = $loinc#14682-9 "Creatinine [Moles/volume] in Serum or Plasma" * item[=].item[=].item[=].item[=].item[=].type = #boolean diff --git a/input/fsh/instances/lab-compendium/ActivityDefinition/procedure-serum-creatinine.fsh b/input/fsh/instances/lab-compendium/ActivityDefinition/procedure-creatinine-serum.fsh similarity index 92% rename from input/fsh/instances/lab-compendium/ActivityDefinition/procedure-serum-creatinine.fsh rename to input/fsh/instances/lab-compendium/ActivityDefinition/procedure-creatinine-serum.fsh index da02ab1f..e9655067 100644 --- a/input/fsh/instances/lab-compendium/ActivityDefinition/procedure-serum-creatinine.fsh +++ b/input/fsh/instances/lab-compendium/ActivityDefinition/procedure-creatinine-serum.fsh @@ -1,9 +1,9 @@ -Instance: procedure-serum-creatinine +Instance: procedure-creatinine-serum InstanceOf: ActivityDefinition Usage: #example * meta.profile = "http://hl7.org/fhir/uv/order-catalog/StructureDefinition/LabProcedureDefinition" * language = #en-US -* url = "http://fhir.ch/ig/ch-lab-order/lab-compendium/ActivityDefinition/procedure-serum-creatinine" +* url = "http://fhir.ch/ig/ch-lab-order/lab-compendium/ActivityDefinition/procedure-creatinine-serum" * version = "0.1.0" * name = "UrineCreatinineProcedure" * title = "Procedure - serum creatinine - venous blood" @@ -23,4 +23,4 @@ Usage: #example * topic[+] = $sct#275711006 "Serum chemistry test (procedure)" // SNOMED CT Specialty * kind = #ServiceRequest * code = $loinc#2160-0 "Creatinine [Mass/volume] in Serum or Plasma" -* observationResultRequirement = Reference(ObservationDefinition/observation-serum-creatinine) \ No newline at end of file +* observationResultRequirement = Reference(ObservationDefinition/observation-creatinine-serum) \ No newline at end of file diff --git a/input/fsh/instances/lab-compendium/ActivityDefinition/procedure-hemoglobin-panel.fsh b/input/fsh/instances/lab-compendium/ActivityDefinition/procedure-hemoglobin-panel.fsh new file mode 100644 index 00000000..aecc10ca --- /dev/null +++ b/input/fsh/instances/lab-compendium/ActivityDefinition/procedure-hemoglobin-panel.fsh @@ -0,0 +1,33 @@ +Instance: procedure-hemoglobin-panel +InstanceOf: ActivityDefinition +Description: "Service Hemoglobin Panel" +Usage: #example +* meta.profile = "http://hl7.org/fhir/uv/order-catalog/StructureDefinition/LabProcedureDefinition" +* language = #en-US +* url = "http://fhir.ch/ig/ch-lab-order/lab-compendium/ActivityDefinition/procedure-hemoglobin-panel" +* identifier.use = #official +* identifier.value = "hemoglobin_panel" +* version = "0.1.0" +* name = "HemoglobinPanelProcedure" +* title = "Procedure - Hemoglobin and Hematocrit panel - Blood" +* status = #draft +* experimental = true +* date = "2020-01-24T14:00:00+02:00" +* contact.telecom.system = #url +* contact.telecom.value = "http://hl7.org/Special/committees/orders" +* description = "Potassium measurement procedure on in-vitro serum specimen" +* jurisdiction = http://unstats.un.org/unsd/methods/m49/m49.htm#001 +* purpose = "This _ActivityDefinition_ specifies the input specimens and observations needed to perform potassium level test on serum, and the output observation. It is referenced by any _PlanDefinition_ representing a lab service focusing on this test." +* effectivePeriod.start = "2020-04-01" +* effectivePeriod.end = "2020-12-25" + +* topic[0] = $loinc#18723-7 "Hematology studies (set)" // LOINC Specialty code +* topic[+] = $sct#252275004 "Hematology test (procedure)" // SNOMED CT Specialty + +* topic[+] = $sct#441689006 "Measurement of total hemoglobin concentration (procedure)" +* kind = #ServiceRequest +* code = $loinc#59260-0 "Hemoglobin [Moles/volume] in Blood" +* priority = #routine +* timingDuration = 30 'mn' "minutes" +* specimenRequirement = Reference(SpecimenDefinition/specimen-blood-EDTA) +* observationResultRequirement = Reference(ObservationDefinition/observation-blood-hemoglobin) \ No newline at end of file diff --git a/input/fsh/instances/lab-compendium/ObservationDefinition/observation-blood-hemoglobin.fsh b/input/fsh/instances/lab-compendium/ObservationDefinition/observation-blood-hemoglobin.fsh new file mode 100644 index 00000000..5b1a671e --- /dev/null +++ b/input/fsh/instances/lab-compendium/ObservationDefinition/observation-blood-hemoglobin.fsh @@ -0,0 +1,24 @@ +Instance: observation-blood-hemoglobin +InstanceOf: ObservationDefinition +Description: "Hemoglobin blood [Moles/volume]" +Usage: #example +* meta.profile = "http://hl7.org/fhir/uv/order-catalog/StructureDefinition/LabObservationDefinition" +* language = #en-US +* category = http://terminology.hl7.org/CodeSystem/observation-category#laboratory "Laboratory" +* code = $loinc#59260-0 "Hemoglobin [Moles/volume] in Blood" +* permittedDataType[0] = #Quantity +* permittedDataType[+] = #string +* multipleResultsAllowed = false +* method.text = "Ion Selective Electrode (ISE)" +* preferredReportName = "Potassium" +* quantitativeDetails.customaryUnit = http://unitsofmeasure.org#g/L +* quantitativeDetails.unit = http://unitsofmeasure.org#mmol/L +* quantitativeDetails.decimalPrecision = 1 +* qualifiedInterval[0].category = #reference +* qualifiedInterval[=].range.low = 8.7 'mmol/L' +* qualifiedInterval[=].range.high = 11.2 'mmol/L' // male adult +* qualifiedInterval[=].context = http://terminology.hl7.org/CodeSystem/referencerange-meaning#normal "Normal Range" +* qualifiedInterval[=].context = http://terminology.hl7.org/CodeSystem/referencerange-meaning#normal "Normal Range" +* qualifiedInterval[=].age.low = 20 'a' + +// TODO observation-blood-hematocrit \ No newline at end of file diff --git a/input/fsh/instances/lab-compendium/ObservationDefinition/observation-serum-creatinine.fsh b/input/fsh/instances/lab-compendium/ObservationDefinition/observation-serum-creatinine.fsh index c9378d2f..1a2e4915 100644 --- a/input/fsh/instances/lab-compendium/ObservationDefinition/observation-serum-creatinine.fsh +++ b/input/fsh/instances/lab-compendium/ObservationDefinition/observation-serum-creatinine.fsh @@ -1,4 +1,4 @@ -Instance: observation-serum-creatinine +Instance: observation-creatinine-serum InstanceOf: ObservationDefinition Description: "Kreatinin [Masse/Volumen] im Serum oder Plasma" Usage: #example diff --git a/input/fsh/instances/lab-compendium/PlanDefinition/Creatinine-Clearance.fsh b/input/fsh/instances/lab-compendium/PlanDefinition/Creatinine-Clearance.fsh index 5f5f39a5..e5cc0ea2 100644 --- a/input/fsh/instances/lab-compendium/PlanDefinition/Creatinine-Clearance.fsh +++ b/input/fsh/instances/lab-compendium/PlanDefinition/Creatinine-Clearance.fsh @@ -55,5 +55,5 @@ Usage: #example * action.groupingBehavior = #logical-group * action.selectionBehavior = #all * action.definitionCanonical = "http://fhir.ch/ig/ch-lab-order/lab-compendium/ActivityDefinition/procedure-urine24h-creatinine-clearance" -* action.action[0].definitionCanonical = "http://fhir.ch/ig/ch-lab-order/lab-compendium/ActivityDefinition/procedure-serum-creatinine" +* action.action[0].definitionCanonical = "http://fhir.ch/ig/ch-lab-order/lab-compendium/ActivityDefinition/procedure-creatinine-serum" * action.action[+].definitionCanonical = "http://fhir.ch/ig/ch-lab-order/lab-compendium/ActivityDefinition/procedure-urine24h-creatinine" \ No newline at end of file diff --git a/input/fsh/instances/lab-compendium/PlanDefinition/Creatinine-serum.fsh b/input/fsh/instances/lab-compendium/PlanDefinition/Creatinine-serum.fsh index 03a75f23..df9fd1b2 100644 --- a/input/fsh/instances/lab-compendium/PlanDefinition/Creatinine-serum.fsh +++ b/input/fsh/instances/lab-compendium/PlanDefinition/Creatinine-serum.fsh @@ -43,4 +43,4 @@ Usage: #example * action.extension.url = "http://hl7.org/fhir/uv/order-catalog/StructureDefinition/SpecimenRequested" * action.code = $loinc#2160-0 "Creatinine [Mass/volume] in Serum or Plasma" * action.timingDuration = 1 'h' "hour" -* action.definitionCanonical = "http://fhir.ch/ig/ch-lab-order/lab-compendium/ActivityDefinition/procedure-serum-creatinine" \ No newline at end of file +* action.definitionCanonical = "http://fhir.ch/ig/ch-lab-order/lab-compendium/ActivityDefinition/procedure-creatinine-serum" \ No newline at end of file diff --git a/input/fsh/instances/lab-compendium/SpecimenDefinition/specimen-blood-EDTA.fsh b/input/fsh/instances/lab-compendium/SpecimenDefinition/specimen-blood-EDTA.fsh new file mode 100644 index 00000000..01b38988 --- /dev/null +++ b/input/fsh/instances/lab-compendium/SpecimenDefinition/specimen-blood-EDTA.fsh @@ -0,0 +1,26 @@ +Instance: specimen-blood-EDTA +InstanceOf: SpecimenDefinition +Description: "Blood EDTA" +Usage: #example +* meta.profile = "http://hl7.org/fhir/uv/order-catalog/StructureDefinition/LabSpecimenDefinition" +* language = #en-US +* typeCollected = $v2-0487#BLDV "Blood venous" +* collection = $sct#28520004 "Venipuncture for blood test" +* typeTested[0].type = $v2-0487#BLD "Whole blood" +* typeTested[=].preference = #preferred +* typeTested[=].container.material = $sct#61088005 "Plastic" +* typeTested[=].container.material.text = "plastic" +* typeTested[=].container.type = $sct#706049005 "Blood tube (physical object)" +* typeTested[=].container.cap = $container-cap#red +* typeTested[=].container.cap.text = "red cap" +* typeTested[=].container.description = "red cap plastic tube 10 mL" +* typeTested[=].container.capacity = 10 'mL' "milliliter" +* typeTested[=].container.minimumVolumeQuantity = 5 'mL' "milliliter" +* typeTested[=].retentionTime = 2 'h' "hour" +* typeTested[=].rejectionCriterion[0] = $rejection-criteria#hemolized +* typeTested[=].rejectionCriterion[=].text = "blood specimen hemolized" +* typeTested[=].rejectionCriterion[+] = $rejection-criteria#insufficient +* typeTested[=].rejectionCriterion[=].text = "insufficient quantity of specimen" +* typeTested[=].handling[0].temperatureQualifier.text = "room temperature or refrigerated" +* typeTested[=].handling[=].maxDuration = 2 'h' "hour" +// TODO exact values and container, maybe Sarstedt \ No newline at end of file diff --git a/input/fsh/instances/specimen/Urine-24h.fsh b/input/fsh/instances/specimen/Urine-24h.fsh index 5eb62af1..f654c815 100644 --- a/input/fsh/instances/specimen/Urine-24h.fsh +++ b/input/fsh/instances/specimen/Urine-24h.fsh @@ -9,7 +9,7 @@ Usage: #example * type = $sct#122575003 "Urine sample" * subject = Reference(Patient/FranzMuster) * receivedTime = "2020-08-16T16:40:17Z" -* request = Reference(LabOrder-ServiceRequest-generic) +* request = Reference(LabOrder-ServiceRequest-urine24h-creatinine) * collection.collector = Reference(Practitioner/MarcMustermann) * collection.collectedDateTime = "2020-08-16T06:40:17Z" * container.identifier.value = "4e88a-bc987-dd888-12345-urin" diff --git a/input/fsh/profiles/ChLabOrderSRSingletest.fsh b/input/fsh/profiles/ChLabOrderSRSingletest.fsh index c67137e0..d3d5f1d8 100644 --- a/input/fsh/profiles/ChLabOrderSRSingletest.fsh +++ b/input/fsh/profiles/ChLabOrderSRSingletest.fsh @@ -191,7 +191,7 @@ Usage: #example * identifier[placerOrderIdentifier].system = "urn:oid:2.16.756.5.30" * identifier[placerOrderIdentifier].value = "123" -* instantiatesCanonical = "http://fhir.ch/ig/ch-lab-order/lab-compendium/ActivityDefinition/procedure-serum-creatinine" +* instantiatesCanonical = "http://fhir.ch/ig/ch-lab-order/lab-compendium/ActivityDefinition/procedure-creatinine-serum" // ---- grouperID, must be repeated in all dependent SR ---- * requisition.type = $v2-0203#PLAC "Placer Identifier"