diff --git a/input/fsh/examples.fsh b/input/fsh/examples.fsh index 309eedff8e..b98b3196c4 100644 --- a/input/fsh/examples.fsh +++ b/input/fsh/examples.fsh @@ -1,3 +1,87 @@ +Instance: VLCompositionExample +InstanceOf: VLComposition +Usage: #example +Title: "Laboratory Report For Viral Load Testing" +Description: "Logically groups all resources into a single document structure." +* identifier[ID].value = "PAT0001-v1" +* identifier[ID].system = "http://openhie.org/fhir/rwanda-hiv/identifier/vl-lab-report" +* status = #final +* subject = Reference(HIVPatientExample) +* encounter = Reference(TargetFacilityEncounterExample) +* type = $LNC#11502-2 +* date = "2023-08-22" +* author[+] = Reference(RequestingPractitionerExample) +* author[+] = Reference(PerformingPractitionerExample) +* author[+] = Reference(ResultsInterpreterExample) +* title = "Laboratory Report For Viral Load Testing" + +* section[+].title = "Funding Organization Information" +* section[=].entry[+] = Reference(FundingOrganizationExample) + +* section[+].title = "Implementing Partner Information" +* section[=].entry[+] = Reference(ImplementingPartnerOrganizationExample) + +* section[+].title = "Pregnancy Status" +* section[=].code.coding.code = #82810-3 +* section[=].code.coding.system = "http://loinc.org" +* section[=].entry[+] = Reference(PatientPregnantExample) + +* section[+].title = "General Patient Information" +* section[=].entry[+] = Reference(HIVPatientIsNewExample) + +* section[+].title = "Breastfeeding Status" +* section[=].code.coding.code = #63895-7 +* section[=].code.coding.system = "http://loinc.org" +* section[=].entry[+] = Reference(BreastfeedingExample) + +* section[+].title = "Patient Consent For SMS Communication" +* section[=].entry[+] = Reference(ReceiveSMSMessagesExample) + +* section[+].title = "Viral Load Sample Information" +* section[=].section[+].title = "Specimen Details" +* section[=].section[=].entry[+] = Reference(VLSpecimenExample) +* section[=].section[+].title = "Specimen Conservation Details" +* section[=].section[=].entry[+] = Reference(SpecimenConservationExample) +* section[=].section[+].title = "Specimen Transportation Details" +* section[=].section[=].entry[+] = Reference(TransportRequestedLocationExample) +* section[=].section[=].entry[+] = Reference(TransportCurrentLocationExample) + +* section[+].title = "Laboratory Services" +* section[=].entry[+] = Reference(ReasonForHIVTestingExample) +* section[=].entry[+] = Reference(HIVServiceRequestExample) +* section[=].entry[+] = Reference(LabOrderTaskActivityExample) +* section[=].entry[+] = Reference(HIVLabResultTaskExample) +* section[=].entry[+] = Reference(TestingPlatformExample) +* section[=].section[+].title = "Requester Information" +* section[=].section[=].entry[+] = Reference(RequestingOrganizationExample) +* section[=].section[=].entry[+] = Reference(RequestingPractitionerExample) +* section[=].section[+].title = "Performer Information" +* section[=].section[=].entry[+] = Reference(PerformingOrganizationExample) +* section[=].section[=].entry[+] = Reference(PerformingPractitionerExample) +* section[=].section[+].title = "Result Information" +* section[=].section[=].entry[+] = Reference(HIVLabResultsDiagnosticReportExample) +* section[=].section[=].entry[+] = Reference(ResultDispatchedToRequestingFacilityExample) +* section[=].section[=].section[+].title = "Viral Load Result Details" +* section[=].section[=].section[=].entry[+] = Reference(HIVTestResultExample) +* section[=].section[=].section[=].entry[+] = Reference(HIVTestResultViralLoadLogExample) +* section[=].section[=].section[=].entry[+] = Reference(HIVTestResultAbsoluteDecimalExample) +* section[=].section[=].section[=].entry[+] = Reference(RepeatHIVTestResultExample) +* section[=].section[=].section[=].entry[+] = Reference(SuspendTreatmentHIVTestResultExample) +* section[=].section[=].section[+].title = "Results Interpreter Details" +* section[=].section[=].section[=].entry[+] = Reference(ResultsInterpreterExample) + +* section[+].title = "ART Information" +* section[=].entry[+] = Reference(ARTInitiatedExample) +* section[=].entry[+] = Reference(ARVRegimenChangeExample) +* section[=].entry[+] = Reference(ARTRegimenSwitchedOrSubstitutedExample) +* section[=].entry[+] = Reference(ARVAdherenceExample) +* section[=].entry[+] = Reference(ARVTreatmentRegimenChangedExample) +* section[=].entry[+] = Reference(ARVTreatmentInitiatedExample) + +* section[+].title = "ARV Medication Information" +* section[=].entry[+] = Reference(ARVRegimenMedicationRequestRegimenChangedExample) +* section[=].entry[+] = Reference(ARVRegimenMedicationRequestARVExample) + Instance: HIVOrganizationExample InstanceOf: HIVOrganization Usage: #example diff --git a/input/fsh/profiles.fsh b/input/fsh/profiles.fsh index a95ad86211..8981d6aec5 100644 --- a/input/fsh/profiles.fsh +++ b/input/fsh/profiles.fsh @@ -1,3 +1,28 @@ +Profile: VLComposition +Parent: Composition +Id: vl-composition +Title: "Laboratory Report For Viral Load Testing" +Description: "Logically groups all resources into a single document structure." +* identifier 0..* +* identifier ^slicing.discriminator.type = #exists +* identifier ^slicing.discriminator.path = "value" +* identifier ^slicing.rules = #open +* identifier ^slicing.ordered = false +* identifier ^slicing.description = "Slice based on the type of identifier." +* identifier contains + ID 1..1 +* identifier[ID].value 1..1 +* identifier[ID].system = "http://openhie.org/fhir/rwanda-hiv/identifier/vl-lab-report" (exactly) +* status 1..1 +* subject 1..1 +* encounter 1..1 +* type 1..1 +* date 1..1 +* author 1..* +* title 1..1 +* section 1..* + + Profile: HIVPatient Parent: Patient Id: hiv-patient diff --git a/input/fsh/vlsms-vl-request.fsh b/input/fsh/vlsms-vl-request.fsh index 370ad7ba31..2352f12348 100644 --- a/input/fsh/vlsms-vl-request.fsh +++ b/input/fsh/vlsms-vl-request.fsh @@ -1,8 +1,8 @@ -Instance: VLSMSVLRequest +Instance: VLSMS-VL-Request-Transactional InstanceOf: Bundle Usage: #example Title: "VLSMS VL Request Bundle" -Description: "Represents the VLSMS VL Request Bundle." +Description: "Represents the VLSMS VL Request Bundle (Transactional Type)." * type = #transaction * entry[+].fullUrl = "Patient/HIVPatientExample" @@ -193,4 +193,131 @@ Description: "Represents the VLSMS VL Request Bundle." * entry[+].fullUrl = "Observation/ARTRegimenSwitchedOrSubstitutedExample" * entry[=].resource = ARTRegimenSwitchedOrSubstitutedExample * entry[=].request.method = #PUT -* entry[=].request.url = "Observation/ARTRegimenSwitchedOrSubstitutedExample" \ No newline at end of file +* entry[=].request.url = "Observation/ARTRegimenSwitchedOrSubstitutedExample" + +Instance: VLSMS-VL-Request-Document +InstanceOf: Bundle +Usage: #example +Title: "VLSMS VL Request Bundle" +Description: "Represents the VLSMS VL Request Bundle (Document Type)." +* type = #document +* identifier[+].value = "document-1" +* identifier[=].system = "http://openhie.org/fhir/rwanda-hiv/identifier/bundle-id" +* timestamp = "2023-08-22T13:28:17-05:00" + +* entry[+].fullUrl = "Composition/VLCompositionExample" +* entry[=].resource = VLCompositionExample + +* entry[+].fullUrl = "Patient/HIVPatientExample" +* entry[=].resource = HIVPatientExample + +* entry[+].fullUrl = "Specimen/VLSpecimenExample" +* entry[=].resource = VLSpecimenExample + +* entry[+].fullUrl = "Organization/RequestingOrganizationExample" +* entry[=].resource = RequestingOrganizationExample + +* entry[+].fullUrl = "Organization/PerformingOrganizationExample" +* entry[=].resource = PerformingOrganizationExample + +* entry[+].fullUrl = "ServiceRequest/HIVServiceRequestExample" +* entry[=].resource = HIVServiceRequestExample + +* entry[+].fullUrl = "Practitioner/RequestingPractitionerExample" +* entry[=].resource = RequestingPractitionerExample + +* entry[+].fullUrl = "Practitioner/PerformingPractitionerExample" +* entry[=].resource = PerformingPractitionerExample + +* entry[+].fullUrl = "Observation/ReasonForHIVTestingExample" +* entry[=].resource = ReasonForHIVTestingExample + +* entry[+].fullUrl = "Observation/PatientPregnantExample" +* entry[=].resource = PatientPregnantExample + +* entry[+].fullUrl = "Observation/HIVPatientIsNewExample" +* entry[=].resource = HIVPatientIsNewExample + +* entry[+].fullUrl = "Observation/BreastfeedingExample" +* entry[=].resource = BreastfeedingExample + +* entry[+].fullUrl = "CarePlan/ARVTreatmentRegimenChangedExample" +* entry[=].resource = ARVTreatmentRegimenChangedExample + +* entry[+].fullUrl = "CarePlan/ARVTreatmentInitiatedExample" +* entry[=].resource = ARVTreatmentInitiatedExample + +* entry[+].fullUrl = "MedicationRequest/ARVRegimenMedicationRequestRegimenChangedExample" +* entry[=].resource = ARVRegimenMedicationRequestRegimenChangedExample + +* entry[+].fullUrl = "MedicationRequest/ARVRegimenMedicationRequestARVExample" +* entry[=].resource = ARVRegimenMedicationRequestARVExample + +* entry[+].fullUrl = "Encounter/TargetFacilityEncounterExample" +* entry[=].resource = TargetFacilityEncounterExample + +* entry[+].fullUrl = "Observation/HIVTestResultExample" +* entry[=].resource = HIVTestResultExample + +* entry[+].fullUrl = "SpecimenDefinition/SpecimenConservationExample" +* entry[=].resource = SpecimenConservationExample + +* entry[+].fullUrl = "Task/HIVLabResultTaskExample" +* entry[=].resource = HIVLabResultTaskExample + +* entry[+].fullUrl = "ActivityDefinition/LabOrderTaskActivityExample" +* entry[=].resource = LabOrderTaskActivityExample + +* entry[+].fullUrl = "Transport/SampleDispatchedToLabExample" +* entry[=].resource = SampleDispatchedToLabExample + +* entry[+].fullUrl = "Transport/ResultDispatchedToRequestingFacilityExample" +* entry[=].resource = ResultDispatchedToRequestingFacilityExample + +* entry[+].fullUrl = "Location/TransportRequestedLocationExample" +* entry[=].resource = TransportRequestedLocationExample + +* entry[+].fullUrl = "Location/TransportCurrentLocationExample" +* entry[=].resource = TransportCurrentLocationExample + +* entry[+].fullUrl = "DiagnosticReport/HIVLabResultsDiagnosticReportExample" +* entry[=].resource = HIVLabResultsDiagnosticReportExample + +* entry[+].fullUrl = "Practitioner/ResultsInterpreterExample" +* entry[=].resource = ResultsInterpreterExample + +* entry[+].fullUrl = "Consent/ReceiveSMSMessagesExample" +* entry[=].resource = ReceiveSMSMessagesExample + +* entry[+].fullUrl = "Observation/ARVAdherenceExample" +* entry[=].resource = ARVAdherenceExample + +* entry[+].fullUrl = "Observation/RepeatHIVTestResultExample" +* entry[=].resource = RepeatHIVTestResultExample + +* entry[+].fullUrl = "Observation/SuspendTreatmentHIVTestResultExample" +* entry[=].resource = SuspendTreatmentHIVTestResultExample + +* entry[+].fullUrl = "Device/TestingPlatformExample" +* entry[=].resource = TestingPlatformExample + +* entry[+].fullUrl = "Observation/HIVTestResultViralLoadLogExample" +* entry[=].resource = HIVTestResultViralLoadLogExample + +* entry[+].fullUrl = "Observation/HIVTestResultAbsoluteDecimalExample" +* entry[=].resource = HIVTestResultAbsoluteDecimalExample + +* entry[+].fullUrl = "Organization/FundingOrganizationExample" +* entry[=].resource = FundingOrganizationExample + +* entry[+].fullUrl = "Organization/ImplementingPartnerOrganizationExample" +* entry[=].resource = ImplementingPartnerOrganizationExample + +* entry[+].fullUrl = "Observation/ARTInitiatedExample" +* entry[=].resource = ARTInitiatedExample + +* entry[+].fullUrl = "Observation/ARVRegimenChangeExample" +* entry[=].resource = ARVRegimenChangeExample + +* entry[+].fullUrl = "Observation/ARTRegimenSwitchedOrSubstitutedExample" +* entry[=].resource = ARTRegimenSwitchedOrSubstitutedExample \ No newline at end of file