From 50532775a8e25171e6fcd5ebe42dbb4f9b439215 Mon Sep 17 00:00:00 2001 From: dvribeira Date: Thu, 23 Apr 2026 15:27:29 +0200 Subject: [PATCH 1/2] [#106] Replaced references to FHIR resources in logical models with barebone logical models. --- input/fsh/models/DeviceBasic.fsh | 8 ++++++++ input/fsh/models/IHEMedicationDispense.fsh | 4 ++-- input/fsh/models/IHEMedicationOrderModel.fsh | 4 ++-- input/fsh/models/IHEMultilineOrderModel.fsh | 4 ++-- input/fsh/models/MedicinalProductModel.fsh | 2 +- input/fsh/models/OrganizationBasic.fsh | 7 +++++++ input/fsh/models/PractitionerRoleBasic.fsh | 8 ++++++++ input/fsh/models/RelatedPersonBasic.fsh | 8 ++++++++ 8 files changed, 38 insertions(+), 7 deletions(-) create mode 100644 input/fsh/models/DeviceBasic.fsh create mode 100644 input/fsh/models/OrganizationBasic.fsh create mode 100644 input/fsh/models/PractitionerRoleBasic.fsh create mode 100644 input/fsh/models/RelatedPersonBasic.fsh diff --git a/input/fsh/models/DeviceBasic.fsh b/input/fsh/models/DeviceBasic.fsh new file mode 100644 index 000000000..61b92ac23 --- /dev/null +++ b/input/fsh/models/DeviceBasic.fsh @@ -0,0 +1,8 @@ +Logical: DeviceBasic +Title: "Device (model)" +Description: "Logical model for a device (basic data relevant for the IHE MPD use cases)" +Characteristics: #can-be-target +* identifier 0..* Identifier "Identifiers for a device" +* name 0..* BackboneElement "The name or names of the device as known to the manufacturer and/or patient" + * value 1..1 string "The term that names the device" + * type 1..1 code "The type of name" \ No newline at end of file diff --git a/input/fsh/models/IHEMedicationDispense.fsh b/input/fsh/models/IHEMedicationDispense.fsh index 24102fa4b..f22ff6dcb 100644 --- a/input/fsh/models/IHEMedicationDispense.fsh +++ b/input/fsh/models/IHEMedicationDispense.fsh @@ -5,8 +5,8 @@ Characteristics: #can-be-target * identifier 0..* Identifier "Identifier for the dispense" * patient 1..1 Reference(PatientBasic) "The person for whom the medication is prescribed/ordered" -* receiver 0..1 Reference( PatientBasic or PractitionerBasic or RelatedPerson or PractitionerRole) "Identification of the person who received the dispensed medication, especially when it was not the patient" -* dispenser 1..1 Reference(PractitionerBasic or Organization or Device) "The person who dispensed the product, and takes the responsibility of the dispensation" //TODO not all models exist, references FHIR resources +* receiver 0..1 Reference( PatientBasic or PractitionerBasic or RelatedPersonBasic or PractitionerRoleBasic) "Identification of the person who received the dispensed medication, especially when it was not the patient" +* dispenser 1..1 Reference(PractitionerBasic or OrganizationBasic or DeviceBasic) "The person who dispensed the product, and takes the responsibility of the dispensation" //TODO not all models exist, references FHIR resources * relatedRequest 0..* Reference(IHEMedicationOrderModel) "Prescription/request/order the dispense is related to" * medication 1..1 Reference(MedicinalProductModel) "Exact dispensed product" * dispensedQuantity 1..1 Quantity "Number of dispensed packages if the pack size is known, or number of smaller items/units" diff --git a/input/fsh/models/IHEMedicationOrderModel.fsh b/input/fsh/models/IHEMedicationOrderModel.fsh index 4c7fb9b3c..cfbe03aab 100644 --- a/input/fsh/models/IHEMedicationOrderModel.fsh +++ b/input/fsh/models/IHEMedicationOrderModel.fsh @@ -7,13 +7,13 @@ Description: "Logical model for medication prescription or other types of medica * identifier 1..* Identifier "Business identifier(s) for the prescription" //1 -* prescriber 1..1 Reference(PractitionerBasic or PractitionerRole) "The person who made the prescription, and who takes the responsibility of the treatment" "Question: would we want to add basic Practicioner model?" +* prescriber 1..1 Reference(PractitionerBasic or PractitionerRoleBasic) "The person who made the prescription, and who takes the responsibility of the treatment" "Question: would we want to add basic Practicioner model?" //2 * issueDate 1..1 dateTime "Time of issuing (signing) the prescription by health care practicioner" //3 * patient 1..1 Reference(PatientBasic) "The person for whom the medication is prescribed/ordered" "Question: would we want to add basic Patient model?" //4 -* recorder 0..1 Reference(PractitionerBasic or PractitionerRole) "The recorder of the prescription/draft in the information system" +* recorder 0..1 Reference(PractitionerBasic or PractitionerRoleBasic) "The recorder of the prescription/draft in the information system" //8 * recordingDate 0..1 dateTime "Time of authoring the prescription/draft in the information system" //9 diff --git a/input/fsh/models/IHEMultilineOrderModel.fsh b/input/fsh/models/IHEMultilineOrderModel.fsh index 2afc3721a..2f614775f 100644 --- a/input/fsh/models/IHEMultilineOrderModel.fsh +++ b/input/fsh/models/IHEMultilineOrderModel.fsh @@ -7,10 +7,10 @@ Description: "Logical model for multiline medication prescription" //1 * patient 1..1 Reference(PatientBasic) "The person for whom the medication is prescribed/ordered" "Question: would we want to add basic Patient model?" //4 -* prescriber 1..1 Reference(PractitionerBasic or PractitionerRole) "The person who made the prescription, and who takes the responsibility of the treatment" "Question: would we want to add basic Practicioner model?" +* prescriber 1..1 Reference(PractitionerBasic or PractitionerRoleBasic) "The person who made the prescription, and who takes the responsibility of the treatment" "Question: would we want to add basic Practicioner model?" //2 * issueDate 1..1 dateTime "Time of issuing (signing) the prescription by health care practicioner" -* recorder 0..1 Reference(PractitionerBasic or PractitionerRole) "The recorder of the prescription/draft in the information system" +* recorder 0..1 Reference(PractitionerBasic or PractitionerRoleBasic) "The recorder of the prescription/draft in the information system" //8 * recordingDate 0..1 dateTime "Time of authoring the prescription/draft in the information system" //9 diff --git a/input/fsh/models/MedicinalProductModel.fsh b/input/fsh/models/MedicinalProductModel.fsh index 35de8e09d..f15cdca59 100644 --- a/input/fsh/models/MedicinalProductModel.fsh +++ b/input/fsh/models/MedicinalProductModel.fsh @@ -27,7 +27,7 @@ Characteristics: #can-be-target * amount 0..1 Quantity "Number of such manufactured items in this product (5 vials)" * device 0..* BackboneElement "Administration device included in the product" * deviceQuantity 1..1 Quantity "Number of such devices" - * device[x] 1..1 CodeableConcept or Reference(Device) "Device coded" + * device[x] 1..1 CodeableConcept or Reference(DeviceBasic) "Device coded" * characteristic 0..* BackboneElement "Other features of the product" * type 1..1 CodeableConcept "A code expressing the type of characteristic" * value[x] 0..1 boolean or CodeableConcept or string or Quantity or dateTime or unsignedInt or decimal or Ratio "Description of the characteristic" diff --git a/input/fsh/models/OrganizationBasic.fsh b/input/fsh/models/OrganizationBasic.fsh new file mode 100644 index 000000000..74fb4cd4e --- /dev/null +++ b/input/fsh/models/OrganizationBasic.fsh @@ -0,0 +1,7 @@ +Logical: OrganizationBasic +Title: "Organization (model)" +Description: "Logical model for an organization (basic data relevant for IHE MPD use cases)" +Characteristics: #can-be-target +* identifier 0..* Identifier "Identifiers for an organization" +* type 0..* CodeableConcept "Type of organization" +* name 0..1 string "Name used for the organization" diff --git a/input/fsh/models/PractitionerRoleBasic.fsh b/input/fsh/models/PractitionerRoleBasic.fsh new file mode 100644 index 000000000..3be05235e --- /dev/null +++ b/input/fsh/models/PractitionerRoleBasic.fsh @@ -0,0 +1,8 @@ +Logical: PractitionerRoleBasic +Title: "Practitioner role (model)" +Description: "Logical model for a practitioner role within an organization (basic data relevant for this use case)" +Characteristics: #can-be-target +* identifier 0..* Identifier "Identifiers for a role" +* practitioner 1..1 Reference(PractitionerBasic) "Practitioner that provide services for the organization" +* organization 0..1 Reference(OrganizationBasic) "Organization where the roles are available" +* role 0..* CodeableConcept "Roles which this practitioner may perform" \ No newline at end of file diff --git a/input/fsh/models/RelatedPersonBasic.fsh b/input/fsh/models/RelatedPersonBasic.fsh new file mode 100644 index 000000000..db251a6f6 --- /dev/null +++ b/input/fsh/models/RelatedPersonBasic.fsh @@ -0,0 +1,8 @@ +Logical: RelatedPersonBasic +Title: "Related person (model)" +Description: "Logical model for a related person with basic data relevant to the IHE MPD use cases." +Characteristics: #can-be-target +* identifier 0..* Identifier "Human identifier for this person" +* patient 1..1 Reference(PatientBasic) "The patient this person is related to" +* relationship 0..* CodeableConcept "The relationship of the related person to the patient" +* name 0..* HumanName "A name associated with this person" From 3ef0182511f9cca50accf987656f92d581e81ee5 Mon Sep 17 00:00:00 2001 From: dvribeira Date: Thu, 23 Apr 2026 15:35:02 +0200 Subject: [PATCH 2/2] =?UTF-8?q?[#106]=C2=A0Fixed=20indentation=20of=20rule?= =?UTF-8?q?s=20on=20DeviceBasic=20logical=20model.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- input/fsh/models/DeviceBasic.fsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/input/fsh/models/DeviceBasic.fsh b/input/fsh/models/DeviceBasic.fsh index 61b92ac23..cc4598092 100644 --- a/input/fsh/models/DeviceBasic.fsh +++ b/input/fsh/models/DeviceBasic.fsh @@ -4,5 +4,5 @@ Description: "Logical model for a device (basic data relevant for the IHE MPD us Characteristics: #can-be-target * identifier 0..* Identifier "Identifiers for a device" * name 0..* BackboneElement "The name or names of the device as known to the manufacturer and/or patient" - * value 1..1 string "The term that names the device" - * type 1..1 code "The type of name" \ No newline at end of file + * value 1..1 string "The term that names the device" + * type 1..1 code "The type of name" \ No newline at end of file