FHIR IG analytics| Package | silfhirprofileig |
| Resource Type | StructureMap |
| Id | StructureMap-ExtractInpatientObstetricAdmissionAssessment.json |
| FHIR Version | R5 |
| Source | https://build.fhir.org/ig/savannahghi/sil_fhir_profile_ig/StructureMap-ExtractInpatientObstetricAdmissionAssessment.html |
| URL | https://fhir.slade360.co.ke/fhir/StructureMap/ExtractInpatientObstetricAdmissionAssessment |
| Version | 0.1.0 |
| Status | active |
| Date | 2026-09-11T12:18:36+00:00 |
| Name | ExtractInpatientObstetricAdmissionAssessment |
| Title | Inpatient Obstetric Admission Assessment Extraction |
| Description | Four measurements out, four Observations. Gestation, fetal heart rate and cervical dilatation are readings taken at the bedside, so they carry category `exam`; the obstetric history is reported rather than measured, so it carries `social-history`. Every LOINC code here was checked against tx.fhir.org before use. |
No resources found
No resources found
Note: links and images are rebased to the (stated) source
Generated Narrative: StructureMap ExtractInpatientObstetricAdmissionAssessment
/// url = 'https://fhir.slade360.co.ke/fhir/StructureMap/ExtractInpatientObstetricAdmissionAssessment' /// name = 'ExtractInpatientObstetricAdmissionAssessment' /// title = 'Inpatient Obstetric Admission Assessment Extraction' /// status = 'active' /// description = 'Four measurements out, four Observations. Gestation, fetal heart rate and cervical dilatation are readings taken at the bedside, so they carry category `exam`; the obstetric history is reported rather than measured, so it carries `social-history`. Every LOINC code here was checked against tx.fhir.org before use.' uses "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse" alias QR as source uses "http://hl7.org/fhir/StructureDefinition/Bundle" alias Bundle as target uses "http://hl7.org/fhir/StructureDefinition/Observation" alias Observation as target group ExtractInpatientObstetricAdmissionAssessment(source qr : QR, target bundle : Bundle) { qr -> bundle.type = 'transaction' "setBundleType"; qr.item as itG where ((linkId = 'gestation') and answer.value.exists()) then { itG.answer first as aG then { aG -> bundle.entry as entryG, entryG.resource = create('Observation') as obsG then { qr -> obsG, entryG then BuildObsBase(qr, obsG, entryG) "gestationBase"; qr -> obsG then SetExamCategory(qr, obsG) "gestationCategory"; qr -> obsG.code as code then { qr -> code.coding as coding then { qr -> coding.system = 'http://loinc.org' "codeSystem"; qr -> coding.code = '18185-9' "codeCode"; qr -> coding.display = 'Gestational age' "codeDisplay"; } "codeCoding"; } "gestationCode"; // The item is type `quantity` with a unitOption pinning weeks, so the // answer arrives as a Quantity and is copied through whole. aG.value as v -> obsG.value = v "gestationValue"; } "gestationObservation"; } "gestationAnswer"; } "gestationRule"; qr.item as itF where ((linkId = 'fhr') and answer.value.exists()) then { itF.answer first as aF then { aF -> bundle.entry as entryF, entryF.resource = create('Observation') as obsF then { qr -> obsF, entryF then BuildObsBase(qr, obsF, entryF) "fhrBase"; qr -> obsF then SetExamCategory(qr, obsF) "fhrCategory"; qr -> obsF.code as code then { qr -> code.coding as coding then { qr -> coding.system = 'http://loinc.org' "codeSystem"; qr -> coding.code = '55283-6' "codeCode"; qr -> coding.display = 'Fetal Heart rate' "codeDisplay"; } "codeCoding"; } "fhrCode"; aF.value as v -> obsF.value = v "fhrValue"; } "fhrObservation"; } "fhrAnswer"; } "fhrRule"; qr.item as itD where ((linkId = 'dilatation') and answer.value.exists()) then { itD.answer first as aD then { aD -> bundle.entry as entryD, entryD.resource = create('Observation') as obsD then { qr -> obsD, entryD then BuildObsBase(qr, obsD, entryD) "dilatationBase"; qr -> obsD then SetExamCategory(qr, obsD) "dilatationCategory"; qr -> obsD.code as code then { qr -> code.coding as coding then { qr -> coding.system = 'http://loinc.org' "codeSystem"; qr -> coding.code = '11784-6' "codeCode"; qr -> coding.display = 'Cervical canal external os Diameter palpation' "codeDisplay"; } "codeCoding"; } "dilatationCode"; aD.value as v -> obsD.value = v "dilatationValue"; } "dilatationObservation"; } "dilatationAnswer"; } "dilatationRule"; qr.item as itH where ((linkId = 'obsHistory') and answer.value.exists()) then { itH.answer first as aH then { aH -> bundle.entry as entryH, entryH.resource = create('Observation') as obsH then { qr -> obsH, entryH then BuildObsBase(qr, obsH, entryH) "historyBase"; qr -> obsH then SetSocialHistoryCategory(qr, obsH) "historyCategory"; qr -> obsH.code as code then { qr -> code.coding as coding then { qr -> coding.system = 'http://loinc.org' "codeSystem"; qr -> coding.code = '89213-3' "codeCode"; qr -> coding.display = 'Obstetrics History and physical note' "codeDisplay"; } "codeCoding"; } "historyCode"; aH.value as v -> obsH.value = v "historyValue"; } "historyObservation"; } "historyAnswer"; } "obsHistoryRule"; } // ───────────────────────────────────────────────────────────────────────────── // Shared scaffolding. Repeated in each map rather than imported: the transform // engine resolves `imports` against whatever StructureMaps happen to be on the // server, and a form that stops extracting because a shared map was not // uploaded is a worse failure than a duplicated group. // ───────────────────────────────────────────────────────────────────────────── group BuildObsBase(source qr : QR, target obs : Observation, target entry) { qr -> obs.id = uuid() then SetObservationFullUrl(obs, entry) "idAndFullUrl"; qr -> entry.request as request then { qr -> request.method = 'POST' "requestMethod"; qr -> request.url = 'Observation' "requestUrl"; } "entryRequest"; qr -> obs.status = 'final' "status"; qr.subject as s -> obs.subject = s; qr.encounter as e -> obs.encounter = e; qr.authored as t -> obs.effective = t "effective"; qr.source as src -> obs.performer = src "performerFromSource"; qr where (source.exists().not()) then { qr.author as a -> obs.performer = a "performerFromAuthor"; } "performerFallback"; qr -> obs.derivedFrom = create('Reference') as ref then { qr.id as qid -> ref.reference = qid "derivedFromRef"; } "linkQuestionnaireResponse"; } group SetExamCategory(source qr : QR, target obs : Observation) { qr -> obs.category as cat then { qr -> cat.coding as coding then { qr -> coding.system = 'http://terminology.hl7.org/CodeSystem/observation-category' "categorySystem"; qr -> coding.code = 'exam' "categoryCode"; qr -> coding.display = 'Exam' "categoryDisplay"; } "categoryCoding"; } "category"; } group SetSocialHistoryCategory(source qr : QR, target obs : Observation) { qr -> obs.category as cat then { qr -> cat.coding as coding then { qr -> coding.system = 'http://terminology.hl7.org/CodeSystem/observation-category' "categorySystem"; qr -> coding.code = 'social-history' "categoryCode"; qr -> coding.display = 'Social History' "categoryDisplay"; } "categoryCoding"; } "category"; } group SetObservationFullUrl(source obs : Observation, target entry) { obs.id as id -> entry.fullUrl = append('https://fhir.slade360.co.ke/fhir/Observation/', id) "assignFullUrl"; }
{
"resourceType": "StructureMap",
"id": "ExtractInpatientObstetricAdmissionAssessment",
"text": {
"status": "generated",
"div": "<!-- snip (see above) -->"
},
"url": "https://fhir.slade360.co.ke/fhir/StructureMap/ExtractInpatientObstetricAdmissionAssessment",
"version": "0.1.0",
"name": "ExtractInpatientObstetricAdmissionAssessment",
"title": "Inpatient Obstetric Admission Assessment Extraction",
"status": "active",
"date": "2026-09-11T12:18:36+00:00",
"publisher": "Kathurima Kimathi",
"contact": [
{
"name": "Kathurima Kimathi",
"telecom": [
{
"system": "url",
"value": "https://www.linkedin.com/in/kathurima-kimathi/"
},
{
"system": "email",
"value": "kathurimakimathi415@gmail.com"
}
]
},
{
"name": "Oscar John",
"telecom": [
{
"system": "email",
"value": "oscarjohnotieno@gmail.com",
"use": "work"
}
]
},
{
"name": "Kennedy Omondi",
"telecom": [
{
"system": "email",
"value": "kennankole@gmail.com",
"use": "work"
}
]
}
],
"description": "Four measurements out, four Observations. Gestation, fetal heart rate and cervical dilatation are readings taken at the bedside, so they carry category `exam`; the obstetric history is reported rather than measured, so it carries `social-history`. Every LOINC code here was checked against tx.fhir.org before use.",
"structure": [
{
"url": "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse",
"mode": "source",
"alias": "QR"
},
{
"url": "http://hl7.org/fhir/StructureDefinition/Bundle",
"mode": "target",
"alias": "Bundle"
},
{
"url": "http://hl7.org/fhir/StructureDefinition/Observation",
"mode": "target",
"alias": "Observation"
}
],
"group": [
{
"name": "ExtractInpatientObstetricAdmissionAssessment",
"input": [
{
"name": "qr",
"type": "QR",
"mode": "source"
},
{
"name": "bundle",
"type": "Bundle",
"mode": "target"
}
],
"rule": [
{
"name": "setBundleType",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "bundle",
"element": "type",
"transform": "copy",
"parameter": [
{
"valueString": "transaction"
}
]
}
]
},
{
"name": "gestationRule",
"source": [
{
"context": "qr",
"element": "item",
"variable": "itG",
"condition": "(linkId = 'gestation') and answer.value.exists()"
}
],
"rule": [
{
"name": "gestationAnswer",
"source": [
{
"context": "itG",
"element": "answer",
"listMode": "first",
"variable": "aG"
}
],
"rule": [
{
"name": "gestationObservation",
"source": [
{
"context": "aG"
}
],
"target": [
{
"context": "bundle",
"element": "entry",
"variable": "entryG"
},
{
"context": "entryG",
"element": "resource",
"variable": "obsG",
"transform": "create",
"parameter": [
{
"valueString": "Observation"
}
]
}
],
"rule": [
{
"name": "gestationBase",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "obsG"
},
{
"context": "entryG"
}
],
"dependent": [
{
"name": "BuildObsBase",
"parameter": [
{
"valueId": "qr"
},
{
"valueId": "obsG"
},
{
"valueId": "entryG"
}
]
}
]
},
{
"name": "gestationCategory",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "obsG"
}
],
"dependent": [
{
"name": "SetExamCategory",
"parameter": [
{
"valueId": "qr"
},
{
"valueId": "obsG"
}
]
}
]
},
{
"name": "gestationCode",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "obsG",
"element": "code",
"variable": "code"
}
],
"rule": [
{
"name": "codeCoding",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "code",
"element": "coding",
"variable": "coding"
}
],
"rule": [
{
"name": "codeSystem",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "coding",
"element": "system",
"transform": "copy",
"parameter": [
{
"valueString": "http://loinc.org"
}
]
}
]
},
{
"name": "codeCode",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "coding",
"element": "code",
"transform": "copy",
"parameter": [
{
"valueString": "18185-9"
}
]
}
]
},
{
"name": "codeDisplay",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "coding",
"element": "display",
"transform": "copy",
"parameter": [
{
"valueString": "Gestational age"
}
]
}
]
}
]
}
]
},
{
"name": "gestationValue",
"source": [
{
"context": "aG",
"element": "value",
"variable": "v"
}
],
"target": [
{
"context": "obsG",
"element": "value",
"transform": "copy",
"parameter": [
{
"valueId": "v"
}
]
}
],
"documentation": "The item is type `quantity` with a unitOption pinning weeks, so the\r\nanswer arrives as a Quantity and is copied through whole."
}
]
}
]
}
]
},
{
"name": "fhrRule",
"source": [
{
"context": "qr",
"element": "item",
"variable": "itF",
"condition": "(linkId = 'fhr') and answer.value.exists()"
}
],
"rule": [
{
"name": "fhrAnswer",
"source": [
{
"context": "itF",
"element": "answer",
"listMode": "first",
"variable": "aF"
}
],
"rule": [
{
"name": "fhrObservation",
"source": [
{
"context": "aF"
}
],
"target": [
{
"context": "bundle",
"element": "entry",
"variable": "entryF"
},
{
"context": "entryF",
"element": "resource",
"variable": "obsF",
"transform": "create",
"parameter": [
{
"valueString": "Observation"
}
]
}
],
"rule": [
{
"name": "fhrBase",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "obsF"
},
{
"context": "entryF"
}
],
"dependent": [
{
"name": "BuildObsBase",
"parameter": [
{
"valueId": "qr"
},
{
"valueId": "obsF"
},
{
"valueId": "entryF"
}
]
}
]
},
{
"name": "fhrCategory",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "obsF"
}
],
"dependent": [
{
"name": "SetExamCategory",
"parameter": [
{
"valueId": "qr"
},
{
"valueId": "obsF"
}
]
}
]
},
{
"name": "fhrCode",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "obsF",
"element": "code",
"variable": "code"
}
],
"rule": [
{
"name": "codeCoding",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "code",
"element": "coding",
"variable": "coding"
}
],
"rule": [
{
"name": "codeSystem",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "coding",
"element": "system",
"transform": "copy",
"parameter": [
{
"valueString": "http://loinc.org"
}
]
}
]
},
{
"name": "codeCode",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "coding",
"element": "code",
"transform": "copy",
"parameter": [
{
"valueString": "55283-6"
}
]
}
]
},
{
"name": "codeDisplay",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "coding",
"element": "display",
"transform": "copy",
"parameter": [
{
"valueString": "Fetal Heart rate"
}
]
}
]
}
]
}
]
},
{
"name": "fhrValue",
"source": [
{
"context": "aF",
"element": "value",
"variable": "v"
}
],
"target": [
{
"context": "obsF",
"element": "value",
"transform": "copy",
"parameter": [
{
"valueId": "v"
}
]
}
]
}
]
}
]
}
]
},
{
"name": "dilatationRule",
"source": [
{
"context": "qr",
"element": "item",
"variable": "itD",
"condition": "(linkId = 'dilatation') and answer.value.exists()"
}
],
"rule": [
{
"name": "dilatationAnswer",
"source": [
{
"context": "itD",
"element": "answer",
"listMode": "first",
"variable": "aD"
}
],
"rule": [
{
"name": "dilatationObservation",
"source": [
{
"context": "aD"
}
],
"target": [
{
"context": "bundle",
"element": "entry",
"variable": "entryD"
},
{
"context": "entryD",
"element": "resource",
"variable": "obsD",
"transform": "create",
"parameter": [
{
"valueString": "Observation"
}
]
}
],
"rule": [
{
"name": "dilatationBase",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "obsD"
},
{
"context": "entryD"
}
],
"dependent": [
{
"name": "BuildObsBase",
"parameter": [
{
"valueId": "qr"
},
{
"valueId": "obsD"
},
{
"valueId": "entryD"
}
]
}
]
},
{
"name": "dilatationCategory",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "obsD"
}
],
"dependent": [
{
"name": "SetExamCategory",
"parameter": [
{
"valueId": "qr"
},
{
"valueId": "obsD"
}
]
}
]
},
{
"name": "dilatationCode",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "obsD",
"element": "code",
"variable": "code"
}
],
"rule": [
{
"name": "codeCoding",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "code",
"element": "coding",
"variable": "coding"
}
],
"rule": [
{
"name": "codeSystem",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "coding",
"element": "system",
"transform": "copy",
"parameter": [
{
"valueString": "http://loinc.org"
}
]
}
]
},
{
"name": "codeCode",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "coding",
"element": "code",
"transform": "copy",
"parameter": [
{
"valueString": "11784-6"
}
]
}
]
},
{
"name": "codeDisplay",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "coding",
"element": "display",
"transform": "copy",
"parameter": [
{
"valueString": "Cervical canal external os Diameter palpation"
}
]
}
]
}
]
}
]
},
{
"name": "dilatationValue",
"source": [
{
"context": "aD",
"element": "value",
"variable": "v"
}
],
"target": [
{
"context": "obsD",
"element": "value",
"transform": "copy",
"parameter": [
{
"valueId": "v"
}
]
}
]
}
]
}
]
}
]
},
{
"name": "obsHistoryRule",
"source": [
{
"context": "qr",
"element": "item",
"variable": "itH",
"condition": "(linkId = 'obsHistory') and answer.value.exists()"
}
],
"rule": [
{
"name": "historyAnswer",
"source": [
{
"context": "itH",
"element": "answer",
"listMode": "first",
"variable": "aH"
}
],
"rule": [
{
"name": "historyObservation",
"source": [
{
"context": "aH"
}
],
"target": [
{
"context": "bundle",
"element": "entry",
"variable": "entryH"
},
{
"context": "entryH",
"element": "resource",
"variable": "obsH",
"transform": "create",
"parameter": [
{
"valueString": "Observation"
}
]
}
],
"rule": [
{
"name": "historyBase",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "obsH"
},
{
"context": "entryH"
}
],
"dependent": [
{
"name": "BuildObsBase",
"parameter": [
{
"valueId": "qr"
},
{
"valueId": "obsH"
},
{
"valueId": "entryH"
}
]
}
]
},
{
"name": "historyCategory",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "obsH"
}
],
"dependent": [
{
"name": "SetSocialHistoryCategory",
"parameter": [
{
"valueId": "qr"
},
{
"valueId": "obsH"
}
]
}
]
},
{
"name": "historyCode",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "obsH",
"element": "code",
"variable": "code"
}
],
"rule": [
{
"name": "codeCoding",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "code",
"element": "coding",
"variable": "coding"
}
],
"rule": [
{
"name": "codeSystem",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "coding",
"element": "system",
"transform": "copy",
"parameter": [
{
"valueString": "http://loinc.org"
}
]
}
]
},
{
"name": "codeCode",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "coding",
"element": "code",
"transform": "copy",
"parameter": [
{
"valueString": "89213-3"
}
]
}
]
},
{
"name": "codeDisplay",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "coding",
"element": "display",
"transform": "copy",
"parameter": [
{
"valueString": "Obstetrics History and physical note"
}
]
}
]
}
]
}
]
},
{
"name": "historyValue",
"source": [
{
"context": "aH",
"element": "value",
"variable": "v"
}
],
"target": [
{
"context": "obsH",
"element": "value",
"transform": "copy",
"parameter": [
{
"valueId": "v"
}
]
}
]
}
]
}
]
}
]
}
]
},
{
"name": "BuildObsBase",
"documentation": "─────────────────────────────────────────────────────────────────────────────\r\nShared scaffolding. Repeated in each map rather than imported: the transform\r\nengine resolves `imports` against whatever StructureMaps happen to be on the\r\nserver, and a form that stops extracting because a shared map was not\r\nuploaded is a worse failure than a duplicated group.\r\n─────────────────────────────────────────────────────────────────────────────",
"input": [
{
"name": "qr",
"type": "QR",
"mode": "source"
},
{
"name": "obs",
"type": "Observation",
"mode": "target"
},
{
"name": "entry",
"mode": "target"
}
],
"rule": [
{
"name": "idAndFullUrl",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "obs",
"element": "id",
"transform": "uuid"
}
],
"dependent": [
{
"name": "SetObservationFullUrl",
"parameter": [
{
"valueId": "obs"
},
{
"valueId": "entry"
}
]
}
]
},
{
"name": "entryRequest",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "entry",
"element": "request",
"variable": "request"
}
],
"rule": [
{
"name": "requestMethod",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "request",
"element": "method",
"transform": "copy",
"parameter": [
{
"valueString": "POST"
}
]
}
]
},
{
"name": "requestUrl",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "request",
"element": "url",
"transform": "copy",
"parameter": [
{
"valueString": "Observation"
}
]
}
]
}
]
},
{
"name": "status",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "obs",
"element": "status",
"transform": "copy",
"parameter": [
{
"valueString": "final"
}
]
}
]
},
{
"name": "subject",
"source": [
{
"context": "qr",
"element": "subject",
"variable": "s"
}
],
"target": [
{
"context": "obs",
"element": "subject",
"transform": "copy",
"parameter": [
{
"valueId": "s"
}
]
}
]
},
{
"name": "encounter",
"source": [
{
"context": "qr",
"element": "encounter",
"variable": "e"
}
],
"target": [
{
"context": "obs",
"element": "encounter",
"transform": "copy",
"parameter": [
{
"valueId": "e"
}
]
}
]
},
{
"name": "effective",
"source": [
{
"context": "qr",
"element": "authored",
"variable": "t"
}
],
"target": [
{
"context": "obs",
"element": "effective",
"transform": "copy",
"parameter": [
{
"valueId": "t"
}
]
}
]
},
{
"name": "performerFromSource",
"source": [
{
"context": "qr",
"element": "source",
"variable": "src"
}
],
"target": [
{
"context": "obs",
"element": "performer",
"transform": "copy",
"parameter": [
{
"valueId": "src"
}
]
}
]
},
{
"name": "performerFallback",
"source": [
{
"context": "qr",
"condition": "source.exists().not()"
}
],
"rule": [
{
"name": "performerFromAuthor",
"source": [
{
"context": "qr",
"element": "author",
"variable": "a"
}
],
"target": [
{
"context": "obs",
"element": "performer",
"transform": "copy",
"parameter": [
{
"valueId": "a"
}
]
}
]
}
]
},
{
"name": "linkQuestionnaireResponse",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "obs",
"element": "derivedFrom",
"variable": "ref",
"transform": "create",
"parameter": [
{
"valueString": "Reference"
}
]
}
],
"rule": [
{
"name": "derivedFromRef",
"source": [
{
"context": "qr",
"element": "id",
"variable": "qid"
}
],
"target": [
{
"context": "ref",
"element": "reference",
"transform": "copy",
"parameter": [
{
"valueId": "qid"
}
]
}
]
}
]
}
]
},
{
"name": "SetExamCategory",
"input": [
{
"name": "qr",
"type": "QR",
"mode": "source"
},
{
"name": "obs",
"type": "Observation",
"mode": "target"
}
],
"rule": [
{
"name": "category",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "obs",
"element": "category",
"variable": "cat"
}
],
"rule": [
{
"name": "categoryCoding",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "cat",
"element": "coding",
"variable": "coding"
}
],
"rule": [
{
"name": "categorySystem",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "coding",
"element": "system",
"transform": "copy",
"parameter": [
{
"valueString": "http://terminology.hl7.org/CodeSystem/observation-category"
}
]
}
]
},
{
"name": "categoryCode",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "coding",
"element": "code",
"transform": "copy",
"parameter": [
{
"valueString": "exam"
}
]
}
]
},
{
"name": "categoryDisplay",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "coding",
"element": "display",
"transform": "copy",
"parameter": [
{
"valueString": "Exam"
}
]
}
]
}
]
}
]
}
]
},
{
"name": "SetSocialHistoryCategory",
"input": [
{
"name": "qr",
"type": "QR",
"mode": "source"
},
{
"name": "obs",
"type": "Observation",
"mode": "target"
}
],
"rule": [
{
"name": "category",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "obs",
"element": "category",
"variable": "cat"
}
],
"rule": [
{
"name": "categoryCoding",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "cat",
"element": "coding",
"variable": "coding"
}
],
"rule": [
{
"name": "categorySystem",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "coding",
"element": "system",
"transform": "copy",
"parameter": [
{
"valueString": "http://terminology.hl7.org/CodeSystem/observation-category"
}
]
}
]
},
{
"name": "categoryCode",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "coding",
"element": "code",
"transform": "copy",
"parameter": [
{
"valueString": "social-history"
}
]
}
]
},
{
"name": "categoryDisplay",
"source": [
{
"context": "qr"
}
],
"target": [
{
"context": "coding",
"element": "display",
"transform": "copy",
"parameter": [
{
"valueString": "Social History"
}
]
}
]
}
]
}
]
}
]
},
{
"name": "SetObservationFullUrl",
"input": [
{
"name": "obs",
"type": "Observation",
"mode": "source"
},
{
"name": "entry",
"mode": "target"
}
],
"rule": [
{
"name": "assignFullUrl",
"source": [
{
"context": "obs",
"element": "id",
"variable": "id"
}
],
"target": [
{
"context": "entry",
"element": "fullUrl",
"transform": "append",
"parameter": [
{
"valueString": "https://fhir.slade360.co.ke/fhir/Observation/"
},
{
"valueId": "id"
}
]
}
]
}
]
}
]
}