From bd5000caa32c6f2fd8e32f622072653230600b72 Mon Sep 17 00:00:00 2001 From: lpg-tech Date: Sat, 16 Dec 2023 19:06:29 +0100 Subject: [PATCH] use code as identifier of medication, replace indexes by names for practitioner identifier --- input/fsh/ALIASES.fsh | 1 + .../0-best-practice-ServiceRequest.fsh | 13 ++++--- .../3-gyn/3-gyn-ServiceRequest.fsh | 8 ++--- .../4-sepsis/4-sepsis-ServiceRequest.fsh | 12 +++---- .../fsh/instances/organization/Arztpraxis.fsh | 4 +-- .../instances/organization/Gruppenpraxis.fsh | 4 +-- .../organization/LaborGantenbein.fsh | 4 +-- .../instances/organization/LaborPipette.fsh | 4 +-- .../organization/LaborSchildknecht.fsh | 4 +-- .../instances/organization/PraxisSeeblick.fsh | 4 +-- .../organization/RegionalspitalZugersee.fsh | 4 +-- .../instances/practitioner/ArminAhrens.fsh | 8 ++--- .../instances/practitioner/EvaErlenmeyer.fsh | 8 ++--- .../fsh/instances/practitioner/MarcApgar.fsh | 8 ++--- .../instances/practitioner/MarcMustermann.fsh | 10 +++--- .../instances/practitioner/SabineMeier.fsh | 8 ++--- input/fsh/profiles/ChLabOrderMedication.fsh | 36 +++++++++++++++++++ 17 files changed, 92 insertions(+), 48 deletions(-) create mode 100644 input/fsh/profiles/ChLabOrderMedication.fsh diff --git a/input/fsh/ALIASES.fsh b/input/fsh/ALIASES.fsh index 10356a31..0034a42e 100644 --- a/input/fsh/ALIASES.fsh +++ b/input/fsh/ALIASES.fsh @@ -1,6 +1,7 @@ // Terminologies, CodeSystems Alias: $sct = http://snomed.info/sct Alias: $loinc = http://loinc.org +Alias: $atc = http://www.whocc.no/atc Alias: $v2-0203 = http://terminology.hl7.org/CodeSystem/v2-0203 Alias: $v2-0038 = http://terminology.hl7.org/CodeSystem/v2-0038 // orderStatus Alias: $v2-0074 = http://terminology.hl7.org/CodeSystem/v2-0074 // diagnosticServiceSectionId diff --git a/input/fsh/instances/casestudies/0-best-practice/0-best-practice-ServiceRequest.fsh b/input/fsh/instances/casestudies/0-best-practice/0-best-practice-ServiceRequest.fsh index 0e9ba7ca..151c3285 100644 --- a/input/fsh/instances/casestudies/0-best-practice/0-best-practice-ServiceRequest.fsh +++ b/input/fsh/instances/casestudies/0-best-practice/0-best-practice-ServiceRequest.fsh @@ -178,13 +178,18 @@ Usage: #example * subject = Reference(Patient/BirgitBlum) Instance: Liquemin -InstanceOf: Medication +InstanceOf: ChLabOrderMedication Description: "Example for best-practice of laboratory order" Usage: #example -//* contained = mmanu -* identifier.id = "123456789" -* code = $sct#412201008 "Porcine heparin (substance)" + +/*A code (or set of codes) that specify this medication, or a textual description if no code is available. Usage note: This could be a standard medication code such as a code from RxNorm, SNOMED CT, IDMP etc. It could also be a national or local formulary code, optionally with translations to other code systems.*/ + +* code.coding[GTIN] = urn:oid:2.51.1.1#7680388470010 "LIQUEMIN 5000 IE/0.5ml s.c. (aH 06/23)" +* code.coding[PHARMACODE] = urn:oid:2.16.756.5.30.2.6#6687498 +* code.coding[ATC] = $atc#B01AB01 "Heparin" +// * code = $sct#412201008 "Porcine heparin (substance)" * code.text = "LIQUEMIN 5000 IE/0.5ml s.c. (aH 06/23)" + * status = #active // * marketingAuthorizationHolder.reference = "#mmanu" // * doseForm.coding.system = "http://snomed.info/sct" diff --git a/input/fsh/instances/casestudies/3-gyn/3-gyn-ServiceRequest.fsh b/input/fsh/instances/casestudies/3-gyn/3-gyn-ServiceRequest.fsh index 089a2487..cdc3119f 100644 --- a/input/fsh/instances/casestudies/3-gyn/3-gyn-ServiceRequest.fsh +++ b/input/fsh/instances/casestudies/3-gyn/3-gyn-ServiceRequest.fsh @@ -101,10 +101,10 @@ InstanceOf: CHCorePractitioner Title: "Peter Pap" Description: "Practitioner, works at Gruppenpraxis, refers to 3-gyn" Usage: #example -* identifier[0].system = "urn:oid:2.51.1.3" // GLN -* identifier[=].value = "7601003050707" -* identifier[+].system = "urn:oid:2.16.756.5.30.1.123.100.2.1.1" // ZSR -* identifier[=].value = "A123305" +* identifier[GLN].system = "urn:oid:2.51.1.3" +* identifier[GLN].value = "7601003050707" +* identifier[ZSR].system = "urn:oid:2.16.756.5.30.1.123.100.2.1.1" +* identifier[ZSR].value = "A123305" * name.use = #official * name.family = "Pap" * name.given = "Peter" diff --git a/input/fsh/instances/casestudies/4-sepsis/4-sepsis-ServiceRequest.fsh b/input/fsh/instances/casestudies/4-sepsis/4-sepsis-ServiceRequest.fsh index 398db2bb..4499a736 100644 --- a/input/fsh/instances/casestudies/4-sepsis/4-sepsis-ServiceRequest.fsh +++ b/input/fsh/instances/casestudies/4-sepsis/4-sepsis-ServiceRequest.fsh @@ -77,10 +77,10 @@ InstanceOf: CHCorePractitioner Title: "Hans Hauser" Description: "Practitioner, Senior Physician at Kantonsspital, refers to 4-sepsis" Usage: #example -* identifier[0].system = "urn:oid:2.51.1.3" -* identifier[=].value = "7601000050700" -* identifier[+].system = "urn:oid:2.16.756.5.30.1.123.100.2.1.1" // ZSR -* identifier[=].value = "A123313" +* identifier[GLN].system = "urn:oid:2.51.1.3" +* identifier[GLN].value = "7601000050700" +* identifier[ZSR].system = "urn:oid:2.16.756.5.30.1.123.100.2.1.1" // ZSR +* identifier[ZSR].value = "A123313" * name.use = #official * name.family = "Hauser" * name.given = "Hans" @@ -99,8 +99,8 @@ InstanceOf: CHCoreOrganization Title: "Kantonsspital" Description: "Example for Hospital" Usage: #example -* identifier.system = "urn:oid:2.51.1.3" -* identifier.value = "7601000235503" +* identifier[GLN].system = "urn:oid:2.51.1.3" +* identifier[GLN].value = "7601000235503" * name = "Kantonsspital Zug" * telecom[0].system = #phone * telecom[=].value = "+41 45 334 55 66" diff --git a/input/fsh/instances/organization/Arztpraxis.fsh b/input/fsh/instances/organization/Arztpraxis.fsh index 1482105e..6bf48b17 100644 --- a/input/fsh/instances/organization/Arztpraxis.fsh +++ b/input/fsh/instances/organization/Arztpraxis.fsh @@ -5,8 +5,8 @@ InstanceOf: CHCoreOrganization Title: "Arztpraxis" Description: "Practice, refers to 2-pertussis and 3-gyn and 6-histopath" Usage: #example -* identifier.system = "urn:oid:2.51.1.3" -* identifier.value = "7601000235503" +* identifier[GLN].system = "urn:oid:2.51.1.3" +* identifier[GLN].value = "7601000235503" * name = "Arztpraxis Messen" * telecom[0].system = #phone * telecom[=].value = "+41555545566" diff --git a/input/fsh/instances/organization/Gruppenpraxis.fsh b/input/fsh/instances/organization/Gruppenpraxis.fsh index 161aaf9c..5d0c4096 100644 --- a/input/fsh/instances/organization/Gruppenpraxis.fsh +++ b/input/fsh/instances/organization/Gruppenpraxis.fsh @@ -3,8 +3,8 @@ InstanceOf: CHCoreOrganizationEPR Title: "Praxis Seeblick" Description: "Example for group practice" Usage: #example -* identifier.system = "urn:oid:2.51.1.3" -* identifier.value = "7601000241115" +* identifier[GLN].system = "urn:oid:2.51.1.3" +* identifier[GLN].value = "7601000241115" * name = "Gruppenpraxis Olten" * telecom[0].system = #phone * telecom[=].value = "+41555556677" diff --git a/input/fsh/instances/organization/LaborGantenbein.fsh b/input/fsh/instances/organization/LaborGantenbein.fsh index 4365ae06..da49931f 100644 --- a/input/fsh/instances/organization/LaborGantenbein.fsh +++ b/input/fsh/instances/organization/LaborGantenbein.fsh @@ -3,8 +3,8 @@ InstanceOf: CHCoreOrganization Title: "Labor Gantenbein" Description: "Laboratory Organization, refers to all Storyboards" Usage: #example -* identifier.system = "urn:oid:2.51.1.3" -* identifier.value = "7601055231116" +* identifier[GLN].system = "urn:oid:2.51.1.3" +* identifier[GLN].value = "7601055231116" * name = "Labor Gantenbein" * telecom[0].system = #phone * telecom[=].value = "+41223345566" diff --git a/input/fsh/instances/organization/LaborPipette.fsh b/input/fsh/instances/organization/LaborPipette.fsh index 02b696c0..7ca146e0 100644 --- a/input/fsh/instances/organization/LaborPipette.fsh +++ b/input/fsh/instances/organization/LaborPipette.fsh @@ -3,8 +3,8 @@ InstanceOf: CHCoreOrganization Title: "Labor Pipette" Description: "Laboratory Organization, refers to all Storyboards" Usage: #example -* identifier.system = "urn:oid:2.51.1.3" -* identifier.value = "7601000234407" +* identifier[GLN].system = "urn:oid:2.51.1.3" +* identifier[GLN].value = "7601000234407" * name = "Labor Pipette" * telecom[0].system = #phone * telecom[=].value = "+41223345566" diff --git a/input/fsh/instances/organization/LaborSchildknecht.fsh b/input/fsh/instances/organization/LaborSchildknecht.fsh index b3fc294e..b051e74f 100644 --- a/input/fsh/instances/organization/LaborSchildknecht.fsh +++ b/input/fsh/instances/organization/LaborSchildknecht.fsh @@ -3,8 +3,8 @@ InstanceOf: CHCoreOrganization Title: "Labor Schildknecht" Description: "Laboratory Organization, refers to all Storyboards" Usage: #example -* identifier.system = "urn:oid:2.51.1.3" -* identifier.value = "7601055231222" +* identifier[GLN].system = "urn:oid:2.51.1.3" +* identifier[GLN].value = "7601055231222" * name = "Labor Schildknecht" * telecom[0].system = #phone * telecom[=].value = "+41223345222" diff --git a/input/fsh/instances/organization/PraxisSeeblick.fsh b/input/fsh/instances/organization/PraxisSeeblick.fsh index 85a413c5..66e31b69 100644 --- a/input/fsh/instances/organization/PraxisSeeblick.fsh +++ b/input/fsh/instances/organization/PraxisSeeblick.fsh @@ -3,8 +3,8 @@ InstanceOf: CHCoreOrganization Title: "Praxis Seeblick" Description: "Example for practice" Usage: #example -* identifier.system = "urn:oid:2.51.1.3" -* identifier.value = "7601230235526" +* identifier[GLN].system = "urn:oid:2.51.1.3" +* identifier[GLN].value = "7601230235526" * name = "Arztpraxis Messen" * telecom[0].system = #phone * telecom[=].value = "44 567 78 90" diff --git a/input/fsh/instances/organization/RegionalspitalZugersee.fsh b/input/fsh/instances/organization/RegionalspitalZugersee.fsh index b70e0a85..c3b35550 100644 --- a/input/fsh/instances/organization/RegionalspitalZugersee.fsh +++ b/input/fsh/instances/organization/RegionalspitalZugersee.fsh @@ -3,8 +3,8 @@ InstanceOf: CHCoreOrganization Title: "Regionalspital Zugersee" Description: "Example for hospital" Usage: #example -* identifier.system = "urn:oid:2.51.1.3" -* identifier.value = "7601980235500" +* identifier[GLN].system = "urn:oid:2.51.1.3" +* identifier[GLN].value = "7601980235500" * name = "Regionalspital Zugersee" * telecom[0].system = #phone * telecom[=].value = "+41 45 334 55 66" diff --git a/input/fsh/instances/practitioner/ArminAhrens.fsh b/input/fsh/instances/practitioner/ArminAhrens.fsh index faf632f6..4e008105 100644 --- a/input/fsh/instances/practitioner/ArminAhrens.fsh +++ b/input/fsh/instances/practitioner/ArminAhrens.fsh @@ -3,10 +3,10 @@ InstanceOf: CHCorePractitioner Title: "Armin Ahrens" Description: "Practitioner, works in Arztpraxis, refers to 6-histopath" Usage: #example -* identifier[0].system = "urn:oid:2.51.1.3" -* identifier[=].value = "7601000050700" -* identifier[+].system = "urn:oid:2.16.756.5.30.1.123.100.2.1.1" // ZSR -* identifier[=].value = "A123309" +* identifier[GLN].system = "urn:oid:2.51.1.3" +* identifier[GLN].value = "7601000050700" +* identifier[ZSR].system = "urn:oid:2.16.756.5.30.1.123.100.2.1.1" // ZSR +* identifier[ZSR].value = "A123309" * name.use = #official * name.family = "Ahrens" * name.given = "Armin" diff --git a/input/fsh/instances/practitioner/EvaErlenmeyer.fsh b/input/fsh/instances/practitioner/EvaErlenmeyer.fsh index bcfd6f71..5fda6765 100644 --- a/input/fsh/instances/practitioner/EvaErlenmeyer.fsh +++ b/input/fsh/instances/practitioner/EvaErlenmeyer.fsh @@ -3,10 +3,10 @@ InstanceOf: CHCorePractitioner Title: "Eva Erlenmeyer" Description: "Specialist for Laboratory Medicine, works in Labor Pipette" Usage: #example -* identifier[0].system = "urn:oid:2.51.1.3" // GLN -* identifier[=].value = "7601000050717" -* identifier[+].system = "urn:oid:2.16.756.5.30.1.123.100.2.1.1" // ZSR -* identifier[=].value = "A123315" +* identifier[GLN].system = "urn:oid:2.51.1.3" +* identifier[GLN].value = "7601000050717" +* identifier[ZSR].system = "urn:oid:2.16.756.5.30.1.123.100.2.1.1" +* identifier[ZSR].value = "A123315" * name.use = #official * name.family = "Erlenmeyer" * name.given = "Eva" diff --git a/input/fsh/instances/practitioner/MarcApgar.fsh b/input/fsh/instances/practitioner/MarcApgar.fsh index d07e65f9..3f1503e8 100644 --- a/input/fsh/instances/practitioner/MarcApgar.fsh +++ b/input/fsh/instances/practitioner/MarcApgar.fsh @@ -1,10 +1,10 @@ Instance: MarcApgar InstanceOf: CHCorePractitioner Usage: #inline -* identifier[0].system = "urn:oid:2.51.1.3" // GLN -* identifier[=].value = "7601000050717" -* identifier[+].system = "urn:oid:2.16.756.5.30.1.123.100.2.1.1" // ZSR -* identifier[=].value = "A123311" +* identifier[GLN].system = "urn:oid:2.51.1.3" +* identifier[GLN].value = "7601000050717" +* identifier[ZSR].system = "urn:oid:2.16.756.5.30.1.123.100.2.1.1" +* identifier[ZSR].value = "A123311" * name.family = "Agpar" * name.given = "Marc" * telecom.system = #email diff --git a/input/fsh/instances/practitioner/MarcMustermann.fsh b/input/fsh/instances/practitioner/MarcMustermann.fsh index dccf2c6b..7d07487c 100644 --- a/input/fsh/instances/practitioner/MarcMustermann.fsh +++ b/input/fsh/instances/practitioner/MarcMustermann.fsh @@ -3,10 +3,12 @@ InstanceOf: CHCorePractitioner Title: "Marc Mustermann, Practitioner" Description: "Practitioner, works in Gruppenpraxis" Usage: #example -* identifier[0].system = "urn:oid:2.51.1.3" -* identifier[=].value = "7601000050700" -* identifier[+].system = "urn:oid:2.16.756.5.30.1.123.100.2.1.1" // ZSR -* identifier[=].value = "A123309" +* identifier[GLN].system = "urn:oid:2.51.1.3" +* identifier[GLN].value = "7601000050700" + +* identifier[ZSR].system = "urn:oid:2.16.756.5.30.1.123.100.2.1.1" +* identifier[ZSR].value = "A123309" + * name.use = #official * name.family = "Mustermann" * name.given = "Marc" diff --git a/input/fsh/instances/practitioner/SabineMeier.fsh b/input/fsh/instances/practitioner/SabineMeier.fsh index e0a5d637..3bde7427 100644 --- a/input/fsh/instances/practitioner/SabineMeier.fsh +++ b/input/fsh/instances/practitioner/SabineMeier.fsh @@ -3,10 +3,10 @@ InstanceOf: CHCorePractitioner Title: "Sabine Meier" Description: "Practitioner, works in Kantonsspital, refers to 4-sepsis" Usage: #example -* identifier[0].system = "urn:oid:2.51.1.3" // GLN -* identifier[=].value = "7601000034823" -* identifier[+].system = "urn:oid:2.16.756.5.30.1.123.100.2.1.1" // ZSR -* identifier[=].value = "A123321" +* identifier[GLN].system = "urn:oid:2.51.1.3" +* identifier[GLN].value = "7601000034823" +* identifier[ZSR].system = "urn:oid:2.16.756.5.30.1.123.100.2.1.1" +* identifier[ZSR].value = "A123321" * name.use = #official * name.family = "Meier" * name.given = "Sabine" diff --git a/input/fsh/profiles/ChLabOrderMedication.fsh b/input/fsh/profiles/ChLabOrderMedication.fsh new file mode 100644 index 00000000..afcf1ee4 --- /dev/null +++ b/input/fsh/profiles/ChLabOrderMedication.fsh @@ -0,0 +1,36 @@ +Profile : ChLabOrderMedication +Parent: Medication +Title: "CH LAB-Order Medication" +Description: "Medication in Lab Order" + +* code.coding ^slicing.discriminator.type = #value +* code.coding ^slicing.discriminator.path = "system" +* code.coding ^slicing.rules = #open +* code.coding ^short = "Code of the medication" +* code.coding contains + GTIN 0..* and + PHARMACODE 0..* and + ATC 0..* + +* code.coding[GTIN] ^short = "Use GTIN for Swiss products" +* code.coding[GTIN] ^mustSupport = true +* code.coding[GTIN].system 1..1 +* code.coding[GTIN].system = "urn:oid:2.51.1.1" (exactly) +* code.coding[GTIN].system ^short = "Global Trade Item Number (GS1)" +* code.coding[GTIN].code 1..1 + +* code.coding[PHARMACODE] ^short = "Numeric identification key for Swiss products" +* code.coding[PHARMACODE] ^mustSupport = true +* code.coding[PHARMACODE].system 1..1 +* code.coding[PHARMACODE].system = "urn:oid:2.16.756.5.30.2.6" (exactly) +* code.coding[PHARMACODE].system ^short = "Pharmacode(Schweiz)" +* code.coding[PHARMACODE].code 1..1 + +* code.coding[ATC] ^short = "Use ATC for foreign products" +* code.coding[ATC].system 1..1 +* code.coding[ATC].system = "http://www.whocc.no/atc" (exactly) +* code.coding[ATC].system ^short = "Anatomical Therapeutic Chemical (ATC) Classification" +* code.coding[ATC].code 1..1 + +* code.text 1.. MS +* code.text ^short = "Medication name" \ No newline at end of file