Package | silfhirprofileig |
Resource Type | StructureMap |
Id | Task4toSGHI5 |
FHIR Version | R5 |
Source | https://fhir.slade360.co.ke/fhir/https://build.fhir.org/ig/savannahghi/sil_fhir_profile_ig/StructureMap-Task4toSGHI5.html |
URL | https://fhir.slade360.co.ke/fhir/StructureMap/Task4toSGHI5 |
Version | 0.1.0 |
Status | active |
Date | 2025-07-10T13:42:01+00:00 |
Name | Task4toSGHI5 |
Title | Task Transforms: R4 → SGHI R5 |
Description | TaskTransformsR4SGHIR5 |
No resources found
No resources found
Note: links and images are rebased to the (stated) source
Generated Narrative: StructureMap Task4toSGHI5
/// url = 'https://fhir.slade360.co.ke/fhir/StructureMap/Task4toSGHI5' /// name = 'Task4toSGHI5' /// title = 'Task Transforms: R4 → SGHI R5' /// status = 'active' uses "http://hl7.org/fhir/4.0/StructureDefinition/Task" alias TaskR4 as source uses "https://fhir.slade360.co.ke/fhir/StructureDefinition/sghi-task" alias SGHITask as target imports "http://hl7.org/fhir/StructureMap/*4to5" group SGHITask(source src : TaskR4, target tgt : SGHITask) extends DomainResource <<type+>> { src.id -> tgt.id; src.active -> tgt.active = 'true'; src.language -> tgt.language; src -> tgt.text = create('Narrative') as tgt_n then { src -> tgt_n.status = 'generated' "settextstatus"; src -> tgt_n.div = '<div xmlns=\"http://www.w3.org/1999/xhtml\"><h1>Generated text</h1></div>' "settextdiv"; } "createhardcodedtext"; src as sc where identifier.exists().not() -> tgt.identifier = create('Identifier') as tt_id then { src.id as uuid -> tt_id.value = uuid "creating id"; src -> tt_id.use = 'official' "creating use"; src -> tt_id.type as ty then { src -> ty.coding = create('CodeableConcept') as ty_c then { src -> ty_c.system = 'https://fhir.slade360.co.ke/fhir/CodeSystem/sghi-identifier-codesystem' "creating coding"; src -> ty_c.code = 'fhir-id' "creating code"; src -> ty_c.display = 'FHIR Id' "creating display"; } "creating identifier type"; src -> tt_id.system = 'https://fhir.slade360.co.ke/fhir/CodeSystem/sghi-identifier-codesystem' "creating system"; src.owner as sp -> tt_id.assigner = create('Reference') as t_assigner then { sp.reference -> t_assigner.reference; sp where sp.display.exists().not() -> t_assigner.display = 'Unknown display' "setting default display"; sp.display -> t_assigner.display; }; } "creating identifier type"; } "creating identifier"; // Create identifier src.meta as s_meta -> tgt.meta as t_meta then { s_meta.lastUpdated -> t_meta.lastUpdated; s_meta.language -> t_meta.language; s_meta.tags -> t_meta.tags; src.meta where profile.exists().not() -> t_meta.profile = 'https://fhir.slade360.co.ke/fhir/StructureDefinition/sghi-task' "setprofileinmeta"; } "set profile in meta"; src.status -> tgt.status; src.period -> tgt.period; src as sb where businessStatus.exists() -> tgt.businessStatus as tb then { sb.text -> tb.text; } "mapping business status"; src.basedOn as sb -> tgt.basedOn as tb then TransformReference(sb, tb); src.authoredOn -> tgt.authoredOn; src.encounter as se -> tgt.encounter as te then TransformReference(se, te); src.executionPeriod as sp -> tgt.executionPeriod as tp then TransformPeriod(sp, tp); src.focus as sf -> tgt.focus as tf then TransformReference(sf, tf); src.for as sf -> tgt.for as tf then TransformReference(sf, tf); src.intent -> tgt.intent; src.owner as so -> tgt.owner as to then TransformReference(so, to); src.priority -> tgt.priority; src.requester as sr -> tgt.requester as tr then TransformReference(sr, tr); src where requestedPerformer.exists().not() -> tgt.requestedPerformer = create('CodeableReference') as to then { src.owner as so -> to.reference as to then TransformReference(so, to); } "creating requested performer"; src where businessStatus.exists().not() -> tgt.businessStatus = create('CodeableConcept') as tb then { src.basedOn first as st then { st.type as text -> tb.text = text; }; } "creating business status"; src.businessStatus as st -> tgt.businessStatus as ts then { st.text -> ts.text; }; } group TransformAssigner(source src, target tgt) <<types>> { src.reference -> tgt.reference; src.display -> tgt.display; } group TransformPeriod(source src, target tgt) <<types>> { src.start -> tgt.start; src.end -> tgt.end; } group TransformReference(source src, target tgt) <<types>> { src.id -> tgt.id; src.reference -> tgt.reference; src.display -> tgt.display; src where display.exists().not() -> tgt.display = 'Unknown display' "setting display"; }
{ "resourceType": "StructureMap", "id": "Task4toSGHI5", "text": { "status": "generated", "div": "<!-- snip (see above) -->" }, "url": "https://fhir.slade360.co.ke/fhir/StructureMap/Task4toSGHI5", "version": "0.1.0", "name": "Task4toSGHI5", "title": "Task Transforms: R4 → SGHI R5", "status": "active", "date": "2025-07-10T13:42:01+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": "TaskTransformsR4SGHIR5", "structure": [ { "url": "http://hl7.org/fhir/4.0/StructureDefinition/Task", "mode": "source", "alias": "TaskR4" }, { "url": "https://fhir.slade360.co.ke/fhir/StructureDefinition/sghi-task", "mode": "target", "alias": "SGHITask" } ], "import": [ "http://hl7.org/fhir/StructureMap/*4to5" ], "group": [ { "name": "SGHITask", "extends": "DomainResource", "typeMode": "type-and-types", "input": [ { "name": "src", "type": "TaskR4", "mode": "source" }, { "name": "tgt", "type": "SGHITask", "mode": "target" } ], "rule": [ { "name": "id", "source": [ { "context": "src", "element": "id", "variable": "vvv" } ], "target": [ { "context": "tgt", "element": "id", "variable": "vvv", "transform": "create" } ], "dependent": [ { "name": "DefaultMappingGroupAnonymousAlias", "parameter": [ { "valueId": "vvv" }, { "valueId": "vvv" } ] } ] }, { "name": "active", "source": [ { "context": "src", "element": "active" } ], "target": [ { "context": "tgt", "element": "active", "transform": "copy", "parameter": [ { "valueString": "true" } ] } ] }, { "name": "language", "source": [ { "context": "src", "element": "language", "variable": "vvv" } ], "target": [ { "context": "tgt", "element": "language", "variable": "vvv", "transform": "create" } ], "dependent": [ { "name": "DefaultMappingGroupAnonymousAlias", "parameter": [ { "valueId": "vvv" }, { "valueId": "vvv" } ] } ] }, { "name": "createhardcodedtext", "source": [ { "context": "src" } ], "target": [ { "context": "tgt", "element": "text", "variable": "tgt_n", "transform": "create", "parameter": [ { "valueString": "Narrative" } ] } ], "rule": [ { "name": "settextstatus", "source": [ { "context": "src" } ], "target": [ { "context": "tgt_n", "element": "status", "transform": "copy", "parameter": [ { "valueString": "generated" } ] } ] }, { "name": "settextdiv", "source": [ { "context": "src" } ], "target": [ { "context": "tgt_n", "element": "div", "transform": "copy", "parameter": [ { "valueString": "<div xmlns=\"http://www.w3.org/1999/xhtml\"><h1>Generated text</h1></div>" } ] } ] } ] }, { "name": "creating identifier", "source": [ { "context": "src", "variable": "sc", "condition": "identifier.exists().not()" } ], "target": [ { "context": "tgt", "element": "identifier", "variable": "tt_id", "transform": "create", "parameter": [ { "valueString": "Identifier" } ] } ], "rule": [ { "name": "creating id", "source": [ { "context": "src", "element": "id", "variable": "uuid" } ], "target": [ { "context": "tt_id", "element": "value", "transform": "copy", "parameter": [ { "valueId": "uuid" } ] } ] }, { "name": "creating use", "source": [ { "context": "src" } ], "target": [ { "context": "tt_id", "element": "use", "transform": "copy", "parameter": [ { "valueString": "official" } ] } ] }, { "name": "creating identifier type", "source": [ { "context": "src" } ], "target": [ { "context": "tt_id", "element": "type", "variable": "ty" } ], "rule": [ { "name": "creating identifier type", "source": [ { "context": "src" } ], "target": [ { "context": "ty", "element": "coding", "variable": "ty_c", "transform": "create", "parameter": [ { "valueString": "CodeableConcept" } ] } ], "rule": [ { "name": "creating coding", "source": [ { "context": "src" } ], "target": [ { "context": "ty_c", "element": "system", "transform": "copy", "parameter": [ { "valueString": "https://fhir.slade360.co.ke/fhir/CodeSystem/sghi-identifier-codesystem" } ] } ] }, { "name": "creating code", "source": [ { "context": "src" } ], "target": [ { "context": "ty_c", "element": "code", "transform": "copy", "parameter": [ { "valueString": "fhir-id" } ] } ] }, { "name": "creating display", "source": [ { "context": "src" } ], "target": [ { "context": "ty_c", "element": "display", "transform": "copy", "parameter": [ { "valueString": "FHIR Id" } ] } ] } ] }, { "name": "creating system", "source": [ { "context": "src" } ], "target": [ { "context": "tt_id", "element": "system", "transform": "copy", "parameter": [ { "valueString": "https://fhir.slade360.co.ke/fhir/CodeSystem/sghi-identifier-codesystem" } ] } ] }, { "name": "owner", "source": [ { "context": "src", "element": "owner", "variable": "sp" } ], "target": [ { "context": "tt_id", "element": "assigner", "variable": "t_assigner", "transform": "create", "parameter": [ { "valueString": "Reference" } ] } ], "rule": [ { "name": "reference", "source": [ { "context": "sp", "element": "reference", "variable": "vvv" } ], "target": [ { "context": "t_assigner", "element": "reference", "variable": "vvv", "transform": "create" } ], "dependent": [ { "name": "DefaultMappingGroupAnonymousAlias", "parameter": [ { "valueId": "vvv" }, { "valueId": "vvv" } ] } ] }, { "name": "setting default display", "source": [ { "context": "sp", "condition": "sp.display.exists().not()" } ], "target": [ { "context": "t_assigner", "element": "display", "transform": "copy", "parameter": [ { "valueString": "Unknown display" } ] } ] }, { "name": "display", "source": [ { "context": "sp", "element": "display", "variable": "vvv" } ], "target": [ { "context": "t_assigner", "element": "display", "variable": "vvv", "transform": "create" } ], "dependent": [ { "name": "DefaultMappingGroupAnonymousAlias", "parameter": [ { "valueId": "vvv" }, { "valueId": "vvv" } ] } ] } ] } ] } ], "documentation": "Create identifier" }, { "name": "set profile in meta", "source": [ { "context": "src", "element": "meta", "variable": "s_meta" } ], "target": [ { "context": "tgt", "element": "meta", "variable": "t_meta" } ], "rule": [ { "name": "lastUpdated", "source": [ { "context": "s_meta", "element": "lastUpdated", "variable": "vvv" } ], "target": [ { "context": "t_meta", "element": "lastUpdated", "variable": "vvv", "transform": "create" } ], "dependent": [ { "name": "DefaultMappingGroupAnonymousAlias", "parameter": [ { "valueId": "vvv" }, { "valueId": "vvv" } ] } ] }, { "name": "language", "source": [ { "context": "s_meta", "element": "language", "variable": "vvv" } ], "target": [ { "context": "t_meta", "element": "language", "variable": "vvv", "transform": "create" } ], "dependent": [ { "name": "DefaultMappingGroupAnonymousAlias", "parameter": [ { "valueId": "vvv" }, { "valueId": "vvv" } ] } ] }, { "name": "tags", "source": [ { "context": "s_meta", "element": "tags", "variable": "vvv" } ], "target": [ { "context": "t_meta", "element": "tags", "variable": "vvv", "transform": "create" } ], "dependent": [ { "name": "DefaultMappingGroupAnonymousAlias", "parameter": [ { "valueId": "vvv" }, { "valueId": "vvv" } ] } ] }, { "name": "setprofileinmeta", "source": [ { "context": "src", "element": "meta", "condition": "profile.exists().not()" } ], "target": [ { "context": "t_meta", "element": "profile", "transform": "copy", "parameter": [ { "valueString": "https://fhir.slade360.co.ke/fhir/StructureDefinition/sghi-task" } ] } ] } ] }, { "name": "status", "source": [ { "context": "src", "element": "status", "variable": "vvv" } ], "target": [ { "context": "tgt", "element": "status", "variable": "vvv", "transform": "create" } ], "dependent": [ { "name": "DefaultMappingGroupAnonymousAlias", "parameter": [ { "valueId": "vvv" }, { "valueId": "vvv" } ] } ] }, { "name": "period", "source": [ { "context": "src", "element": "period", "variable": "vvv" } ], "target": [ { "context": "tgt", "element": "period", "variable": "vvv", "transform": "create" } ], "dependent": [ { "name": "DefaultMappingGroupAnonymousAlias", "parameter": [ { "valueId": "vvv" }, { "valueId": "vvv" } ] } ] }, { "name": "mapping business status", "source": [ { "context": "src", "variable": "sb", "condition": "businessStatus.exists()" } ], "target": [ { "context": "tgt", "element": "businessStatus", "variable": "tb" } ], "rule": [ { "name": "text", "source": [ { "context": "sb", "element": "text", "variable": "vvv" } ], "target": [ { "context": "tb", "element": "text", "variable": "vvv", "transform": "create" } ], "dependent": [ { "name": "DefaultMappingGroupAnonymousAlias", "parameter": [ { "valueId": "vvv" }, { "valueId": "vvv" } ] } ] } ] }, { "name": "basedOn", "source": [ { "context": "src", "element": "basedOn", "variable": "sb" } ], "target": [ { "context": "tgt", "element": "basedOn", "variable": "tb" } ], "dependent": [ { "name": "TransformReference", "parameter": [ { "valueId": "sb" }, { "valueId": "tb" } ] } ] }, { "name": "authoredOn", "source": [ { "context": "src", "element": "authoredOn", "variable": "vvv" } ], "target": [ { "context": "tgt", "element": "authoredOn", "variable": "vvv", "transform": "create" } ], "dependent": [ { "name": "DefaultMappingGroupAnonymousAlias", "parameter": [ { "valueId": "vvv" }, { "valueId": "vvv" } ] } ] }, { "name": "encounter", "source": [ { "context": "src", "element": "encounter", "variable": "se" } ], "target": [ { "context": "tgt", "element": "encounter", "variable": "te" } ], "dependent": [ { "name": "TransformReference", "parameter": [ { "valueId": "se" }, { "valueId": "te" } ] } ] }, { "name": "executionPeriod", "source": [ { "context": "src", "element": "executionPeriod", "variable": "sp" } ], "target": [ { "context": "tgt", "element": "executionPeriod", "variable": "tp" } ], "dependent": [ { "name": "TransformPeriod", "parameter": [ { "valueId": "sp" }, { "valueId": "tp" } ] } ] }, { "name": "focus", "source": [ { "context": "src", "element": "focus", "variable": "sf" } ], "target": [ { "context": "tgt", "element": "focus", "variable": "tf" } ], "dependent": [ { "name": "TransformReference", "parameter": [ { "valueId": "sf" }, { "valueId": "tf" } ] } ] }, { "name": "for", "source": [ { "context": "src", "element": "for", "variable": "sf" } ], "target": [ { "context": "tgt", "element": "for", "variable": "tf" } ], "dependent": [ { "name": "TransformReference", "parameter": [ { "valueId": "sf" }, { "valueId": "tf" } ] } ] }, { "name": "intent", "source": [ { "context": "src", "element": "intent", "variable": "vvv" } ], "target": [ { "context": "tgt", "element": "intent", "variable": "vvv", "transform": "create" } ], "dependent": [ { "name": "DefaultMappingGroupAnonymousAlias", "parameter": [ { "valueId": "vvv" }, { "valueId": "vvv" } ] } ] }, { "name": "owner", "source": [ { "context": "src", "element": "owner", "variable": "so" } ], "target": [ { "context": "tgt", "element": "owner", "variable": "to" } ], "dependent": [ { "name": "TransformReference", "parameter": [ { "valueId": "so" }, { "valueId": "to" } ] } ] }, { "name": "priority", "source": [ { "context": "src", "element": "priority", "variable": "vvv" } ], "target": [ { "context": "tgt", "element": "priority", "variable": "vvv", "transform": "create" } ], "dependent": [ { "name": "DefaultMappingGroupAnonymousAlias", "parameter": [ { "valueId": "vvv" }, { "valueId": "vvv" } ] } ] }, { "name": "requester", "source": [ { "context": "src", "element": "requester", "variable": "sr" } ], "target": [ { "context": "tgt", "element": "requester", "variable": "tr" } ], "dependent": [ { "name": "TransformReference", "parameter": [ { "valueId": "sr" }, { "valueId": "tr" } ] } ] }, { "name": "creating requested performer", "source": [ { "context": "src", "condition": "requestedPerformer.exists().not()" } ], "target": [ { "context": "tgt", "element": "requestedPerformer", "variable": "to", "transform": "create", "parameter": [ { "valueString": "CodeableReference" } ] } ], "rule": [ { "name": "owner", "source": [ { "context": "src", "element": "owner", "variable": "so" } ], "target": [ { "context": "to", "element": "reference", "variable": "to" } ], "dependent": [ { "name": "TransformReference", "parameter": [ { "valueId": "so" }, { "valueId": "to" } ] } ] } ] }, { "name": "creating business status", "source": [ { "context": "src", "condition": "businessStatus.exists().not()" } ], "target": [ { "context": "tgt", "element": "businessStatus", "variable": "tb", "transform": "create", "parameter": [ { "valueString": "CodeableConcept" } ] } ], "rule": [ { "name": "basedOn", "source": [ { "context": "src", "element": "basedOn", "listMode": "first", "variable": "st" } ], "rule": [ { "name": "type", "source": [ { "context": "st", "element": "type", "variable": "text" } ], "target": [ { "context": "tb", "element": "text", "transform": "copy", "parameter": [ { "valueId": "text" } ] } ] } ] } ] }, { "name": "businessStatus", "source": [ { "context": "src", "element": "businessStatus", "variable": "st" } ], "target": [ { "context": "tgt", "element": "businessStatus", "variable": "ts" } ], "rule": [ { "name": "text", "source": [ { "context": "st", "element": "text", "variable": "vvv" } ], "target": [ { "context": "ts", "element": "text", "variable": "vvv", "transform": "create" } ], "dependent": [ { "name": "DefaultMappingGroupAnonymousAlias", "parameter": [ { "valueId": "vvv" }, { "valueId": "vvv" } ] } ] } ] } ] }, { "name": "TransformAssigner", "typeMode": "types", "input": [ { "name": "src", "mode": "source" }, { "name": "tgt", "mode": "target" } ], "rule": [ { "name": "reference", "source": [ { "context": "src", "element": "reference", "variable": "vvv" } ], "target": [ { "context": "tgt", "element": "reference", "variable": "vvv", "transform": "create" } ], "dependent": [ { "name": "DefaultMappingGroupAnonymousAlias", "parameter": [ { "valueId": "vvv" }, { "valueId": "vvv" } ] } ] }, { "name": "display", "source": [ { "context": "src", "element": "display", "variable": "vvv" } ], "target": [ { "context": "tgt", "element": "display", "variable": "vvv", "transform": "create" } ], "dependent": [ { "name": "DefaultMappingGroupAnonymousAlias", "parameter": [ { "valueId": "vvv" }, { "valueId": "vvv" } ] } ] } ] }, { "name": "TransformPeriod", "typeMode": "types", "input": [ { "name": "src", "mode": "source" }, { "name": "tgt", "mode": "target" } ], "rule": [ { "name": "start", "source": [ { "context": "src", "element": "start", "variable": "vvv" } ], "target": [ { "context": "tgt", "element": "start", "variable": "vvv", "transform": "create" } ], "dependent": [ { "name": "DefaultMappingGroupAnonymousAlias", "parameter": [ { "valueId": "vvv" }, { "valueId": "vvv" } ] } ] }, { "name": "end", "source": [ { "context": "src", "element": "end", "variable": "vvv" } ], "target": [ { "context": "tgt", "element": "end", "variable": "vvv", "transform": "create" } ], "dependent": [ { "name": "DefaultMappingGroupAnonymousAlias", "parameter": [ { "valueId": "vvv" }, { "valueId": "vvv" } ] } ] } ] }, { "name": "TransformReference", "typeMode": "types", "input": [ { "name": "src", "mode": "source" }, { "name": "tgt", "mode": "target" } ], "rule": [ { "name": "id", "source": [ { "context": "src", "element": "id", "variable": "vvv" } ], "target": [ { "context": "tgt", "element": "id", "variable": "vvv", "transform": "create" } ], "dependent": [ { "name": "DefaultMappingGroupAnonymousAlias", "parameter": [ { "valueId": "vvv" }, { "valueId": "vvv" } ] } ] }, { "name": "reference", "source": [ { "context": "src", "element": "reference", "variable": "vvv" } ], "target": [ { "context": "tgt", "element": "reference", "variable": "vvv", "transform": "create" } ], "dependent": [ { "name": "DefaultMappingGroupAnonymousAlias", "parameter": [ { "valueId": "vvv" }, { "valueId": "vvv" } ] } ] }, { "name": "display", "source": [ { "context": "src", "element": "display", "variable": "vvv" } ], "target": [ { "context": "tgt", "element": "display", "variable": "vvv", "transform": "create" } ], "dependent": [ { "name": "DefaultMappingGroupAnonymousAlias", "parameter": [ { "valueId": "vvv" }, { "valueId": "vvv" } ] } ] }, { "name": "setting display", "source": [ { "context": "src", "condition": "display.exists().not()" } ], "target": [ { "context": "tgt", "element": "display", "transform": "copy", "parameter": [ { "valueString": "Unknown display" } ] } ] } ] } ] }