diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/importer/openhim-core/openhim-import.json b/importer/openhim-core/openhim-import.json index e555d3d..bb4211e 100644 --- a/importer/openhim-core/openhim-import.json +++ b/importer/openhim-core/openhim-import.json @@ -31,7 +31,7 @@ { "name": "FHIR Server", "description": "A FHIR server (HAPI FHIR)", - "urlPattern": "^/raw-fhir.*$", + "urlPattern": "^/hapi-fhir-jpaserver/fhir.*$", "isAsynchronousProcess": false, "methods": [ "GET", @@ -53,10 +53,10 @@ "type": "http", "status": "enabled", "secured": false, - "host": "hapi-fhir", - "port": 8080, + "host": "197.243.18.12", + "port": 8085, "path": "", - "pathTransform": "s/raw-//g", + "pathTransform": "", "primary": true, "username": "", "password": "", @@ -80,7 +80,7 @@ "autoRetryEnabled": false, "autoRetryPeriodMinutes": 60, "updatedBy": { - "id": "667d76cff305884a415ea9b1", + "id": "66bca8368e4b6e6029568565", "name": "Super User" } }, @@ -133,6 +133,7 @@ "txViewAcl": [], "txViewFullAcl": [], "txRerunAcl": [], + "alerts": [], "status": "enabled", "rewriteUrls": false, "addAutoRewriteRules": true, @@ -140,14 +141,13 @@ "autoRetryEnabled": false, "autoRetryPeriodMinutes": 60, "updatedBy": { - "id": "667d76cff305884a415ea9b1", + "id": "66bca8368e4b6e6029568565", "name": "Super User" - }, - "alerts": [] + } }, { - "name": "EMR Lab Order", - "urlPattern": "^/emr-lab-order$", + "name": "Get Lab Results", + "urlPattern": "^^/get-lab-results.*$$", "isAsynchronousProcess": false, "methods": [ "GET", @@ -171,13 +171,13 @@ "authType": "public", "routes": [ { - "name": "Generate Lab Source ID", + "name": "Get Lab Results", "type": "http", "status": "enabled", "secured": false, "host": "rwanda-custom-mapping-mediator", "port": 8084, - "path": "/lab-orders-source-id", + "path": "", "pathTransform": "", "primary": true, "username": "", @@ -194,6 +194,7 @@ "txViewAcl": [], "txViewFullAcl": [], "txRerunAcl": [], + "alerts": [], "status": "enabled", "rewriteUrls": false, "addAutoRewriteRules": true, @@ -201,14 +202,12 @@ "autoRetryEnabled": false, "autoRetryPeriodMinutes": 60, "updatedBy": { - "id": "667d76cff305884a415ea9b1", + "id": "66bca8368e4b6e6029568565", "name": "Super User" - }, - "alerts": [], - "priority": 2 + } }, { - "name": "VLSM And FHIR Lab Order", + "name": "FHIR Lab Order UUID Generation", "urlPattern": "^/vlsm/order$", "isAsynchronousProcess": false, "methods": [ @@ -223,6 +222,7 @@ "PATCH" ], "type": "http", + "priority": 2, "tcpPort": null, "tcpHost": null, "pollingSchedule": null, @@ -256,6 +256,7 @@ "txViewAcl": [], "txViewFullAcl": [], "txRerunAcl": [], + "alerts": [], "status": "enabled", "rewriteUrls": false, "addAutoRewriteRules": true, @@ -263,14 +264,12 @@ "autoRetryEnabled": false, "autoRetryPeriodMinutes": 60, "updatedBy": { - "id": "667d76cff305884a415ea9b1", + "id": "66bca8368e4b6e6029568565", "name": "Super User" - }, - "alerts": [], - "priority": 2 + } }, { - "name": "Smart FHIR", + "name": "Lab Order FHIR", "urlPattern": "^/lab-order$", "isAsynchronousProcess": false, "methods": [ @@ -285,6 +284,7 @@ "PATCH" ], "type": "http", + "priority": 3, "tcpPort": null, "tcpHost": null, "pollingSchedule": null, @@ -318,6 +318,128 @@ "txViewAcl": [], "txViewFullAcl": [], "txRerunAcl": [], + "alerts": [], + "status": "enabled", + "rewriteUrls": false, + "addAutoRewriteRules": true, + "rewriteUrlsConfig": [], + "autoRetryEnabled": false, + "autoRetryPeriodMinutes": 60, + "updatedBy": { + "id": "66bca8368e4b6e6029568565", + "name": "Super User" + } + }, + { + "name": "Post VLSM Lab Results To FHIR", + "urlPattern": "^/lab-results$", + "isAsynchronousProcess": false, + "methods": [ + "GET", + "POST", + "DELETE", + "PUT", + "OPTIONS", + "HEAD", + "TRACE", + "CONNECT", + "PATCH" + ], + "type": "http", + "tcpPort": null, + "tcpHost": null, + "pollingSchedule": null, + "requestBody": true, + "responseBody": true, + "allow": [], + "whitelist": [], + "authType": "public", + "routes": [ + { + "name": "Post Lab Result Mediator", + "type": "http", + "status": "enabled", + "secured": false, + "host": "rwanda-custom-mapping-mediator", + "port": 8084, + "path": "", + "pathTransform": "", + "primary": true, + "username": "", + "password": "", + "forwardAuthHeader": false + } + ], + "matchContentTypes": [], + "matchContentRegex": null, + "matchContentXpath": null, + "matchContentJson": null, + "matchContentValue": null, + "properties": [], + "txViewAcl": [], + "txViewFullAcl": [], + "txRerunAcl": [], + "alerts": [], + "status": "enabled", + "rewriteUrls": false, + "addAutoRewriteRules": true, + "rewriteUrlsConfig": [], + "autoRetryEnabled": false, + "autoRetryPeriodMinutes": 60, + "updatedBy": { + "id": "66bca8368e4b6e6029568565", + "name": "Super User" + } + }, + { + "name": "OpenHIM Mapping Mediator", + "urlPattern": "^/endpoints.*$", + "isAsynchronousProcess": false, + "methods": [ + "GET", + "POST", + "DELETE", + "PUT", + "OPTIONS", + "HEAD", + "TRACE", + "CONNECT", + "PATCH" + ], + "type": "http", + "tcpPort": null, + "tcpHost": null, + "pollingSchedule": null, + "requestBody": true, + "responseBody": true, + "allow": [], + "whitelist": [], + "authType": "public", + "routes": [ + { + "name": "Mapping Mediator", + "type": "http", + "status": "enabled", + "secured": false, + "host": "openhim-mapping-mediator", + "port": 3003, + "path": "", + "pathTransform": "", + "primary": true, + "username": "", + "password": "", + "forwardAuthHeader": false + } + ], + "matchContentTypes": [], + "matchContentRegex": null, + "matchContentXpath": null, + "matchContentJson": null, + "matchContentValue": null, + "properties": [], + "txViewAcl": [], + "txViewFullAcl": [], + "txRerunAcl": [], "status": "enabled", "rewriteUrls": false, "addAutoRewriteRules": true, @@ -325,7 +447,7 @@ "autoRetryEnabled": false, "autoRetryPeriodMinutes": 60, "updatedBy": { - "id": "667d76cff305884a415ea9b1", + "id": "66bca8368e4b6e6029568565", "name": "Super User" }, "alerts": [] @@ -349,8 +471,8 @@ ], "defaultChannelConfig": [], "configDefs": [], - "_lastHeartbeat": "2024-06-28T06:12:25.042Z", - "_uptime": 20155.843693203 + "_lastHeartbeat": "2024-08-14T13:18:59.080Z", + "_uptime": 1651.129535758 } ], "ContactGroups": [] diff --git a/importer/openhim-mapping-mediator/docker-compose.config.yml b/importer/openhim-mapping-mediator/docker-compose.config.yml index 28e4660..794a886 100644 --- a/importer/openhim-mapping-mediator/docker-compose.config.yml +++ b/importer/openhim-mapping-mediator/docker-compose.config.yml @@ -11,6 +11,8 @@ services: target: /metadata.js - source: mediator-config-jsonToFhirLabOrder.json target: /jsonToFhirLabOrder.json + - source: mediator-config-jsonToFhirLabResult.json + target: /jsonToFhirLabResult.json networks: mapping-mediator: # This command will only attempt to import the config when the uptime responds with a 2xx @@ -28,6 +30,11 @@ configs: name: mediator-config-jsonToFhirLabOrder.json-${mediator_config_jsonToFhirLabOrder_json_DIGEST:?err} labels: name: fhir + mediator-config-jsonToFhirLabResult.json: + file: ./jsonToFhirLabResult.json + name: mediator-config-jsonToFhirLabResult.json-${mediator_config_jsonToFhirLabResult_json_DIGEST:?err} + labels: + name: fhir networks: mapping-mediator: diff --git a/importer/openhim-mapping-mediator/jsonToFhirLabOrder.json b/importer/openhim-mapping-mediator/jsonToFhirLabOrder.json index 3312e27..07271ec 100644 --- a/importer/openhim-mapping-mediator/jsonToFhirLabOrder.json +++ b/importer/openhim-mapping-mediator/jsonToFhirLabOrder.json @@ -30,13 +30,15 @@ "fullUrlPerfORG": "$exists(requestBody.performingOrganizationID) ? 'Organization/' & requestBody.performingOrganizationID : null", "resourceIdPerfORG": "$exists(requestBody.performingOrganizationID) ? requestBody.performingOrganizationID : null", + "provinceId": "$exists(requestBody.provinceIds) ? requestBody.provinceIds : null", "requestUrlPerfORG": "$exists(requestBody.performingOrganizationID) ? 'Organization/' & requestBody.performingOrganizationID : null", "fullUrlServiceReq": "$exists(requestBody.serviceRequestID) ? 'ServiceRequest/' & requestBody.serviceRequestID : null", - "valueServiceReq": "$exists(requestBody.labsourceid) ? requestBody.labsourceid : null", + "valueServiceReq": "$exists(requestBody.upid) ? requestBody.upid : null", "resourceIdServiceReq": "$exists(requestBody.serviceRequestID) ? requestBody.serviceRequestID : null", "subjectReferenceServiceReq": "$exists(requestBody.patientId) ? 'Patient/' & requestBody.patientId : null", "encounterReferenceServiceReq": "$exists(requestBody.encounterID) ? 'Encounter/' & requestBody.encounterID : null", + "occurrenceDateTimeServiceReq": "$exists(requestBody.requestDate) ? requestBody.requestDate : null", "requesterReferenceServiceReq": "$exists(requestBody.requestingPractitionerID) ? 'Practitioner/' & requestBody.requestingPractitionerID : null", "performerReferenceServiceReq": "$exists(requestBody.performingPractitionerID) ? 'Practitioner/' & requestBody.performingPractitionerID : null", "reasonReferenceServiceReq": "$exists(requestBody.reasonForHIVTestingID) ? 'Observation/' & requestBody.reasonForHIVTestingID : null", @@ -150,6 +152,7 @@ "subjectReferenceObsHivTestResult": "$exists(requestBody.patientId) ? 'Patient/' & requestBody.patientId : null", "encounterReferenceObsHivTestResult": "$exists(requestBody.encounterID) ? 'Encounter/' & requestBody.encounterID : null", "performerObsHivTestResult": "$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "lastViralLoadResult": "$exists(requestBody.vlResult) ? requestBody.vlResult : 1001", "notereferenceObsHivTestResult": "$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", "requestUrlObsHivTestResult": "$exists(requestBody.hivTestResultID) ? 'Observation/' & requestBody.hivTestResultID : null", @@ -163,7 +166,7 @@ "fullUrlSpecimenDefspeciConserv":"$exists(requestBody.hivLabResultTaskID) ? 'Task/' & requestBody.hivLabResultTaskID : null", "resourceIdSpecimenDefspeciConserv": "$exists(requestBody.hivLabResultTaskID) ? requestBody.hivLabResultTaskID : null", "valueIntegerSpecimenDefspeciConserv": "$exists(requestBody.resultStatus) ? requestBody.resultStatus : null", - "identifiervalueSpecimenDefspeciConserv": "$exists(requestBody.labsourceid) ? requestBody.labsourceid : null", + "identifiervalueSpecimenDefspeciConserv": "$exists(requestBody.upid) ? requestBody.upid : null", "basedOnrefoneSpecimenDefspeciConserv": "$exists(requestBody.serviceRequestID) ? 'ServiceRequest/' & requestBody.serviceRequestID : null", "basedOnreftwoSpecimenDefspeciConserv": "$exists(requestBody.sampleDispatchedToLabID) ? 'Transport/' & requestBody.sampleDispatchedToLabID : null", "basedOnrefthreeSpecimenDefspeciConserv": "$exists(requestBody.resultDispatchedToRequestingFacilityID) ? 'Transport/' & requestBody.resultDispatchedToRequestingFacilityID : null", @@ -441,7 +444,7 @@ "transforms.resourceIdPerfORG":"entry[3].resource.id", "constants.profilePerfORG":"entry[3].resource.meta.profile[0]", "constants.urlPerfOrgProvince":"entry[3].resource.extension[0].url", - "requestBody.provinceId":"entry[3].resource.extension[0].valueInteger", + "transforms.provinceId":"entry[3].resource.extension[0].valueInteger", "constants.urlPerfOrgDistrict":"entry[3].resource.extension[1].url", "constants.valueIntegerPerfOrgDistrict":"entry[3].resource.extension[1].valueInteger", "constants.codingSystemPerfORG":"entry[3].resource.identifier[0].type.coding[].system", @@ -476,7 +479,7 @@ "constants.textCodeServiceReq":"entry[4].resource.code.concept.text", "transforms.subjectReferenceServiceReq":"entry[4].resource.subject.reference", "transforms.encounterReferenceServiceReq":"entry[4].resource.encounter.reference", - "constants.occurrenceDateTimeServiceReq":"entry[4].resource.occurrenceDateTime", + "transforms.occurrenceDateTimeServiceReq":"entry[4].resource.occurrenceDateTime", "transforms.requesterReferenceServiceReq":"entry[4].resource.requester.reference", "transforms.performerReferenceServiceReq":"entry[4].resource.performer[].reference", "transforms.reasonReferenceServiceReq":"entry[4].resource.reason[].reference.reference", @@ -757,7 +760,7 @@ "transforms.encounterReferenceObsHivTestResult":"entry[18].resource.encounter.reference", "requestBody.lastViralLoadTestDate":"entry[18].resource.effectiveDateTime", "transforms.performerObsHivTestResult":"entry[18].resource.performer[].reference", - "requestBody.lastViralLoadResult":"entry[18].resource.valueInteger", + "transforms.lastViralLoadResult":"entry[18].resource.valueInteger", "constants.interpretationSystemCodeObsHivTestResult":"entry[18].resource.interpretation[].coding[].system", "constants.interpretationCodeCodeObsHivTestResult":"entry[18].resource.interpretation[].coding[].code", "constants.interpretationDisplayCodeObsHivTestResult":"entry[18].resource.interpretation[].coding[].display", @@ -1143,7 +1146,6 @@ "codeCodeServiceReq": "25836-8", "displayCodeServiceReq": "HIV 1 RNA [#/volume] (viral load) in Specimen by NAA with probe detection", "textCodeServiceReq": "Test Type", - "occurrenceDateTimeServiceReq": "2012-01-05", "timeServiceReq": "2015-02-07T13:28:17-05:00", "textUrlServiceReq": "additional notes here", "methodServiceReq": "PUT", @@ -1526,7 +1528,7 @@ "headers": { "contentType": "application/json" }, - "url": "http://openhim-core:5001/raw-fhir" + "url": "http://openhim-core:5001/hapi-fhir-jpaserver/fhir/" }, "extract": { "JeMPIResponse": "$.body" diff --git a/importer/openhim-mapping-mediator/jsonToFhirLabOrderR5.json b/importer/openhim-mapping-mediator/jsonToFhirLabOrderR5.json new file mode 100644 index 0000000..e33c6dc --- /dev/null +++ b/importer/openhim-mapping-mediator/jsonToFhirLabOrderR5.json @@ -0,0 +1,1659 @@ +{ + "name": "VLSM Lab Order", + "endpoint": { + "pattern": "/lab-order", + "method": "POST" + }, + "transformation": { + "input": "JSON", + "output": "JSON" + }, + "inputTransforms" : { + + "currentDate": "$now()", + "fullUrlPatient": "$exists(requestBody.patientId) ? 'Patient/' & requestBody.patientId : null", + "referencePatient": "$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "requestUrlPatient": "$exists(requestBody.patientId) ? 'Patient/' & requestBody.patientId : null", + "ageInYears": "$exists(requestBody.ageInYears) ? requestBody.ageInYears : null", + "ageInMonths": "$exists(requestBody.ageInYears) ? requestBody.ageInYears : null", + + + "fullUrlSpecimen": "$exists(requestBody.specimenID) ? 'Specimen/' & requestBody.specimenID : null", + "resourceIdSpecimen": "$exists(requestBody.specimenID) ? requestBody.specimenID : null", + "requestUrlSpecimen": "$exists(requestBody.specimenID) ? 'Specimen/' & requestBody.specimenID : null", + "referenceSpecimen": "$exists(requestBody.patientId) ? 'Patient/' & requestBody.patientId : null", + "subjectReferenceSpecimen": "$exists(requestBody.patientId) ? 'Patient/' & requestBody.patientId : null", + "appSampleCodeValue": "$exists(requestBody.appSampleCode) ? requestBody.appSampleCode : 'abc123'", + "PlacerValue": "$exists(requestBody.PlacerValue) ? requestBody.PlacerValue : 'ggg789'", + "PlacerSampleValue": "$exists(requestBody.PlacerSampleValue) ? requestBody.PlacerSampleValue : 'ghi789'", + + + + + "fullUrlReqOrg": "$exists(requestBody.requestingOrganizationID) ? 'Organization/' & requestBody.requestingOrganizationID : null", + "resourceIdReqOrg": "$exists(requestBody.requestingOrganizationID) ? requestBody.requestingOrganizationID : null", + "requestUrlReqOrg": "$exists(requestBody.requestingOrganizationID) ? 'Organization/' & requestBody.requestingOrganizationID : null", + + "fullUrlPerfORG": "$exists(requestBody.performingOrganizationID) ? 'Organization/' & requestBody.performingOrganizationID : null", + "resourceIdPerfORG": "$exists(requestBody.performingOrganizationID) ? requestBody.performingOrganizationID : null", + "requestUrlPerfORG": "$exists(requestBody.performingOrganizationID) ? 'Organization/' & requestBody.performingOrganizationID : null", + + "fullUrlServiceReq": "$exists(requestBody.serviceRequestID) ? 'ServiceRequest/' & requestBody.serviceRequestID : null", + "valueServiceReq": "$exists(requestBody.upid) ? requestBody.upid : null", + "resourceIdServiceReq": "$exists(requestBody.serviceRequestID) ? requestBody.serviceRequestID : null", + "subjectReferenceServiceReq": "$exists(requestBody.patientId) ? 'Patient/' & requestBody.patientId : null", + "encounterReferenceServiceReq": "$exists(requestBody.encounterID) ? 'Encounter/' & requestBody.encounterID : null", + "occurrenceDateTimeServiceReq": "$exists(requestBody.requestDate) ? requestBody.requestDate : null", + + "requesterReferenceServiceReq": "$exists(requestBody.requestingPractitionerID) ? 'Practitioner/' & requestBody.requestingPractitionerID : null", + "performerReferenceServiceReq": "$exists(requestBody.performingPractitionerID) ? 'Practitioner/' & requestBody.performingPractitionerID : null", + "reasonReferenceServiceReq": "$exists(requestBody.reasonForHIVTestingID) ? 'Observation/' & requestBody.reasonForHIVTestingID : null", + "specimenReferenceServiceReq": "$exists(requestBody.specimenID) ? 'Specimen/' & requestBody.specimenID : null", + "notereferenceServiceReq": "$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "requestUrlServiceReq": "$exists(requestBody.serviceRequestID) ? 'ServiceRequest/' & requestBody.serviceRequestID : null", + + "fullUrlPractitioner": "$exists(requestBody.requestingPractitionerID) ? 'Practitioner/' & requestBody.requestingPractitionerID : null", + "resourceIdPractitioner": "$exists(requestBody.requestingPractitionerID) ? requestBody.requestingPractitionerID : null", + "requestUrlPractitioner": "$exists(requestBody.requestingPractitionerID) ? 'Practitioner/' & requestBody.requestingPractitionerID : null", + "clinicianName": "$exists(requestBody.clinicianName) ? requestBody.clinicianName : '234'", + + "fullUrlPerfPractitioner": "$exists(requestBody.performingPractitionerID) ? 'Practitioner/' & requestBody.requestingPractitionerID : null", + "resourceIdPerfPractitioner": "$exists(requestBody.performingPractitionerID) ? requestBody.performingPractitionerID : null", + "clinicianNamePerfPractitioner": "$exists(requestBody.clinicianName) ? requestBody.clinicianName : 123", + "requestUrlPerfPractitioner": "$exists(requestBody.performingPractitionerID) ? 'Practitioner/' & requestBody.requestingPractitionerID : null", + + "fullUrlObsResForHIV": "$exists(requestBody.reasonForHIVTestingID) ? 'Observation/' & requestBody.reasonForHIVTestingID : null", + "resourceIdObsResForHIV": "$exists(requestBody.reasonForHIVTestingID) ? requestBody.reasonForHIVTestingID : null", + "subjectReferenceObsResForHIV": "$exists(requestBody.patientId) ? 'Patient/' & requestBody.patientId : null", + "encounterReferenceObsResForHIV": "$exists(requestBody.encounterID) ? 'Encounter/' & requestBody.encounterID : null", + "notereferenceObsResForHIV": "$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "requestUrlObsResForHIV": "$exists(requestBody.reasonForHIVTestingID) ? 'Observation/' & requestBody.reasonForHIVTestingID : null", + + "fullUrlObsPatientPregnant": "$exists(requestBody.patientPregnantID) ? 'Observation/' & requestBody.patientPregnantID : null", + "resourceIdObsPatientPregnant": "$exists(requestBody.patientPregnantID) ? requestBody.patientPregnantID : null", + "subjectReferenceObsPatientPregnant": "$exists(requestBody.patientId) ? 'Patient/' & requestBody.patientId : null", + "encounterReferenceObsPatientPregnant": "$exists(requestBody.encounterID) ? 'Encounter/' & requestBody.encounterID : null", + "notereferenceObsPatientPregnant": "$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "requestUrlObsPatientPregnant": "$exists(requestBody.patientPregnantID) ? 'Observation/' & requestBody.patientPregnantID : null", + + + "fullUrlObsPatientNew": "$exists(requestBody.isPatientNewID) ? 'Observation/' & requestBody.isPatientNewID : null", + "resourceIdObsPatientNew": "$exists(requestBody.isPatientNewID) ? requestBody.isPatientNewID : null", + "subjectReferenceObsPatientNew": "$exists(requestBody.patientId) ? 'Patient/' & requestBody.patientId : null", + "encounterReferenceObsPatientNew": "$exists(requestBody.encounterID) ? 'Encounter/' & requestBody.encounterID : null", + "notereferenceObsPatientNew": "$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "requestUrlObsPatientNew": "$exists(requestBody.isPatientNewID) ? 'Observation/' & requestBody.isPatientNewID : null", + "isPatientNew": "$exists(requestBody.isPatientNew) ? requestBody.isPatientNew : 'true'", + + + "fullUrlObsBreastfeeding": "$exists(requestBody.breastfeedingID) ? 'Observation/' & requestBody.breastfeedingID : null", + "resourceIdObsBreastfeeding": "$exists(requestBody.breastfeedingID) ? requestBody.breastfeedingID : null", + "subjectReferenceObsBreastfeeding": "$exists(requestBody.patientId) ? 'Patient/' & requestBody.patientId : null", + "encounterReferenceObsBreastfeeding": "$exists(requestBody.encounterID) ? 'Encounter/' & requestBody.encounterID : null", + "notereferenceObsBreastfeeding": "$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "requestUrlObsBreastfeeding": "$exists(requestBody.breastfeedingID) ? 'Observation/' & requestBody.breastfeedingID : null", + + + + "fullUrlCarePlanARV": "$exists(requestBody.arvRegimenChangedID) ? 'CarePlan/' & requestBody.arvRegimenChangedID : null", + "resourceIdCarePlanARV": "$exists(requestBody.arvRegimenChangedID) ? requestBody.arvRegimenChangedID : null", + "subjectReferenceCarePlanARV": "$exists(requestBody.patientId) ? 'Patient/' & requestBody.patientId : null", + "encounterReferenceCarePlanARV": "$exists(requestBody.encounterID) ? 'Encounter/' & requestBody.encounterID : null", + "activityReferenceServiceReqCarePlanARV": "$exists(requestBody.arvRegimenChangedMedicationRequestID) ? 'MedicationRequest/' & requestBody.arvRegimenChangedMedicationRequestID : null", + "notereferenceCarePlanARV": "$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "requestUrlCarePlanARV": "$exists(requestBody.arvRegimenChangedID) ? 'CarePlan/' & requestBody.arvRegimenChangedID : null", + + + + "fullUrlCarePlanART": "$exists(requestBody.artTreatmentInitiatedID) ? 'CarePlan/' & requestBody.artTreatmentInitiatedID : null", + "resourceIdCarePlanART": "$exists(requestBody.artTreatmentInitiatedID) ? requestBody.artTreatmentInitiatedID : null", + "subjectReferenceCarePlanART": "$exists(requestBody.patientId) ? 'Patient/' & requestBody.patientId : null", + "encounterReferenceCarePlanART": "$exists(requestBody.encounterID) ? 'Encounter/' & requestBody.encounterID : null", + "activityReferenceServiceReqCarePlanART": "$exists(requestBody.arvTreatmentMedicationRequestID) ? 'MedicationRequest/' & requestBody.arvTreatmentMedicationRequestID : null", + "notereferenceCarePlanART": "$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "requestUrlCarePlanART": "$exists(requestBody.artTreatmentInitiatedID) ? 'CarePlan/' & requestBody.artTreatmentInitiatedID : null", + "patientArtNoCarePlanART": "$exists(requestBody.patientArtNo) ? requestBody.patientArtNo : null", + + + + "fullUrlMedicationReqARVregimen": "$exists(requestBody.arvRegimenChangedMedicationRequestID) ? 'MedicationRequest/' & requestBody.arvRegimenChangedMedicationRequestID : null", + "resourceIdMedicationReqARVregimen": "$exists(requestBody.arvRegimenChangedMedicationRequestID) ? requestBody.arvRegimenChangedMedicationRequestID : null", + "subjectReferenceMedicationReqARVregimen": "$exists(requestBody.patientId) ? 'Patient/' & requestBody.patientId : null", + "encounterReferenceMedicationReqARVregimen": "$exists(requestBody.encounterID) ? 'Encounter/' & requestBody.encounterID : null", + "resonReferenceServiceReqMedicationReqARVregimen": "$exists(requestBody.artRegimenSwitchedOrSubstitutedID) ? 'Observation/' & requestBody.artRegimenSwitchedOrSubstitutedID : null", + "requestUrlMedicationReqARVregimen": "$exists(requestBody.arvRegimenChangedMedicationRequestID) ? 'MedicationRequest/' & requestBody.arvRegimenChangedMedicationRequestID : null", + + + "fullUrlObAartRegimenSwitch": "$exists(requestBody.artRegimenSwitchedOrSubstitutedID) ? 'Observation/' & requestBody.artRegimenSwitchedOrSubstitutedID : null", + "resourceIdObAartRegimenSwitch": "$exists(requestBody.artRegimenSwitchedOrSubstitutedID) ? requestBody.artRegimenSwitchedOrSubstitutedID : null", + "subjectReferenceObAartRegimenSwitch": "$exists(requestBody.patientId) ? 'Patient/' & requestBody.patientId : null", + "encounterReferenceObAartRegimenSwitch": "$exists(requestBody.encounterID) ? 'Encounter/' & requestBody.encounterID : null", + "notereferenceObAartRegimenSwitch": "$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "requestUrlObAartRegimenSwitch": "$exists(requestBody.artRegimenSwitchedOrSubstitutedID) ? 'Observation/' & requestBody.artRegimenSwitchedOrSubstitutedID : null", + "dateOfArvRegimenChange": "$exists(requestBody.dateOfArvRegimenChange) ? requestBody.dateOfArvRegimenChange : '2023-09-04'", + "valueBooleanBreastfeeding": "$exists(requestBody.breastfeeding) ? requestBody.breastfeeding : false", + "valueBooleanObAartRegimenSwitch": "$exists(requestBody.breastfeeding) ? requestBody.breastfeeding : false", + + + "fullUrlMedicationReqArvTreatment": "$exists(requestBody.arvTreatmentMedicationRequestID) ? 'MedicationRequest/' & requestBody.arvTreatmentMedicationRequestID : null", + "resourceIdMedicationReqArvTreatment": "$exists(requestBody.arvTreatmentMedicationRequestID) ? requestBody.arvTreatmentMedicationRequestID : null", + "subjectReferenceMedicationReqArvTreatment": "$exists(requestBody.patientId) ? 'Patient/' & requestBody.patientId : null", + "encounterReferenceMedicationReqArvTreatment": "$exists(requestBody.encounterID) ? 'Encounter/' & requestBody.encounterID : null", + "resonReferenceServiceReqMedicationReqArvTreatment": "$exists(requestBody.artRegimenSwitchedOrSubstitutedID) ? 'Observation/' & requestBody.artRegimenSwitchedOrSubstitutedID : null", + "requestUrlMedicationReqArvTreatment": "$exists(requestBody.arvTreatmentMedicationRequestID) ? 'MedicationRequest/' & requestBody.arvTreatmentMedicationRequestID : null", + + "fullUrlObsEncounter": "$exists(requestBody.encounterID) ? 'Observation/' & requestBody.encounterID : null", + "resourceIdObsEncounter": "$exists(requestBody.encounterID) ? requestBody.encounterID : null", + "subjectReferenceObsEncounter": "$exists(requestBody.patientId) ? 'Patient/' & requestBody.patientId : null", + "encounterReferenceObsEncounter": "$exists(requestBody.encounterID) ? 'Encounter/' & requestBody.encounterID : null", + "notereferenceObsEncounter": "$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "requestUrlObsEncounter": "$exists(requestBody.encounterID) ? 'Observation/' & requestBody.encounterID : null", + + "fullUrlEncounter": "$exists(requestBody.encounterID) ? 'Encounter/' & requestBody.encounterID : null", + "resourceIdEncounter": "$exists(requestBody.encounterID) ? requestBody.encounterID : null", + "subjectReferenceEncounter": "$exists(requestBody.patientId) ? 'Patient/' & requestBody.patientId : null", + "encounterReferenceEncounter": "$exists(requestBody.encounterID) ? 'Encounter/' & requestBody.encounterID : null", + "notereferenceEncounter": "$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "requestUrlEncounter": "$exists(requestBody.encounterID) ? 'Encounter/' & requestBody.encounterID : null", + + "fullUrlObsHivTestResult": "$exists(requestBody.hivTestResultID) ? 'Observation/' & requestBody.hivTestResultID : null", + "resourceIdObsHivTestResult": "$exists(requestBody.hivTestResultID) ? requestBody.hivTestResultID : null", + "subjectReferenceObsHivTestResult": "$exists(requestBody.patientId) ? 'Patient/' & requestBody.patientId : null", + "encounterReferenceObsHivTestResult": "$exists(requestBody.encounterID) ? 'Encounter/' & requestBody.encounterID : null", + "lastViralLoadTestDate": "$exists(requestBody.lastViralLoadTestDate) ? requestBody.lastViralLoadTestDate : '2023-09-04'", + "performerObsHivTestResult": "$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "lastViralLoadResult": "$exists(requestBody.vlResult) ? requestBody.vlResult : 1001", + "notereferenceObsHivTestResult": "$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "reasonForVlResultChanges": "$exists(requestBody.reasonForVlResultChanges) ? requestBody.reasonForVlResultChanges : 'Tests'", + "requestUrlObsHivTestResult": "$exists(requestBody.hivTestResultID) ? 'Observation/' & requestBody.hivTestResultID : null", + + + + "fullUrlSpecimenDef": "$exists(requestBody.specimenConservationID) ? 'SpecimenDefinition/' & requestBody.specimenConservationID : null", + "resourceIdSpecimenDef": "$exists(requestBody.specimenConservationID) ? requestBody.specimenConservationID : null", + "requestUrlSpecimenDef": "$exists(requestBody.specimenConservationID) ? 'SpecimenDefinition/' & requestBody.specimenConservationID : null", + "typeTestedhandlmaxDurationSpecimenDef": "$exists(requestBody.durationOfConservation) ? requestBody.durationOfConservation : '20'", + + "fullUrlSpecimenDefspeciConserv":"$exists(requestBody.hivLabResultTaskID) ? 'Task/' & requestBody.hivLabResultTaskID : null", + "resourceIdSpecimenDefspeciConserv": "$exists(requestBody.hivLabResultTaskID) ? requestBody.hivLabResultTaskID : null", + "valueIntegerSpecimenDefspeciConserv": "$exists(requestBody.resultStatus) ? requestBody.resultStatus : null", + "identifiervalueSpecimenDefspeciConserv": "$exists(requestBody.upid) ? requestBody.upid : null", + "basedOnrefoneSpecimenDefspeciConserv": "$exists(requestBody.serviceRequestID) ? 'ServiceRequest/' & requestBody.serviceRequestID : null", + "basedOnreftwoSpecimenDefspeciConserv": "$exists(requestBody.sampleDispatchedToLabID) ? 'Transport/' & requestBody.sampleDispatchedToLabID : null", + "basedOnrefthreeSpecimenDefspeciConserv": "$exists(requestBody.resultDispatchedToRequestingFacilityID) ? 'Transport/' & requestBody.resultDispatchedToRequestingFacilityID : null", + "exePeriodstartSpecimenDefspeciConserv": "$exists(requestBody.requestDate) ? requestBody.requestDate : null", + "exePeriodendSpecimenDefspeciConserv": "$exists(requestBody.requestDate) ? requestBody.requestDate : null", + "refauthorRefnoteSpecimenDefspeciConserv": "$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "valueReferenceoutputSpecimenDefspeciConserv": "$exists(requestBody.hivLabResultsDiagnosticReportExampleID) ? 'DiagnosticReport/' & requestBody.hivLabResultsDiagnosticReportExampleID : null", + "requestUrlSpecimenDefspeciConserv":"$exists(requestBody.hivLabResultTaskID) ? 'Task/' & requestBody.hivLabResultTaskID : null", + "instantiatesCanonicalSpecimenDefspeciConserv":"$exists(requestBody.labOrderTaskActivityID) ? 'http://openhie.org/fhir/rwanda-hiv/ActivityDefinition/' & requestBody.labOrderTaskActivityID : null", + + + + + + "fullUrlActivityDefinitionlabOrder" : "$exists(requestBody.labOrderTaskActivityID) ? 'ActivityDefinition/' & requestBody.labOrderTaskActivityID : null", + "resourceIdActivityDefinitionlabOrder": "$exists(requestBody.labOrderTaskActivityID) ? requestBody.labOrderTaskActivityID : null", + "valueIntegerActivityDefinitionlabOrder": "$exists(requestBody.revisedBy) ? requestBody.revisedBy : null", + "dateActivityDefinitionlabOrder": "$exists(requestBody.revisedOn) ? requestBody.revisedOn : null", + + "approvalDateActivityDefinitionlabOrder": "$exists(requestBody.approvedOnDateTime) ? requestBody.approvedOnDateTime : null", + "lastReviewDateActivityDefinitionlabOrder":"$exists(requestBody.reviewedOn) ? requestBody.reviewedOn : null", + "reviewerextensionvalueIntegerActivityDefinitionlabOrder":"$exists(requestBody.reviewedBy) ? requestBody.reviewedBy : null", + "endorserextensionvalueIntegerActivityDefinitionlabOrder":"$exists(requestBody.approvedBy) ? requestBody.approvedBy : null", + "specimenRequirementActivityDefinitionlabOrder":"$exists(requestBody.specimenConservationID) ? 'http://openhie.org/fhir/rwanda-hiv/SpecimenDefinition/' & requestBody.specimenConservationID : null", + "requestUrlActivityDefinitionlabOrder":"$exists(requestBody.labOrderTaskActivityID) ? 'ActivityDefinition/' & requestBody.labOrderTaskActivityID : null", + + + + "fullUrlTransportsample":"$exists(requestBody.sampleDispatchedToLabID) ? 'Transport/' & requestBody.sampleDispatchedToLabID : null", + "resourceIdTransportsample":"$exists(requestBody.sampleDispatchedToLabID) ? requestBody.sampleDispatchedToLabID : null", + "completionTimeTransportsample":"$exists(requestBody.sampleReceivedAtHubOn) ? requestBody.sampleReceivedAtHubOn : '2020-09-07'", + "authoredOnTransportsample":"$exists(requestBody.sampleDispatchedOn) ? requestBody.sampleDispatchedOn : '2020-09-07'", + "refauthorRefnoteTransportsample":"$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "requestedLocationTransportsample":"$exists(requestBody.transportRequestedLocationID) ? 'Location/' & requestBody.transportRequestedLocationID : null", + "currentLocationTransportsample":"$exists(requestBody.transportCurrentLocationID) ? 'Location/' & requestBody.transportCurrentLocationID : null", + "requestUrlTransportsample":"$exists(requestBody.sampleDispatchedToLabID) ? 'Transport/' & requestBody.sampleDispatchedToLabID : null", + + + "fullUrlTransportresultDispatched":"$exists(requestBody.resultDispatchedToRequestingFacilityID) ? 'Transport/' & requestBody.resultDispatchedToRequestingFacilityID : null", + "resourceIdTransportresultDispatched":"$exists(requestBody.resultDispatchedToRequestingFacilityID) ? requestBody.resultDispatchedToRequestingFacilityID : null", + "authoredOnTransportresultDispatched":"$exists(requestBody.resultDispatchedOn) ? requestBody.resultDispatchedOn : '2020-09-07'", + "refauthorRefnoteTransportresultDispatched":"$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "requestedLocationTransportresultDispatched":"$exists(requestBody.transportRequestedLocationID) ? 'Location/' & requestBody.transportRequestedLocationID : null", + "currentLocationTransportresultDispatched":"$exists(requestBody.transportCurrentLocationID) ? 'Location/' & requestBody.transportCurrentLocationID : null", + "requestUrlTransportresultDispatchedlabOrder":"$exists(requestBody.resultDispatchedToRequestingFacilityID) ? 'Transport/' & requestBody.resultDispatchedToRequestingFacilityID : null", + + "fullUrlLocationtransport":"$exists(requestBody.transportRequestedLocationID) ? 'Location/' & requestBody.transportRequestedLocationID : null", + "resourceIdLocationtransport":"$exists(requestBody.transportRequestedLocationID) ? requestBody.transportRequestedLocationID : null", + "requestUrlLocationtransportlabOrder":"$exists(requestBody.transportRequestedLocationID) ? 'Location/' & requestBody.transportRequestedLocationID : null", + + "fullUrlLocationtransportCurrent":"$exists(requestBody.transportCurrentLocationID) ? 'Location/' & requestBody.transportCurrentLocationID : null", + "resourceIdLocationtransportCurrent":"$exists(requestBody.transportCurrentLocationID) ? requestBody.transportCurrentLocationID : null", + "requestUrlLocationtransportCurrentlabOrder":"$exists(requestBody.transportCurrentLocationID) ? 'Location/' & requestBody.transportCurrentLocationID : null", + + + "fullUrlDiagnosticReport":"$exists(requestBody.hivLabResultsDiagnosticReportExampleID) ? 'DiagnosticReport/' & requestBody.hivLabResultsDiagnosticReportExampleID : null", + "resourceIdDiagnosticReport":"$exists(requestBody.hivLabResultsDiagnosticReportExampleID) ? requestBody.hivLabResultsDiagnosticReportExampleID : null", + "valueIntegerDiagnosticReport":"$exists(requestBody.testedBy) ? requestBody.testedBy : null", + "referenceDiagnosticReport":"$exists(requestBody.serviceRequestID) ? 'ServiceRequest/' & requestBody.serviceRequestID : null", + "subjectReferenceDiagnosticReport":"$exists(requestBody.patientId) ? 'Patient/' & requestBody.patientId : null", + "effectiveDateTimeDiagnosticReport":"$exists(requestBody.dateOfCompletionOfViralLoad) ? requestBody.dateOfCompletionOfViralLoad : null", + "encounterReferenceDiagnosticReport":"$exists(requestBody.encounterID) ? 'Encounter/' & requestBody.encounterID : null", + "performerDiagnosticReport":"$exists(requestBody.performingPractitionerID) ? 'Practitioner/' & requestBody.performingPractitionerID : null", + "resultsInterpreterDiagnosticReport":"$exists(requestBody.resultsInterpreterID) ? 'Practitioner/' & requestBody.resultsInterpreterID : null", + "resultDiagnosticReport":"$exists(requestBody.hivTestResultID) ? 'Observation/' & requestBody.hivTestResultID : null", + "notereferenceDiagnosticReport":"$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "conclusionDiagnosticReport":"$exists(requestBody.labComments) ? requestBody.labComments : null", + "requestUrlDiagnosticReport":"$exists(requestBody.hivLabResultsDiagnosticReportExampleID) ? 'DiagnosticReport/' & requestBody.hivLabResultsDiagnosticReportExampleID : null", + + "fullUrlPractitionerresults":"$exists(requestBody.resultsInterpreterID) ? 'Practitioner/' & requestBody.resultsInterpreterID : null", + "resourceIdPractitionerresults":"$exists(requestBody.resultsInterpreterID) ? requestBody.resultsInterpreterID : null", + "valueIntegerPractitionerresults":"$exists(requestBody.clinicianName) ? requestBody.clinicianName : 10", + "telecomvaluePractitionerresults":"$exists(requestBody.vlFocalPersonPhoneNumber) ? requestBody.vlFocalPersonPhoneNumber : null", + "requestUrlPractitionerresults":"$exists(requestBody.resultsInterpreterID) ? 'Practitioner/' & requestBody.resultsInterpreterID : null", + + "fullUrlConsentreceive":"$exists(requestBody.receiveSMSMessagesID) ? 'Consent/' & requestBody.receiveSMSMessagesID : null", + "resourceIdConsentreceive":"$exists(requestBody.receiveSMSMessagesID) ? requestBody.receiveSMSMessagesID : null", + "subjectReferenceConsentreceive":"$exists(requestBody.patientId) ? 'Patient/' & requestBody.patientId : null", + "decisionConsentreceive":"$exists(requestBody.receiveSms) ? requestBody.receiveSms : 'permit'", + "requestUrlConsentreceive":"$exists(requestBody.receiveSMSMessagesID) ? 'Consent/' & requestBody.receiveSMSMessagesID : null", + + "fullUrlObservationarvAdher":"$exists(requestBody.arvAdherenceID) ? 'Observation/' & requestBody.arvAdherenceID : null", + "resourceIdObservationarvAdher":"$exists(requestBody.arvAdherenceID) ? requestBody.arvAdherenceID : null", + "subjectReferenceObservationarvAdher":"$exists(requestBody.patientId) ? 'Patient/' & requestBody.patientId : null", + "encounterReferenceObservationarvAdher":"$exists(requestBody.encounterID) ? 'Encounter/' & requestBody.encounterID : null", + "notereferenceObservationarvAdher":"$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "requestUrlObservationarvAdher":"$exists(requestBody.arvAdherenceID) ? 'Observation/' & requestBody.arvAdherenceID : null", + + "fullUrlObservationRepeat":"$exists(requestBody.hivTestResultID) ? 'Observation/Repeat' & requestBody.hivTestResultID : null", + "resourceIdObservationRepeat":"$exists(requestBody.hivTestResultID) ? 'Repeat' & requestBody.hivTestResultID : null", + "subjectReferenceObservationRepeat":"$exists(requestBody.patientId) ? 'Patient/' & requestBody.patientId : null", + "encounterReferenceObservationRepeat":"$exists(requestBody.encounterID) ? 'Encounter/' & requestBody.encounterID : null", + "effectiveDateTimeReferenceObservationRepeat":"$exists(requestBody.repeatTestingLastVLDates) ? requestBody.repeatTestingLastVLDates : '2020-09-07'", + "performerReferenceObservationRepeat":"$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "valueIntegerReferenceObservationRepeat":"$exists(requestBody.repeatTestingVlValues) ? requestBody.repeatTestingVlValues : 988", + "notereferenceObservationRepeat":"$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "requestUrlObservationRepeat":"$exists(requestBody.hivTestResultID) ? 'Observation/Repeat' & requestBody.hivTestResultID : null", + + "fullUrlObservationSuspend":"$exists(requestBody.hivTestResultID) ? 'Observation/SuspendTreatment' & requestBody.hivTestResultID : null", + "resourceIdObservationSuspend":"$exists(requestBody.hivTestResultID) ? 'SuspendTreatment' & requestBody.hivTestResultID : null", + "subjectReferenceObservationSuspend":"$exists(requestBody.patientId) ? 'Patient/' & requestBody.patientId : null", + "encounterReferenceObservationSuspend":"$exists(requestBody.encounterID) ? 'Encounter/' & requestBody.encounterID : null", + "effectiveDateTimeReferenceObservationSuspend":"$exists(requestBody.suspendTreatmentLastVLDate) ? requestBody.suspendTreatmentLastVLDate : '2020-09-07'", + "performerReferenceObservationSuspend":"$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "valueIntegerReferenceObservationSuspend":"$exists(requestBody.suspendTreatmentVlValues) ? requestBody.suspendTreatmentVlValues : 765", + "notereferenceObservationSuspend":"$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "requestUrlObservationSuspend":"$exists(requestBody.hivTestResultID) ? 'Observation/SuspendTreatment' & requestBody.hivTestResultID : null", + + "fullUrlDevicetest":"$exists(requestBody.testingPlatformID) ? 'Device/' & requestBody.testingPlatformID : null", + "resourceIdDevicetest":"$exists(requestBody.testingPlatformID) ? requestBody.testingPlatformID : null", + "manufacturerDevicetest":"$exists(requestBody.testingPlatform) ? requestBody.testingPlatform : 'LabSystem XXX'", + "notereferenceDevicetest":"$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "requestUrlDevicetest":"$exists(requestBody.testingPlatformID) ? 'Device/' & requestBody.testingPlatformID : null", + + + "fullUrlObservationhivTest":"$exists(requestBody.hivTestResultViralLoadLogID) ? 'Observation/' & requestBody.hivTestResultViralLoadLogID : null", + "resourceIdObservationhivTest":"$exists(requestBody.hivTestResultViralLoadLogID) ? requestBody.hivTestResultViralLoadLogID : null", + "subjectReferenceObservationhivTest":"$exists(requestBody.patientId) ? 'Patient/' & requestBody.patientId : null", + "encounterReferenceObservationhivTest":"$exists(requestBody.encounterID) ? 'Encounter/' & requestBody.encounterID : null", + "performerReferenceObservationhivTest":"$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "valueQuantityReferenceObservationhivTest":"$exists(requestBody.vlLog) ? requestBody.vlLog : '21.5'", + "notereferenceObservationhivTest":"$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "derivedFromObservationhivTest":"$exists(requestBody.hivTestResultID) ? 'Observation/' & requestBody.hivTestResultID : null", + "requestUrlObservationhivTest":"$exists(requestBody.hivTestResultViralLoadLogID) ? 'Observation/' & requestBody.hivTestResultViralLoadLogID : null", + + "fullUrlObservationhivTestResult":"$exists(requestBody.hivTestResultAbsoluteDecimalID) ? 'Observation/' & requestBody.hivTestResultAbsoluteDecimalID : null", + "resourceIdObservationhivTestResult":"$exists(requestBody.hivTestResultAbsoluteDecimalID) ? requestBody.hivTestResultAbsoluteDecimalID : null", + "subjectReferenceObservationhivTestResult":"$exists(requestBody.patientId) ? 'Patient/' & requestBody.patientId : null", + "encounterReferenceObservationhivTestResult":"$exists(requestBody.encounterID) ? 'Encounter/' & requestBody.encounterID : null", + "performerReferenceObservationhivTestResult":"$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "valueQuantityReferenceObservationhivTestResult":"$exists(requestBody.vlResultAbsoluteDecimal) ? requestBody.vlResultAbsoluteDecimal : '21.5'", + "notereferenceObservationhivTestResult":"$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "derivedFromObservationhivTestResult":"$exists(requestBody.hivTestResultID) ? 'Observation/' & requestBody.hivTestResultID : null", + "requestUrlObservationhivTestResult":"$exists(requestBody.hivTestResultAbsoluteDecimalID) ? 'Observation/' & requestBody.hivTestResultAbsoluteDecimalID : null" , + + "fullUrlOrganizationfund":"$exists(requestBody.fundingOrganizationID) ? 'Organization/' & requestBody.fundingOrganizationID : null", + "resourceIdOrganizationfund":"$exists(requestBody.fundingOrganizationID) ? requestBody.fundingOrganizationID : null", + "provinceIdOrganizationfund":"$exists(requestBody.fundingSource) ? requestBody.fundingSource : 3", + "requestUrlOrganizationfund":"$exists(requestBody.fundingOrganizationID) ? 'Organization/' & requestBody.fundingOrganizationID : null", + + + "fullUrlOrganizationimplementing":"$exists(requestBody.implementingPartnerOrganizationID) ? 'Organization/' & requestBody.implementingPartnerOrganizationID : null", + "resourceIdOrganizationimplementing":"$exists(requestBody.implementingPartnerOrganizationID) ? requestBody.implementingPartnerOrganizationID : null", + "provinceIdOrganizationimplementing":"$exists(requestBody.implementingPartner) ? requestBody.implementingPartner : 14", + "requestUrlOrganizationimplementing":"$exists(requestBody.implementingPartnerOrganizationID) ? 'Organization/' & requestBody.implementingPartnerOrganizationID : null", + + "specimenType_code": "$exists(requestBody.specimenTypeCode) ? requestBody.specimenTypeCode : 119361006", + "specimenType_display": "$exists(requestBody.specimenTypeDisplay) ? requestBody.specimenTypeDisplay : 'Plasma specimen'", + + "systemvalueCodeableConceptObsResForHIV": "$exists(requestBody.reasonForVLTestingCodeSystem) ? requestBody.reasonForVLTestingCodeSystem : 'http://snomed.info/sct'", + "codevalueCodeableConceptObsResForHIV":"$exists(requestBody.reasonForVLTestingCode) ? requestBody.reasonForVLTestingCode : '2528003'", + "displayvalueCodeableConceptObsResForHIV":"$exists(requestBody.reasonForVLTestingDisplay) ? requestBody.reasonForVLTestingDisplay : 'Viremia'", + + "codevalueCodeableConceptObsPatientPregnant": "$exists(requestBody.patientPregnantCode) ? requestBody.patientPregnantCode : '250425007'", + "displayvalueCodeableConceptObsPatientPregnant": "$exists(requestBody.patientPregnantDisplay) ? requestBody.patientPregnantDisplay : 'Pregnancy test negative'", + + "codeMedicationReqARVregimen":"$exists(requestBody.artRegimenCode) ? requestBody.artRegimenCode : 'LA6763-2'", + "displayMedicationReqARVregimen":"$exists(requestBody.artRegimenDisplay) ? requestBody.artRegimenDisplay : 'Good = 95% adherence'", + + "codeCodeObAartRegimenSwitch":"$exists(requestBody.reasonForArvRegimenChangeCode) ? requestBody.reasonForArvRegimenChangeCode : '182838006'", + "displayCodeObAartRegimenSwitch":"$exists(requestBody.reasonForArvRegimenChangeDisplay) ? requestBody.reasonForArvRegimenChangeDisplay : 'Virologic'", + + "codeMedicationReqArvTreatment": "$exists(requestBody.artRegimenCode) ? requestBody.artRegimenCode : '387001004'", + "displayMedicationReqArvTreatment": "$exists(requestBody.artRegimenDisplay) ? requestBody.artRegimenDisplay : 'Efavirenz'", + + "namefamilyPractitionerresults": "$exists(requestBody.vlFocalPersonLastName) ? requestBody.vlFocalPersonLastName : '387001004'", + "namegivenPractitionerresults": "$exists(requestBody.vlFocalPersonFirstName) ? requestBody.vlFocalPersonFirstName : 'Smith'", + + "valuecodeCodeObservationarvAdher": "$exists(requestBody.arvAdherenceCode) ? requestBody.arvAdherenceCode : 'LA6763-2'", + "valuedisplayCodeObservationarvAdher": "$exists(requestBody.arvAdherenceDisplay) ? requestBody.arvAdherenceDisplay : 'Good = 95% adherence'", + "typeTestedhandltempRangelowSpecimenDef": "$exists(requestBody.conservationTemperatureLow) ? requestBody.conservationTemperatureLow : '-10'", + "typeTestedhandltempRangehighSpecimenDef": "$exists(requestBody.conservationTemperatureHigh) ? requestBody.conservationTemperatureHigh : '10'", + "encounterSpecimenDefspeciConserv": "$exists(requestBody.encounterID) ? 'Encounter/' & requestBody.encounterID : null", + "forSpecimenDefspeciConserv": "$exists(requestBody.patientId) ? 'Patient/' & requestBody.patientId : null" + + + + + + + + + + + + +}, + "inputMapping": { + "constants.resourceType":"resourceType", + "requestBody.guid": "id", + "constants.type":"type", + + + "transforms.fullUrlPatient":"entry[0].fullUrl", + "constants.patientResourceType":"entry[0].resource.resourceType", + "requestBody.patientId":"entry[0].resource.id", + "constants.profile":"entry[0].resource.meta.profile[0]", + "constants.monthsUrl":"entry[0].resource.extension[0].url", + "transforms.ageInMonths":"entry[0].resource.extension[0].valueInteger", + "constants.yearsUrl":"entry[0].resource.extension[1].url", + "transforms.ageInYears":"entry[0].resource.extension[1].valueInteger", + "constants.use":"entry[0].resource.name[0].use", + "requestBody.patientLastName":"entry[0].resource.name[0].family", + "requestBody.patientFirstName":"entry[0].resource.name[0].given[0]", + "requestBody.patientMiddleName":"entry[0].resource.name[0].given[1]", + "constants.phoneSystem":"entry[0].resource.telecom[0].system", + "requestBody.patientPhoneNumber":"entry[0].resource.telecom[0].value", + "constants.emailSystem":"entry[0].resource.telecom[1].system", + "constants.patientEmail":"entry[0].resource.telecom[1].value", + "requestBody.patientGender": "entry[0].resource.gender", + "requestBody.patientDob": "entry[0].resource.birthDate", + "transforms.referencePatient":"entry[0].resource.managingOrganization.reference", + "constants.method":"entry[0].request.method", + "transforms.requestUrlPatient":"entry[0].request.url", + + + "transforms.fullUrlSpecimen":"entry[1].fullUrl", + "constants.ResourceTypeSpecimen":"entry[1].resource.resourceType", + "transforms.resourceIdSpecimen":"entry[1].resource.id", + "constants.profileSpecimen":"entry[1].resource.meta.profile[0]", + "constants.specimenTextStatus":"entry[1].resource.text.status", + "constants.specimenTextDiv":"entry[1].resource.text.div", + "constants.sampleReorderedUrl":"entry[1].resource.extension[0].url", + "requestBody.sampleReordered":"entry[1].resource.extension[0].valueBoolean", + "constants.appSampleCodingSystem":"entry[1].resource.identifier[0].type.coding[].system", + "constants.appSampleCode":"entry[1].resource.identifier[0].type.coding[].code", + "constants.appSampleDisplay":"entry[1].resource.identifier[0].type.coding[].display", + "constants.appSampleText":"entry[1].resource.identifier[0].type.text", + "constants.appSampleSystem":"entry[1].resource.identifier[0].system", + "transforms.appSampleCodeValue":"entry[1].resource.identifier[0].value", + "constants.remoteSampleCodingSystem":"entry[1].resource.identifier[1].type.coding[].system", + "constants.remoteSampleCode":"entry[1].resource.identifier[1].type.coding[].code", + "constants.remoteSampleDisplay":"entry[1].resource.identifier[1].type.coding[].display", + "constants.remoteSampleText":"entry[1].resource.identifier[1].type.text", + "constants.remoteSampleSystem":"entry[1].resource.identifier[1].system", + "constants.remoteSampleValue":"entry[1].resource.identifier[1].value", + "constants.SampleCodingSystem":"entry[1].resource.identifier[2].type.coding[].system", + "constants.SampleCode":"entry[1].resource.identifier[2].type.coding[].code", + "constants.SampleDisplay":"entry[1].resource.identifier[2].type.coding[].display", + "constants.SampleText":"entry[1].resource.identifier[2].type.text", + "constants.SampleSystem":"entry[1].resource.identifier[2].system", + "transforms.PlacerSampleValue":"entry[1].resource.identifier[2].value", + "constants.PlacerCodingSystem":"entry[1].resource.identifier[3].type.coding[].system", + "constants.PlacerCode":"entry[1].resource.identifier[3].type.coding[].code", + "constants.PlacerDisplay":"entry[1].resource.identifier[3].type.coding[].display", + "constants.PlacerText":"entry[1].resource.identifier[3].type.text", + "constants.PlacerSystem":"entry[1].resource.identifier[3].system", + "transforms.PlacerValue":"entry[1].resource.identifier[3].value", + "constants.SpecimenTypeCodingSystem":"entry[1].resource.type.coding[].system", + "transforms.specimenType_code":"entry[1].resource.type.coding[].code", + "transforms.specimenType_display":"entry[1].resource.type.coding[].display", + "constants.SpecimenTypeText":"entry[1].resource.type.text", + "transforms.subjectReferenceSpecimen":"entry[1].resource.subject.reference", + "requestBody.sampleReceivedDate":"entry[1].resource.receivedTime", + "requestBody.sampleCollectionDate":"entry[1].resource.collection.collectedDateTime", + "requestBody.sampleTestingDateAtLab":"entry[1].resource.processing[0].timeDateTime", + "transforms.referenceSpecimen":"entry[1].resource.note[0].authorReference.reference", + "constants.timeSpecimen":"entry[1].resource.note[0].time", + "constants.textUrlSpecimen":"entry[1].resource.note[0].text", + "constants.methodSpecimen":"entry[1].request.method", + "transforms.requestUrlSpecimen":"entry[1].request.url", + + + + "transforms.fullUrlReqOrg":"entry[2].fullUrl", + "constants.ResourceTypeReqOrg":"entry[2].resource.resourceType", + "transforms.resourceIdReqOrg":"entry[2].resource.id", + "requestBody.requestingOrganizationID":"entry[2].resource.id", + "constants.profileReqOrg":"entry[2].resource.meta.profile[0]", + "constants.CodingSystemReqOrg":"entry[2].resource.identifier[0].type.coding[].system", + "constants.CodeReqOrg":"entry[2].resource.identifier[0].type.coding[].code", + "constants.DisplayReqOrg":"entry[2].resource.identifier[0].type.coding[].display", + "constants.TextReqOrg":"entry[2].resource.identifier[0].type.text", + "constants.SystemReqOrg":"entry[2].resource.identifier[0].system", + "requestBody.facilityId":"entry[2].resource.identifier[0].value", + "constants.nameReqOrg":"entry[2].resource.name", + "constants.methodReqOrg":"entry[2].request.method", + "transforms.requestUrlReqOrg":"entry[2].request.url", + + + + "transforms.fullUrlPerfORG":"entry[3].fullUrl", + "constants.resourceTypePerfORG":"entry[3].resource.resourceType", + "transforms.resourceIdPerfORG":"entry[3].resource.id", + "constants.profilePerfORG":"entry[3].resource.meta.profile[0]", + "constants.urlPerfOrgProvince":"entry[3].resource.extension[0].url", + "requestBody.provinceId":"entry[3].resource.extension[0].valueInteger", + "constants.urlPerfOrgDistrict":"entry[3].resource.extension[1].url", + "constants.valueIntegerPerfOrgDistrict":"entry[3].resource.extension[1].valueInteger", + "constants.codingSystemPerfORG":"entry[3].resource.identifier[0].type.coding[].system", + "constants.codePerfORG":"entry[3].resource.identifier[0].type.coding[].code", + "constants.displayPerfORG":"entry[3].resource.identifier[0].type.coding[].display", + "constants.textPerfORG":"entry[3].resource.identifier[0].type.text", + "constants.systemPerfORG":"entry[3].resource.identifier[0].system", + "requestBody.labId":"entry[3].resource.identifier[0].value", + "constants.namePerfORG":"entry[3].resource.name", + "constants.districtPerfORG":"entry[3].resource.contact[0].address.district", + "constants.statePerfORG":"entry[3].resource.contact[0].address.state", + "constants.methodPerfORG":"entry[3].request.method", + "transforms.requestUrlPerfORG":"entry[3].request.url", + + + + "transforms.fullUrlServiceReq":"entry[4].fullUrl", + "constants.resourceTypeServiceReq":"entry[4].resource.resourceType", + "transforms.resourceIdServiceReq":"entry[4].resource.id", + "constants.profileServiceReq":"entry[4].resource.meta.profile[0]", + "constants.codingSystemServiceReq":"entry[4].resource.identifier[0].type.coding[].system", + "constants.codeServiceReq":"entry[4].resource.identifier[0].type.coding[].code", + "constants.displayServiceReq":"entry[4].resource.identifier[0].type.coding[].display", + "constants.textServiceReq":"entry[4].resource.identifier[0].type.text", + "constants.systemServiceReq":"entry[4].resource.identifier[0].system", + "transforms.valueServiceReq":"entry[4].resource.identifier[0].value", + "constants.statuserviceReq":"entry[4].resource.status", + "constants.intentServiceReq":"entry[4].resource.intent", + "constants.systemCodeServiceReq":"entry[4].resource.code.concept.coding[].system", + "constants.codeCodeServiceReq":"entry[4].resource.code.concept.coding[].code", + "constants.displayCodeServiceReq":"entry[4].resource.code.concept.coding[].display", + "constants.textCodeServiceReq":"entry[4].resource.code.concept.text", + "transforms.subjectReferenceServiceReq":"entry[4].resource.subject.reference", + "transforms.encounterReferenceServiceReq":"entry[4].resource.encounter.reference", + "transforms.occurrenceDateTimeServiceReq":"entry[4].resource.occurrenceDateTime", + "transforms.requesterReferenceServiceReq":"entry[4].resource.requester.reference", + "transforms.performerReferenceServiceReq":"entry[4].resource.performer[].reference", + "transforms.reasonReferenceServiceReq":"entry[4].resource.reason[].reference.reference", + "transforms.specimenReferenceServiceReq":"entry[4].resource.specimen[].reference", + "transforms.notereferenceServiceReq":"entry[4].resource.note[0].authorReference.reference", + "constants.timeServiceReq":"entry[4].resource.note[0].time", + "constants.textUrlServiceReq":"entry[4].resource.note[0].text", + "constants.methodServiceReq":"entry[4].request.method", + "transforms.requestUrlServiceReq":"entry[4].request.url", + + + "transforms.fullUrlPractitioner":"entry[5].fullUrl", + "constants.resourceTypePractitioner":"entry[5].resource.resourceType", + "transforms.resourceIdPractitioner":"entry[5].resource.id", + "constants.profilePractitioner":"entry[5].resource.meta.profile[0]", + "constants.performingPractitionerstatus":"entry[5].resource.text.status", + "constants.performingPractitionerdiv":"entry[5].resource.text.div", + "constants.urlClinicianPractitioner":"entry[5].resource.extension[0].url", + "transforms.clinicianName":"entry[5].resource.extension[0].valueInteger", + "constants.familyNamePractitioner":"entry[5].resource.name[0].family", + "constants.givenNamePractitioner":"entry[5].resource.name[0].given[0]", + "constants.phoneSystemPractitioner":"entry[5].resource.telecom[0].system", + "requestBody.clinicanTelephone":"entry[5].resource.telecom[0].value", + "constants.methodPractitioner":"entry[5].request.method", + "transforms.requestUrlPractitioner":"entry[5].request.url", + + + + "transforms.fullUrlPerfPractitioner":"entry[6].fullUrl", + "constants.resourceTypePerfPractitioner":"entry[6].resource.resourceType", + "transforms.resourceIdPerfPractitioner":"entry[6].resource.id", + "constants.profilePerfPractitioner":"entry[6].resource.meta.profile[0]", + "constants.reqPractitionerstatus":"entry[6].resource.text.status", + "constants.reqPractitionerdiv":"entry[6].resource.text.div", + "constants.urlClinicianPerfPractitioner":"entry[6].resource.extension[0].url", + "transforms.clinicianNamePerfPractitioner":"entry[6].resource.extension[0].valueInteger", + "constants.familyNamePerfPractitioner":"entry[6].resource.name[0].family", + "constants.givenNamePerfPractitioner":"entry[6].resource.name[0].given[0]", + "constants.phoneSystemPerfPractitioner":"entry[6].resource.telecom[0].system", + "constants.phoneValuePerfPractitioner":"entry[6].resource.telecom[0].value", + "constants.methodPerfPractitioner":"entry[6].request.method", + "transforms.requestUrlPerfPractitioner":"entry[6].request.url", + + "transforms.fullUrlObsResForHIV":"entry[7].fullUrl", + "constants.resourceTypeObsResForHIV":"entry[7].resource.resourceType", + "transforms.resourceIdObsResForHIV":"entry[7].resource.id", + "constants.profileObsResForHIV":"entry[7].resource.meta.profile[0]", + "constants.obsResForHIVTextDiv":"entry[7].resource.text.div", + "constants.statuObsResForHIV":"entry[7].resource.status", + "constants.obsResForHIVTextStatus":"entry[7].resource.text.status", + "constants.systemCodeObsResForHIV":"entry[7].resource.code.coding[].system", + "constants.codeCodeObsResForHIV":"entry[7].resource.code.coding[].code", + "constants.displayCodeObsResForHIV":"entry[7].resource.code.coding[].display", + "constants.textCodeObsResForHIV":"entry[7].resource.code.text", + "transforms.subjectReferenceObsResForHIV":"entry[7].resource.subject.reference", + "transforms.encounterReferenceObsResForHIV":"entry[7].resource.encounter.reference", + "constants.effectiveDateTimeObsResForHIV":"entry[7].resource.effectiveDateTime", + "transforms.systemvalueCodeableConceptObsResForHIV":"entry[7].resource.valueCodeableConcept.coding[].system", + "transforms.codevalueCodeableConceptObsResForHIV":"entry[7].resource.valueCodeableConcept.coding[].code", + "transforms.displayvalueCodeableConceptObsResForHIV":"entry[7].resource.valueCodeableConcept.coding[].display", + "constants.textvalueCodeableConceptObsResForHIV":"entry[7].resource.valueCodeableConcept.text", + "transforms.notereferenceObsResForHIV":"entry[7].resource.note[0].authorReference.reference", + "constants.timeObsResForHIV":"entry[7].resource.note[0].time", + "constants.textObsResForHIV":"entry[7].resource.note[0].text", + "constants.methodObsResForHIV":"entry[7].request.method", + "transforms.requestUrlObsResForHIV":"entry[7].request.url", + + + "transforms.fullUrlObsPatientPregnant":"entry[8].fullUrl", + "constants.resourceTypeObsPatientPregnant":"entry[8].resource.resourceType", + "transforms.resourceIdObsPatientPregnant":"entry[8].resource.id", + "constants.profileObsPatientPregnant":"entry[8].resource.meta.profile[0]", + "constants.ObsPatientPregnantDiv":"entry[8].resource.text.div", + "constants.ObsPatientPregnantStatus":"entry[8].resource.text.status", + "constants.statuObsPatientPregnant":"entry[8].resource.status", + "constants.systemCodeObsPatientPregnant":"entry[8].resource.code.coding[].system", + "constants.codeCodeObsPatientPregnant":"entry[8].resource.code.coding[].code", + "constants.textCodeObsPatientPregnant":"entry[8].resource.code.text", + "transforms.subjectReferenceObsPatientPregnant":"entry[8].resource.subject.reference", + "transforms.encounterReferenceObsPatientPregnant":"entry[8].resource.encounter.reference", + "constants.effectiveDateTimeObsPatientPregnant":"entry[8].resource.effectiveDateTime", + "constants.systemvalueCodeableConceptObsPatientPregnant":"entry[8].resource.valueCodeableConcept.coding[].system", + "transforms.codevalueCodeableConceptObsPatientPregnant":"entry[8].resource.valueCodeableConcept.coding[].code", + "transforms.displayvalueCodeableConceptObsPatientPregnant":"entry[8].resource.valueCodeableConcept.coding[].display", + "constants.textvalueCodeableConceptObsPatientPregnant":"entry[8].resource.valueCodeableConcept.text", + "transforms.notereferenceObsPatientPregnant":"entry[8].resource.note[0].authorReference.reference", + "constants.timeObsPatientPregnant":"entry[8].resource.note[0].time", + "constants.textObsPatientPregnant":"entry[8].resource.note[0].text", + "constants.methodObsPatientPregnant":"entry[8].request.method", + "transforms.requestUrlObsPatientPregnant":"entry[8].request.url", + + "transforms.fullUrlObsPatientNew":"entry[9].fullUrl", + "constants.resourceTypeObsPatientNew":"entry[9].resource.resourceType", + "transforms.resourceIdObsPatientNew":"entry[9].resource.id", + "constants.profileObsPatientNew":"entry[9].resource.meta.profile[0]", + "constants.PatientNewDiv":"entry[9].resource.text.div", + "constants.PatientNewStatus":"entry[9].resource.text.status", + "constants.statuObsPatientNew":"entry[9].resource.status", + "constants.systemCodeObsPatientNew":"entry[9].resource.code.coding[].system", + "constants.codeCodeObsPatientNew":"entry[9].resource.code.coding[].code", + "constants.displayCodeObsPatientNew":"entry[9].resource.code.coding[].display", + "constants.textCodeObsPatientNew":"entry[9].resource.code.text", + "transforms.subjectReferenceObsPatientNew":"entry[9].resource.subject.reference", + "transforms.encounterReferenceObsPatientNew":"entry[9].resource.encounter.reference", + "transforms.isPatientNew":"entry[9].resource.valueBoolean", + "transforms.notereferenceObsPatientNew":"entry[9].resource.note[0].authorReference.reference", + "constants.timeObsPatientNew":"entry[9].resource.note[0].time", + "constants.textObsPatientNew":"entry[9].resource.note[0].text", + "constants.methodObsPatientNew":"entry[9].request.method", + "transforms.requestUrlObsPatientNew":"entry[9].request.url", + + "transforms.fullUrlObsBreastfeeding":"entry[10].fullUrl", + "constants.resourceTypeObsBreastfeeding":"entry[10].resource.resourceType", + "transforms.resourceIdObsBreastfeeding":"entry[10].resource.id", + "constants.profileObsBreastfeeding":"entry[10].resource.meta.profile[0]", + "constants.BreastfeedingDiv":"entry[10].resource.text.div", + "constants.BreastfeedingStatus":"entry[10].resource.text.status", + "constants.statuObsBreastfeeding":"entry[10].resource.status", + "constants.systemCodeObsBreastfeeding":"entry[10].resource.code.coding[].system", + "constants.codeCodeObsBreastfeeding":"entry[10].resource.code.coding[].code", + "constants.displayCodeObsBreastfeeding":"entry[10].resource.code.coding[].display", + "constants.textCodeObsBreastfeeding":"entry[10].resource.code.text", + "transforms.subjectReferenceObsBreastfeeding":"entry[10].resource.subject.reference", + "transforms.encounterReferenceObsBreastfeeding":"entry[10].resource.encounter.reference", + "transforms.valueBooleanBreastfeeding":"entry[10].resource.valueBoolean", + "transforms.notereferenceObsBreastfeeding":"entry[10].resource.note[0].authorReference.reference", + "constants.timeObsBreastfeeding":"entry[10].resource.note[0].time", + "constants.textObsBreastfeeding":"entry[10].resource.note[0].text", + "constants.methodObsBreastfeeding":"entry[10].request.method", + "transforms.requestUrlObsBreastfeeding":"entry[10].request.url", + + + "transforms.fullUrlCarePlanARV":"entry[11].fullUrl", + "constants.resourceTypeCarePlanARV":"entry[11].resource.resourceType", + "transforms.resourceIdCarePlanARV":"entry[11].resource.id", + "constants.profileCarePlanARV":"entry[11].resource.meta.profile[0]", + "constants.CarePlanARVDiv":"entry[11].resource.text.div", + "constants.CarePlanARVStatus":"entry[11].resource.text.status", + "constants.codingSystemCarePlanARV":"entry[11].resource.identifier[0].type.coding[].system", + "constants.codeCarePlanARV":"entry[11].resource.identifier[0].type.coding[].code", + "constants.displayCarePlanARV":"entry[11].resource.identifier[0].type.coding[].display", + "constants.textCarePlanARV":"entry[11].resource.identifier[0].type.text", + "constants.systemCarePlanARV":"entry[11].resource.identifier[0].system", + "requestBody.patientArtNo":"entry[11].resource.identifier[0].value", + "constants.statuCarePlanARV":"entry[11].resource.status", + "constants.intentCarePlanARV":"entry[11].resource.intent", + "transforms.subjectReferenceCarePlanARV":"entry[11].resource.subject.reference", + "transforms.encounterReferenceCarePlanARV":"entry[11].resource.encounter.reference", + "constants.startCarePlanARV":"entry[11].resource.period.start", + "constants.endCarePlanARV":"entry[11].resource.period.end", + "transforms.activityReferenceServiceReqCarePlanARV":"entry[11].resource.activity[].plannedActivityReference.reference", + "transforms.notereferenceCarePlanARV":"entry[11].resource.note[0].authorReference.reference", + "constants.timeCarePlanARV":"entry[11].resource.note[0].time", + "constants.textUrlCarePlanARV":"entry[11].resource.note[0].text", + "constants.methodCarePlanARV":"entry[11].request.method", + "transforms.requestUrlCarePlanARV":"entry[11].request.url", + + + + + "transforms.fullUrlCarePlanART":"entry[12].fullUrl", + "constants.resourceTypeCarePlanART":"entry[12].resource.resourceType", + "transforms.resourceIdCarePlanART":"entry[12].resource.id", + "constants.profileCarePlanART":"entry[12].resource.meta.profile[0]", + "constants.CarePlanARTDiv":"entry[12].resource.text.div", + "constants.CarePlanARTStatus":"entry[12].resource.text.status", + "constants.codingSystemCarePlanART":"entry[12].resource.identifier[0].type.coding[].system", + "constants.codeCarePlanART":"entry[12].resource.identifier[0].type.coding[].code", + "constants.displayCarePlanART":"entry[12].resource.identifier[0].type.coding[].display", + "constants.textCarePlanART":"entry[12].resource.identifier[0].type.text", + "constants.systemCarePlanART":"entry[12].resource.identifier[0].system", + "transforms.patientArtNoCarePlanART":"entry[12].resource.identifier[0].value", + "constants.statuCarePlanART":"entry[12].resource.status", + "constants.intentCarePlanART":"entry[12].resource.intent", + "transforms.subjectReferenceCarePlanART":"entry[12].resource.subject.reference", + "transforms.encounterReferenceCarePlanART":"entry[12].resource.encounter.reference", + "constants.startCarePlanART":"entry[12].resource.period.start", + "constants.endCarePlanART":"entry[12].resource.period.end", + "transforms.activityReferenceServiceReqCarePlanART":"entry[12].resource.activity[].plannedActivityReference.reference", + "transforms.notereferenceCarePlanART":"entry[12].resource.note[0].authorReference.reference", + "constants.timeCarePlanART":"entry[12].resource.note[0].time", + "constants.textUrlCarePlanART":"entry[12].resource.note[0].text", + "constants.methodCarePlanART":"entry[12].request.method", + "transforms.requestUrlCarePlanART":"entry[12].request.url", + + + "transforms.fullUrlMedicationReqARVregimen":"entry[13].fullUrl", + "constants.resourceTypeMedicationReqARVregimen":"entry[13].resource.resourceType", + "transforms.resourceIdMedicationReqARVregimen":"entry[13].resource.id", + "constants.profileMedicationReqARVregimen":"entry[13].resource.meta.profile[0]", + "constants.statusMedicationReqARVregimen":"entry[13].resource.status", + "constants.intentMedicationReqARVregimen":"entry[13].resource.intent", + "constants.codingSystemMedicationReqARVregimen":"entry[13].resource.medication.concept.coding[].system", + "transforms.codeMedicationReqARVregimen":"entry[13].resource.medication.concept.coding[].code", + "transforms.displayMedicationReqARVregimen":"entry[13].resource.medication.concept.coding[].display", + "constants.textMedicationReqARVregimen":"entry[13].resource.medication.concept.text", + + "transforms.subjectReferenceMedicationReqARVregimen":"entry[13].resource.subject.reference", + "transforms.encounterReferenceMedicationReqARVregimen":"entry[13].resource.encounter.reference", + "transforms.resonReferenceServiceReqMedicationReqARVregimen":"entry[13].resource.reason[].reference.reference", + "constants.methodMedicationReqARVregimen":"entry[13].request.method", + "transforms.requestUrlMedicationReqARVregimen":"entry[13].request.url", + + + + "transforms.fullUrlObAartRegimenSwitch":"entry[14].fullUrl", + "constants.resourceTypeObAartRegimenSwitch":"entry[14].resource.resourceType", + "transforms.resourceIdObAartRegimenSwitch":"entry[14].resource.id", + "constants.profileObAartRegimenSwitch":"entry[14].resource.meta.profile[0]", + "constants.obsArtTextStatus":"entry[14].resource.text.status", + "constants.obsArtTextDiv":"entry[14].resource.text.div", + "constants.statuObAartRegimenSwitch":"entry[14].resource.status", + "constants.systemCodeObAartRegimenSwitch":"entry[14].resource.code.coding[].system", + "transforms.codeCodeObAartRegimenSwitch":"entry[14].resource.code.coding[].code", + "transforms.displayCodeObAartRegimenSwitch":"entry[14].resource.code.coding[].display", + "constants.textCodeObAartRegimenSwitch":"entry[14].resource.code.text", + "transforms.subjectReferenceObAartRegimenSwitch":"entry[14].resource.subject.reference", + "transforms.encounterReferenceObAartRegimenSwitch":"entry[14].resource.encounter.reference", + "transforms.dateOfArvRegimenChange":"entry[14].resource.effectiveDateTime", + "transforms.valueBooleanObAartRegimenSwitch":"entry[14].resource.valueBoolean", + "transforms.notereferenceObAartRegimenSwitch":"entry[14].resource.note[0].authorReference.reference", + "constants.timeObAartRegimenSwitch":"entry[14].resource.note[0].time", + "constants.textObAartRegimenSwitch":"entry[14].resource.note[0].text", + "constants.methodObAartRegimenSwitch":"entry[14].request.method", + "transforms.requestUrlObAartRegimenSwitch":"entry[14].request.url", + + + + + + "transforms.fullUrlMedicationReqArvTreatment":"entry[15].fullUrl", + "constants.resourceTypeMedicationReqArvTreatment":"entry[15].resource.resourceType", + "transforms.resourceIdMedicationReqArvTreatment":"entry[15].resource.id", + "constants.profileMedicationReqArvTreatment":"entry[15].resource.meta.profile[0]", + "constants.statusMedicationReqArvTreatment":"entry[15].resource.status", + "constants.intentMedicationReqArvTreatment":"entry[15].resource.intent", + "constants.codingSystemMedicationReqArvTreatment":"entry[15].resource.medication.concept.coding[].system", + "transforms.codeMedicationReqArvTreatment":"entry[15].resource.medication.concept.coding[].code", + "transforms.displayMedicationReqArvTreatment":"entry[15].resource.medication.concept.coding[].display", + "constants.textMedicationReqArvTreatment":"entry[15].resource.medication.concept.text", + + "transforms.subjectReferenceMedicationReqArvTreatment":"entry[15].resource.subject.reference", + "transforms.encounterReferenceMedicationReqArvTreatment":"entry[15].resource.encounter.reference", + "transforms.resonReferenceServiceReqMedicationReqArvTreatment":"entry[15].resource.reason[].reference.reference", + "constants.methodMedicationReqArvTreatment":"entry[15].request.method", + "transforms.requestUrlMedicationReqArvTreatment":"entry[15].request.url", + + + "transforms.fullUrlObsEncounter":"entry[16].fullUrl", + "constants.resourceTypeObsEncounter":"entry[16].resource.resourceType", + "transforms.resourceIdObsEncounter":"entry[16].resource.id", + "constants.profileObsEncounter":"entry[16].resource.meta.profile[0]", + "constants.statuObsEncounter":"entry[16].resource.status", + "constants.systemCodeObsEncounter":"entry[16].resource.code.coding[].system", + "constants.codeCodeObsEncounter":"entry[16].resource.code.coding[].code", + "constants.displayCodeObsEncounter":"entry[16].resource.code.coding[].display", + "constants.textCodeObsEncounter":"entry[16].resource.code.text", + "transforms.subjectReferenceObsEncounter":"entry[16].resource.subject.reference", + "transforms.encounterReferenceObsEncounter":"entry[16].resource.encounter.reference", + "requestBody.dateOfArtInitiation":"entry[16].resource.effectiveDateTime", + "transforms.notereferenceObsEncounter":"entry[16].resource.note[0].authorReference.reference", + "constants.timeObsEncounter":"entry[16].resource.note[0].time", + "constants.textObsEncounter":"entry[16].resource.note[0].text", + "constants.methodObsEncounter":"entry[16].request.method", + "transforms.requestUrlObsEncounter":"entry[16].request.url", + + + "transforms.fullUrlEncounter":"entry[17].fullUrl", + "constants.resourceTypeEncounter":"entry[17].resource.resourceType", + "transforms.resourceIdEncounter":"entry[17].resource.id", + "constants.profileEncounter":"entry[17].resource.meta.profile[0]", + "constants.statuEncounter":"entry[17].resource.status", + "constants.systemCodeEncounter":"entry[17].resource.class[].coding[].system", + "constants.codeCodeEncounter":"entry[17].resource.class[].coding[].code", + "transforms.subjectReferenceEncounter":"entry[17].resource.subject.reference", + "constants.startEncounter":"entry[17].resource.actualPeriod.start", + "constants.endEncounter":"entry[17].resource.actualPeriod.end", + "constants.methodEncounter":"entry[17].request.method", + "transforms.requestUrlEncounter":"entry[17].request.url", + + + + "transforms.fullUrlObsHivTestResult":"entry[18].fullUrl", + "constants.resourceTypeObsHivTestResult":"entry[18].resource.resourceType", + "transforms.resourceIdObsHivTestResult":"entry[18].resource.id", + "constants.profileObsHivTestResult":"entry[18].resource.meta.profile[0]", + "constants.urlObsHivTestResult":"entry[18].resource.extension[0].url", + "constants.valueBooleanHivTestResult":"entry[18].resource.extension[0].valueBoolean", + "constants.statuObsHivTestResult":"entry[18].resource.status", + "constants.systemCodeObsHivTestResult":"entry[18].resource.code.coding[].system", + "constants.codeCodeObsHivTestResult":"entry[18].resource.code.coding[].code", + "constants.displayCodeObsHivTestResult":"entry[18].resource.code.coding[].display", + "constants.textCodeObsHivTestResult":"entry[18].resource.code.text", + "transforms.subjectReferenceObsHivTestResult":"entry[18].resource.subject.reference", + "transforms.encounterReferenceObsHivTestResult":"entry[18].resource.encounter.reference", + "transforms.lastViralLoadTestDate":"entry[18].resource.effectiveDateTime", + "transforms.performerObsHivTestResult":"entry[18].resource.performer[].reference", + "transforms.lastViralLoadResult":"entry[18].resource.valueInteger", + "constants.interpretationSystemCodeObsHivTestResult":"entry[18].resource.interpretation[].coding[].system", + "constants.interpretationCodeCodeObsHivTestResult":"entry[18].resource.interpretation[].coding[].code", + "constants.interpretationDisplayCodeObsHivTestResult":"entry[18].resource.interpretation[].coding[].display", + "constants.interpretationTextCodeObsHivTestResult":"entry[18].resource.interpretation[].text", + "transforms.notereferenceObsHivTestResult":"entry[18].resource.note[0].authorReference.reference", + "constants.timeObsHivTestResult":"entry[18].resource.note[0].time", + "transforms.reasonForVlResultChanges":"entry[18].resource.note[0].text", + "constants.methodObsHivTestResult":"entry[18].request.method", + "transforms.requestUrlObsHivTestResult":"entry[18].request.url", + + + "transforms.fullUrlSpecimenDef":"entry[19].fullUrl", + "constants.resourceTypeSpecimenDef":"entry[19].resource.resourceType", + "transforms.resourceIdSpecimenDef":"entry[19].resource.id", + "constants.profileSpecimenDef":"entry[19].resource.meta.profile[0]", + "constants.statusSpecimenDef":"entry[19].resource.status", + "constants.typeTestedCodingSystemSpecimenDef":"entry[19].resource.typeTested[].type.coding[].system", + "constants.typeTestedCodingCodeSpecimenDef":"entry[19].resource.typeTested[].type.coding[].code", + "constants.typeTestedpreferenceSpecimenDef":"entry[19].resource.typeTested[].preference", + "transforms.typeTestedhandltempRangelowSpecimenDef":"entry[19].resource.typeTested[].handling[].temperatureRange.low.value", + "transforms.typeTestedhandltempRangehighSpecimenDef":"entry[19].resource.typeTested[].handling[].temperatureRange.high.value", + "transforms.typeTestedhandlmaxDurationSpecimenDef":"entry[19].resource.typeTested[].handling[].maxDuration.value", + "constants.typeTestedhandlinstructionSpecimenDef":"entry[19].resource.typeTested[].handling[].instruction", + "constants.methodSpecimenDef":"entry[19].request.method", + "transforms.requestUrlSpecimenDef":"entry[19].request.url", + + + "transforms.fullUrlSpecimenDefspeciConserv":"entry[20].fullUrl", + "constants.resourceTypeSpecimenDefspeciConserv":"entry[20].resource.resourceType", + "transforms.resourceIdSpecimenDefspeciConserv":"entry[20].resource.id", + "constants.profileSpecimenDefspeciConserv":"entry[20].resource.meta.profile[0]", + "constants.urlSpecimenDefspeciConserv":"entry[20].resource.extension[0].url", + "transforms.valueIntegerSpecimenDefspeciConserv":"entry[20].resource.extension[0].valueInteger", + "constants.identifiertypecodingSystemSpecimenDefspeciConserv":"entry[20].resource.identifier[].type.coding[].system", + "constants.identifiertypecodingcodeSpecimenDefspeciConserv":"entry[20].resource.identifier[].type.coding[].code", + "constants.identifiertypecodingdisplaySpecimenDefspeciConserv":"entry[20].resource.identifier[].type.coding[].display", + "constants.identifiertypetextSpecimenDefspeciConserv":"entry[20].resource.identifier[].type.text", + "constants.identifiersystemSpecimenDefspeciConserv":"entry[20].resource.identifier[].system", + "transforms.identifiervalueSpecimenDefspeciConserv":"entry[20].resource.identifier[].value", + "transforms.instantiatesCanonicalSpecimenDefspeciConserv":"entry[20].resource.instantiatesCanonical", + "transforms.basedOnrefoneSpecimenDefspeciConserv":"entry[20].resource.basedOn[0].reference", + "transforms.basedOnreftwoSpecimenDefspeciConserv":"entry[20].resource.basedOn[1].reference", + "transforms.basedOnrefthreeSpecimenDefspeciConserv":"entry[20].resource.basedOn[2].reference", + "transforms.forSpecimenDefspeciConserv":"entry[20].resource.for.reference", + "transforms.encounterSpecimenDefspeciConserv":"entry[20].resource.encounter.reference", + "constants.statusSpecimenDefspeciConserv":"entry[20].resource.status", + "constants.intentSpecimenDefspeciConserv":"entry[20].resource.intent", + "transforms.exePeriodstartSpecimenDefspeciConserv":"entry[20].resource.executionPeriod.start", + "transforms.exePeriodendSpecimenDefspeciConserv":"entry[20].resource.executionPeriod.end", + "constants.lastModifiedSpecimenDefspeciConserv":"entry[20].resource.lastModified", + "transforms.refauthorRefnoteSpecimenDefspeciConserv":"entry[20].resource.note[].authorReference.reference", + "constants.timenoteSpecimenDefspeciConserv":"entry[20].resource.note[].time", + "constants.textnoteSpecimenDefspeciConserv":"entry[20].resource.note[].text", + "constants.outputtypecodingSystemSpecimenDefspeciConserv":"entry[20].resource.output[].type.coding[].system", + "constants.outputtypecodingCodeSpecimenDefspeciConserv":"entry[20].resource.output[].type.coding[].code", + "constants.outputtypecodingdisplaySpecimenDefspeciConserv":"entry[20].resource.output[].type.coding[].display", + "constants.outputtypetextSpecimenDefspeciConserv":"entry[20].resource.output[].type.text", + "transforms.valueReferenceoutputSpecimenDefspeciConserv":"entry[20].resource.output[].valueReference.reference", + "constants.methodSpecimenDefspeciConserv":"entry[20].request.method", + "transforms.requestUrlSpecimenDefspeciConserv":"entry[20].request.url", + + + "transforms.fullUrlActivityDefinitionlabOrder":"entry[21].fullUrl", + "constants.resourceTypeActivityDefinitionlabOrder":"entry[21].resource.resourceType", + "transforms.resourceIdActivityDefinitionlabOrder":"entry[21].resource.id", + "constants.profileActivityDefinitionlabOrder":"entry[21].resource.meta.profile[0]", + "constants.urlActivityDefinitionlabOrder":"entry[21].resource.extension[0].url", + "transforms.valueIntegerActivityDefinitionlabOrder":"entry[21].resource.extension[0].valueInteger", + "constants.statusActivityDefinitionlabOrder":"entry[21].resource.status", + "transforms.dateActivityDefinitionlabOrder":"entry[21].resource.date", + "transforms.approvalDateActivityDefinitionlabOrder":"entry[21].resource.approvalDate", + "transforms.lastReviewDateActivityDefinitionlabOrder":"entry[21].resource.lastReviewDate", + "constants.editorActivityDefinitionlabOrder":"entry[21].resource.editor[].name", + "constants.reviewerextensionurlActivityDefinitionlabOrder":"entry[21].resource.reviewer[].extension[].url", + "transforms.reviewerextensionvalueIntegerActivityDefinitionlabOrder":"entry[21].resource.reviewer[].extension[].valueInteger", + "constants.reviewernameActivityDefinitionlabOrder":"entry[21].resource.reviewer[].name", + "constants.endorserextensionurlActivityDefinitionlabOrder":"entry[21].resource.endorser[].extension[].url", + "transforms.endorserextensionvalueIntegerActivityDefinitionlabOrder":"entry[21].resource.endorser[].extension[].valueInteger", + "constants.endorsernameActivityDefinitionlabOrder":"entry[21].resource.endorser[].name", + "transforms.specimenRequirementActivityDefinitionlabOrder":"entry[21].resource.specimenRequirement[]", + "constants.methodActivityDefinitionlabOrder":"entry[21].request.method", + "transforms.requestUrlActivityDefinitionlabOrder":"entry[21].request.url", + + + "transforms.fullUrlTransportsample":"entry[22].fullUrl", + "constants.resourceTypeTransportsample":"entry[22].resource.resourceType", + "transforms.resourceIdTransportsample":"entry[22].resource.id", + "constants.profileTransportsample":"entry[22].resource.meta.profile[0]", + "constants.statusTransportsample":"entry[22].resource.status", + "constants.intentTransportsample":"entry[22].resource.intent", + "transforms.completionTimeTransportsample":"entry[22].resource.completionTime", + "transforms.authoredOnTransportsample":"entry[22].resource.authoredOn", + "transforms.refauthorRefnoteTransportsample":"entry[22].resource.note[].authorReference.reference", + "constants.timenoteTransportsample":"entry[22].resource.note[].time", + "constants.textnoteTransportsample":"entry[22].resource.note[].text", + "transforms.requestedLocationTransportsample":"entry[22].resource.requestedLocation.reference", + "transforms.currentLocationTransportsample":"entry[22].resource.currentLocation.reference", + "constants.methodTransportsample":"entry[22].request.method", + "transforms.requestUrlTransportsample":"entry[22].request.url", + + + + "transforms.fullUrlTransportresultDispatched":"entry[23].fullUrl", + "constants.resourceTypeTransportresultDispatched":"entry[23].resource.resourceType", + "transforms.resourceIdTransportresultDispatched":"entry[23].resource.id", + "constants.profileTransportresultDispatched":"entry[23].resource.meta.profile[0]", + "constants.statusTransportresultDispatched":"entry[23].resource.status", + "constants.intentTransportresultDispatched":"entry[23].resource.intent", + "transforms.authoredOnTransportresultDispatched":"entry[23].resource.authoredOn", + "transforms.refauthorRefnoteTransportresultDispatched":"entry[23].resource.note[].authorReference.reference", + "constants.timenoteTransportresultDispatched":"entry[23].resource.note[].time", + "constants.textnoteTransportresultDispatched":"entry[23].resource.note[].text", + "transforms.requestedLocationTransportresultDispatched":"entry[23].resource.requestedLocation.reference", + "transforms.currentLocationTransportresultDispatched":"entry[23].resource.currentLocation.reference", + "constants.methodTransportresultDispatched":"entry[23].request.method", + "transforms.requestUrlTransportresultDispatchedlabOrder":"entry[23].request.url", + + + "transforms.fullUrlLocationtransport":"entry[24].fullUrl", + "constants.resourceTypeLocationtransport":"entry[24].resource.resourceType", + "transforms.resourceIdLocationtransport":"entry[24].resource.id", + "constants.profileLocationtransport":"entry[24].resource.meta.profile[0]", + "constants.statusLocationtransport":"entry[24].resource.status", + "constants.nameLocationtransport":"entry[24].resource.name", + "constants.methodLocationtransport":"entry[24].request.method", + "transforms.requestUrlLocationtransportlabOrder":"entry[24].request.url", + + + + "transforms.fullUrlLocationtransportCurrent":"entry[25].fullUrl", + "constants.resourceTypeLocationtransportCurrent":"entry[25].resource.resourceType", + "transforms.resourceIdLocationtransportCurrent":"entry[25].resource.id", + "constants.profileLocationtransportCurrent":"entry[25].resource.meta.profile[0]", + "constants.statusLocationtransportCurrent":"entry[25].resource.status", + "constants.nameLocationtransportCurrent":"entry[25].resource.name", + "constants.methodLocationtransportCurrent":"entry[25].request.method", + "transforms.requestUrlLocationtransportCurrentlabOrder":"entry[25].request.url", + + "transforms.fullUrlDiagnosticReport":"entry[26].fullUrl", + "constants.resourceTypeDiagnosticReport":"entry[26].resource.resourceType", + "transforms.resourceIdDiagnosticReport":"entry[26].resource.id", + "constants.profileDiagnosticReport":"entry[26].resource.meta.profile[0]", + "constants.urlDiagnosticReport":"entry[26].resource.extension[0].url", + "transforms.valueIntegerDiagnosticReport":"entry[26].resource.extension[0].valueInteger", + "transforms.referenceDiagnosticReport":"entry[26].resource.basedOn[].reference", + "constants.statuDiagnosticReport":"entry[26].resource.status", + "constants.systemCodeDiagnosticReport":"entry[26].resource.code.coding[].system", + "constants.codeCodeDiagnosticReport":"entry[26].resource.code.coding[].code", + "constants.displayCodeDiagnosticReport":"entry[26].resource.code.coding[].display", + "constants.textCodeDiagnosticReport":"entry[26].resource.code.text", + "transforms.subjectReferenceDiagnosticReport":"entry[26].resource.subject.reference", + "transforms.effectiveDateTimeDiagnosticReport":"entry[26].resource.effectiveDateTime", + "transforms.encounterReferenceDiagnosticReport":"entry[26].resource.encounter.reference", + "transforms.performerDiagnosticReport":"entry[26].resource.performer[].reference", + "transforms.resultsInterpreterDiagnosticReport":"entry[26].resource.resultsInterpreter[].reference", + "transforms.resultDiagnosticReport":"entry[26].resource.result[].reference", + "transforms.notereferenceDiagnosticReport":"entry[26].resource.note[0].authorReference.reference", + "constants.notetimeDiagnosticReport":"entry[26].resource.note[0].time", + "constants.notetextDiagnosticReport":"entry[26].resource.note[0].text", + "transforms.conclusionDiagnosticReport":"entry[26].resource.conclusion", + "constants.methodDiagnosticReport":"entry[26].request.method", + "transforms.requestUrlDiagnosticReport":"entry[26].request.url", + + + "transforms.fullUrlPractitionerresults":"entry[27].fullUrl", + "constants.resourceTypePractitionerresults":"entry[27].resource.resourceType", + "transforms.resourceIdPractitionerresults":"entry[27].resource.id", + "constants.profilePractitionerresults":"entry[27].resource.meta.profile[0]", + "constants.urlPractitionerresults":"entry[27].resource.extension[0].url", + "transforms.valueIntegerPractitionerresults":"entry[27].resource.extension[0].valueInteger", + "transforms.namefamilyPractitionerresults":"entry[27].resource.name[0].family", + "transforms.namegivenPractitionerresults":"entry[27].resource.name[0].given[]", + "constants.telecomsystemPractitionerresults":"entry[27].resource.telecom[0].system", + "transforms.telecomvaluePractitionerresults":"entry[27].resource.telecom[0].value", + "constants.methodPractitionerresults":"entry[27].request.method", + "transforms.requestUrlPractitionerresults":"entry[27].request.url", + + "transforms.fullUrlConsentreceive":"entry[28].fullUrl", + "constants.resourceTypeConsentreceive":"entry[28].resource.resourceType", + "transforms.resourceIdConsentreceive":"entry[28].resource.id", + "constants.profileConsentreceive":"entry[28].resource.meta.profile[0]", + "constants.statuConsentreceive":"entry[28].resource.status", + "constants.systemCodeConsentreceive":"entry[28].resource.category[].coding[].system", + "constants.codeCodeConsentreceive":"entry[28].resource.category[].coding[].code", + "constants.displayCodeConsentreceive":"entry[28].resource.category[].coding[].display", + "constants.textCodeConsentreceive":"entry[28].resource.category[].text", + "transforms.subjectReferenceConsentreceive":"entry[28].resource.subject.reference", + "transforms.decisionConsentreceive":"entry[28].resource.decision", + "constants.methodConsentreceive":"entry[28].request.method", + "transforms.requestUrlConsentreceive":"entry[28].request.url", + + + + + "transforms.fullUrlObservationarvAdher":"entry[29].fullUrl", + "constants.resourceTypeObservationarvAdher":"entry[29].resource.resourceType", + "transforms.resourceIdObservationarvAdher":"entry[29].resource.id", + "constants.profileObservationarvAdher":"entry[29].resource.meta.profile[0]", + "constants.statuObservationarvAdher":"entry[29].resource.status", + "constants.systemCodeObservationarvAdher":"entry[29].resource.code.coding[].system", + "constants.codeCodeObservationarvAdher":"entry[29].resource.code.coding[].code", + "constants.textCodeObservationarvAdher":"entry[29].resource.code.text", + "transforms.subjectReferenceObservationarvAdher":"entry[29].resource.subject.reference", + "transforms.encounterReferenceObservationarvAdher":"entry[29].resource.encounter.reference", + "constants.valuesystemCodeObservationarvAdher":"entry[29].resource.valueCodeableConcept.coding[].system", + "transforms.valuecodeCodeObservationarvAdher":"entry[29].resource.valueCodeableConcept.coding[].code", + "transforms.valuedisplayCodeObservationarvAdher":"entry[29].resource.valueCodeableConcept.coding[].display", + "constants.valuetextCodeObservationarvAdher":"entry[29].resource.valueCodeableConcept.text", + "transforms.notereferenceObservationarvAdher":"entry[29].resource.note[0].authorReference.reference", + "constants.notetimeObservationarvAdher":"entry[29].resource.note[0].time", + "constants.notetextObservationarvAdher":"entry[29].resource.note[0].text", + "constants.methodObservationarvAdher":"entry[29].request.method", + "transforms.requestUrlObservationarvAdher":"entry[29].request.url", + + + "transforms.fullUrlObservationRepeat":"entry[30].fullUrl", + "constants.resourceTypeObservationRepeat":"entry[30].resource.resourceType", + "transforms.resourceIdObservationRepeat":"entry[30].resource.id", + "constants.profileObservationRepeat":"entry[30].resource.meta.profile[0]", + "constants.statuObservationRepeat":"entry[30].resource.status", + "constants.systemCodeObservationRepeat":"entry[30].resource.code.coding[].system", + "constants.codeCodeObservationRepeat":"entry[30].resource.code.coding[].code", + "constants.displayCodeObservationRepeat":"entry[30].resource.code.coding[].display", + "constants.textCodeObservationRepeat":"entry[30].resource.code.text", + "transforms.subjectReferenceObservationRepeat":"entry[30].resource.subject.reference", + "transforms.encounterReferenceObservationRepeat":"entry[30].resource.encounter.reference", + "transforms.effectiveDateTimeReferenceObservationRepeat":"entry[30].resource.effectiveDateTime", + "transforms.performerReferenceObservationRepeat":"entry[30].resource.performer[].reference", + "transforms.valueIntegerReferenceObservationRepeat":"entry[30].resource.valueInteger", + "transforms.notereferenceObservationRepeat":"entry[30].resource.note[0].authorReference.reference", + "constants.notetimeObservationRepeat":"entry[30].resource.note[0].time", + "constants.notetextObservationRepeat":"entry[30].resource.note[0].text", + "constants.methodObservationRepeat":"entry[30].request.method", + "transforms.requestUrlObservationRepeat":"entry[30].request.url", + + + "transforms.fullUrlObservationSuspend":"entry[31].fullUrl", + "constants.resourceTypeObservationSuspend":"entry[31].resource.resourceType", + "transforms.resourceIdObservationSuspend":"entry[31].resource.id", + "constants.profileObservationSuspend":"entry[31].resource.meta.profile[0]", + "constants.statuObservationSuspend":"entry[31].resource.status", + "constants.systemCodeObservationSuspend":"entry[31].resource.code.coding[].system", + "constants.codeCodeObservationSuspend":"entry[31].resource.code.coding[].code", + "constants.displayCodeObservationSuspend":"entry[31].resource.code.coding[].display", + "constants.textCodeObservationSuspend":"entry[31].resource.code.text", + "transforms.subjectReferenceObservationSuspend":"entry[31].resource.subject.reference", + "transforms.encounterReferenceObservationSuspend":"entry[31].resource.encounter.reference", + "transforms.effectiveDateTimeReferenceObservationSuspend":"entry[31].resource.effectiveDateTime", + "transforms.performerReferenceObservationSuspend":"entry[31].resource.performer[].reference", + "transforms.valueIntegerReferenceObservationSuspend":"entry[31].resource.valueInteger", + "transforms.notereferenceObservationSuspend":"entry[31].resource.note[0].authorReference.reference", + "constants.notetimeObservationSuspend":"entry[31].resource.note[0].time", + "constants.notetextObservationSuspend":"entry[31].resource.note[0].text", + "constants.methodObservationSuspend":"entry[31].request.method", + "transforms.requestUrlObservationSuspend":"entry[31].request.url", + + + "transforms.fullUrlDevicetest":"entry[32].fullUrl", + "constants.resourceTypeDevicetest":"entry[32].resource.resourceType", + "transforms.resourceIdDevicetest":"entry[32].resource.id", + "constants.profileDevicetest":"entry[32].resource.meta.profile[0]", + "transforms.manufacturerDevicetest":"entry[32].resource.manufacturer", + "transforms.notereferenceDevicetest":"entry[32].resource.note[0].authorReference.reference", + "constants.notetimeDevicetest":"entry[32].resource.note[0].time", + "constants.notetextDevicetest":"entry[32].resource.note[0].text", + "constants.methodDevicetest":"entry[32].request.method", + "transforms.requestUrlDevicetest":"entry[32].request.url", + + + "transforms.fullUrlObservationhivTest":"entry[33].fullUrl", + "constants.resourceTypeObservationhivTest":"entry[33].resource.resourceType", + "transforms.resourceIdObservationhivTest":"entry[33].resource.id", + "constants.profileObservationhivTest":"entry[33].resource.meta.profile[0]", + "constants.statuObservationhivTest":"entry[33].resource.status", + "constants.systemCodeObservationhivTest":"entry[33].resource.code.coding[].system", + "constants.codeCodeObservationhivTest":"entry[33].resource.code.coding[].code", + "constants.displayCodeObservationhivTest":"entry[33].resource.code.coding[].display", + "constants.textCodeObservationhivTest":"entry[33].resource.code.text", + "transforms.subjectReferenceObservationhivTest":"entry[33].resource.subject.reference", + "transforms.encounterReferenceObservationhivTest":"entry[33].resource.encounter.reference", + "constants.effectiveDateTimeReferenceObservationhivTest":"entry[33].resource.effectiveDateTime", + "transforms.performerReferenceObservationhivTest":"entry[33].resource.performer[].reference", + "transforms.valueQuantityReferenceObservationhivTest":"entry[33].resource.valueQuantity.value", + "transforms.notereferenceObservationhivTest":"entry[33].resource.note[0].authorReference.reference", + "constants.notetimeObservationhivTest":"entry[33].resource.note[0].time", + "constants.notetextObservationhivTest":"entry[33].resource.note[0].text", + "transforms.derivedFromObservationhivTest":"entry[33].resource.derivedFrom[].reference", + "constants.methodObservationhivTest":"entry[33].request.method", + "transforms.requestUrlObservationhivTest":"entry[33].request.url", + + + "transforms.fullUrlObservationhivTestResult":"entry[34].fullUrl", + "constants.resourceTypeObservationhivTestResult":"entry[34].resource.resourceType", + "transforms.resourceIdObservationhivTestResult":"entry[34].resource.id", + "constants.profileObservationhivTestResult":"entry[34].resource.meta.profile[0]", + "constants.statuObservationhivTestResult":"entry[34].resource.status", + "constants.systemCodeObservationhivTestResult":"entry[34].resource.code.coding[].system", + "constants.codeCodeObservationhivTestResult":"entry[34].resource.code.coding[].code", + "constants.displayCodeObservationhivTestResult":"entry[34].resource.code.coding[].display", + "constants.textCodeObservationhivTestResult":"entry[34].resource.code.text", + "transforms.subjectReferenceObservationhivTestResult":"entry[34].resource.subject.reference", + "transforms.encounterReferenceObservationhivTestResult":"entry[34].resource.encounter.reference", + "constants.effectiveDateTimeReferenceObservationhivTestResult":"entry[34].resource.effectiveDateTime", + "transforms.performerReferenceObservationhivTestResult":"entry[34].resource.performer[].reference", + "transforms.valueQuantityReferenceObservationhivTestResult":"entry[34].resource.valueQuantity.value", + "transforms.notereferenceObservationhivTestResult":"entry[34].resource.note[0].authorReference.reference", + "constants.notetimeObservationhivTestResult":"entry[34].resource.note[0].time", + "constants.notetextObservationhivTestResult":"entry[34].resource.note[0].text", + "transforms.derivedFromObservationhivTestResult":"entry[34].resource.derivedFrom[].reference", + "constants.methodObservationhivTestResult":"entry[34].request.method", + "transforms.requestUrlObservationhivTestResult":"entry[34].request.url", + + + "transforms.fullUrlOrganizationfund":"entry[35].fullUrl", + "constants.resourceTypeOrganizationfund":"entry[35].resource.resourceType", + "transforms.resourceIdOrganizationfund":"entry[35].resource.id", + "constants.profileOrganizationfund":"entry[35].resource.meta.profile[0]", + "constants.urlOrganizationfundProvince":"entry[35].resource.extension[0].url", + "transforms.provinceIdOrganizationfund":"entry[35].resource.extension[0].valueInteger", + "constants.codingSystemOrganizationfund":"entry[35].resource.identifier[0].type.coding[].system", + "constants.codeOrganizationfund":"entry[35].resource.identifier[0].type.coding[].code", + "constants.displayOrganizationfund":"entry[35].resource.identifier[0].type.coding[].display", + "constants.textOrganizationfund":"entry[35].resource.identifier[0].type.text", + "constants.systemOrganizationfund":"entry[35].resource.identifier[0].system", + "constants.valueOrganizationfund":"entry[35].resource.identifier[0].value", + "constants.nameOrganizationfund":"entry[35].resource.name", + "constants.methodOrganizationfund":"entry[35].request.method", + "transforms.requestUrlOrganizationfund":"entry[35].request.url", + + + "transforms.fullUrlOrganizationimplementing":"entry[36].fullUrl", + "constants.resourceTypeOrganizationimplementing":"entry[36].resource.resourceType", + "transforms.resourceIdOrganizationimplementing":"entry[36].resource.id", + "constants.profileOrganizationimplementing":"entry[36].resource.meta.profile[0]", + "constants.urlOrganizationimplementingProvince":"entry[36].resource.extension[0].url", + "transforms.provinceIdOrganizationimplementing":"entry[36].resource.extension[0].valueInteger", + "constants.codingSystemOrganizationimplementing":"entry[36].resource.identifier[0].type.coding[].system", + "constants.codeOrganizationimplementing":"entry[36].resource.identifier[0].type.coding[].code", + "constants.displayOrganizationimplementing":"entry[36].resource.identifier[0].type.coding[].display", + "constants.textOrganizationimplementing":"entry[36].resource.identifier[0].type.text", + "constants.systemOrganizationimplementing":"entry[36].resource.identifier[0].system", + "constants.valueOrganizationimplementing":"entry[36].resource.identifier[0].value", + "constants.nameOrganizationimplementing":"entry[36].resource.name", + "constants.methodOrganizationimplementing":"entry[36].request.method", + "transforms.requestUrlOrganizationimplementing":"entry[36].request.url" + + + + }, + "constants": { + + "resourceType": "Bundle", + "type": "transaction", + "resourceId":"entry[0].resource.id", + "patientResourceType": "Patient", + "profile": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/hiv-patient", + "monthsUrl": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/patient-age-months", + "yearsUrl": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/patient-age-years", + "use": "official", + "phoneSystem": "phone", + "emailSystem": "email", + "patientEmail": "someone@example.com", + "method": "PUT", + + + "ResourceTypeSpecimen": "Specimen", + "profileSpecimen": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/viral-load-specimen", + "specimenTextStatus": "extensions", + "specimenTextDiv": "

Generated Narrative: Specimen

Resource Specimen "VLSpecimenExample"

Profile: Viral Load Specimen

Sample reordered: false

identifier: App sample identifier:\u00a0abc123, Remote sample identifier:\u00a0def456, Sample identifier:\u00a0ghi789

type: Specimen Type (SNOMED CT#119361006 "Plasma specimen (specimen)")

subject: Patient/HIVPatientExample " SMITH"

receivedTime: 2022-07-28

Collections

-Collected[x]
*2022-07-28

Processings

-Time[x]
*2022-07-28

note: additional notes here (By Organization/HIVOrganizationExample @7 Feb 2015, 20:28:17)

", + "sampleReorderedUrl": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/sample-reordered", + "appSampleCodingSystem": "http://terminology.hl7.org/CodeSystem/v2-0203", + "appSampleCode": "USID", + "appSampleDisplay": "Unique Specimen ID", + "appSampleText": "App sample identifier", + "appSampleSystem": "http://openhie.org/fhir/rwanda-hiv/identifier/app-sample-code", + "remoteSampleCodingSystem": "http://terminology.hl7.org/CodeSystem/v2-0203", + "remoteSampleCode": "USID", + "remoteSampleDisplay": "Unique Specimen ID", + "remoteSampleText": "Remote sample identifier", + "remoteSampleSystem": "http://openhie.org/fhir/rwanda-hiv/identifier/remote-sample-code", + "remoteSampleValue": "def456", + "SampleCodingSystem": "http://terminology.hl7.org/CodeSystem/v2-0203", + "SampleCode": "USID", + "SampleDisplay": "Unique Specimen ID", + "SampleText": "Sample identifier", + "SampleSystem": "http://openhie.org/fhir/rwanda-hiv/identifier/sample-code", + "SampleValue": "ghi789", + "PlacerSampleValue": "ghi789", + "SpecimenTypeCodingSystem": "http://snomed.info/sct", + "SpecimenTypeText": "Specimen Type", + "SpecimenTypeSystem": "http://openhie.org/fhir/rwanda-hiv/identifier/sample-code", + "SpecimenTypeValue": "ghi789", + "methodSpecimen": "PUT", + "timeSpecimen": "2015-02-07T13:28:17-05:00", + "textUrlSpecimen": "additional notes here", + "PlacerCodingSystem": "http://terminology.hl7.org/CodeSystem/v2-0203", + "PlacerCode":"PLAC", + "PlacerDisplay":"Placer Identifier", + "PlacerText":"Universal Unique Identifier for the sample", + "PlacerSystem":"http://openhie.org/fhir/rwanda-hiv/identifier/uniqueID", + + + + "ResourceTypeReqOrg": "Organization", + "profileReqOrg": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/requesting-organization", + "CodingSystemReqOrg": "http://terminology.hl7.org/CodeSystem/v2-0203", + "CodeReqOrg": "XX", + "DisplayReqOrg": "Organization identifier", + "TextReqOrg": "Requesting Organization identifier", + "SystemReqOrg": "http://openhie.org/fhir/rwanda-hiv/identifier/organization-id", + "nameReqOrg": "A facility name", + "methodReqOrg": "PUT", + + + "resourceTypePerfORG": "Organization", + "profilePerfORG": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/performing-organization", + "urlPerfOrgProvince": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/performing-organization-province-index", + "urlPerfOrgDistrict": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/performing-organization-district-index", + "valueIntegerPerfOrgDistrict": 9, + "codingSystemPerfORG": "http://terminology.hl7.org/CodeSystem/v2-0203", + "codePerfORG": "XX", + "displayPerfORG": "Organization identifier", + "textPerfORG": "Performing Organization identifier", + "systemPerfORG": "http://openhie.org/fhir/rwanda-hiv/identifier/organization-id", + "namePerfORG": "A Laboratory name", + "districtPerfORG": "A district name", + "statePerfORG": "A province name", + "methodPerfORG": "PUT", + + + "resourceTypeServiceReq": "ServiceRequest", + "profileServiceReq": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/HIV-lab-order", + "codingSystemServiceReq": "http://terminology.hl7.org/CodeSystem/v2-0203", + "codeServiceReq": "PLAC", + "displayServiceReq": "Placer Identifier", + "textServiceReq": "HIV lab service request identifier", + "systemServiceReq": "http://openhie.org/fhir/rwanda-hiv/identifier/lab-order-identifier", + "valueServiceReq": "ORDER12345", + "statuserviceReq": "completed", + "intentServiceReq": "order", + "systemCodeServiceReq": "http://loinc.org", + "codeCodeServiceReq": "25836-8", + "displayCodeServiceReq": "HIV 1 RNA [#/volume] (viral load) in Specimen by NAA with probe detection", + "textCodeServiceReq": "Test Type", + "occurrenceDateTimeServiceReq": "2012-01-05", + "timeServiceReq": "2015-02-07T13:28:17-05:00", + "textUrlServiceReq": "additional notes here", + "methodServiceReq": "PUT", + + + "resourceTypePractitioner": "Practitioner", + "profilePractitioner": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/hiv-practitioner", + "urlClinicianPractitioner": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/clinician-user-index", + "performingPractitionerstatus": "extensions", + "performingPractitionerdiv": "

Generated Narrative: Practitioner

Resource Practitioner "ResultsInterpreterExample"

Profile: Practitioner

Clinician User Index: 11

name: Jhon Smith

telecom: ph: 27539887534

", + "familyNamePractitioner": "Smith", + "givenNamePractitioner": "James", + "phoneSystemPractitioner": "phone", + "methodPractitioner": "PUT", + + + "resourceTypePerfPractitioner": "Practitioner", + "profilePerfPractitioner": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/hiv-practitioner", + "reqPractitionerstatus": "extensions", + "reqPractitionerdiv": "

Generated Narrative: Practitioner

Resource Practitioner "ResultsInterpreterExample"

Profile: Practitioner

Clinician User Index: 11

name: Jhon Smith

telecom: ph: 27539887534

", + "urlClinicianPerfPractitioner": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/clinician-user-index", + "familyNamePerfPractitioner": "White", + "givenNamePerfPractitioner": "Amy", + "phoneSystemPerfPractitioner": "phone", + "phoneValuePerfPractitioner": "27537687534", + "methodPerfPractitioner": "PUT", + + "specimenIndex": 1, + + "resourceTypeObsResForHIV": "Observation", + "profileObsResForHIV": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/reason-for-hiv-testing", + "statuObsResForHIV": "final", + "systemCodeObsResForHIV": "http://snomed.info/sct", + "codeCodeObsResForHIV": "165813002", + "displayCodeObsResForHIV": "Human immunodeficiency virus antibody test", + "textCodeObsResForHIV": "HIV Test", + "effectiveDateTimeObsResForHIV": "2012-01-05", + "textvalueCodeableConceptObsResForHIV": "Reason for testing", + "timeObsResForHIV": "2015-02-07T13:28:17-05:00", + "textObsResForHIV": "Some comments", + "methodObsResForHIV": "PUT", + "obsResForHIVTextStatus": "generated", + "obsResForHIVTextDiv": "

Generated Narrative: Specimen

Resource Specimen "VLSpecimenExample"

Profile: Viral Load Specimen

Sample reordered: false

identifier: App sample identifier:\u00a0abc123, Remote sample identifier:\u00a0def456, Sample identifier:\u00a0ghi789

type: Specimen Type (SNOMED CT#119361006 "Plasma specimen (specimen)")

subject: Patient/HIVPatientExample " SMITH"

receivedTime: 2022-07-28

Collections

-Collected[x]
*2022-07-28

Processings

-Time[x]
*2022-07-28

note: additional notes here (By Organization/HIVOrganizationExample @7 Feb 2015, 20:28:17)

", + + + + + "resourceTypeObsPatientPregnant": "Observation", + "profileObsPatientPregnant": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/hiv-patient-pregnant", + "statuObsPatientPregnant": "final", + "systemCodeObsPatientPregnant": "http://snomed.info/sct", + "ObsPatientPregnantStatus": "generated", + "ObsPatientPregnantDiv": "

Generated Narrative: Specimen

Resource Specimen "VLSpecimenExample"

Profile: Viral Load Specimen

Sample reordered: false

identifier: App sample identifier:\u00a0abc123, Remote sample identifier:\u00a0def456, Sample identifier:\u00a0ghi789

type: Specimen Type (SNOMED CT#119361006 "Plasma specimen (specimen)")

subject: Patient/HIVPatientExample " SMITH"

receivedTime: 2022-07-28

Collections

-Collected[x]
*2022-07-28

Processings

-Time[x]
*2022-07-28

note: additional notes here (By Organization/HIVOrganizationExample @7 Feb 2015, 20:28:17)

", + "codeCodeObsPatientPregnant": "250421003", + "textCodeObsPatientPregnant": "Pregnancy status", + "effectiveDateTimeObsPatientPregnant": "2022-11-30", + "systemvalueCodeableConceptObsPatientPregnant": "http://snomed.info/sct", + "textvalueCodeableConceptObsPatientPregnant": "Pregnancy test result", + "timeObsPatientPregnant": "2015-02-07T13:28:17-05:00", + "textObsPatientPregnant": "additional notes here", + "methodObsPatientPregnant": "PUT", + + "resourceTypeObsPatientNew": "Observation", + "profileObsPatientNew": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/hiv-patient-is-new", + "statuObsPatientNew": "final", + "systemCodeObsPatientNew": "http://snomed.info/sct", + "codeCodeObsPatientNew": "769681006", + "textCodeObsPatientNew": "New Patient Indication", + "timeObsPatientNew": "2015-02-07T13:28:17-05:00", + "textObsPatientNew": "additional notes here", + "methodObsPatientNew": "PUT", + "PatientNewStatus": "generated", + "PatientNewDiv": "

Generated Narrative: Specimen

Resource Specimen "VLSpecimenExample"

Profile: Viral Load Specimen

Sample reordered: false

identifier: App sample identifier:\u00a0abc123, Remote sample identifier:\u00a0def456, Sample identifier:\u00a0ghi789

type: Specimen Type (SNOMED CT#119361006 "Plasma specimen (specimen)")

subject: Patient/HIVPatientExample " SMITH"

receivedTime: 2022-07-28

Collections

-Collected[x]
*2022-07-28

Processings

-Time[x]
*2022-07-28

note: additional notes here (By Organization/HIVOrganizationExample @7 Feb 2015, 20:28:17)

", + + + + "resourceTypeObsBreastfeeding": "Observation", + "profileObsBreastfeeding": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/hiv-patient-breastfeeding", + "statuObsBreastfeeding": "final", + "systemCodeObsBreastfeeding": "http://snomed.info/sct", + "codeCodeObsBreastfeeding": "413712001", + "textCodeObsBreastfeeding": "Breastfeeding", + "timeObsBreastfeeding": "2015-02-07T13:28:17-05:00", + "textObsBreastfeeding": "additional notes here", + "methodObsBreastfeeding": "PUT", + "BreastfeedingStatus": "generated", + "BreastfeedingDiv": "

Generated Narrative: Specimen

Resource Specimen "VLSpecimenExample"

Profile: Viral Load Specimen

Sample reordered: false

identifier: App sample identifier:\u00a0abc123, Remote sample identifier:\u00a0def456, Sample identifier:\u00a0ghi789

type: Specimen Type (SNOMED CT#119361006 "Plasma specimen (specimen)")

subject: Patient/HIVPatientExample " SMITH"

receivedTime: 2022-07-28

Collections

-Collected[x]
*2022-07-28

Processings

-Time[x]
*2022-07-28

note: additional notes here (By Organization/HIVOrganizationExample @7 Feb 2015, 20:28:17)

", + + + + "resourceTypeCarePlanARV": "CarePlan", + "profileCarePlanARV": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/hiv-arv-treatment", + "codingSystemCarePlanARV": "http://terminology.hl7.org/CodeSystem/v2-0203", + "codeCarePlanARV": "PLAC", + "displayCarePlanARV": "Placer identifier", + "textCarePlanARV": "Unique ART number", + "systemCarePlanARV": "http://openhie.org/fhir/rwanda-hiv/identifier/uan", + "statuCarePlanARV": "active", + "intentCarePlanARV": "plan", + "startCarePlanARV": "2022-12-01", + "endCarePlanARV": "2022-12-01", + "CarePlanARVStatus": "generated", + "CarePlanARVDiv": "

Generated Narrative: Specimen

Resource Specimen "VLSpecimenExample"

Profile: Viral Load Specimen

Sample reordered: false

identifier: App sample identifier:\u00a0abc123, Remote sample identifier:\u00a0def456, Sample identifier:\u00a0ghi789

type: Specimen Type (SNOMED CT#119361006 "Plasma specimen (specimen)")

subject: Patient/HIVPatientExample " SMITH"

receivedTime: 2022-07-28

Collections

-Collected[x]
*2022-07-28

Processings

-Time[x]
*2022-07-28

note: additional notes here (By Organization/HIVOrganizationExample @7 Feb 2015, 20:28:17)

", + + + "timeCarePlanARV": "2015-02-07T13:28:17-05:00", + "textUrlCarePlanARV": "Some comments", + "methodCarePlanARV": "PUT", + + "resourceTypeCarePlanART": "CarePlan", + "profileCarePlanART": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/hiv-arv-treatment", + "codingSystemCarePlanART": "http://terminology.hl7.org/CodeSystem/v2-0203", + "codeCarePlanART": "PLAC", + "displayCarePlanART": "Placer identifier", + "textCarePlanART": "Unique ART number", + "systemCarePlanART": "http://openhie.org/fhir/rwanda-hiv/identifier/uan", + "statuCarePlanART": "active", + "intentCarePlanART": "plan", + "startCarePlanART": "2022-12-01", + "endCarePlanART": "2022-12-01", + "CarePlanARTStatus": "generated", + "CarePlanARTDiv": "

Generated Narrative: Specimen

Resource Specimen "VLSpecimenExample"

Profile: Viral Load Specimen

Sample reordered: false

identifier: App sample identifier:\u00a0abc123, Remote sample identifier:\u00a0def456, Sample identifier:\u00a0ghi789

type: Specimen Type (SNOMED CT#119361006 "Plasma specimen (specimen)")

subject: Patient/HIVPatientExample " SMITH"

receivedTime: 2022-07-28

Collections

-Collected[x]
*2022-07-28

Processings

-Time[x]
*2022-07-28

note: additional notes here (By Organization/HIVOrganizationExample @7 Feb 2015, 20:28:17)

", + + + "timeCarePlanART": "2015-02-07T13:28:17-05:00", + "textUrlCarePlanART": "Some comments", + "methodCarePlanART": "PUT", + + + "resourceTypeMedicationReqARVregimen": "MedicationRequest", + "profileMedicationReqARVregimen": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/arv-regimen-medication-request", + "codingSystemMedicationReqARVregimen": "http://snomed.info/sct", + "textMedicationReqARVregimen": "ARV regimen", + "statusMedicationReqARVregimen": "completed", + "intentMedicationReqARVregimen": "order", + "methodMedicationReqARVregimen": "PUT", + + + + "resourceTypeObAartRegimenSwitch": "Observation", + "profileObAartRegimenSwitch": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/art-regimen-switched-or-substituted", + "statuObAartRegimenSwitch": "final", + "obsArtTextStatus": "generated", + "obsArtTextDiv": "

Generated Narrative: Specimen

Resource Specimen "VLSpecimenExample"

Profile: Viral Load Specimen

Sample reordered: false

identifier: App sample identifier:\u00a0abc123, Remote sample identifier:\u00a0def456, Sample identifier:\u00a0ghi789

type: Specimen Type (SNOMED CT#119361006 "Plasma specimen (specimen)")

subject: Patient/HIVPatientExample " SMITH"

receivedTime: 2022-07-28

Collections

-Collected[x]
*2022-07-28

Processings

-Time[x]
*2022-07-28

note: additional notes here (By Organization/HIVOrganizationExample @7 Feb 2015, 20:28:17)

", + + "systemCodeObAartRegimenSwitch": "http://snomed.info/sct", + "textCodeObAartRegimenSwitch": "ARV Regimen Change", + "timeObAartRegimenSwitch": "2015-02-07T13:28:17-05:00", + "textObAartRegimenSwitch": "Some comments", + "methodObAartRegimenSwitch": "PUT", + + + + "resourceTypeMedicationReqArvTreatment": "MedicationRequest", + "profileMedicationReqArvTreatment": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/arv-regimen-medication-request", + "codingSystemMedicationReqArvTreatment": "http://snomed.info/sct", + "textMedicationReqArvTreatment": "ARV regimen", + "statusMedicationReqArvTreatment": "completed", + "intentMedicationReqArvTreatment": "order", + "methodMedicationReqArvTreatment": "PUT", + + + + "resourceTypeObsEncounter": "Observation", + "profileObsEncounter": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/art-initiated", + "statuObsEncounter": "final", + "systemCodeObsEncounter": "http://loinc.org", + "codeCodeObsEncounter": "47241-5", + "displayCodeObsEncounter": "Date determined medically eligible and ready to start HIV treatment", + "textCodeObsEncounter": "ART initiated", + "timeObsEncounter": "2015-02-07T13:28:17-05:00", + "textObsEncounter": "Some comments", + "methodObsEncounter": "PUT", + + + + "resourceTypeEncounter": "Encounter", + "profileEncounter": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/target-facility-encounter", + "statuEncounter": "completed", + "systemCodeEncounter": "http://terminology.hl7.org/CodeSystem/v3-ActCode", + "codeCodeEncounter": "AMB", + "startEncounter": "2022-12-01", + "endEncounter": "2023-01-20", + "methodEncounter": "PUT", + + + "resourceTypeObsHivTestResult": "Observation", + "profileObsHivTestResult": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/viral-load-test-result", + "urlObsHivTestResult": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/result-entered-manually", + "valueBooleanHivTestResult": false, + "statuObsHivTestResult": "final", + "systemCodeObsHivTestResult": "http://snomed.info/sct", + "codeCodeObsHivTestResult": "398579006", + "displayCodeObsHivTestResult": "Human immunodeficiency virus-1 nucleic acid assay", + "textCodeObsHivTestResult": "Viral Load Result", + "interpretationSystemCodeObsHivTestResult": "http://snomed.info/sct", + "interpretationCodeCodeObsHivTestResult": "19032002", + "interpretationDisplayCodeObsHivTestResult": "Uncontrolled", + "interpretationTextCodeObsHivTestResult": "Viral Load Suppression Status", + "timeObsHivTestResult": "2015-02-07T13:28:17-05:00", + "textObsHivTestResult": "Some comments", + "methodObsHivTestResult": "PUT", + + + "resourceTypeSpecimenDef": "SpecimenDefinition", + "profileSpecimenDef": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/specimen-preservation", + "typeTestedCodingSystemSpecimenDef": "http://snomed.info/sct", + "typeTestedCodingCodeSpecimenDef":"119361006", + "typeTestedhandlinstructionSpecimenDef":"Comments regarding the specimen conservation.", + "statusSpecimenDef": "active", + "methodSpecimenDef": "PUT", + + "resourceTypeSpecimenDefspeciConserv": "Task", + "profileSpecimenDefspeciConserv":"http://openhie.org/fhir/rwanda-hiv/StructureDefinition/hiv-lab-task", + "urlSpecimenDefspeciConserv":"http://openhie.org/fhir/rwanda-hiv/StructureDefinition/result-status-index", + "statusSpecimenDefspeciConserv": "completed", + "typeTestedpreferenceSpecimenDef": "preferred", + "identifiertypecodingSystemSpecimenDefspeciConserv":"http://terminology.hl7.org/CodeSystem/v2-0203", + "identifiertypecodingcodeSpecimenDefspeciConserv":"FILL", + "identifiertypecodingdisplaySpecimenDefspeciConserv":"Filler Identifier", + "identifiertypetextSpecimenDefspeciConserv":"Lab order number", + "identifiersystemSpecimenDefspeciConserv":"http://openhie.org/fhir/rwanda-hiv/lab-integration/order-number", + "intentSpecimenDefspeciConserv":"order", + "lastModifiedSpecimenDefspeciConserv":"2022-07-30", + "timenoteSpecimenDefspeciConserv":"2015-02-07T13:28:17-05:00", + "textnoteSpecimenDefspeciConserv":"additional notes here", + "outputtypecodingSystemSpecimenDefspeciConserv":"http://snomed.info/sct", + "outputtypecodingCodeSpecimenDefspeciConserv":"398579006", + "outputtypecodingdisplaySpecimenDefspeciConserv":"Human immunodeficiency virus-1 nucleic acid assay", + "outputtypetextSpecimenDefspeciConserv":"Viral Load Result", + "methodSpecimenDefspeciConserv":"PUT", + + + "resourceTypeActivityDefinitionlabOrder":"ActivityDefinition", + "profileActivityDefinitionlabOrder":"http://openhie.org/fhir/rwanda-hiv/StructureDefinition/hiv-lab-task-activity", + "urlActivityDefinitionlabOrder":"http://openhie.org/fhir/rwanda-hiv/StructureDefinition/revised-by-user-index", + "statusActivityDefinitionlabOrder":"active", + "editorActivityDefinitionlabOrder":"Someone", + "reviewerextensionurlActivityDefinitionlabOrder":"http://openhie.org/fhir/rwanda-hiv/StructureDefinition/task-reviewed-by-user-index", + "reviewernameActivityDefinitionlabOrder":"Mark Jones", + "endorserextensionurlActivityDefinitionlabOrder":"http://openhie.org/fhir/rwanda-hiv/StructureDefinition/task-approved-by-user-index", + "endorsernameActivityDefinitionlabOrder":"Tobias Menley", + "methodActivityDefinitionlabOrder":"PUT", + + + "resourceTypeTransportsample":"Transport", + "profileTransportsample":"http://openhie.org/fhir/rwanda-hiv/StructureDefinition/sample-dispatched-to-lab", + "statusTransportsample":"in-progress", + "intentTransportsample":"order", + "timenoteTransportsample":"2015-02-07T13:28:17-05:00", + "textnoteTransportsample":"additional notes here", + "methodTransportsample":"PUT", + + + "resourceTypeTransportresultDispatched":"Transport", + "profileTransportresultDispatched":"http://openhie.org/fhir/rwanda-hiv/StructureDefinition/result-dispatched-to-facility", + "statusTransportresultDispatched":"in-progress", + "intentTransportresultDispatched":"order", + "timenoteTransportresultDispatched":"2015-02-07T13:28:17-05:00", + "textnoteTransportresultDispatched":"additional notes here", + "methodTransportresultDispatched":"PUT", + + + "resourceTypeLocationtransport":"Location", + "profileLocationtransport":"http://openhie.org/fhir/rwanda-hiv/StructureDefinition/transport-location", + "statusLocationtransport":"active", + "nameLocationtransport":"Requested location name", + "methodLocationtransport":"PUT", + + "resourceTypeLocationtransportCurrent":"Location", + "profileLocationtransportCurrent":"http://openhie.org/fhir/rwanda-hiv/StructureDefinition/transport-location", + "statusLocationtransportCurrent":"active", + "nameLocationtransportCurrent":"Current location name", + "methodLocationtransportCurrent":"PUT", + + + "resourceTypeDiagnosticReport":"DiagnosticReport", + "profileDiagnosticReport":"http://openhie.org/fhir/rwanda-hiv/StructureDefinition/hiv-diagnostic-report", + "urlDiagnosticReport":"http://openhie.org/fhir/rwanda-hiv/StructureDefinition/tested-by-user-index", + "statuDiagnosticReport":"final", + "systemCodeDiagnosticReport":"http://loinc.org", + "codeCodeDiagnosticReport":"25836-8", + "displayCodeDiagnosticReport":"HIV 1 RNA [#/volume] (viral load) in Specimen by NAA with probe detection", + "textCodeDiagnosticReport":"Test Type", + "notetimeDiagnosticReport":"2015-02-07T13:28:17-05:00", + "notetextDiagnosticReport":"additional notes here", + "methodDiagnosticReport":"PUT", + + + + "resourceTypePractitionerresults":"Practitioner", + "profilePractitionerresults":"http://openhie.org/fhir/rwanda-hiv/StructureDefinition/hiv-practitioner", + "urlPractitionerresults":"http://openhie.org/fhir/rwanda-hiv/StructureDefinition/clinician-user-index", + "telecomsystemPractitionerresults":"phone", + "methodPractitionerresults":"PUT", + + + "resourceTypeConsentreceive":"Consent", + "profileConsentreceive":"http://openhie.org/fhir/rwanda-hiv/StructureDefinition/receive-sms-messages", + "statuConsentreceive":"active", + "systemCodeConsentreceive":"http://loinc.org", + "codeCodeConsentreceive":"89057-4", + "displayCodeConsentreceive":"Permission to receive text messages", + "textCodeConsentreceive":"Patient consent for SMS messages", + "methodConsentreceive":"PUT", + + + "resourceTypeObservationarvAdher":"Observation", + "profileObservationarvAdher":"http://openhie.org/fhir/rwanda-hiv/StructureDefinition/hiv-arv-adherence", + "statuObservationarvAdher":"final", + "systemCodeObservationarvAdher":"http://snomed.info/sct", + "codeCodeObservationarvAdher":"386091000", + "textCodeObservationarvAdher":"Treatment compliance", + "valuesystemCodeObservationarvAdher":"http://loinc.org", + "valuetextCodeObservationarvAdher":"ARV adherence", + "notetimeObservationarvAdher":"2015-02-07T13:28:17-05:00", + "notetextObservationarvAdher":"additional notes here", + "methodObservationarvAdher":"PUT", + + + "resourceTypeObservationRepeat":"Observation", + "profileObservationRepeat":"http://openhie.org/fhir/rwanda-hiv/StructureDefinition/viral-load-repeat-test-result", + "statuObservationRepeat":"final", + "systemCodeObservationRepeat":"http://snomed.info/sct", + "codeCodeObservationRepeat":"398579006", + "displayCodeObservationRepeat":"Human immunodeficiency virus-1 nucleic acid assay", + "textCodeObservationRepeat":"Viral Load Result", + "notetimeObservationRepeat":"2015-02-07T13:28:17-05:00", + "notetextObservationRepeat":"Viral load not suppressed", + "methodObservationRepeat":"PUT", + + "resourceTypeObservationSuspend":"Observation", + "profileObservationSuspend":"http://openhie.org/fhir/rwanda-hiv/StructureDefinition/viral-load-suspend-treatment-test-result", + "statuObservationSuspend":"final", + "systemCodeObservationSuspend":"http://snomed.info/sct", + "codeCodeObservationSuspend":"398579006", + "displayCodeObservationSuspend":"Human immunodeficiency virus-1 nucleic acid assay", + "textCodeObservationSuspend":"Viral Load Result", + "notetimeObservationSuspend":"2015-02-07T13:28:17-05:00", + "notetextObservationSuspend":"Viral load not suppressed", + "methodObservationSuspend":"PUT", + + + "resourceTypeDevicetest":"Device", + "profileDevicetest":"http://openhie.org/fhir/rwanda-hiv/StructureDefinition/device-for-testing", + "notetimeDevicetest":"2015-02-07T13:28:17-05:00", + "notetextDevicetest":"Some comments", + "methodDevicetest":"PUT", + + "resourceTypeObservationhivTest":"Observation", + "profileObservationhivTest":"http://openhie.org/fhir/rwanda-hiv/StructureDefinition/viral-load-log", + "statuObservationhivTest":"final", + "systemCodeObservationhivTest":"http://snomed.info/sct", + "codeCodeObservationhivTest":"398579006", + "displayCodeObservationhivTest":"Human immunodeficiency virus-1 nucleic acid assay", + "textCodeObservationhivTest":"Viral Load Result", + "effectiveDateTimeReferenceObservationhivTest":"2022-11-30", + "notetimeObservationhivTest":"2015-02-07T13:28:17-05:00", + "notetextObservationhivTest":"Some comments", + "methodObservationhivTest":"PUT", + + "resourceTypeObservationhivTestResult":"Observation", + "profileObservationhivTestResult":"http://openhie.org/fhir/rwanda-hiv/StructureDefinition/viral-load-test-result-absolute-decimal", + "statuObservationhivTestResult":"final", + "systemCodeObservationhivTestResult":"http://snomed.info/sct", + "codeCodeObservationhivTestResult":"398579006", + "displayCodeObservationhivTestResult":"Human immunodeficiency virus-1 nucleic acid assay", + "textCodeObservationhivTestResult":"Viral Load Result", + "effectiveDateTimeReferenceObservationhivTestResult":"2022-11-30", + "notetimeObservationhivTestResult":"2015-02-07T13:28:17-05:00", + "notetextObservationhivTestResult":"Some comments", + "methodObservationhivTestResult":"PUT", + + "resourceTypeOrganizationfund":"Organization", + "profileOrganizationfund":"http://openhie.org/fhir/rwanda-hiv/StructureDefinition/funding-source", + "urlOrganizationfundProvince":"http://openhie.org/fhir/rwanda-hiv/StructureDefinition/funding-source-index", + "codingSystemOrganizationfund":"http://terminology.hl7.org/CodeSystem/v2-0203", + "codeOrganizationfund":"XX", + "displayOrganizationfund":"Organization identifier", + "textOrganizationfund":"Funding Organization identifier", + "systemOrganizationfund":"http://openhie.org/fhir/rwanda-hiv/identifier/organization-id", + "valueOrganizationfund":"funder1", + "nameOrganizationfund":"A funding organization name", + "methodOrganizationfund":"PUT", + + "resourceTypeOrganizationimplementing":"Organization", + "profileOrganizationimplementing":"http://openhie.org/fhir/rwanda-hiv/StructureDefinition/implementing-partner", + "urlOrganizationimplementingProvince":"http://openhie.org/fhir/rwanda-hiv/StructureDefinition/implementing-partner-index", + "codingSystemOrganizationimplementing":"http://terminology.hl7.org/CodeSystem/v2-0203", + "codeOrganizationimplementing":"XX", + "displayOrganizationimplementing":"Organization identifier", + "textOrganizationimplementing":"Implementing Partner Organization identifier", + "systemOrganizationimplementing":"http://openhie.org/fhir/rwanda-hiv/identifier/organization-id", + "valueOrganizationimplementing":"implementing-partner-org1", + "nameOrganizationimplementing":"An implementing partner organization name", + "methodOrganizationimplementing":"PUT" + }, + "requests": { + "response": { + "id": "rwandaFhir", + "primary": true, + "config": { + "method": "post", + "headers": { + "contentType": "application/json" + }, + "url": "http://openhim-core:5001/raw-fhir" + }, + "extract": { + "JeMPIResponse": "$.body" + } + } + } +} \ No newline at end of file diff --git a/importer/openhim-mapping-mediator/jsonToFhirLabResult.json b/importer/openhim-mapping-mediator/jsonToFhirLabResult.json new file mode 100644 index 0000000..90292e0 --- /dev/null +++ b/importer/openhim-mapping-mediator/jsonToFhirLabResult.json @@ -0,0 +1,370 @@ +{ + "name": "VLSM Lab Results", + "endpoint": { + "pattern": "/lab-results", + "method": "POST" + }, + "transformation": { + "input": "JSON", + "output": "JSON" + }, + "inputTransforms": { + + "uniqueId":"$exists(requestBody.uniqueId) ? requestBody.uniqueId : null", + + "fullUrlTask":"$exists(requestBody.hivLabResultTaskID) ? 'Task/' & requestBody.hivLabResultTaskID : null", + "resourceIdTask": "$exists(requestBody.hivLabResultTaskID) ? requestBody.hivLabResultTaskID : null", + "valueIntegerTask": "$exists(requestBody.resultStatus) ? requestBody.resultStatus : null", + "identifiervalueTask": "$exists(requestBody.viralLoadNo) ? requestBody.viralLoadNo : null", + "basedOnrefoneTask": "$exists(requestBody.serviceRequestID) ? 'ServiceRequest/' & requestBody.serviceRequestID : null", + "basedOnreftwoTask": "$exists(requestBody.sampleDispatchedToLabID) ? 'Transport/' & requestBody.sampleDispatchedToLabID : null", + "basedOnrefthreeTask": "$exists(requestBody.resultDispatchedToRequestingFacilityID) ? 'Transport/' & requestBody.resultDispatchedToRequestingFacilityID : null", + "exePeriodStartTask": "$exists(requestBody.requestDate) ? requestBody.requestDate : null", + "exePeriodEndTask": "$exists(requestBody.requestDate) ? requestBody.requestDate : null", + "refauthorRefnoteTask": "$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "valueReferenceoutputTask": "$exists(requestBody.hivLabResultsDiagnosticReportExampleID) ? 'DiagnosticReport/' & requestBody.hivLabResultsDiagnosticReportExampleID : null", + "requestUrlTask":"$exists(requestBody.hivLabResultTaskID) ? 'Task/' & requestBody.hivLabResultTaskID : null", + "instantiatesCanonicalTask":"$exists(requestBody.labOrderTaskActivityID) ? 'http://openhie.org/fhir/rwanda-hiv/ActivityDefinition/' & requestBody.labOrderTaskActivityID : null", + "forTask":"$exists(requestBody.patientID) ? 'Patient/' & requestBody.patientID : null", + "encounterTask":"$exists(requestBody.encounterID) ? 'Encounter/' & requestBody.encounterID : null", + "basedOnTask": "$exists(requestBody.serviceRequestID) ? 'ServiceRequest/' & requestBody.serviceRequestID : null", + "resultStatusTask": "$exists(requestBody.resultStatusName) ? requestBody.resultStatusName : 'completed'", + "lastModifiedTask": "$exists(requestBody.lastModifiedDatetime) ? requestBody.lastModifiedDatetime : null", + + + "fullUrlDiagnosticReport":"$exists(requestBody.hivLabResultsDiagnosticReportExampleID) ? 'DiagnosticReport/' & requestBody.hivLabResultsDiagnosticReportExampleID : null", + "idDiagnosticReport": "$exists(requestBody.hivLabResultsDiagnosticReportExampleID) ? requestBody.hivLabResultsDiagnosticReportExampleID : null", + "valueIntegerDiagnosticReport": "$exists(requestBody.testedBy) ? requestBody.testedBy : null", + "referenceDiagnosticReport": "$exists(requestBody.serviceRequestID) ? 'ServiceRequest/' & requestBody.serviceRequestID : null", + "subReferenceDiagnosticReport": "$exists(requestBody.patientID) ? 'Patient/' & requestBody.patientID : null", + + "effectiveDateTimeDiagnosticReport": "$exists(requestBody.resultDispatchedOn) ? requestBody.resultDispatchedOn : null", + "encReferenceDiagnosticReport": "$exists(requestBody.encounterID) ? 'Encounter/' & requestBody.encounterID : null", + "perReferenceDiagnosticReport": "$exists(requestBody.performingPractitionerID) ? 'Practitioner/' & requestBody.performingPractitionerID : null", + "resultsIntReferenceDiagnosticReport": "$exists(requestBody.resultsInterpreterID) ? 'Practitioner/' & requestBody.resultsInterpreterID : null", + "resultReferenceDiagnosticReport": "$exists(requestBody.hivTestResultID) ? 'Observation/' & requestBody.hivTestResultID : null", + "authReferenceDiagnosticReport": "$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "conclusionDiagnosticReport": "$exists(requestBody.labComments) ? requestBody.labComments : null", + "requestUrlDiagnosticReport": "$exists(requestBody.hivLabResultsDiagnosticReportExampleID) ? 'DiagnosticReport/' & requestBody.hivLabResultsDiagnosticReportExampleID : null", + + + "fullUrlObsHivTestResult":"$exists(requestBody.hivTestResultID) ? 'Observation/' & requestBody.hivTestResultID : null", + "idObsHivTestResult": "$exists(requestBody.hivTestResultID) ? requestBody.hivTestResultID : null", + "valueBooleanObsHivTestResult": "$exists(requestBody.manualResultEntry) ? requestBody.manualResultEntry : null", + "subjectreferenceObsHivTestResult": "$exists(requestBody.patientID) ? 'Patient/' & requestBody.patientID : null", + "encounterreferenceObsHivTestResult": "$exists(requestBody.encounterID) ? 'Encounter/' & requestBody.encounterID : null", + "effectiveDateTimeObsHivTestResult": "$exists(requestBody.lastViralLoadTestDate) ? requestBody.lastViralLoadTestDate : null", + "performerreferenceObsHivTestResult": "$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "valueIntegerObsHivTestResult": "$exists(requestBody.vlResult) ? requestBody.vlResult : null", + "intCodeObsHivTestResult": "$exists(requestBody.vlResultCategory) ? requestBody.vlResultCategory : '19032002'", + "intDisplayObsHivTestResult": "$exists(requestBody.vlResultCategory) ? requestBody.vlResultCategory : 'Uncontrolled'", + "authorReferenceObsHivTestResult": "$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "notetextObsHivTestResult": "$exists(requestBody.reasonForVlResultChanges) ? requestBody.reasonForVlResultChanges : null", + "requestUrlObsHivTestResult": "$exists(requestBody.hivTestResultID) ? 'Observation/' & requestBody.hivTestResultID : null", + + + + + "fullUrlObsViralLoadLog":"$exists(requestBody.hivTestResultViralLoadLogID) ? 'Observation/' & requestBody.hivTestResultViralLoadLogID : null", + "idObsViralLoadLog": "$exists(requestBody.hivTestResultViralLoadLogID) ? requestBody.hivTestResultViralLoadLogID : null", + "subjectreferenceObsViralLoadLog": "$exists(requestBody.patientID) ? 'Patient/' & requestBody.patientID : null", + "encounterreferenceObsViralLoadLog": "$exists(requestBody.encounterID) ? 'Encounter/' & requestBody.encounterID : null", + "performerreferenceObsViralLoadLog": "$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "valueObsViralLoadLog": "$exists(requestBody.vlLog) ? requestBody.vlLog : null", + "authorReferenceObsViralLoadLog": "$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "derivedFromReferenceObsViralLoadLog": "$exists(requestBody.hivTestResultID) ? 'Observation/' & requestBody.hivTestResultID : null", + "requestUrlObsViralLoadLog": "$exists(requestBody.hivTestResultViralLoadLogID) ? 'Observation/' & requestBody.hivTestResultViralLoadLogID : null", + + + "fullUrlObsAbsoluteDecimal":"$exists(requestBody.hivTestResultAbsoluteDecimalID) ? 'Observation/' & requestBody.hivTestResultAbsoluteDecimalID : null", + "idObsAbsoluteDecimal": "$exists(requestBody.hivTestResultAbsoluteDecimalID) ? requestBody.hivTestResultAbsoluteDecimalID : null", + "subjectreferenceObsAbsoluteDecimal": "$exists(requestBody.patientID) ? 'Patient/' & requestBody.patientID : null", + "encounterreferenceObsAbsoluteDecimal": "$exists(requestBody.encounterID) ? 'Encounter/' & requestBody.encounterID : null", + "performerreferenceObsAbsoluteDecimal": "$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "valueObsAbsoluteDecimal": "$exists(requestBody.vlResultAbsoluteDecimal) ? requestBody.vlResultAbsoluteDecimal : null", + "authorReferenceObsAbsoluteDecimal": "$exists(requestBody.organizationID) ? 'Organization/' & requestBody.organizationID : null", + "derivedFromReferenceObsAbsoluteDecimal": "$exists(requestBody.hivTestResultID) ? 'Observation/' & requestBody.hivTestResultID : null", + "requestUrlObsAbsoluteDecimal": "$exists(requestBody.hivTestResultAbsoluteDecimalID) ? 'Observation/' & requestBody.hivTestResultAbsoluteDecimalID : null", + + + "fullUrlActivityDefinition":"$exists(requestBody.labOrderTaskActivityID) ? 'ActivityDefinition/' & requestBody.labOrderTaskActivityID : null", + "idActivityDefinition": "$exists(requestBody.labOrderTaskActivityID) ? requestBody.labOrderTaskActivityID : null", + "exValueIntegerActivityDefinition": "$exists(requestBody.revisedBy) ? requestBody.revisedBy : null", + "dateActivityDefinition": "$exists(requestBody.revisedOn) ? requestBody.revisedOn : null", + "lastReviewDateActivityDefinition": "$exists(requestBody.reviewedOns) ? requestBody.reviewedOns : null", + "editorNameActivityDefinition": "$exists(requestBody.revisedBys) ? requestBody.revisedBys : null", + "reviewerValueIntegerActivityDefinition":"$exists(requestBody.reviewedBys) ? requestBody.reviewedBys : null", + "endorserValueIntegerActivityDefinition":"$exists(requestBody.approvedBys) ? requestBody.approvedBys : null", + "requestUrlActivityDefinition": "$exists(requestBody.labOrderTaskActivityID) ? 'ActivityDefinition/' & requestBody.labOrderTaskActivityID : null" + + }, + "inputMapping": { + "constants.resourceType":"resourceType", + "transforms.uniqueId": "id", + "constants.type":"type", + + "transforms.fullUrlTask":"entry[0].fullUrl", + "constants.resourceTypeTask":"entry[0].resource.resourceType", + "transforms.resourceIdTask":"entry[0].resource.id", + "constants.profileTask":"entry[0].resource.meta.profile[0]", + "constants.urlTask":"entry[0].resource.extension[0].url", + "transforms.valueIntegerTask":"entry[0].resource.extension[0].valueInteger", + "constants.identifiertypecodingSystemTask":"entry[0].resource.identifier[].type.coding[].system", + "constants.identifiertypecodingcodeTask":"entry[0].resource.identifier[].type.coding[].code", + "constants.identifiertypecodingdisplayTask":"entry[0].resource.identifier[].type.coding[].display", + "constants.identifiertypetextTask":"entry[0].resource.identifier[].type.text", + "constants.identifiersystemTask":"entry[0].resource.identifier[].system", + "transforms.identifiervalueTask":"entry[0].resource.identifier[].value", + "transforms.instantiatesCanonicalTask":"entry[0].resource.instantiatesCanonical", + "transforms.basedOnTask":"entry[0].resource.basedOn.reference", + "transforms.forTask":"entry[0].resource.for.reference", + "transforms.encounterTask":"entry[0].resource.encounter.reference", + "transforms.resultStatusTask":"entry[0].resource.status", + "constants.intentTask":"entry[0].resource.intent", + "transforms.exePeriodStartTask":"entry[0].resource.executionPeriod.start", + "transforms.exePeriodEndTask":"entry[0].resource.executionPeriod.end", + "constants.lastModifiedTask":"entry[0].resource.lastModified", + "transforms.refauthorRefnoteTask":"entry[0].resource.note[].authorReference.reference", + "constants.timenoteTask":"entry[0].resource.note[].time", + "constants.textnoteTask":"entry[0].resource.note[].text", + "constants.outputtypecodingSystemTask":"entry[0].resource.output[].type.coding[].system", + "constants.outputtypecodingCodeTask":"entry[0].resource.output[].type.coding[].code", + "constants.outputtypecodingdisplayTask":"entry[0].resource.output[].type.coding[].display", + "constants.outputtypetextTask":"entry[0].resource.output[].type.text", + "transforms.valueReferenceoutputTask":"entry[0].resource.output[].valueReference.reference", + "constants.methodTask":"entry[0].request.method", + "transforms.requestUrlTask":"entry[0].request.url", + + + "transforms.fullUrlDiagnosticReport":"entry[1].fullUrl", + "constants.resourceTypeDiagnosticReport": "entry[1].resource.resourceType", + "transforms.idDiagnosticReport":"entry[1].resource.id", + "constants.profileDiagnosticReport": "entry[1].resource.meta.profile[0]", + "constants.diagnosticReportTextStatus":"entry[1].resource.text.status", + "constants.diagnosticReportTextDiv":"entry[1].resource.text.div", + "constants.urlDiagnosticReport": "entry[1].resource.extension[0].url", + "transforms.valueIntegerDiagnosticReport":"entry[1].resource.extension[0].valueInteger", + "transforms.referenceDiagnosticReport": "entry[1].resource.basedOn[0].reference", + "constants.statusDiagnosticReport": "entry[1].resource.status", + "constants.systemDiagnosticReport": "entry[1].resource.code.coding[0].system", + "constants.codeDiagnosticReport": "entry[1].resource.code.coding[0].code", + "constants.displayDiagnosticReport": "entry[1].resource.code.coding[0].display", + "constants.textDiagnosticReport": "entry[1].resource.code.text", + "transforms.subReferenceDiagnosticReport": "entry[1].resource.subject.reference", + "transforms.effectiveDateTimeDiagnosticReport": "entry[1].resource.effectiveDateTime", + "transforms.encReferenceDiagnosticReport": "entry[1].resource.encounter.reference", + "transforms.perReferenceDiagnosticReport": "entry[1].resource.performer[0].reference", + "transforms.resultsIntReferenceDiagnosticReport": "entry[1].resource.resultsInterpreter[0].reference", + "transforms.resultReferenceDiagnosticReport": "entry[1].resource.result[0].reference", + "transforms.authReferenceDiagnosticReport": "entry[1].resource.note[0].authorReference.reference", + "constants.timeDiagnosticReport": "entry[1].resource.note[0].time", + "constants.notetextDiagnosticReport": "entry[1].resource.note[0].text", + "transforms.conclusionDiagnosticReport": "entry[1].resource.conclusion", + "constants.methodDiagnosticReport": "entry[1].request.method", + "transforms.requestUrlDiagnosticReport": "entry[1].request.url", + + + "transforms.fullUrlObsHivTestResult":"entry[2].fullUrl", + "constants.resourceTypeObsHivTestResult": "entry[2].resource.resourceType", + "transforms.idObsHivTestResult":"entry[2].resource.id", + "constants.profileObsHivTestResult":"entry[2].resource.meta.profile[0]", + "constants.urlfileObsHivTestResult": "entry[2].resource.extension[0].url", + "transforms.valueBooleanObsHivTestResult":"entry[2].resource.extension[0].valueBoolean", + "constants.statusObsHivTestResult": "entry[2].resource.status", + "constants.systemObsHivTestResult": "entry[2].resource.code.coding[0].system", + "constants.codeObsHivTestResult": "entry[2].resource.code.coding[0].code", + "constants.displayObsHivTestResult": "entry[2].resource.code.coding[0].display", + "constants.textObsHivTestResult": "entry[2].resource.code.text", + "transforms.subjectreferenceObsHivTestResult":"entry[2].resource.subject.reference", + "transforms.encounterreferenceObsHivTestResult":"entry[2].resource.encounter.reference", + "transforms.effectiveDateTimeObsHivTestResult":"entry[2].resource.effectiveDateTime", + "transforms.performerreferenceObsHivTestResult":"entry[2].resource.performer[0].reference", + "transforms.valueIntegerObsHivTestResult":"entry[2].resource.valueInteger", + "constants.intSystemObsHivTestResult": "entry[2].resource.interpretation[0].coding[0].system", + "transforms.intCodeObsHivTestResult":"entry[2].resource.interpretation[0].coding[0].code", + "transforms.intDisplayObsHivTestResult":"entry[2].resource.interpretation[0].coding[0].display", + "constants.intTextObsHivTestResult": "entry[2].resource.interpretation[0].text", + "transforms.authorReferenceObsHivTestResult":"entry[2].resource.note[0].authorReference.reference", + "constants.noteTimeObsHivTestResult": "entry[2].resource.note[0].time", + "transforms.notetextObsHivTestResult":"entry[2].resource.note[0].text", + "constants.requestmethodObsHivTestResult": "entry[2].request.method", + "transforms.requestUrlObsHivTestResult": "entry[2].request.url", + + + + + "transforms.fullUrlObsViralLoadLog":"entry[3].fullUrl", + "constants.resourceTypeObsViralLoadLog": "entry[3].resource.resourceType", + "transforms.idObsViralLoadLog":"entry[3].resource.id", + "constants.profileObsViralLoadLog":"entry[3].resource.meta.profile[0]", + "constants.statusObsViralLoadLog": "entry[3].resource.status", + "constants.systemObsViralLoadLog": "entry[3].resource.code.coding[0].system", + "constants.codeObsViralLoadLog": "entry[3].resource.code.coding[0].code", + "constants.displayObsViralLoadLog": "entry[3].resource.code.coding[0].display", + "constants.textObsViralLoadLog": "entry[3].resource.code.text", + "transforms.subjectreferenceObsViralLoadLog":"entry[3].resource.subject.reference", + "transforms.encounterreferenceObsViralLoadLog":"entry[3].resource.encounter.reference", + "constants.effectiveDateTimeObsViralLoadLog":"entry[3].resource.effectiveDateTime", + "transforms.performerreferenceObsAbsoluteDecimal":"entry[3].resource.performer[0].reference", + "transforms.valueObsAbsoluteDecimal":"entry[3].resource.valueQuantity.value", + "transforms.authorReferenceObsViralLoadLog":"entry[3].resource.note[0].authorReference.reference", + "constants.noteTimeObsViralLoadLog": "entry[3].resource.note[0].time", + "constants.noteTextObsViralLoadLog":"entry[3].resource.note[0].text", + "transforms.derivedFromReferenceObsViralLoadLog": "entry[3].resource.derivedFrom[0].reference", + "constants.requestmethodObsViralLoadLog": "entry[3].request.method", + "transforms.requestUrlObsAbsoluteDecimal": "entry[3].request.url", + + + "transforms.fullUrlObsAbsoluteDecimal":"entry[4].fullUrl", + "constants.resourceTypeObsAbsoluteDecimal": "entry[4].resource.resourceType", + "transforms.idObsAbsoluteDecimal":"entry[4].resource.id", + "constants.profileObsAbsoluteDecimal":"entry[4].resource.meta.profile[0]", + "constants.statusObsAbsoluteDecimal": "entry[4].resource.status", + "constants.systemObsAbsoluteDecimal": "entry[4].resource.code.coding[0].system", + "constants.codeObsAbsoluteDecimal": "entry[4].resource.code.coding[0].code", + "constants.displayObsAbsoluteDecimal": "entry[4].resource.code.coding[0].display", + "constants.textObsAbsoluteDecimal": "entry[4].resource.code.text", + "transforms.subjectreferenceObsAbsoluteDecimal":"entry[4].resource.subject.reference", + "transforms.encounterreferenceObsAbsoluteDecimal":"entry[4].resource.encounter.reference", + "constants.effectiveDateTimeObsAbsoluteDecimal":"entry[4].resource.effectiveDateTime", + "transforms.performerreferenceObsViralLoadLog":"entry[4].resource.performer[0].reference", + "transforms.valueObsViralLoadLog":"entry[4].resource.valueQuantity.value", + "transforms.authorReferenceObsAbsoluteDecimal":"entry[4].resource.note[0].authorReference.reference", + "constants.noteTimeObsAbsoluteDecimal": "entry[4].resource.note[0].time", + "constants.noteTextObsAbsoluteDecimal":"entry[4].resource.note[0].text", + "transforms.derivedFromReferenceObsAbsoluteDecimal": "entry[4].resource.derivedFrom[0].reference", + "constants.requestmethodObsAbsoluteDecimal": "entry[4].request.method", + "transforms.requestUrlObsViralLoadLog": "entry[4].request.url", + + + "transforms.fullUrlActivityDefinition":"entry[5].fullUrl", + "constants.resourceTypeActivityDefinition": "entry[5].resource.resourceType", + "transforms.idActivityDefinition":"entry[5].resource.id", + "constants.profileActivityDefinition":"entry[5].resource.meta.profile[0]", + "constants.extensionUrlActivityDefinition":"entry[5].resource.extension[0].url", + "transforms.exValueIntegerActivityDefinition":"entry[5].resource.extension[0].valueInteger", + "constants.statusActivityDefinition": "entry[5].resource.status", + "transforms.dateActivityDefinition": "entry[5].resource.date", + "constants.approvalDateActivityDefinition":"entry[5].resource.approvalDate", + "transforms.lastReviewDateActivityDefinition":"entry[5].resource.lastReviewDate", + "transforms.editorNameActivityDefinition":"entry[5].resource.editor[0].name", + "constants.reviewerUrlActivityDefinition":"entry[5].resource.reviewer[0].extension[0].url", + "transforms.reviewerValueIntegerActivityDefinition":"entry[5].resource.reviewer[0].extension[0].valueInteger", + "constants.reviewerNameActivityDefinition":"entry[5].resource.reviewer[0].name", + "constants.endorserUrlActivityDefinition":"entry[5].resource.endorser[0].extension[0].url", + "transforms.endorserValueIntegerActivityDefinition":"entry[5].resource.endorser[0].extension[0].valueInteger", + "constants.endorserNameActivityDefinition":"entry[5].resource.endorser[0].name", + "constants.requestmethodActivityDefinition": "entry[5].request.method", + "transforms.requestUrlActivityDefinition": "entry[5].request.url" + + }, + "constants": { + "resourceType": "Bundle", + "type": "transaction", + "id": "LabResult", + + + "resourceTypeTask": "Task", + "profileTask":"http://openhie.org/fhir/rwanda-hiv/StructureDefinition/hiv-lab-task", + "urlTask":"http://openhie.org/fhir/rwanda-hiv/StructureDefinition/result-status-index", + "typeTestedpreferenceSpecimenDef": "preferred", + "identifiertypecodingSystemTask":"http://terminology.hl7.org/CodeSystem/v2-0203", + "identifiertypecodingcodeTask":"FILL", + "identifiertypecodingdisplayTask":"Filler Identifier", + "identifiertypetextTask":"Lab order number", + "identifiersystemTask":"http://openhie.org/fhir/rwanda-hiv/lab-integration/order-number", + "intentTask":"order", + "lastModifiedTask":"2022-07-30", + "timenoteTask":"2015-02-07T13:28:17-05:00", + "textnoteTask":"additional notes here", + "outputtypecodingSystemTask":"http://snomed.info/sct", + "outputtypecodingCodeTask":"398579006", + "outputtypecodingdisplayTask":"Human immunodeficiency virus-1 nucleic acid assay", + "outputtypetextTask":"Viral Load Result", + "methodTask":"PUT", + + + "resourceTypeDiagnosticReport": "DiagnosticReport", + "profileDiagnosticReport": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/hiv-diagnostic-report", + "urlDiagnosticReport": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/tested-by-user-index", + "statusDiagnosticReport": "final", + "systemDiagnosticReport": "http://loinc.org", + "codeDiagnosticReport": "25836-8", + "displayDiagnosticReport": "HIV 1 RNA [#/volume] (viral load) in Specimen by NAA with probe detection", + "textDiagnosticReport": "Test Type", + "timeDiagnosticReport": "2015-02-07T13:28:17-05:00", + "notetextDiagnosticReport": "additional notes here", + "methodDiagnosticReport": "PUT", + "diagnosticReportTextStatus": "extensions", + "diagnosticReportTextDiv": "

Generated Narrative: Specimen

Resource Specimen "VLSpecimenExample"

Profile: Viral Load Specimen

Sample reordered: false

identifier: App sample identifier:\u00a0abc123, Remote sample identifier:\u00a0def456, Sample identifier:\u00a0ghi789

type: Specimen Type (SNOMED CT#119361006 "Plasma specimen (specimen)")

subject: Patient/HIVPatientExample " SMITH"

receivedTime: 2022-07-28

Collections

-Collected[x]
*2022-07-28

Processings

-Time[x]
*2022-07-28

note: additional notes here (By Organization/HIVOrganizationExample @7 Feb 2015, 20:28:17)

", + + + "resourceTypeObsHivTestResult": "Observation", + "profileObsHivTestResult": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/viral-load-test-result", + "urlfileObsHivTestResult": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/result-entered-manually", + "statusObsHivTestResult": "final", + "systemObsHivTestResult": "http://snomed.info/sct", + "codeObsHivTestResult": "398579006", + "displayObsHivTestResult": "Human immunodeficiency virus-1 nucleic acid assay", + "textObsHivTestResult": "Viral Load Result", + "intSystemObsHivTestResult": "http://snomed.info/sct", + "intTextObsHivTestResult": "Viral Load Suppression Status", + "noteTimeObsHivTestResult": "2015-02-07T13:28:17-05:00", + "requestmethodObsHivTestResult": "PUT", + + + "resourceTypeObsViralLoadLog": "Observation", + "profileObsViralLoadLog": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/viral-load-log", + "statusObsViralLoadLog": "final", + "systemObsViralLoadLog": "http://snomed.info/sct", + "codeObsViralLoadLog": "398579006", + "displayObsViralLoadLog": "Human immunodeficiency virus-1 nucleic acid assay", + "textObsViralLoadLog": "Viral Load Result", + "effectiveDateTimeObsViralLoadLog": "2022-11-30", + "noteTimeObsViralLoadLog": "2015-02-07T13:28:17-05:00", + "noteTextObsViralLoadLog": "Some comments", + "requestmethodObsViralLoadLog": "PUT", + + + "resourceTypeObsAbsoluteDecimal": "Observation", + "profileObsAbsoluteDecimal": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/viral-load-test-result-absolute-decimal", + "statusObsAbsoluteDecimal": "final", + "systemObsAbsoluteDecimal": "http://snomed.info/sct", + "codeObsAbsoluteDecimal": "398579006", + "displayObsAbsoluteDecimal": "Human immunodeficiency virus-1 nucleic acid assay", + "textObsAbsoluteDecimal": "Viral Load Result", + "effectiveDateTimeObsAbsoluteDecimal": "2022-11-30", + "noteTimeObsAbsoluteDecimal": "2015-02-07T13:28:17-05:00", + "noteTextObsAbsoluteDecimal": "Some comments", + "requestmethodObsAbsoluteDecimal": "PUT", + + + "resourceTypeActivityDefinition": "ActivityDefinition", + "profileActivityDefinition": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/hiv-lab-task-activity", + "extensionUrlActivityDefinition": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/revised-by-user-index", + "statusActivityDefinition": "active", + "approvalDateActivityDefinition": "2020-09-07", + "reviewerUrlActivityDefinition": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/task-reviewed-by-user-index", + "reviewerNameActivityDefinition":"Mark Jones", + "endorserUrlActivityDefinition": "http://openhie.org/fhir/rwanda-hiv/StructureDefinition/task-approved-by-user-index", + "endorserNameActivityDefinition":"Tobias Menley", + "requestmethodActivityDefinition": "PUT" + + }, + "requests": { + "response": { + "id": "rwandaFhir", + "primary": true, + "config": { + "method": "post", + "headers": { + "contentType": "application/json" + }, + "url": "http://openhim-core:5001/hapi-fhir-jpaserver/fhir/" + }, + "extract": { + "JeMPIResponse": "$.body" + } + } + } +} \ No newline at end of file diff --git a/mapping_mediator/.env b/mapping_mediator/.env index 563aba7..cfb1c0f 100644 --- a/mapping_mediator/.env +++ b/mapping_mediator/.env @@ -1,2 +1,10 @@ -OPENHIM_URL=openhim-core +OPENHIM_HOST=openhim-core +#OPENHIM_HOST=localhost OPENHIM_PORT=5001 + +ORGANIZATION_ID=RequestingOrganizationExample +REQUESTING_ORGANIZATION_ID=requestingOrganizationID +PERFORMING_ORGANIZATION_ID=performingOrganizationID + +FHIR_PORT=8085 +FHIR_URL=hapi-fhir-jpaserver/fhir diff --git a/mapping_mediator/apps/rwandaApp/urls.py b/mapping_mediator/apps/rwandaApp/urls.py index 4434ed1..12c9f58 100644 --- a/mapping_mediator/apps/rwandaApp/urls.py +++ b/mapping_mediator/apps/rwandaApp/urls.py @@ -4,9 +4,9 @@ urlpatterns = [ path('lab-orders', views.LabView.as_view(), name='lab-orders'), - path('get-lab-result', views.LabView.as_view(), name='lab-result'), path('lab-orders-uuid-generator', views.LabUUIDView.as_view(), name='lab-orders-uuid'), path('lab-orders-source-id', views.LabOrderSourceIdView.as_view(), name='lab-orders-source-id'), - + path('lab-results', views.LabResult.as_view(), name='lab-results'), + path('get-lab-results', views.GetLabResults.as_view(), name='get-lab-results'), ] diff --git a/mapping_mediator/apps/rwandaApp/views/rwanda_lab_order.py b/mapping_mediator/apps/rwandaApp/views/rwanda_lab_order.py index 47c625e..a9773a8 100644 --- a/mapping_mediator/apps/rwandaApp/views/rwanda_lab_order.py +++ b/mapping_mediator/apps/rwandaApp/views/rwanda_lab_order.py @@ -1,20 +1,23 @@ from rest_framework.views import APIView from rest_framework.response import Response -from rest_framework.permissions import IsAuthenticated +from django.http import JsonResponse import uuid -import json -import requests import environ -from django.http import HttpResponse, JsonResponse -from apps.rwandaApp.views.common import getUrl +from datetime import datetime import requests import json env = environ.Env( # set casting, default value DEBUG=(bool, False) ) -# IPAddr = "192.168.1.12" -IPAddr = "openhim-core" + +OPENHIM_PORT = env('OPENHIM_PORT') +OPENHIM_HOST = env('OPENHIM_HOST') +ORGANIZATION_ID=env('ORGANIZATION_ID') +REQUESTING_ORGANIZATION_ID=env('REQUESTING_ORGANIZATION_ID') +PERFORMING_ORGANIZATION_ID=env('PERFORMING_ORGANIZATION_ID') +FHIR_PORT=env('FHIR_PORT') +FHIR_URL=env('FHIR_URL') class LabUUIDView(APIView): @@ -23,9 +26,9 @@ def post(self, request): json_data = request.data json_data["id"] = str(uuid.uuid4()) json_data["specimenID"] = str(uuid.uuid4()) - json_data["organizationID"] = str(uuid.uuid4()) - json_data["requestingOrganizationID"] = str(uuid.uuid4()) - json_data["performingOrganizationID"] = str(uuid.uuid4()) + json_data["organizationID"] = ORGANIZATION_ID + json_data["requestingOrganizationID"] = REQUESTING_ORGANIZATION_ID + json_data["performingOrganizationID"] = PERFORMING_ORGANIZATION_ID json_data["serviceRequestID"] = str(uuid.uuid4()) json_data["requestingPractitionerID"] = str(uuid.uuid4()) json_data["performingPractitionerID"] = str(uuid.uuid4()) @@ -59,7 +62,8 @@ def post(self, request): json_data["implementingPartnerOrganizationID"] = str(uuid.uuid4()) # call mapping meditor here - url = "http://"+IPAddr+":5001/lab-order" + print("................................................................") + url = "http://" + OPENHIM_HOST + ":" + OPENHIM_PORT + "/lab-order" print(url) payload = json.dumps(json_data) headers = { @@ -67,7 +71,7 @@ def post(self, request): } response = requests.request("POST", url, headers=headers, data=payload) - + if response.status_code == 200: return Response(json.loads(response.text)) else: @@ -94,7 +98,8 @@ class LabOrderSourceIdView(APIView): def post(self, request): try: - url = "http://" + IPAddr + ":5001/vlsm/order" + url = "http://"+OPENHIM_HOST+":"+OPENHIM_PORT+"/vlsm/order" + print(request.data) json_data = request.data json_data["labsourceid"] = str(uuid.uuid4()) @@ -112,3 +117,145 @@ def post(self, request): except Exception as e: print(e) return Response({"Error":"An internal server error occurred", "Exceptation":str(e)}, status=500) + + +class LabResult(APIView): + + def post(self, request): + try: + print(request.data) + lab_result_data = request.data + patientArtNo = lab_result_data.get("patientArtNo") + labOrderId = lab_result_data.get("labOrderId") + sampleCollectionDate = lab_result_data.get("sampleCollectionDate") + if not sampleCollectionDate: + return Response("sampleCollectionDate is not present in results") + date_obj = datetime.strptime(sampleCollectionDate, "%d-%b-%Y %H:%M:%S") + formatted_date_str = date_obj.strftime("%Y-%m-%d") + lab_result_data["resultDispatchedOn"] = formatted_date_str + + print(sampleCollectionDate) + print(formatted_date_str) + print(lab_result_data.get("resultDispatchedOn")) + if labOrderId: + url = "http://" + OPENHIM_HOST + ":" + OPENHIM_PORT + "/" + FHIR_URL + "/ServiceRequest?identifier="+ labOrderId + else: + url = "http://" + OPENHIM_HOST + ":" + OPENHIM_PORT + "/" + FHIR_URL + "/ServiceRequest?identifier="+ patientArtNo +"&occurrence=" + formatted_date_str + payload = {} + headers = {} + print(url) + response = requests.request("GET", url, headers=headers, data=payload) + print(response) + + if response.status_code == 200: + data = json.loads(response.text) + print(data) + patient = data.get("entry") + organizationID = PERFORMING_ORGANIZATION_ID + print(patient) + if patient: + patient = data.get("entry")[0] + resource = patient.get("resource") + patientID = resource.get("subject").get("reference") + encounterID = resource.get("encounter").get("reference") + if resource.get("note"): + organizationID = resource.get("note")[0].get("authorReference").get("reference") + if resource.get("requester"): + performingPractitionerID = resource.get("requester").get("reference") + resultsInterpreterID = resource.get("subject").get("reference") + serviceRequestID = resource.get("id") + + lab_result_data["patientID"] = patientID.split('/')[-1] + lab_result_data["encounterID"]=encounterID.split('/')[-1] + lab_result_data["organizationID"] = organizationID.split('/')[-1] + lab_result_data["performingPractitionerID"] = performingPractitionerID.split('/')[-1] + lab_result_data["resultsInterpreterID"] = performingPractitionerID.split('/')[-1] + lab_result_data["serviceRequestID"] = serviceRequestID.split('/')[-1] + + lab_result_data["hivLabResultTaskID"] = str(uuid.uuid4()) + lab_result_data["labOrderTaskActivityID"] = str(uuid.uuid4()) + lab_result_data["hivLabResultsDiagnosticReportExampleID"] = str(uuid.uuid4()) + lab_result_data["hivTestResultViralLoadLogID"] = str(uuid.uuid4()) + lab_result_data["hivTestResultAbsoluteDecimalID"] = str(uuid.uuid4()) + lab_result_data["hivTestResultID"] = str(uuid.uuid4()) + + url = "http://openhim-mapping-mediator:3003/lab-results" + + payload = json.dumps(lab_result_data) + headers = { + 'Content-Type': 'application/json' + } + + response = requests.request("POST", url, headers=headers, data=payload) + + print(response.text) + return Response(json.loads(response.text)) + else: + return Response("No record found for date " + formatted_date_str + " and patient Art No " + patientArtNo) + else: + return Response("No record found") + except Exception as e: + print(e) + return Response({"Error":"An internal server error occurred", "Exceptation":str(e)}, status=500) + + +class GetLabResults(APIView): + + def get(self, request): + try: + print("Get lab Results") + subject = request.GET.get('subject') + from_date = "ge"+request.GET.get('from_date') + to_date = "le"+request.GET.get('to_date') + url = "http://" + OPENHIM_HOST + ":" + OPENHIM_PORT + "/" + FHIR_URL + "/DiagnosticReport?subject="+ subject +"&date="+ from_date +"&date="+ to_date +"&_include=*" + print(url) + response = requests.request("GET", url, headers={}, data={}) + + # print(response.text) + if response.status_code == 200: + now = datetime.now() + lab_result_data = json.loads(response.text) + lab_result_data_dict = {} + lab_result_data_dict["now"] = now.strftime("%Y-%m-%d :: %H:%M:%S") + lab_result_data_dict["status"] = response.status_code + lab_result_data_dict["message"] = "Success" + data = [] + if lab_result_data.get("total") > 0: + for lab_result in lab_result_data.get("entry"): + result = {} + lab_result_data_resource = lab_result.get("resource") + if lab_result.get("resource").get("resourceType") == "DiagnosticReport": + print("DiagnosticReport") + result["status"] = lab_result_data_resource.get("status") + result["conclusion"] = lab_result_data_resource.get("conclusion") + result["effectiveDateTime"] = lab_result_data_resource.get("effectiveDateTime") + obs = lab_result_data_resource.get("result")[0].get("reference").split('/')[-1] + for lab_result_dg in lab_result_data.get("entry"): + lab_result_data_dg = lab_result_dg.get("resource") + if lab_result_data_dg.get("resourceType") == "Patient": + print("Patient") + patientId = lab_result_data_dg.get("id") + result["patientId"] = patientId + result["name"] = (lab_result_data_dg.get("name", [{}])[0].get("given", [None])[0]) + result["phone"] = (lab_result_data_dg.get("telecom", [{}])[0].get("value")) + result["birthDate"] = lab_result_data_dg.get("birthDate") + result["upid"] = patientId + + if lab_result_data_dg.get("resourceType") == "Observation" and obs == lab_result_data_dg.get("id"): + print("Observation") + vlResult = lab_result_data_dg.get("valueInteger") + result["vlResult"] = vlResult + result["result"] = vlResult + if result: + data.append(result) + + print(data) + lab_result_data_dict["data"] = data + return JsonResponse(lab_result_data_dict) + # return Response(json.loads(response.text)) + else: + return Response("No record found") + + except Exception as e: + print(e) + return Response({"Error":"An internal server error occurred", "Exceptation":str(e)}, status=500)