Skip to content

Commit

Permalink
Merge pull request #297 from hl7ch/develop
Browse files Browse the repository at this point in the history
Develop: add best-practice example, add a SR-only example for each study case
  • Loading branch information
lpg-tech committed Dec 6, 2023
2 parents 4d17863 + d8dd106 commit c648c62
Show file tree
Hide file tree
Showing 139 changed files with 3,955 additions and 1,328 deletions.
15 changes: 4 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,10 @@
* [CI Build develop](https://build.fhir.org/ig/hl7ch/ch-lab-order/branches/develop/index.html)
* [CI Build IG-ohne-Q](https://build.fhir.org/ig/hl7ch/ch-lab-order/branches/IG-ohne-Q/index.html)

This is a HL7 Swiss FHIR implementation guide.
The implementation guide is based on CH_ORF (v0.9.1 STU Draft)
Order & Referral by Form - Implementation Guide (CH:ORF) <http://fhir.ch/ig/ch-orf/index.html>

## Example resource and structure definition

* Franz Muster is an example of the patient **resource**: examples\patient\FranzMuster.xml
* The corresponding **structure definition** example is here: resources\structuredefinition\ch-name-patient.xml
* [TODO] Pipette Lab is an example of a Lab Organization
* The corresponding **structure definition** example is here: resources\structuredefinition\ch-name-organization.xml
* These two resources are referenced in resources\implementationguide\ch.fhir.ig.name.xml
This is a HL7 Swiss FHIR implementation guide. It describes mainly two use cases of laboratory orders.
The first one composes the order by the choices given from the Laboratory Information System (LIS) and stores them in the FHIR resource ServiceRequest.
The second use case offers Questionnaire (Form) curated by the responsible laboratory, which can be prepopulated with administratives informations by the clinic or pracice information system; the client, mostly the ordering practitioner, may complete the Questionnaire with the informations needed to fullfill the request of laboratory tests and test panels. He may add supplementary clinical informations from his information system, such as a problem list, or a medication list.
The second use case is based on CH_ORF Order & Referral by Form - Implementation Guide (CH:ORF) <http://fhir.ch/ig/ch-orf/index.html>

## Swiss Laboratory professional societies

Expand Down
2 changes: 1 addition & 1 deletion ballots/2.0.0_STU2-ballot.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ During the Ballot 10 issues were reported for CH LAB-Order:

## Typos
* [#275](https://github.com/hl7ch/ch-lab-order/issues/275) Home: Typos
* [#274](https://github.com/hl7ch/ch-lab-order/issues/274) CH LAB-ORDER Document Profile: Spelling
* [#274](https://github.com/hl7ch/ch-lab-order/issues/274) CH LAB-Order Document Profile: Spelling

## Broken Links
* [#272](https://github.com/hl7ch/ch-lab-order/issues/272) Case Studies in German
Expand Down
14 changes: 13 additions & 1 deletion input/fsh/ALIASES.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,25 @@ Alias: $sct = http://snomed.info/sct
Alias: $loinc = http://loinc.org
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
Alias: $v2-0371 = http://terminology.hl7.org/CodeSystem/v2-0371
Alias: $v2-0373 = http://terminology.hl7.org/CodeSystem/v2-0373
Alias: $v2-0487 = http://terminology.hl7.org/CodeSystem/v2-0487
Alias: $v2-0916 = http://terminology.hl7.org/CodeSystem/v2-0916
Alias: $v3-ActCode = http://terminology.hl7.org/CodeSystem/v3-ActCode
Alias: $v3-Confidentiality = http://terminology.hl7.org/CodeSystem/v3-Confidentiality
Alias: $v3-MediaType = http://terminology.hl7.org/CodeSystem/v3-mediaType
Alias: $handling-condition = http://terminology.hl7.org/CodeSystem/handling-condition
Alias: $condition-clinical = http://terminology.hl7.org/CodeSystem/condition-clinical
Alias: $condition-category = http://terminology.hl7.org/CodeSystem/condition-category
Alias: $condition-ver-status = http://terminology.hl7.org/CodeSystem/condition-ver-status

Alias: $container-cap = http://terminology.hl7.org/CodeSystem/container-cap
Alias: $rejection-criteria = http://terminology.hl7.org/CodeSystem/rejection-criteria
Alias: $condition-category = http://terminology.hl7.org/CodeSystem/condition-category
Alias: $substance-category = http://terminology.hl7.org/CodeSystem/substance-category
Alias: $report-codes = http://hl7.org/fhir/ValueSet/report-codes
Alias: $coverage-type = http://fhir.ch/ig/ch-orf/CodeSystem/ch-orf-cs-coveragetype // must by a CS!
Alias: $launchContext = http://hl7.org/fhir/uv/sdc/CodeSystem/launchContext
Alias: $microbiol-procedures = http://fhir.ch/ig/ch-lab-order/ValueSet/MicrobiolProcedures
Alias: $shareablevalueset = http://hl7.org/fhir/StructureDefinition/shareablevalueset
Expand All @@ -27,6 +36,9 @@ Alias: $religiousAffiliation = http://terminology.hl7.org/CodeSystem/v
Alias: $ch-orf-cs-consentstatus = http://fhir.ch/ig/ch-orf/CodeSystem/ch-orf-cs-consentstatus
Alias: $document-entry-language-code = http://fhir.ch/ig/ch-epr-term/ValueSet/DocumentEntry.languageCode

//---- Practitioner ----
Alias: $hcSpecialisation = http://fhir.ch/ig/ch-epr-term/ValueSet/HCProfessional.hcSpecialisation

// Order
Alias: $request-priority = http://hl7.org/fhir/request-priority
Alias: $servicerequest-categories = http://fhir.ch/ig/ch-lab-order/CodeSystem/ch-lab-order-servicerequest-categories
Expand All @@ -35,6 +47,6 @@ Alias: $documentEntryClassCode = http://fhir.ch/ig/ch-epr-term/ValueSet/
Alias: $documentEntryTypeCode = http://fhir.ch/ig/ch-epr-term/ValueSet/DocumentEntry.typeCode

// Encounter, appointment
Alias: $ChCoreCSEncounterType = http://fhir.ch/ig/ch-core/CodeSystem/bfs-medstats-21-encountertype
Alias: $CHCoreCSEncounterType = http://fhir.ch/ig/ch-core/CodeSystem/bfs-medstats-21-encountertype
Alias: $appointmentstatus = http://hl7.org/fhir/appointmentstatus
Alias: $bfs-medstats-21-encountertype = http://fhir.ch/ig/ch-core/CodeSystem/bfs-medstats-21-encountertype
2 changes: 1 addition & 1 deletion input/fsh/index.txt
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ KlebsiellaKeller Instance instances/KlebsiellaKell
LaborPipette Instance instances/Organization/LaborPipette.fsh
HansHauser Instance instances/Practitioner/HansHauser.fsh
MarcMustermann Instance instances/Practitioner/MarcMustermann.fsh
MarcMustermannArztpraxis Instance instances/MarcMustermannArztpraxis.fsh
MarcMustermannGruppenpraxis Instance instances/MarcMustermannGruppenpraxis.fsh
MarinaRubella Instance instances/Patient/MarinaRubella.fsh
OrfQrToBundle Instance instances/OrfQrToBundle.fsh
PauloPorcellini Instance instances/Practitioner/PauloPorcellini.fsh
Expand Down
39 changes: 39 additions & 0 deletions input/fsh/instances/DocumentReference.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
Instance: example
InstanceOf: ChLabDocumentReference
Usage: #example
// * contained = a2
* masterIdentifier.system = "urn:ietf:rfc:3986"
* masterIdentifier.value = "urn:oid:1.3.6.1.4.1.21367.2005.3.7"
* identifier.system = "urn:ietf:rfc:3986"
* identifier.value = "urn:oid:1.3.6.1.4.1.21367.2005.3.7.1234"
* status = #current
* docStatus = #preliminary
* type = $sct#371529009 "History and physical report (record artifact)"
* category = $sct#721927009 "Referral note (record artifact)"
* subject = Reference(Patient/HansGuggindieluft)
* date = "2005-12-24T09:43:41+11:00"
* author = Reference(PractitionerRole/MarcMustermannGruppenpraxis)
* authenticator = Reference(Organization/Gruppenpraxis)
* custodian = Reference(Organization/Gruppenpraxis)
* relatesTo.code = #appends
* relatesTo.target = Reference(example)
* description = "Physical"
* securityLabel = $v3-Confidentiality#N "normal"
* content.attachment.contentType = #application/hl7-v3+xml
* content.attachment.language = #en-US
* content.attachment.url = "http://example.org/xds/mhd/Binary/07a6483f-732b-461e-86b6-edb665c45510"
* content.attachment.size = 3654
* content.attachment.hash = "2jmj7l5rSw0yVb/vlWAYkK/YBwk="
* content.attachment.title = "Physical"
* content.attachment.creation = "2005-12-24T09:35:00+11:00"
// * content.format = urn:oid:1.3.6.1.4.1.19376.1.2.3#urn:ihe:pcc:handp:2008 "History and Physical Specification"
// * context.encounter = Reference(Encounter/xcda)
// * context.event = $eventCodes#T-D8200 "Arm"
// * context.period.start = "2004-12-23T08:00:00+11:00"
// * context.period.end = "2004-12-23T08:01:00+11:00"
// * context.facilityType = $healthcareFacilityTypeCodes#Outpatient "Outpatient"
// * context.practiceSetting = $practiceSettingCodes#"General Medicine" "General Medicine"
// * context.sourcePatientInfo = Reference(Patient/xcda)
// * context.related = Reference(Patient/xcda)
// * context.related.identifier.system = "urn:ietf:rfc:3986"
// * context.related.identifier.value = "urn:oid:1.3.6.1.4.1.21367.2005.3.7.2345"
Empty file removed input/fsh/instances/Form.fsh
Empty file.
4 changes: 2 additions & 2 deletions input/fsh/instances/HealthInsuranceCard.fsh
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ Usage: #example
* identifier.system = "http://ehic.com/insurer/123456789/member"
* identifier.value = "A123456780"
* status = #active
* type = $v3-ActCode#EHCPOL "extended healthcare"
* type = $coverage-type#KVG "According to KVG"
* subscriber = Reference(Patient/FranzMuster)
* beneficiary = Reference(Patient/FranzMuster)
* period.end = "2012-03-17"
* period.end = "2024-12-31"
* payor.identifier.system = "http://ehic.com/insurer"
* payor.identifier.value = "123456789"
40 changes: 40 additions & 0 deletions input/fsh/instances/LabOrder-Composition-by-Form.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
Instance: LabOrder-Composition-by-Form
InstanceOf: ChLabOrderCompositionByForm
Title: "CH LAB-Order Composition by Form"
Description: "Composition Questionnaire/QuestionnaireResponse and multiple SR"
Usage: #example
* id = "ch-lab-order-composition-by-form"
* meta.versionId = "1"
* meta.lastUpdated = "2021-02-18T17:04:38.520+00:00"
* text.status = #additional
* text.div = "<div xmlns='http://www.w3.org/1999/xhtml'><div>Laboratory Order</div></div>"
* extension[0].extension.url = "enterer"
* extension[=].extension.valueReference = Reference(MarcMustermannGruppenpraxis)
* extension[=].url = "http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-epr-dataenterer"

* extension[+].url = "http://fhir.ch/ig/ch-orf/StructureDefinition/ch-orf-urgentnoficationcontactforthisdocument"
* extension[=].valueReference = Reference(EvaErlenmeyerLaborPipette)

* extension[+].url = "http://fhir.ch/ig/ch-orf/StructureDefinition/ch-orf-urgentnoficationcontactfortheresponsetothisdocument"
* extension[=].valueReference = Reference(MarcMustermannGruppenpraxis)
* extension[+].url = "http://fhir.ch/ig/ch-orf/StructureDefinition/ch-orf-receiver"
* extension[=].valueReference = Reference(EvaErlenmeyerLaborPipette)
* extension[+].url = "http://fhir.ch/ig/ch-orf/StructureDefinition/ch-orf-copyreceiver"
* extension[=].valueReference = Reference(PeterPrestoGruppenpraxis)
* extension[+].url = "http://fhir.ch/ig/ch-orf/StructureDefinition/ch-orf-copyreceiver"
* extension[=].valueReference = Reference(Patient/HansGuggindieluft)

* status = #final
* type = $sct#721965002 "Laboratory order (record artifact)"
* category = $sct#721963009 "Order (record artifact)"
* subject = Reference(Patient/HansGuggindieluft)
* date = "2019-03-31T11:46:09+02:00"
* author = Reference(MarcMustermannGruppenpraxis)
* title = "Laborauftrag"
* section[orderReferral].title = "Auftrag für Laboruntersuchung"
* section[orderReferral].code = $loinc#93037-0 "Portable medical order form"
* section[orderReferral].text.status = #generated
* section[orderReferral].text.div = "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n Order-Referral-Form\n </div>"
* section[orderReferral].entry[Questionnaire] = Reference(LabOrder-form)
* section[orderReferral].entry[QuestionnaireResponse] = Reference(LabOrder-QuestionnaireResponse)
* section[orderReferral].entry[ServiceRequest] = Reference(LabOrder-ServiceRequest-potassium)
19 changes: 9 additions & 10 deletions input/fsh/instances/LabOrder-Composition.fsh
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
Instance: LabOrder-Composition
InstanceOf: ChLabOrderComposition
Title: "LabOrder"
Description: "Composition for multiple SR"
Title: "CH LAB-Order Composition by Service Request"
Description: "Composition multiple SR whithout Questionnaire/Quse"
Usage: #example
* id = "LabOrder"
* id = "ch-lab-order-composition"
* meta.versionId = "1"
* meta.lastUpdated = "2021-02-18T17:04:38.520+00:00"
* text.status = #additional
* text.div = "<div xmlns='http://www.w3.org/1999/xhtml'><div>Laboratory Order</div></div>"
* extension[0].extension.url = "enterer"
* extension[=].extension.valueReference = Reference(MarcMustermannArztpraxis)
* extension[=].extension.valueReference = Reference(MarcMustermannGruppenpraxis)
* extension[=].url = "http://fhir.ch/ig/ch-core/StructureDefinition/ch-ext-epr-dataenterer"

* extension[+].url = "http://fhir.ch/ig/ch-orf/StructureDefinition/ch-orf-urgentnoficationcontactforthisdocument"
* extension[=].valueReference = Reference(EvaErlenmeyerLaborPipette)

* extension[+].url = "http://fhir.ch/ig/ch-orf/StructureDefinition/ch-orf-urgentnoficationcontactfortheresponsetothisdocument"
* extension[=].valueReference = Reference(MarcMustermannArztpraxis)
* extension[=].valueReference = Reference(MarcMustermannGruppenpraxis)
* extension[+].url = "http://fhir.ch/ig/ch-orf/StructureDefinition/ch-orf-receiver"
* extension[=].valueReference = Reference(EvaErlenmeyerLaborPipette)
* extension[+].url = "http://fhir.ch/ig/ch-orf/StructureDefinition/ch-orf-copyreceiver"
Expand All @@ -25,16 +25,15 @@ Usage: #example
* extension[=].valueReference = Reference(Patient/HansGuggindieluft)

* status = #final
* type = $sct#419891008 "Record artifact (record artifact)"
* type = $sct#721965002 "Laboratory order (record artifact)"
* category = $sct#721963009 "Order (record artifact)"
* subject = Reference(Patient/HansGuggindieluft)
* date = "2019-03-31T11:46:09+02:00"
* author = Reference(MarcMustermannArztpraxis)
* author = Reference(MarcMustermannGruppenpraxis)
* title = "Laborauftrag"
* section[orderReferral].title = "Auftrag für Laboruntersuchung"
* section[orderReferral].code = $loinc#93037-0 "Portable medical order form"
// * section[orderReferral].code = $loinc#93037-0 "Portable medical order form"
* section[orderReferral].text.status = #generated
* section[orderReferral].text.div = "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n Order-Referral-Form\n </div>"
* section[orderReferral].entry[Questionnaire] = Reference(LabOrder-form)
* section[orderReferral].entry[QuestionnaireResponse] = Reference(LabOrder-QuestionnaireResponse)

* section[orderReferral].entry[ServiceRequest] = Reference(LabOrder-ServiceRequest-potassium)
67 changes: 67 additions & 0 deletions input/fsh/instances/LabOrder-Document-by-Form.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
Instance: LabOrder-Document-by-Form
InstanceOf: ChLabOrderDocumentByForm
Title: "CH LAB-Order Document by Form"
Description: "Example Bundle for referral/order due to suspected deep vein thrombosis"
Usage: #example
* id = "ch-lab-order-by-form"
* meta.versionId = "1"
* meta.lastUpdated = "2019-04-01T20:18:41.341+00:00"
* language = #en
* identifier.system = "urn:ietf:rfc:3986"
* identifier.value = "urn:uuid:26d3dff7-ab05-4737-a49c-5eccd33595f8"
* type = #document
* timestamp = "2019-04-01T20:18:41.341+00:00"

* entry[0].fullUrl = "http://example.com/fhir/Composition/ch-lab-order-composition-by-form"
* entry[=].resource = LabOrder-Composition-by-Form

* entry[+].fullUrl = "http://example.com/fhir/Patient/HansGuggindieluft"
* entry[=].resource = HansGuggindieluft
* entry[+].fullUrl = "http://example.com/fhir/Patient/FranzMuster"
* entry[=].resource = FranzMuster
* entry[+].fullUrl = "http://example.com/fhir/Patient/BeatBorer"
* entry[=].resource = BeatBorer

* entry[+].fullUrl = "http://example.com/fhir/Practitioner/MarcMustermann"
* entry[=].resource = MarcMustermann
* entry[+].fullUrl = "http://example.com/fhir/Organization/Gruppenpraxis"
* entry[=].resource = Gruppenpraxis
* entry[+].fullUrl = "http://example.com/fhir/PractitionerRole/MarcMustermannGruppenpraxis"
* entry[=].resource = MarcMustermannGruppenpraxis

* entry[+].fullUrl = "http://example.com/fhir/Practitioner/EvaErlenmeyer"
* entry[=].resource = EvaErlenmeyer
* entry[+].fullUrl = "http://example.com/fhir/Organization/LaborPipette"
* entry[=].resource = LaborPipette
* entry[+].fullUrl = "http://example.com/fhir/PractitionerRole/EvaErlenmeyerLaborPipette"
* entry[=].resource = EvaErlenmeyerLaborPipette

* entry[+].fullUrl = "http://example.com/fhir/Practitioner/PeterPresto"
* entry[=].resource = PeterPresto
// * entry[+].fullUrl = "http://example.com/fhir/Organization/Gruppenpraxis"
// * entry[=].resource = Gruppenpraxis
* entry[+].fullUrl = "http://example.com/fhir/PractitionerRole/PeterPrestoGruppenpraxis"
* entry[=].resource = PeterPrestoGruppenpraxis

* entry[+].fullUrl = "http://example.com/fhir/Coverage/HealthInsuranceCard"
* entry[=].resource = HealthInsuranceCard

* entry[+].fullUrl = "http://example.com/fhir/Specimen/Serum"
* entry[=].resource = Serum

* entry[+].fullUrl = "http://example.com/fhir/Questionnaire/LabOrder-form" // entry[8]
* entry[=].resource = LabOrder-form
* entry[+].fullUrl = "http://example.com/fhir/QuestionnaireResponse/LabOrder-qr" //entry[9]
* entry[=].resource = LabOrder-QuestionnaireResponse

* entry[+].fullUrl = "http://example.com/fhir/ServiceRequest/LabOrder-potassium" // entry[10]
* entry[=].resource = LabOrder-ServiceRequest-potassium

// // ---- SR for Coagulation Tests ----
// * entry[+].fullUrl = "http://example.com/fhir/ServiceRequest/LabOrder-coag"
// * entry[=].resource = LabOrder-ServiceRequest-coag
//
// // ---- SR for Coagulation Tests ----
// * entry[+].fullUrl = "http://example.com/fhir/ServiceRequest/LabOrder-cc"
// * entry[=].resource = LabOrder-ServiceRequest-cc

Loading

0 comments on commit c648c62

Please sign in to comment.