Skip to content

Commit

Permalink
Add Dispense Operation Definition with examples
Browse files Browse the repository at this point in the history
  • Loading branch information
florianschoffke committed Jan 25, 2024
1 parent 7c9007c commit 338796d
Show file tree
Hide file tree
Showing 3 changed files with 259 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
{
"resourceType": "MedicationDispense",
"id": "cd6a4805-9861-412e-91aa-ec6af3f03d87",
"meta": {
"profile": [
"https://gematik.de/fhir/erp/StructureDefinition/GEM_ERP_PR_MedicationDispense|1.3"
]
},
"contained": [
{
"resourceType": "Medication",
"id": "001413e4-a5e9-48da-9b07-c17bab476407",
"meta": {
"profile": [
"https://fhir.kbv.de/StructureDefinition/KBV_PR_ERP_Medication_PZN|1.1.0"
]
},
"extension": [
{
"url": "https://fhir.kbv.de/StructureDefinition/KBV_EX_Base_Medication_Type",
"valueCodeableConcept": {
"coding": [
{
"system": "http://snomed.info/sct",
"version": "http://snomed.info/sct/900000000000207008/version/20220331",
"code": "763158003",
"display": "Medicinal product (product)"
}
]
}
},
{
"url": "https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_Medication_Category",
"valueCoding": {
"system": "https://fhir.kbv.de/CodeSystem/KBV_CS_ERP_Medication_Category",
"code": "00"
}
},
{
"url": "https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_Medication_Vaccine",
"valueBoolean": false
},
{
"url": "http://fhir.de/StructureDefinition/normgroesse",
"valueCode": "N1"
}
],
"code": {
"coding": [
{
"system": "http://fhir.de/CodeSystem/ifa/pzn",
"code": "06313728"
}
],
"text": "Sumatriptan-1a Pharma 100 mg Tabletten"
},
"form": {
"coding": [
{
"system": "https://fhir.kbv.de/CodeSystem/KBV_CS_SFHIR_KBV_DARREICHUNGSFORM",
"code": "TAB"
}
]
},
"amount": {
"numerator": {
"unit": "St",
"extension": [
{
"url": "https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_Medication_PackagingSize",
"valueString": "20 St."
}
]
},
"denominator": {
"value": 1
}
}
}
],
"identifier": [
{
"system": "https://gematik.de/fhir/erp/NamingSystem/GEM_ERP_NS_PrescriptionId",
"value": "160.000.033.491.280.78"
}
],
"status": "completed",
"medicationReference": {
"reference": "#001413e4-a5e9-48da-9b07-c17bab476407"
},
"subject": {
"identifier": {
"system": "http://fhir.de/sid/gkv/kvid-10",
"value": "X234567890"
}
},
"performer": [
{
"actor": {
"identifier": {
"system": "https://gematik.de/fhir/sid/telematik-id",
"value": "3-abc-1234567890"
}
}
}
],
"whenHandedOver": "2022-02-28",
"dosageInstruction": [
{
"text": "1-0-1-0"
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
{
"resourceType": "OperationDefinition",
"id": "DispenseOperation",
"url": "https://gematik.de/fhir/erp/OperationDefinition/DispenseOperationDefinition",
"version": "1.3.0",
"name": "Dispense",
"status": "draft",
"kind": "operation",
"date": "2022-02-01",
"description": "The operation $dispense lets the pharmacy perform a dispense for a medication without changing the status of the task. This actions lets a frontend display that a medication has been dispensed before it is closed by the pharmacy.",
"affectsState": true,
"code": "dispense",
"resource": [
"Task"
],
"system": false,
"type": false,
"instance": true,
"outputProfile": "https://gematik.de/fhir/erp/StructureDefinition/GEM_ERP_PR_MedicationDispense",
"parameter": [
{
"name": "secret",
"use": "in",
"min": 1,
"max": "1",
"documentation": "The secret parameter that lets a pharmacy access the Task exclusively as part of the URL. This paramter must be equal to the value stored in Task.identifier:Secret. Otherwise the Operation aborts with an error.",
"type": "string"
},
{
"name": "MedicationDispense",
"use": "in",
"min": 1,
"max": "1",
"documentation": "Information on dispensed Medication(s)",
"type": "canonical",
"targetProfile": [
"http://hl7.org/fhir/StructureDefinition/MedicationDispense|1.3",
"https://gematik.de/fhir/erp/StructureDefinition/GEM_ERP_PR_CloseOperationInputBundle|1.3"
]
},
{
"name": "MedicationDispense",
"use": "out",
"min": 1,
"max": "1",
"documentation": "The MedicationDispense that has been transmitted by the pharmacy as a confirmation, that it has been successfully uploaded.",
"type": "canonical",
"targetProfile": [
"http://hl7.org/fhir/StructureDefinition/MedicationDispense|1.3",
"https://gematik.de/fhir/erp/StructureDefinition/GEM_ERP_PR_CloseOperationInputBundle|1.3"
]
}
]
}
92 changes: 92 additions & 0 deletions Resources/input/fsh/operationdefinitions/GEM_ERP_OP_Dispense.fsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
Instance: DispenseOperation
InstanceOf: OperationDefinition
Usage: #definition
* url = "https://gematik.de/fhir/erp/OperationDefinition/DispenseOperationDefinition"
* version = "1.3.0"
* name = "Dispense"
* status = #draft
* kind = #operation
* date = "2022-02-01"
* description = "The operation $dispense lets the pharmacy perform a dispense for a medication without changing the status of the task. This actions lets a frontend display that a medication has been dispensed before it is closed by the pharmacy."
* affectsState = true
* code = #dispense
* resource = #Task
* system = false
* type = false
* instance = true
* outputProfile = "https://gematik.de/fhir/erp/StructureDefinition/GEM_ERP_PR_MedicationDispense"
// in
* parameter[0].name = #secret
* parameter[=].use = #in
* parameter[=].min = 1
* parameter[=].max = "1"
* parameter[=].documentation = "The secret parameter that lets a pharmacy access the Task exclusively as part of the URL. This paramter must be equal to the value stored in Task.identifier:Secret. Otherwise the Operation aborts with an error."
* parameter[=].type = #string
// in
* parameter[+].name = #MedicationDispense
* parameter[=].use = #in
* parameter[=].min = 1
* parameter[=].max = "1"
* parameter[=].documentation = "Information on dispensed Medication(s)"
* parameter[=].type = #canonical
* parameter[=].targetProfile[+] = "http://hl7.org/fhir/StructureDefinition/MedicationDispense|1.3"
* parameter[=].targetProfile[+] = "https://gematik.de/fhir/erp/StructureDefinition/GEM_ERP_PR_CloseOperationInputBundle|1.3"
// out
* parameter[+].name = #MedicationDispense
* parameter[=].use = #out
* parameter[=].min = 1
* parameter[=].max = "1"
* parameter[=].documentation = "The MedicationDispense that has been transmitted by the pharmacy as a confirmation, that it has been successfully uploaded."
* parameter[=].type = #canonical
* parameter[=].targetProfile[+] = "http://hl7.org/fhir/StructureDefinition/MedicationDispense|1.3"
* parameter[=].targetProfile[+] = "https://gematik.de/fhir/erp/StructureDefinition/GEM_ERP_PR_CloseOperationInputBundle|1.3"

Instance: OperationDispenseParametersInputMedicationDispense
InstanceOf: MedicationDispense
Title: "MedicationDispense handed to Günther at a pharmacy"
Usage: #example
* id = "26fbffa8-b0df-4074-b2cf-143269aff176"
* meta.profile[+] = "https://gematik.de/fhir/erp/StructureDefinition/GEM_ERP_PR_MedicationDispense|1.3"
* contained[+] = SumatripanMedication
* identifier[+].system = "https://gematik.de/fhir/erp/NamingSystem/GEM_ERP_NS_PrescriptionId"
* identifier[=].value = "160.000.033.491.280.78"
* status = #completed
* medicationReference.reference = "#001413e4-a5e9-48da-9b07-c17bab476407"
* subject.identifier.system = "http://fhir.de/sid/gkv/kvid-10"
* subject.identifier.value = "X234567890"
* performer[+].actor.identifier.system = "https://gematik.de/fhir/sid/telematik-id"
* performer[=].actor.identifier.value = "3-abc-1234567890"
* whenHandedOver = "2022-02-28"
* dosageInstruction[+].text = "1-0-1-0"

Instance: OperationDispenseOutputMedicationDispense
InstanceOf: MedicationDispense
Title: "MedicationDispense returned by the E-Rezept-Fachdienst"
Usage: #example
* id = "cd6a4805-9861-412e-91aa-ec6af3f03d87"
* meta.profile[+] = "https://gematik.de/fhir/erp/StructureDefinition/GEM_ERP_PR_MedicationDispense|1.3"
* contained[+] = SumatripanMedication
* identifier[+].system = "https://gematik.de/fhir/erp/NamingSystem/GEM_ERP_NS_PrescriptionId"
* identifier[=].value = "160.000.033.491.280.78"
* status = #completed
* medicationReference.reference = "#001413e4-a5e9-48da-9b07-c17bab476407"
* subject.identifier.system = "http://fhir.de/sid/gkv/kvid-10"
* subject.identifier.value = "X234567890"
* performer[+].actor.identifier.system = "https://gematik.de/fhir/sid/telematik-id"
* performer[=].actor.identifier.value = "3-abc-1234567890"
* whenHandedOver = "2022-02-28"
* dosageInstruction[+].text = "1-0-1-0"

Instance: OperationDispenseOutputBundle
InstanceOf: Bundle
Title: "Bundle of 2 MedicationDispense handed to Waltraud at a pharmacy"
Description: "Lets asume, Waltraud needs 40 TABs and the pharmacy hands out 2*20, then there will be 2 MedicationDispenses for the E-Rezept backend"
Usage: #example
* id = "558c2f69-62f6-4a74-8d13-70e945d28b71"
* meta.profile[+] = "https://gematik.de/fhir/erp/StructureDefinition/GEM_ERP_PR_CloseOperationInputBundle|1.3"
* meta.tag.display = "MedicationDispense Bundle for $close-Operation on dispensation of multiple medications"
* type = #collection
* entry[+].fullUrl = "http://hier-koennte-ihre-werbung-stehen"
* entry[=].resource = OperationDispenseParametersInputMedicationDispense
* entry[+].fullUrl = "http://waltraud-was-here"
* entry[=].resource = OperationDispenseParametersInputMedicationDispense

0 comments on commit 338796d

Please sign in to comment.