Package | smart.who.int.immunizations |
Resource Type | StructureMap |
Id | IMMZ.C4.LMToPatient |
FHIR Version | R4 |
Source | http://smart.who.int/immunizations/https://build.fhir.org/ig/WorldHealthOrganization/smart-immunizations/StructureMap-IMMZ.C4.LMToPatient.html |
URL | http://smart.who.int/immunizations/StructureMap/IMMZ.C4.LMToPatient |
Version | 0.2.0 |
Status | draft |
Date | 2025-08-08T19:12:11+00:00 |
Name | IMMZ.C4.LMToPatient |
Authority | who |
Description | Immunization Client Registry - Transform Logical Model to Patient resources |
No resources found
No resources found
Note: links and images are rebased to the (stated) source
Generated Narrative: StructureMap IMMZ.C4.LMToPatient
map "http://smart.who.int/immunizations/StructureMap/IMMZ.C4.LMToPatient" = "IMMZ.C4.LMToPatient" // Immunization Client Registry - Transform Logical Model to Patient resources uses "http://smart.who.int/immunizations/StructureDefinition/IMMZC4" alias IMMZC as source uses "http://hl7.org/fhir/StructureDefinition/Bundle" alias Bundle as target // uses "http://hl7.org/fhir/StructureDefinition/Patient" alias Patient as produced // uses "http://hl7.org/fhir/StructureDefinition/RelatedPerson" alias RelatedPerson as produced group IMMZCToPatient(source immzc : IMMZC, target bundle : Bundle) { immzc -> bundle.type = 'transaction' "SetBundleType"; immzc -> uuid() as pid, bundle.entry as entry, entry.fullUrl = append('urn:uuid:', pid), entry.request as request, request.method = 'PUT', request.url = append('Patient/', pid), entry.resource = create('Patient') as patient then { immzc -> patient.id = pid "SetId"; immzc.uniqueId as id -> patient.identifier as identifier then { id -> identifier.value = id "SetIdentifierValue"; } "SetIdentifier"; immzc -> patient.name as pname then { immzc.name as fullName -> pname.text = fullName "SetFullName"; immzc.firstName as firstName -> pname.given = firstName "SetFirstName"; immzc.familyName as familyName -> pname.family = familyName "SetFamilyName"; } "SetName"; immzc.sex as sex -> patient.gender = translate(sex, 'http://smart.who.int/immunizations/ConceptMap/IMMZ.C.ConceptMap', 'code') "SetGender"; immzc.dateOfBirth as birthDate -> patient.birthDate = birthDate "SetBirthDate"; immzc.contactPhoneNumber as phone -> patient.telecom as telecom then { phone as content -> telecom.value = content, telecom.system = 'phone' "SetPhoneValue"; } "SetPhone"; immzc.address as address -> patient.address as taddress then { address as content -> taddress.text = content "SetAddressText"; } "SetAddress"; immzc.caregiversMultiple as caregiver -> uuid() as rpid, bundle.entry as entry, entry.fullUrl = append('urn:uuid:', rpid), entry.request as request, request.method = 'PUT', request.url = append('RelatedPerson/', rpid), entry.resource = create('RelatedPerson') as person then { caregiver -> person.id = rpid "SetId"; caregiver -> person.patient as patient, patient.reference = append('Patient/', pid) "setPatient"; caregiver -> person.name as pname then { caregiver.caregiversFullName as fullName -> pname.text = fullName "SetFullName"; caregiver.caregiversFirstName as firstName -> pname.given = firstName "SetFirstName"; caregiver.caregiversFamilyName as familyName -> pname.family = familyName "SetFamilyName"; } "SetCaregiverName"; } "CreateRelatedPerson"; } "CreatePatient"; }
{ "resourceType": "StructureMap", "id": "IMMZ.C4.LMToPatient", "text": { "status": "generated", "div": "<!-- snip (see above) -->" }, "url": "http://smart.who.int/immunizations/StructureMap/IMMZ.C4.LMToPatient", "version": "0.2.0", "name": "IMMZ.C4.LMToPatient", "status": "draft", "date": "2025-08-08T19:12:11+00:00", "publisher": "WHO", "contact": [ { "name": "WHO", "telecom": [ { "system": "url", "value": "http://who.int" } ] } ], "description": "Immunization Client Registry - Transform Logical Model to Patient resources", "structure": [ { "url": "http://smart.who.int/immunizations/StructureDefinition/IMMZC4", "mode": "source", "alias": "IMMZC" }, { "url": "http://hl7.org/fhir/StructureDefinition/Bundle", "mode": "target", "alias": "Bundle" } ], "group": [ { "name": "IMMZCToPatient", "typeMode": "none", "documentation": "uses \"http://hl7.org/fhir/StructureDefinition/Patient\" alias Patient as produced\r\nuses \"http://hl7.org/fhir/StructureDefinition/RelatedPerson\" alias RelatedPerson as produced", "input": [ { "name": "immzc", "type": "IMMZC", "mode": "source" }, { "name": "bundle", "type": "Bundle", "mode": "target" } ], "rule": [ { "name": "SetBundleType", "source": [ { "context": "immzc" } ], "target": [ { "context": "bundle", "contextType": "variable", "element": "type", "transform": "copy", "parameter": [ { "valueString": "transaction" } ] } ] }, { "name": "CreatePatient", "source": [ { "context": "immzc" } ], "target": [ { "contextType": "variable", "variable": "pid", "transform": "uuid" }, { "context": "bundle", "contextType": "variable", "element": "entry", "variable": "entry" }, { "context": "entry", "contextType": "variable", "element": "fullUrl", "transform": "append", "parameter": [ { "valueString": "urn:uuid:" }, { "valueId": "pid" } ] }, { "context": "entry", "contextType": "variable", "element": "request", "variable": "request" }, { "context": "request", "contextType": "variable", "element": "method", "transform": "copy", "parameter": [ { "valueString": "PUT" } ] }, { "context": "request", "contextType": "variable", "element": "url", "transform": "append", "parameter": [ { "valueString": "Patient/" }, { "valueId": "pid" } ] }, { "context": "entry", "contextType": "variable", "element": "resource", "variable": "patient", "transform": "create", "parameter": [ { "valueString": "Patient" } ] } ], "rule": [ { "name": "SetId", "source": [ { "context": "immzc" } ], "target": [ { "context": "patient", "contextType": "variable", "element": "id", "transform": "copy", "parameter": [ { "valueId": "pid" } ] } ] }, { "name": "SetIdentifier", "source": [ { "context": "immzc", "element": "uniqueId", "variable": "id" } ], "target": [ { "context": "patient", "contextType": "variable", "element": "identifier", "variable": "identifier" } ], "rule": [ { "name": "SetIdentifierValue", "source": [ { "context": "id" } ], "target": [ { "context": "identifier", "contextType": "variable", "element": "value", "transform": "copy", "parameter": [ { "valueId": "id" } ] } ] } ] }, { "name": "SetName", "source": [ { "context": "immzc" } ], "target": [ { "context": "patient", "contextType": "variable", "element": "name", "variable": "pname" } ], "rule": [ { "name": "SetFullName", "source": [ { "context": "immzc", "element": "name", "variable": "fullName" } ], "target": [ { "context": "pname", "contextType": "variable", "element": "text", "transform": "copy", "parameter": [ { "valueId": "fullName" } ] } ] }, { "name": "SetFirstName", "source": [ { "context": "immzc", "element": "firstName", "variable": "firstName" } ], "target": [ { "context": "pname", "contextType": "variable", "element": "given", "transform": "copy", "parameter": [ { "valueId": "firstName" } ] } ] }, { "name": "SetFamilyName", "source": [ { "context": "immzc", "element": "familyName", "variable": "familyName" } ], "target": [ { "context": "pname", "contextType": "variable", "element": "family", "transform": "copy", "parameter": [ { "valueId": "familyName" } ] } ] } ] }, { "name": "SetGender", "source": [ { "context": "immzc", "element": "sex", "variable": "sex" } ], "target": [ { "context": "patient", "contextType": "variable", "element": "gender", "transform": "translate", "parameter": [ { "valueId": "sex" }, { "valueString": "http://smart.who.int/immunizations/ConceptMap/IMMZ.C.ConceptMap" }, { "valueString": "code" } ] } ] }, { "name": "SetBirthDate", "source": [ { "context": "immzc", "element": "dateOfBirth", "variable": "birthDate" } ], "target": [ { "context": "patient", "contextType": "variable", "element": "birthDate", "transform": "copy", "parameter": [ { "valueId": "birthDate" } ] } ] }, { "name": "SetPhone", "source": [ { "context": "immzc", "element": "contactPhoneNumber", "variable": "phone" } ], "target": [ { "context": "patient", "contextType": "variable", "element": "telecom", "variable": "telecom" } ], "rule": [ { "name": "SetPhoneValue", "source": [ { "context": "phone", "variable": "content" } ], "target": [ { "context": "telecom", "contextType": "variable", "element": "value", "transform": "copy", "parameter": [ { "valueId": "content" } ] }, { "context": "telecom", "contextType": "variable", "element": "system", "transform": "copy", "parameter": [ { "valueString": "phone" } ] } ] } ] }, { "name": "SetAddress", "source": [ { "context": "immzc", "element": "address", "variable": "address" } ], "target": [ { "context": "patient", "contextType": "variable", "element": "address", "variable": "taddress" } ], "rule": [ { "name": "SetAddressText", "source": [ { "context": "address", "variable": "content" } ], "target": [ { "context": "taddress", "contextType": "variable", "element": "text", "transform": "copy", "parameter": [ { "valueId": "content" } ] } ] } ] }, { "name": "CreateRelatedPerson", "source": [ { "context": "immzc", "element": "caregiversMultiple", "variable": "caregiver" } ], "target": [ { "contextType": "variable", "variable": "rpid", "transform": "uuid" }, { "context": "bundle", "contextType": "variable", "element": "entry", "variable": "entry" }, { "context": "entry", "contextType": "variable", "element": "fullUrl", "transform": "append", "parameter": [ { "valueString": "urn:uuid:" }, { "valueId": "rpid" } ] }, { "context": "entry", "contextType": "variable", "element": "request", "variable": "request" }, { "context": "request", "contextType": "variable", "element": "method", "transform": "copy", "parameter": [ { "valueString": "PUT" } ] }, { "context": "request", "contextType": "variable", "element": "url", "transform": "append", "parameter": [ { "valueString": "RelatedPerson/" }, { "valueId": "rpid" } ] }, { "context": "entry", "contextType": "variable", "element": "resource", "variable": "person", "transform": "create", "parameter": [ { "valueString": "RelatedPerson" } ] } ], "rule": [ { "name": "SetId", "source": [ { "context": "caregiver" } ], "target": [ { "context": "person", "contextType": "variable", "element": "id", "transform": "copy", "parameter": [ { "valueId": "rpid" } ] } ] }, { "name": "setPatient", "source": [ { "context": "caregiver" } ], "target": [ { "context": "person", "contextType": "variable", "element": "patient", "variable": "patient" }, { "context": "patient", "contextType": "variable", "element": "reference", "transform": "append", "parameter": [ { "valueString": "Patient/" }, { "valueId": "pid" } ] } ] }, { "name": "SetCaregiverName", "source": [ { "context": "caregiver" } ], "target": [ { "context": "person", "contextType": "variable", "element": "name", "variable": "pname" } ], "rule": [ { "name": "SetFullName", "source": [ { "context": "caregiver", "element": "caregiversFullName", "variable": "fullName" } ], "target": [ { "context": "pname", "contextType": "variable", "element": "text", "transform": "copy", "parameter": [ { "valueId": "fullName" } ] } ] }, { "name": "SetFirstName", "source": [ { "context": "caregiver", "element": "caregiversFirstName", "variable": "firstName" } ], "target": [ { "context": "pname", "contextType": "variable", "element": "given", "transform": "copy", "parameter": [ { "valueId": "firstName" } ] } ] }, { "name": "SetFamilyName", "source": [ { "context": "caregiver", "element": "caregiversFamilyName", "variable": "familyName" } ], "target": [ { "context": "pname", "contextType": "variable", "element": "family", "transform": "copy", "parameter": [ { "valueId": "familyName" } ] } ] } ] } ] } ] } ] } ] }