Skip to content

Commit

Permalink
Merge pull request #137 from ahdis/susceptibility
Browse files Browse the repository at this point in the history
add Susceptibility for 1.9.0
  • Loading branch information
oliveregger authored Feb 18, 2025
2 parents 47f96ca + 4b0e134 commit dd96551
Show file tree
Hide file tree
Showing 33 changed files with 1,235 additions and 17 deletions.
Binary file modified input/.DS_Store
Binary file not shown.
5 changes: 4 additions & 1 deletion input/fsh/ALIAS.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,7 @@ Alias: $ch-elm-status = http://fhir.ch/ig/ch-elm/Value


Alias: $data-absent-reason = http://hl7.org/fhir/StructureDefinition/data-absent-reason

Alias: $data-absent-reason-cs = http://terminology.hl7.org/CodeSystem/data-absent-reason
Alias: $ch-elm-results-laboratory-observation = http://fhir.ch/ig/ch-elm/ValueSet/ch-elm-results-laboratory-observation
Alias: $ch-elm-results-laboratory-observation-geno = http://fhir.ch/ig/ch-elm/ValueSet/ch-elm-results-laboratory-observation-geno
Alias: $ch-elm-results-laboratory-observation-susc = http://fhir.ch/ig/ch-elm/ValueSet/ch-elm-results-laboratory-observation-susc
98 changes: 98 additions & 0 deletions input/fsh/examples/61Doc-Tb-Susceptibility.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
Instance: 61Doc-Tb-Susceptibility
InstanceOf: ChElmDocumentStrict
Usage: #example
Title: "61Doc - Tuberculosis Susceptibility"
Description: "Example for a CH ELM Document: Laboratory Report"
* identifier.system = "urn:ietf:rfc:3986"
* identifier.value = "urn:uuid:2821b775-16f8-4910-bba8-1b7d99627f3e"
* type = #document
* timestamp = "2024-09-10T12:00:00+02:00"
* entry[0].fullUrl = "http://test.fhir.ch/r4/Composition/61Comp-Susceptibility"
* entry[=].resource = 61Comp-Susceptibility
* entry[+].fullUrl = "http://test.fhir.ch/r4/DiagnosticReport/61DR-Susceptibility"
* entry[=].resource = 61DR-Susceptibility
* entry[+].fullUrl = "http://test.fhir.ch/r4/Patient/Pat-001"
* entry[=].resource = Pat-001
* entry[+].fullUrl = "http://test.fhir.ch/r4/Observation/61Obs-Susceptibility"
* entry[=].resource = 61Obs-Susceptibility
* entry[+].fullUrl = "http://test.fhir.ch/r4/Specimen/61Spec-Susceptibility"
* entry[=].resource = 61Spec-Susceptibility
* entry[+].fullUrl = "http://test.fhir.ch/r4/ServiceRequest/61SR-Susceptibility"
* entry[=].resource = 61SR-Susceptibility
* entry[+].fullUrl = "http://test.fhir.ch/r4/Organization/1Org-Labor"
* entry[=].resource = 1Org-Labor
* entry[+].fullUrl = "http://test.fhir.ch/r4/PractitionerRole/PR-PeterHauser"
* entry[=].resource = PR-PeterHauser
* entry[+].fullUrl = "http://test.fhir.ch/r4/Practitioner/Pract-PeterHauser"
* entry[=].resource = Pract-PeterHauser
* entry[+].fullUrl = "http://test.fhir.ch/r4/Organization/Org-PeterHauser"
* entry[=].resource = Org-PeterHauser

Instance: 61Comp-Susceptibility
InstanceOf: ChElmComposition
Usage: #inline
* language = #de-CH
* identifier.system = "urn:ietf:rfc:3986"
* identifier.value = "urn:uuid:2821b775-16f8-4910-bba8-1b7d99627f3e"
* status = #final
* type.coding[0].version = "http://snomed.info/sct/2011000195101"
* type.coding[=] = $sct#4241000179101 "Laborbericht"
* type.coding[+] = $loinc#11502-2 "Laboratory report"
* subject = Reference(Pat-001)
* date = "2024-09-10T12:00:00+02:00"
* author = Reference(1Org-Labor)
* title = "Laborbericht vom 10.09.2024"
* section.title = "Resistenztestung"
* section.code = $loinc#18769-0 "Microbial susceptibility tests Set"
* section.entry = Reference(61Obs-Susceptibility)

Instance: 61DR-Susceptibility
InstanceOf: ChElmDiagnosticReport
Usage: #inline
* extension[DiagnosticReportCompositionR5].url = "http://hl7.org/fhir/5.0/StructureDefinition/extension-DiagnosticReport.composition"
* extension[DiagnosticReportCompositionR5].valueReference = Reference(Composition/61Comp-Susceptibility)
* identifier.system = "urn:ietf:rfc:3986"
* identifier.value = "urn:uuid:2821b775-16f8-4910-bba8-1b7d99627f3e"
* basedOn = Reference(61SR-Susceptibility)
* status = #final
* code = $loinc#11502-2 "Laboratory report"
* subject = Reference(Pat-001)
* performer = Reference(1Org-Labor)
* specimen = Reference(61Spec-Susceptibility)
* result = Reference(61Obs-Susceptibility)

Instance: 61SR-Susceptibility
InstanceOf: ChElmServiceRequestLaboratoryOrder
Usage: #inline
* identifier.value = "26500923622"
* status = #completed
* intent = #order
* code = $loinc#29579-0 "Mycobacterial susceptibility panel by Method for Slow-growing mycobacteria"
* subject = Reference(Pat-001)
* requester = Reference(PR-PeterHauser)
* specimen = Reference(61Spec-Susceptibility)

Instance: 61Spec-Susceptibility
InstanceOf: ChElmSpecimen
Usage: #inline
* subject = Reference(Pat-001)
* collection.collectedDateTime = "2024-09-08"

Instance: 61Obs-Susceptibility
InstanceOf: ChElmObservationResultsLaboratorySusceptibilityStrict
Usage: #inline
* status = #final
* category[laboratory] = $observation-category#laboratory "Laboratory"
* code = $loinc#29579-0 "Mycobacterial susceptibility panel by Method for Slow-growing mycobacteria"
* subject = Reference(Pat-001)
* effectiveDateTime = "2024-09-10T14:20:00+02:00"
* performer = Reference(1Org-Labor)
* specimen = Reference(61Spec-Susceptibility)

* component[0].code = $loinc#LP15831-8 "Isoniazid"
* component[=].valueQuantity = 0.4 'mg/L' "mg/L"
* component[=].interpretation = $v3-ObservationInterpretation#S "Susceptible"

* component[+].code = $loinc#LP16274-0 "rifAMPin"
* component[=].valueQuantity = 0.1 'mg/L' "mg/L"
* component[=].interpretation = $v3-ObservationInterpretation#R "Resistant"
98 changes: 98 additions & 0 deletions input/fsh/examples/62Doc-CPE-Susceptibility.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
Instance: 62Doc-Cpe-Susceptibility
InstanceOf: ChElmDocumentStrict
Usage: #example
Title: "62Doc - Tuberculosis Susceptibility"
Description: "Example for a CH ELM Document: Laboratory Report"
* identifier.system = "urn:ietf:rfc:3986"
* identifier.value = "urn:uuid:a41baeb1-15b1-4572-b6a6-e06f6b935fb2"
* type = #document
* timestamp = "2024-09-10T12:00:00+02:00"
* entry[0].fullUrl = "http://test.fhir.ch/r4/Composition/62Comp-Susceptibility"
* entry[=].resource = 62Comp-Susceptibility
* entry[+].fullUrl = "http://test.fhir.ch/r4/DiagnosticReport/62DR-Susceptibility"
* entry[=].resource = 62DR-Susceptibility
* entry[+].fullUrl = "http://test.fhir.ch/r4/Patient/Pat-001"
* entry[=].resource = Pat-001
* entry[+].fullUrl = "http://test.fhir.ch/r4/Observation/62Obs-Susceptibility"
* entry[=].resource = 62Obs-Susceptibility
* entry[+].fullUrl = "http://test.fhir.ch/r4/Specimen/62Spec-Susceptibility"
* entry[=].resource = 62Spec-Susceptibility
* entry[+].fullUrl = "http://test.fhir.ch/r4/ServiceRequest/62SR-Susceptibility"
* entry[=].resource = 62SR-Susceptibility
* entry[+].fullUrl = "http://test.fhir.ch/r4/Organization/1Org-Labor"
* entry[=].resource = 1Org-Labor
* entry[+].fullUrl = "http://test.fhir.ch/r4/PractitionerRole/PR-PeterHauser"
* entry[=].resource = PR-PeterHauser
* entry[+].fullUrl = "http://test.fhir.ch/r4/Practitioner/Pract-PeterHauser"
* entry[=].resource = Pract-PeterHauser
* entry[+].fullUrl = "http://test.fhir.ch/r4/Organization/Org-PeterHauser"
* entry[=].resource = Org-PeterHauser

Instance: 62Comp-Susceptibility
InstanceOf: ChElmComposition
Usage: #inline
* language = #de-CH
* identifier.system = "urn:ietf:rfc:3986"
* identifier.value = "urn:uuid:a41baeb1-15b1-4572-b6a6-e06f6b935fb2"
* status = #final
* type.coding[0].version = "http://snomed.info/sct/2011000195101"
* type.coding[=] = $sct#4241000179101 "Laborbericht"
* type.coding[+] = $loinc#11502-2 "Laboratory report"
* subject = Reference(Pat-001)
* date = "2024-09-10T12:00:00+02:00"
* author = Reference(1Org-Labor)
* title = "Laborbericht vom 10.09.2024"
* section.title = "Resistenztestung"
* section.code = $loinc#18769-0 "Microbial susceptibility tests Set"
* section.entry = Reference(62Obs-Susceptibility)

Instance: 62DR-Susceptibility
InstanceOf: ChElmDiagnosticReport
Usage: #inline
* extension[DiagnosticReportCompositionR5].url = "http://hl7.org/fhir/5.0/StructureDefinition/extension-DiagnosticReport.composition"
* extension[DiagnosticReportCompositionR5].valueReference = Reference(Composition/62Comp-Susceptibility)
* identifier.system = "urn:ietf:rfc:3986"
* identifier.value = "urn:uuid:a41baeb1-15b1-4572-b6a6-e06f6b935fb2"
* basedOn = Reference(62SR-Susceptibility)
* status = #final
* code = $loinc#11502-2 "Laboratory report"
* subject = Reference(Pat-001)
* performer = Reference(1Org-Labor)
* specimen = Reference(62Spec-Susceptibility)
* result = Reference(62Obs-Susceptibility)

Instance: 62SR-Susceptibility
InstanceOf: ChElmServiceRequestLaboratoryOrder
Usage: #inline
* identifier.value = "26500923622"
* status = #completed
* intent = #order
* code = $sct#734201007 "Carbapenem resistant Enterobacter cloacae complex (organism)"
* subject = Reference(Pat-001)
* requester = Reference(PR-PeterHauser)
* specimen = Reference(62Spec-Susceptibility)

Instance: 62Spec-Susceptibility
InstanceOf: ChElmSpecimen
Usage: #inline
* subject = Reference(Pat-001)
* collection.collectedDateTime = "2024-09-08"

Instance: 62Obs-Susceptibility
InstanceOf: ChElmObservationResultsLaboratory
Usage: #inline
* status = #final
* category[laboratory] = $observation-category#laboratory "Laboratory"
* code = $sct#734201007 "Carbapenem resistant Enterobacter cloacae complex (organism)"
* subject = Reference(Pat-001)
* effectiveDateTime = "2024-09-10T14:20:00+02:00"
* performer = Reference(1Org-Labor)
* specimen = Reference(62Spec-Susceptibility)

* component[0].code = $loinc#LP15795-5 "Imipenem"
* component[=].interpretation = $v3-ObservationInterpretation#R "Resistant" // #R "Resistant" | #S "Susceptible"
* component[=].dataAbsentReason = $data-absent-reason-cs#not-applicable

* component[+].code = $loinc#LP95252-0 "Doripenem"
* component[=].valueQuantity = 0.1 'mg/L' "milligram per liter"
* component[=].interpretation = $v3-ObservationInterpretation#R "Resistant" // #R "Resistant" | #S "Susceptible"
94 changes: 94 additions & 0 deletions input/fsh/examples/63Doc-Tb-Genotyping.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
Instance: 63Doc-Tb-Genotyping
InstanceOf: ChElmDocumentStrict
Usage: #example
Title: "63Doc - Tuberculosis Genotyping"
Description: "Example for a CH ELM Document: Laboratory Report"
* identifier.system = "urn:ietf:rfc:3986"
* identifier.value = "urn:uuid:0ed5f82b-06e9-427b-8546-e841a33d49e8"
* type = #document
* timestamp = "2024-09-10T12:00:00+02:00"
* entry[0].fullUrl = "http://test.fhir.ch/r4/Composition/63Comp-Genotyping"
* entry[=].resource = 63Comp-Genotyping
* entry[+].fullUrl = "http://test.fhir.ch/r4/DiagnosticReport/63DR-Genotyping"
* entry[=].resource = 63DR-Genotyping
* entry[+].fullUrl = "http://test.fhir.ch/r4/Patient/Pat-001"
* entry[=].resource = Pat-001
* entry[+].fullUrl = "http://test.fhir.ch/r4/Observation/63Obs-Genotyping"
* entry[=].resource = 63Obs-Genotyping
* entry[+].fullUrl = "http://test.fhir.ch/r4/Specimen/63Spec-Genotyping"
* entry[=].resource = 63Spec-Genotyping
* entry[+].fullUrl = "http://test.fhir.ch/r4/ServiceRequest/63SR-Genotyping"
* entry[=].resource = 63SR-Genotyping
* entry[+].fullUrl = "http://test.fhir.ch/r4/Organization/1Org-Labor"
* entry[=].resource = 1Org-Labor
* entry[+].fullUrl = "http://test.fhir.ch/r4/PractitionerRole/PR-PeterHauser"
* entry[=].resource = PR-PeterHauser
* entry[+].fullUrl = "http://test.fhir.ch/r4/Practitioner/Pract-PeterHauser"
* entry[=].resource = Pract-PeterHauser
* entry[+].fullUrl = "http://test.fhir.ch/r4/Organization/Org-PeterHauser"
* entry[=].resource = Org-PeterHauser

Instance: 63Comp-Genotyping
InstanceOf: ChElmComposition
Usage: #inline
* language = #de-CH
* identifier.system = "urn:ietf:rfc:3986"
* identifier.value = "urn:uuid:0ed5f82b-06e9-427b-8546-e841a33d49e8"
* status = #final
* type.coding[0].version = "http://snomed.info/sct/2011000195101"
* type.coding[=] = $sct#4241000179101 "Laborbericht"
* type.coding[+] = $loinc#11502-2 "Laboratory report"
* subject = Reference(Pat-001)
* date = "2024-09-10T12:00:00+02:00"
* author = Reference(1Org-Labor)
* title = "Laborbericht vom 10.09.2024"
* section.title = "Genotyping"
* section.code = $sct#726528006 "Genotyping (qualifier value)"
* section.entry = Reference(63Obs-Genotyping)

Instance: 63DR-Genotyping
InstanceOf: ChElmDiagnosticReport
Usage: #inline
* extension[DiagnosticReportCompositionR5].url = "http://hl7.org/fhir/5.0/StructureDefinition/extension-DiagnosticReport.composition"
* extension[DiagnosticReportCompositionR5].valueReference = Reference(Composition/63Comp-Genotyping)
* identifier.system = "urn:ietf:rfc:3986"
* identifier.value = "urn:uuid:0ed5f82b-06e9-427b-8546-e841a33d49e8"
* basedOn = Reference(63SR-Genotyping)
* status = #final
* code = $loinc#11502-2 "Laboratory report"
* subject = Reference(Pat-001)
* performer = Reference(1Org-Labor)
* specimen = Reference(63Spec-Genotyping)
* result = Reference(63Obs-Genotyping)

Instance: 63SR-Genotyping
InstanceOf: ChElmServiceRequestLaboratoryOrder
Usage: #inline
* identifier.value = "26500923622"
* status = #completed
* intent = #order
* code = $loinc#29579-0 "Mycobacterial Genotyping panel by Method for Slow-growing mycobacteria"
* subject = Reference(Pat-001)
* requester = Reference(PR-PeterHauser)
* specimen = Reference(63Spec-Genotyping)

Instance: 63Spec-Genotyping
InstanceOf: ChElmSpecimen
Usage: #inline
* subject = Reference(Pat-001)
* collection.collectedDateTime = "2024-09-08"

Instance: 63Obs-Genotyping
InstanceOf: ChElmObservationResultsLaboratory
Usage: #inline
* status = #final
* category[laboratory] = $observation-category#laboratory "Laboratory"
* code = $sct#113861009 "Mycobacterium tuberculosis (organism)"
* subject = Reference(Pat-001)
* effectiveDateTime = "2024-09-10T14:20:00+02:00"
* performer = Reference(1Org-Labor)
* specimen = Reference(63Spec-Genotyping)

* component[0].code = $loinc#63072-3 "Mycobacterium tuberculosis inhA gene isoniazid low level resistance mutation [Presence] by Molecular method"
* component[0].dataAbsentReason = $data-absent-reason-cs#not-applicable
* component[=].interpretation = $sct#52101004 "Present (qualifier value)"
Loading

0 comments on commit dd96551

Please sign in to comment.