From 374d54dd570fb79966cce3a89d2cac3047759179 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 15 Sep 2023 12:57:46 +0000 Subject: [PATCH] add dccc and no dcc profiles --- input/fsh/bundle-ips-ddcc.fsh | 34 ++++++++++ input/fsh/bundle.fsh | 26 +------- input/fsh/composition-ips-ddcc.fsh | 109 +++++++++++++++++++++++++++++++++ input/fsh/composition.fsh | 99 +----------------------------- input/fsh/minimal-provide-document.fsh | 2 +- 5 files changed, 146 insertions(+), 124 deletions(-) create mode 100644 input/fsh/bundle-ips-ddcc.fsh create mode 100644 input/fsh/composition-ips-ddcc.fsh diff --git a/input/fsh/bundle-ips-ddcc.fsh b/input/fsh/bundle-ips-ddcc.fsh new file mode 100644 index 0000000..6632df7 --- /dev/null +++ b/input/fsh/bundle-ips-ddcc.fsh @@ -0,0 +1,34 @@ +Profile: LAC_Bundle_DDCC +Parent: http://hl7.org/fhir/uv/ips/StructureDefinition/Bundle-uv-ips +Id: lac-bundle-ddcc +Description: "LACPass Patient Summary Bundle resource. This profile derives from the [International Patient summary](https://build.fhir.org/ig/HL7/fhir-ips/) with customizations for the entries to use the profiles defined in this implementation guide and the necessary to implement the DDCC standard." + +* ^url = "http://lacpass.racsel.org/StructureDefinition/lac-bundle-ddcc" + +// Make use of Composition +* entry[composition].resource 1..1 +* entry[composition].resource only LAC_Composition_DDCC + +Instance: LACBundleIPSExample +InstanceOf: LAC_Bundle_DDCC +Usage: #example +* identifier.system = "urn:ietf:rfc:4122" +* identifier.value = "f50a5146-7d08-4f4d-b7a9-eb8a05d513a0" +* type = #document +* timestamp = "2023-01-15T17:26:43.023+00:00" +* entry[0].fullUrl = "urn:uuid:428e9bed-1f16-4595-91b9-80ae6ac12421" +* entry[=].resource = LACCompositionExample +* entry[+].fullUrl = "urn:uuid:ef333870-0a3a-4ab3-b0ff-6bc191a738c6" +* entry[=].resource = LACPatientExample +* entry[+].fullUrl = "urn:uuid:6fef12e7-64ad-4792-b2ad-5d6b699588fc" +* entry[=].resource = LACImmunizationExample +* entry[+].fullUrl = "urn:uuid:73670837-417b-422f-9f99-46fb28d30985" +* entry[=].resource = 73670837-417b-422f-9f99-46fb28d30985 +* entry[+].fullUrl = "urn:uuid:dcc7db1b-29a9-4ad1-b6dd-ac06752d9c26" +* entry[=].resource = dcc7db1b-29a9-4ad1-b6dd-ac06752d9c26 +* entry[+].fullUrl = "urn:uuid:d2c23c25-48eb-4e55-a22a-b72787ae1d85" +* entry[=].resource = d2c23c25-48eb-4e55-a22a-b72787ae1d85 +* entry[+].fullUrl = "urn:uuid:bd64ca58-bea9-4b3c-aaa0-50e0b7575b79" +* entry[=].resource = bd64ca58-bea9-4b3c-aaa0-50e0b7575b79 +* entry[+].fullUrl = "urn:uuid:9d5f17f6-6537-4bbb-a883-a5937a79d10c" +* entry[=].resource = LACOrganizationExample \ No newline at end of file diff --git a/input/fsh/bundle.fsh b/input/fsh/bundle.fsh index b3a364d..6b57e7b 100644 --- a/input/fsh/bundle.fsh +++ b/input/fsh/bundle.fsh @@ -7,28 +7,4 @@ Description: "LACPass Patient Summary Bundle resource. This profile derives from // Make use of Composition * entry[composition].resource 1..1 -* entry[composition].resource only LAC_Composition - -Instance: LACBundleIPSExample -InstanceOf: LAC_Bundle -Usage: #example -* identifier.system = "urn:ietf:rfc:4122" -* identifier.value = "f50a5146-7d08-4f4d-b7a9-eb8a05d513a0" -* type = #document -* timestamp = "2023-01-15T17:26:43.023+00:00" -* entry[0].fullUrl = "urn:uuid:428e9bed-1f16-4595-91b9-80ae6ac12421" -* entry[=].resource = LACCompositionExample -* entry[+].fullUrl = "urn:uuid:ef333870-0a3a-4ab3-b0ff-6bc191a738c6" -* entry[=].resource = LACPatientExample -* entry[+].fullUrl = "urn:uuid:6fef12e7-64ad-4792-b2ad-5d6b699588fc" -* entry[=].resource = LACImmunizationExample -* entry[+].fullUrl = "urn:uuid:73670837-417b-422f-9f99-46fb28d30985" -* entry[=].resource = 73670837-417b-422f-9f99-46fb28d30985 -* entry[+].fullUrl = "urn:uuid:dcc7db1b-29a9-4ad1-b6dd-ac06752d9c26" -* entry[=].resource = dcc7db1b-29a9-4ad1-b6dd-ac06752d9c26 -* entry[+].fullUrl = "urn:uuid:d2c23c25-48eb-4e55-a22a-b72787ae1d85" -* entry[=].resource = d2c23c25-48eb-4e55-a22a-b72787ae1d85 -* entry[+].fullUrl = "urn:uuid:bd64ca58-bea9-4b3c-aaa0-50e0b7575b79" -* entry[=].resource = bd64ca58-bea9-4b3c-aaa0-50e0b7575b79 -* entry[+].fullUrl = "urn:uuid:9d5f17f6-6537-4bbb-a883-a5937a79d10c" -* entry[=].resource = LACOrganizationExample \ No newline at end of file +* entry[composition].resource only LAC_Composition \ No newline at end of file diff --git a/input/fsh/composition-ips-ddcc.fsh b/input/fsh/composition-ips-ddcc.fsh new file mode 100644 index 0000000..075484a --- /dev/null +++ b/input/fsh/composition-ips-ddcc.fsh @@ -0,0 +1,109 @@ +Profile: LAC_Composition_DDCC +Parent: http://hl7.org/fhir/uv/ips/StructureDefinition/Composition-uv-ips +Id: lac-composition-ddcc +Description: "LACPass Patient Summary Composition resource. This profile derives from the [International Patient summary](https://build.fhir.org/ig/HL7/fhir-ips/) with customizations for the entries to use the profiles defined in this implementation guide and the necessary to implement the DDCC standard." + +* ^url = "http://lacpass.racsel.org/StructureDefinition/lac-composition-ddcc" + +// Make use of LAC Patient, LAC Immunization and LAC Organization +* subject 1..1 MS +* subject only Reference(LAC_Patient) +* section[sectionImmunizations] 1..1 +* section[sectionImmunizations].entry[immunization] 1..1 +* section[sectionImmunizations].entry[immunization] only Reference(LAC_Immunization) +* custodian 1..1 +* custodian only Reference(LAC_Organization) + + +Alias: $loinc = http://loinc.org +Alias: $v2-0203 = http://terminology.hl7.org/CodeSystem/v2-0203 +Alias: $DDCC-Example-Test-CodeSystem = http://worldhealthorganization.github.io/ddcc/CodeSystem/DDCC-Example-Test-CodeSystem +Alias: $mms = http://id.who.int/icd11/mms +Alias: $condition-clinical = http://terminology.hl7.org/CodeSystem/condition-clinical +Alias: $condition-ver-status = http://terminology.hl7.org/CodeSystem/condition-ver-status +Alias: $condition-category = http://terminology.hl7.org/CodeSystem/condition-category +Alias: $icd-10 = http://hl7.org/fhir/sid/icd-10 +Alias: $sct = http://snomed.info/sct +Alias: $atc = http://www.whocc.no/atc +Alias: $standardterms = http://standardterms.edqm.eu +Alias: $dose-rate-type = http://terminology.hl7.org/CodeSystem/dose-rate-type +Alias: $allergyintolerance-clinical = http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical +Alias: $allergyintolerance-verification = http://terminology.hl7.org/CodeSystem/allergyintolerance-verification + +Instance: LACCompositionExample +InstanceOf: LAC_Composition_DDCC +Usage: #example +* status = #final +* type = $loinc#60591-5 "Patient Summary Document" +* subject = Reference(LACPatientExample) +* date = "2023-01-15T17:26:43+00:00" +* author = Reference(LACOrganizationExample) +* title = "Patient Summary as of 01/15/2023" +* confidentiality = #N +* custodian = Reference(LACOrganizationExample) +* section[sectionProblems].title = "Active Problems" +* section[sectionProblems].code = $loinc#11450-4 "Problem list Reported" +* section[sectionProblems].text.status = #generated +* section[sectionProblems].text.div = "
Hot flushes
" +* section[sectionProblems].entry = Reference(73670837-417b-422f-9f99-46fb28d30985) +* section[sectionMedications].title = "Medication" +* section[sectionMedications].code = $loinc#10160-0 "History of Medication use Narrative" +* section[sectionMedications].text.status = #generated +* section[sectionMedications].text.div = "
To be populated at future time
" +* section[sectionMedications].entry = Reference(d2c23c25-48eb-4e55-a22a-b72787ae1d85) +* section[sectionAllergies].title = "Allergies and Intolerances" +* section[sectionAllergies].code = $loinc#48765-2 "Allergies and adverse reactions Document" +* section[sectionAllergies].text.status = #generated +* section[sectionAllergies].text.div = "
To be populated at future time
" +* section[sectionAllergies].entry = Reference(bd64ca58-bea9-4b3c-aaa0-50e0b7575b79) +* section[sectionImmunizations].title = "History of Immunizations" +* section[sectionImmunizations].code = $loinc#11369-6 "History of Immunization Narrative" +* section[sectionImmunizations].text.status = #generated +* section[sectionImmunizations].text.div = "
To be populated at future time
" +* section[sectionImmunizations].entry[immunization] = Reference(LACImmunizationExample) + +Instance: 73670837-417b-422f-9f99-46fb28d30985 +InstanceOf: Condition +Usage: #inline +* clinicalStatus = $condition-clinical#active +* verificationStatus = $condition-ver-status#confirmed +* category.coding[0] = $condition-category#problem-list-item "Problem List Item" +* category.coding[+] = $loinc#75326-9 "Problem" +* severity = $loinc#LA6751-7 "Moderate" +* code = $icd-10#I10 "Essential (primary) hypertension" +* subject = Reference(ef333870-0a3a-4ab3-b0ff-6bc191a738c6) +* onsetDateTime = "2015" +* recordedDate = "2016-10" + +Instance: dcc7db1b-29a9-4ad1-b6dd-ac06752d9c26 +InstanceOf: Medication +Usage: #inline +* code.coding[0] = $sct#108774000 "Product containing anastrozole (medicinal product)" +* code.coding[+] = urn:oid:2.16.840.1.113883.2.4.4.1#99872 "ANASTROZOL 1MG TABLET" +* code.coding[+] = urn:oid:2.16.840.1.113883.2.4.4.7#2076667 "ANASTROZOL CF TABLET FILMOMHULD 1MG" +* code.coding[+] = $atc#L02BG03 "anastrozole" + +Instance: d2c23c25-48eb-4e55-a22a-b72787ae1d85 +InstanceOf: MedicationStatement +Usage: #inline +* status = #active +* medicationReference = Reference(dcc7db1b-29a9-4ad1-b6dd-ac06752d9c26) +* subject = Reference(ef333870-0a3a-4ab3-b0ff-6bc191a738c6) +* effectivePeriod.start = "2015-03" +* dosage.timing.repeat.count = 1 +* dosage.timing.repeat.periodUnit = #d +* dosage.route = $standardterms#20053000 "Oral use" +* dosage.doseAndRate.type = $dose-rate-type#ordered "Ordered" +* dosage.doseAndRate.doseQuantity = 1 '1' "tablet" + +Instance: bd64ca58-bea9-4b3c-aaa0-50e0b7575b79 +InstanceOf: AllergyIntolerance +Usage: #inline +* clinicalStatus = $allergyintolerance-clinical#active +* verificationStatus = $allergyintolerance-verification#confirmed +* type = #allergy +* category = #medication +* criticality = #high +* code = $sct#373270004 "Substance with penicillin structure and antibacterial mechanism of action (substance)" +* patient = Reference(ef333870-0a3a-4ab3-b0ff-6bc191a738c6) +* onsetDateTime = "2010" \ No newline at end of file diff --git a/input/fsh/composition.fsh b/input/fsh/composition.fsh index 02b462d..0443877 100644 --- a/input/fsh/composition.fsh +++ b/input/fsh/composition.fsh @@ -8,102 +8,5 @@ Description: "LACPass Patient Summary Composition resource. This profile derives // Make use of LAC Patient, LAC Immunization and LAC Organization * subject 1..1 MS * subject only Reference(LAC_Patient) -* section[sectionImmunizations] 1..1 -* section[sectionImmunizations].entry[immunization] 1..1 -* section[sectionImmunizations].entry[immunization] only Reference(LAC_Immunization) * custodian 1..1 -* custodian only Reference(LAC_Organization) - - -Alias: $loinc = http://loinc.org -Alias: $v2-0203 = http://terminology.hl7.org/CodeSystem/v2-0203 -Alias: $DDCC-Example-Test-CodeSystem = http://worldhealthorganization.github.io/ddcc/CodeSystem/DDCC-Example-Test-CodeSystem -Alias: $mms = http://id.who.int/icd11/mms -Alias: $condition-clinical = http://terminology.hl7.org/CodeSystem/condition-clinical -Alias: $condition-ver-status = http://terminology.hl7.org/CodeSystem/condition-ver-status -Alias: $condition-category = http://terminology.hl7.org/CodeSystem/condition-category -Alias: $icd-10 = http://hl7.org/fhir/sid/icd-10 -Alias: $sct = http://snomed.info/sct -Alias: $atc = http://www.whocc.no/atc -Alias: $standardterms = http://standardterms.edqm.eu -Alias: $dose-rate-type = http://terminology.hl7.org/CodeSystem/dose-rate-type -Alias: $allergyintolerance-clinical = http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical -Alias: $allergyintolerance-verification = http://terminology.hl7.org/CodeSystem/allergyintolerance-verification - -Instance: LACCompositionExample -InstanceOf: LAC_Composition -Usage: #example -* status = #final -* type = $loinc#60591-5 "Patient Summary Document" -* subject = Reference(LACPatientExample) -* date = "2023-01-15T17:26:43+00:00" -* author = Reference(LACOrganizationExample) -* title = "Patient Summary as of 01/15/2023" -* confidentiality = #N -* custodian = Reference(LACOrganizationExample) -* section[sectionProblems].title = "Active Problems" -* section[sectionProblems].code = $loinc#11450-4 "Problem list Reported" -* section[sectionProblems].text.status = #generated -* section[sectionProblems].text.div = "
Hot flushes
" -* section[sectionProblems].entry = Reference(73670837-417b-422f-9f99-46fb28d30985) -* section[sectionMedications].title = "Medication" -* section[sectionMedications].code = $loinc#10160-0 "History of Medication use Narrative" -* section[sectionMedications].text.status = #generated -* section[sectionMedications].text.div = "
To be populated at future time
" -* section[sectionMedications].entry = Reference(d2c23c25-48eb-4e55-a22a-b72787ae1d85) -* section[sectionAllergies].title = "Allergies and Intolerances" -* section[sectionAllergies].code = $loinc#48765-2 "Allergies and adverse reactions Document" -* section[sectionAllergies].text.status = #generated -* section[sectionAllergies].text.div = "
To be populated at future time
" -* section[sectionAllergies].entry = Reference(bd64ca58-bea9-4b3c-aaa0-50e0b7575b79) -* section[sectionImmunizations].title = "History of Immunizations" -* section[sectionImmunizations].code = $loinc#11369-6 "History of Immunization Narrative" -* section[sectionImmunizations].text.status = #generated -* section[sectionImmunizations].text.div = "
To be populated at future time
" -* section[sectionImmunizations].entry[immunization] = Reference(LACImmunizationExample) - -Instance: 73670837-417b-422f-9f99-46fb28d30985 -InstanceOf: Condition -Usage: #inline -* clinicalStatus = $condition-clinical#active -* verificationStatus = $condition-ver-status#confirmed -* category.coding[0] = $condition-category#problem-list-item "Problem List Item" -* category.coding[+] = $loinc#75326-9 "Problem" -* severity = $loinc#LA6751-7 "Moderate" -* code = $icd-10#I10 "Essential (primary) hypertension" -* subject = Reference(ef333870-0a3a-4ab3-b0ff-6bc191a738c6) -* onsetDateTime = "2015" -* recordedDate = "2016-10" - -Instance: dcc7db1b-29a9-4ad1-b6dd-ac06752d9c26 -InstanceOf: Medication -Usage: #inline -* code.coding[0] = $sct#108774000 "Product containing anastrozole (medicinal product)" -* code.coding[+] = urn:oid:2.16.840.1.113883.2.4.4.1#99872 "ANASTROZOL 1MG TABLET" -* code.coding[+] = urn:oid:2.16.840.1.113883.2.4.4.7#2076667 "ANASTROZOL CF TABLET FILMOMHULD 1MG" -* code.coding[+] = $atc#L02BG03 "anastrozole" - -Instance: d2c23c25-48eb-4e55-a22a-b72787ae1d85 -InstanceOf: MedicationStatement -Usage: #inline -* status = #active -* medicationReference = Reference(dcc7db1b-29a9-4ad1-b6dd-ac06752d9c26) -* subject = Reference(ef333870-0a3a-4ab3-b0ff-6bc191a738c6) -* effectivePeriod.start = "2015-03" -* dosage.timing.repeat.count = 1 -* dosage.timing.repeat.periodUnit = #d -* dosage.route = $standardterms#20053000 "Oral use" -* dosage.doseAndRate.type = $dose-rate-type#ordered "Ordered" -* dosage.doseAndRate.doseQuantity = 1 '1' "tablet" - -Instance: bd64ca58-bea9-4b3c-aaa0-50e0b7575b79 -InstanceOf: AllergyIntolerance -Usage: #inline -* clinicalStatus = $allergyintolerance-clinical#active -* verificationStatus = $allergyintolerance-verification#confirmed -* type = #allergy -* category = #medication -* criticality = #high -* code = $sct#373270004 "Substance with penicillin structure and antibacterial mechanism of action (substance)" -* patient = Reference(ef333870-0a3a-4ab3-b0ff-6bc191a738c6) -* onsetDateTime = "2010" \ No newline at end of file +* custodian only Reference(LAC_Organization) \ No newline at end of file diff --git a/input/fsh/minimal-provide-document.fsh b/input/fsh/minimal-provide-document.fsh index 81c7783..20ccee5 100644 --- a/input/fsh/minimal-provide-document.fsh +++ b/input/fsh/minimal-provide-document.fsh @@ -8,7 +8,7 @@ Description: "LACPass ITI-65 Minimal Provide Document Transaction. This profile // Make use of LAC Bundle and LAC Patient // * entry[FhirDocuments] 1..1 * entry[FhirDocuments].resource 1..1 -* entry[FhirDocuments].resource only LAC_Bundle +* entry[FhirDocuments].resource only LAC_Bundle or LAC_Bundle_DDCC // * entry[Patient] 1..1 * entry[Patient].resource 1..1