| Package | smart.who.int.icvp |
| Resource Type | StructureMap |
| Id | DVCLMToIPS |
| FHIR Version | R4 |
| Source | http://smart.who.int/icvp/https://build.fhir.org/ig/WorldHealthOrganization/smart-icvp/StructureMap-DVCLMToIPS.html |
| URL | http://smart.who.int/icvp/StructureMap/DVCLMToIPS |
| Version | 0.1.0 |
| Status | draft |
| Date | 2025-07-15T19:22:42+00:00 |
| Name | DVCLMToIPS |
| Authority | who |
No resources found
No resources found
Note: links and images are rebased to the (stated) source
Generated Narrative: StructureMap DVCLMToIPS
map "http://smart.who.int/icvp/StructureMap/DVCLMToIPS" = "DVCLMToIPS" uses "http://smart.who.int/icvp/StructureDefinition/ModelDVC" alias DVCLogicalModel as source uses "http://hl7.org/fhir/StructureDefinition/Bundle" alias IPS as target // create Bundle group DVCLMToIPS(source lm : DVCLogicalModel, target ips : IPS) { lm -> ips.type = 'document' "setIPSType"; lm -> uuid() as bid, ips.identifier as id, id.value = bid, id.system = 'urn:oid:2.16.724.4.8.10.200.10' "setId"; lm -> uuid() as cid, uuid() as pid, uuid() as mid, uuid() as aid, uuid() as proid, uuid() as immid then { lm -> ips.entry as entry, entry.resource = create('Composition') as composition, entry.fullUrl = append('urn:uuid:', cid) then { lm then LmToComposition(lm, ips, composition, cid, pid, mid, aid, proid, immid) "set LmToComposition"; lm -> ips.entry as entry, entry.fullUrl = append('urn:uuid:', pid), create('Patient') as patient then { lm then DemographicsToPatient(lm, patient, pid) "createPatient"; lm -> entry.resource = patient "setPatientEntry"; } "mapPatientResource"; lm.issuer as issuer then { issuer.reference as id -> ips.entry as entry, entry.fullUrl = append('urn:uuid:', id), create('Organization') as organization then { lm -> organization then createAuthor(issuer, organization) "createOrganization"; lm -> entry.resource = organization "setOrganizationEntry"; } "mapOrganizationResource"; } "ss"; } "mapCompositionResource"; } "setEntries"; } // create Composition group LmToComposition(source lm : DVCLogicalModel, target ips : Bundle, target composition : Composition, source cid, source pid, source mid, source aid, source proid, source immid) { cid -> composition.id = cid "setCid"; lm -> composition.status = 'final' "setStatus"; lm -> composition.title = 'International Patient Summary' "setTitle"; lm -> create('Coding') as coding, coding.code = '60591-5', coding.system = 'http://loinc.org', create('CodeableConcept') as code, code.coding = coding, composition.type = code "setType"; lm -> composition.subject as subject then { lm -> subject.reference = append('urn:uuid:', pid) "setSubject"; } "setSubject"; lm.issuer as issuer then { issuer.reference as id -> composition.author as author then { id -> author.reference = append('urn:uuid:', id) "setAuthor"; } "setauthr"; } "setid"; lm -> composition.section as medication then createSectionMedications(lm, medication, mid) "createMedication"; lm -> composition.section as allergies then createSectionAllergies(lm, allergies, aid) "createAllergies"; lm -> composition.section as problems then createSectionProblems(lm, problems, proid) "createProblems"; lm then createSectionImmunizations(lm, ips, composition, immid, pid) "createImmunizations"; } // create Patient group DemographicsToPatient(source lm : DVCLogicalModel, target patient : Patient, source pid) { pid -> patient.id = pid "setPatientId"; lm.name as sourceName -> patient.name as targetName then nameToHumanName(sourceName, targetName) "Setname"; lm.dob as dob -> patient.birthDate = dob "setDateofBirth"; lm.sex as sex then ExtractGender(sex, patient) "Patient Gender"; // lm.sex as sex -> patient.gender = sex "setSex"; lm.nid as id -> patient.identifier as identifier, identifier.value = id "setNationalIdentifier"; lm.guardian as guardian -> patient.contact as parentContact, parentContact.name as parentName then nameToHumanName(guardian, parentName) "setGuardianName"; } // deals with short and case sensitive codes group ExtractGender(source sex, target patient : Patient) { sex where (sex = 'M') -> patient.gender = 'male' "set male"; sex where (sex = 'F') -> patient.gender = 'female' "set female"; sex where (sex = 'm') -> patient.gender = 'male' "set male"; sex where (sex = 'f') -> patient.gender = 'female' "set female"; sex where (sex = 'Male') -> patient.gender = 'male' "set male"; sex where (sex = 'Female') -> patient.gender = 'female' "set female"; sex where (sex = 'male') -> patient.gender = 'male' "set male"; sex where (sex = 'female') -> patient.gender = 'female' "set female"; } // create author group createAuthor(source issuer, target org : Organization) { issuer.reference as id -> org.id = id "setID"; } // create sectionMedications group createSectionMedications(source lm : DVCLogicalModel, target med : BackboneElement, source mid) { mid -> med.id = mid "setmedicationid"; lm -> med.title = 'Medication Summary Section' "setMedicationTitle"; lm -> med.text as text then generateNarrativeText(med, text) "setText"; lm -> create('Coding') as coding, coding.code = '10160-0', coding.system = 'http://loinc.org', create('CodeableConcept') as code, code.coding = coding, med.code = code "setCode"; lm -> create('Coding') as coding, coding.code = 'unavailable', coding.system = 'http://hl7.org/fhir/ValueSet/list-empty-reason', create('CodeableConcept') as code, code.coding = coding, med.emptyReason = code "setCode"; } // create sectionAllergies group createSectionAllergies(source lm : DVCLogicalModel, target all : BackboneElement, source aid) { aid -> all.id = aid "setAllergyId"; lm -> all.title = 'Allergies Section' "setAllergyTitle"; lm -> all.text as text then generateNarrativeText(all, text) "setText"; lm -> create('Coding') as coding, coding.code = '48765-2', coding.system = 'http://loinc.org', create('CodeableConcept') as code, code.coding = coding, all.code = code "setCode"; lm -> create('Coding') as coding, coding.code = 'unavailable', coding.system = 'http://hl7.org/fhir/ValueSet/list-empty-reason', create('CodeableConcept') as code, code.coding = coding, all.emptyReason = code "setCode"; } // create sectionProblems group createSectionProblems(source lm : DVCLogicalModel, target prb : BackboneElement, source proid) { proid -> prb.id = proid "setProblemsId"; lm -> prb.title = 'Problems Section' "setProblemTitle"; lm -> prb.text as text then generateNarrativeText(prb, text) "setText"; lm -> create('Coding') as coding, coding.code = '11450-4', coding.system = 'http://loinc.org', create('CodeableConcept') as code, code.coding = coding, prb.code = code "setCode"; lm -> create('Coding') as coding, coding.code = 'unavailable', coding.system = 'http://hl7.org/fhir/ValueSet/list-empty-reason', create('CodeableConcept') as code, code.coding = coding, prb.emptyReason = code "setCode"; } // create sectionImmunizations group createSectionImmunizations(source lm : DVCLogicalModel, target bundle : Bundle, target composition : Composition, source immid, source pid) { lm -> composition.section as imm then { immid -> imm.id = immid "setImmunizationsId"; lm -> imm.title = 'Immunizations Section' "setImmunizationTitle"; lm -> imm.text as text then generateNarrativeText(imm, text) "setText"; lm -> create('Coding') as coding, coding.code = '11369-6', coding.system = 'http://loinc.org', create('CodeableConcept') as code, code.coding = coding, imm.code = code "setCode"; lm.vaccineDetails as vax -> uuid() as id, bundle.entry as entry, entry.fullUrl = append('urn:uuid:', id), imm.entry as sectionEntry, sectionEntry.reference = append('urn:uuid:', id), entry.resource = create('Immunization') as immunization, immunization.id = id then createImmunizationResource(vax, immunization, pid) "setImmz"; } "set"; } group createImmunizationResource(source vax : vaccineDetails, target immunization : Immunization, source pid) { vax -> immunization.status = 'completed' "setStatus"; vax.vaccineClassification as vaccine -> immunization.vaccineCode = vaccine "setvaccinecode"; vax.date as date -> immunization.occurrence = append(date, 'T00:00:00.000Z') "setDate"; vax.batchNo as batchNo -> immunization.lotNumber = batchNo "setBatchNo"; vax -> immunization.protocolApplied as protocol then { vax.doseNumber as doseNo then { doseNo.coding as coding then { coding.code as code -> protocol.doseNumber = code "setDoseNo"; } "setDoseNo"; } "setDoseNo"; vax.disease as disease -> create('CodeableConcept') as code, code.coding = disease, protocol.targetDisease = code "setTargetDisease"; } "setProtocolApplied"; vax -> immunization.patient as subject, subject.reference = append('urn:uuid:', pid) "setSubject"; vax.manufacturerId as maId -> create('Reference') as maRef, maRef.identifier = maId, immunization.manufacturer = maRef "set Manufacturer"; } // helper function group generateNarrativeText(source src : Section, target text : string) { src -> text.status = 'empty' "setstatus"; src -> text.div = '<div xmlns=\"http://www.w3.org/1999/xhtml\">Narrative not available</div>' "setdiv"; } group nameToHumanName(source sourceName, target targetName : HumanName) { sourceName as patientName -> targetName.text = patientName "Patient Name"; } group humanNameToHumanName(source sourceName, target targetName : HumanName) { sourceName.use as use -> targetName.use = use "CopyUse"; sourceName.text as text -> targetName.text = text "CopyText"; sourceName.family as family -> targetName.family = family "CopyFamily"; sourceName.given as given -> targetName.given = given "CopyGiven"; sourceName.prefix as prefix -> targetName.prefix = prefix "CopyPrefix"; sourceName.suffix as suffix -> targetName.suffix = suffix "CopySuffix"; // Copy the period using the previously defined group function sourceName.period as sourcePeriod -> targetName.period as targetPeriod then { sourcePeriod then periodToPeriod(sourcePeriod, targetPeriod) "CopyPeriod"; } "copyPeriod"; } group periodToPeriod(source sourcePeriod, target targetPeriod : Period) { sourcePeriod.start as start -> targetPeriod.start = start "set period start"; sourcePeriod.end as end -> targetPeriod.end = end "set period end"; }
{
"resourceType": "StructureMap",
"id": "DVCLMToIPS",
"text": {
"status": "generated",
"div": "<!-- snip (see above) -->"
},
"url": "http://smart.who.int/icvp/StructureMap/DVCLMToIPS",
"version": "0.1.0",
"name": "DVCLMToIPS",
"status": "draft",
"date": "2025-07-15T19:22:42+00:00",
"publisher": "WHO",
"contact": [
{
"name": "WHO",
"telecom": [
{
"system": "url",
"value": "http://who.int"
}
]
}
],
"structure": [
{
"url": "http://smart.who.int/icvp/StructureDefinition/ModelDVC",
"mode": "source",
"alias": "DVCLogicalModel"
},
{
"url": "http://hl7.org/fhir/StructureDefinition/Bundle",
"mode": "target",
"alias": "IPS"
}
],
"group": [
{
"name": "DVCLMToIPS",
"typeMode": "none",
"documentation": "create Bundle",
"input": [
{
"name": "lm",
"type": "DVCLogicalModel",
"mode": "source"
},
{
"name": "ips",
"type": "IPS",
"mode": "target"
}
],
"rule": [
{
"name": "setIPSType",
"source": [
{
"context": "lm"
}
],
"target": [
{
"context": "ips",
"contextType": "variable",
"element": "type",
"transform": "copy",
"parameter": [
{
"valueString": "document"
}
]
}
]
},
{
"name": "setId",
"source": [
{
"context": "lm"
}
],
"target": [
{
"contextType": "variable",
"variable": "bid",
"transform": "uuid"
},
{
"context": "ips",
"contextType": "variable",
"element": "identifier",
"variable": "id"
},
{
"context": "id",
"contextType": "variable",
"element": "value",
"transform": "copy",
"parameter": [
{
"valueId": "bid"
}
]
},
{
"context": "id",
"contextType": "variable",
"element": "system",
"transform": "copy",
"parameter": [
{
"valueString": "urn:oid:2.16.724.4.8.10.200.10"
}
]
}
]
},
{
"name": "setEntries",
"source": [
{
"context": "lm"
}
],
"target": [
{
"contextType": "variable",
"variable": "cid",
"transform": "uuid"
},
{
"contextType": "variable",
"variable": "pid",
"transform": "uuid"
},
{
"contextType": "variable",
"variable": "mid",
"transform": "uuid"
},
{
"contextType": "variable",
"variable": "aid",
"transform": "uuid"
},
{
"contextType": "variable",
"variable": "proid",
"transform": "uuid"
},
{
"contextType": "variable",
"variable": "immid",
"transform": "uuid"
}
],
"rule": [
{
"name": "mapCompositionResource",
"source": [
{
"context": "lm"
}
],
"target": [
{
"context": "ips",
"contextType": "variable",
"element": "entry",
"variable": "entry"
},
{
"context": "entry",
"contextType": "variable",
"element": "resource",
"variable": "composition",
"transform": "create",
"parameter": [
{
"valueString": "Composition"
}
]
},
{
"context": "entry",
"contextType": "variable",
"element": "fullUrl",
"transform": "append",
"parameter": [
{
"valueString": "urn:uuid:"
},
{
"valueId": "cid"
}
]
}
],
"rule": [
{
"name": "set LmToComposition",
"source": [
{
"context": "lm"
}
],
"dependent": [
{
"name": "LmToComposition",
"variable": [
"lm",
"ips",
"composition",
"cid",
"pid",
"mid",
"aid",
"proid",
"immid"
]
}
]
},
{
"name": "mapPatientResource",
"source": [
{
"context": "lm"
}
],
"target": [
{
"context": "ips",
"contextType": "variable",
"element": "entry",
"variable": "entry"
},
{
"context": "entry",
"contextType": "variable",
"element": "fullUrl",
"transform": "append",
"parameter": [
{
"valueString": "urn:uuid:"
},
{
"valueId": "pid"
}
]
},
{
"contextType": "variable",
"variable": "patient",
"transform": "create",
"parameter": [
{
"valueString": "Patient"
}
]
}
],
"rule": [
{
"name": "createPatient",
"source": [
{
"context": "lm"
}
],
"dependent": [
{
"name": "DemographicsToPatient",
"variable": [
"lm",
"patient",
"pid"
]
}
]
},
{
"name": "setPatientEntry",
"source": [
{
"context": "lm"
}
],
"target": [
{
"context": "entry",
"contextType": "variable",
"element": "resource",
"transform": "copy",
"parameter": [
{
"valueId": "patient"
}
]
}
]
}
]
},
{
"name": "ss",
"source": [
{
"context": "lm",
"element": "issuer",
"variable": "issuer"
}
],
"rule": [
{
"name": "mapOrganizationResource",
"source": [
{
"context": "issuer",
"element": "reference",
"variable": "id"
}
],
"target": [
{
"context": "ips",
"contextType": "variable",
"element": "entry",
"variable": "entry"
},
{
"context": "entry",
"contextType": "variable",
"element": "fullUrl",
"transform": "append",
"parameter": [
{
"valueString": "urn:uuid:"
},
{
"valueId": "id"
}
]
},
{
"contextType": "variable",
"variable": "organization",
"transform": "create",
"parameter": [
{
"valueString": "Organization"
}
]
}
],
"rule": [
{
"name": "createOrganization",
"source": [
{
"context": "lm"
}
],
"target": [
{
"context": "organization",
"contextType": "variable"
}
],
"dependent": [
{
"name": "createAuthor",
"variable": [
"issuer",
"organization"
]
}
]
},
{
"name": "setOrganizationEntry",
"source": [
{
"context": "lm"
}
],
"target": [
{
"context": "entry",
"contextType": "variable",
"element": "resource",
"transform": "copy",
"parameter": [
{
"valueId": "organization"
}
]
}
]
}
]
}
]
}
]
}
]
}
]
},
{
"name": "LmToComposition",
"typeMode": "none",
"documentation": "create Composition",
"input": [
{
"name": "lm",
"type": "DVCLogicalModel",
"mode": "source"
},
{
"name": "ips",
"type": "Bundle",
"mode": "target"
},
{
"name": "composition",
"type": "Composition",
"mode": "target"
},
{
"name": "cid",
"mode": "source"
},
{
"name": "pid",
"mode": "source"
},
{
"name": "mid",
"mode": "source"
},
{
"name": "aid",
"mode": "source"
},
{
"name": "proid",
"mode": "source"
},
{
"name": "immid",
"mode": "source"
}
],
"rule": [
{
"name": "setCid",
"source": [
{
"context": "cid"
}
],
"target": [
{
"context": "composition",
"contextType": "variable",
"element": "id",
"transform": "copy",
"parameter": [
{
"valueId": "cid"
}
]
}
]
},
{
"name": "setStatus",
"source": [
{
"context": "lm"
}
],
"target": [
{
"context": "composition",
"contextType": "variable",
"element": "status",
"transform": "copy",
"parameter": [
{
"valueString": "final"
}
]
}
]
},
{
"name": "setTitle",
"source": [
{
"context": "lm"
}
],
"target": [
{
"context": "composition",
"contextType": "variable",
"element": "title",
"transform": "copy",
"parameter": [
{
"valueString": "International Patient Summary"
}
]
}
]
},
{
"name": "setType",
"source": [
{
"context": "lm"
}
],
"target": [
{
"contextType": "variable",
"variable": "coding",
"transform": "create",
"parameter": [
{
"valueString": "Coding"
}
]
},
{
"context": "coding",
"contextType": "variable",
"element": "code",
"transform": "copy",
"parameter": [
{
"valueString": "60591-5"
}
]
},
{
"context": "coding",
"contextType": "variable",
"element": "system",
"transform": "copy",
"parameter": [
{
"valueString": "http://loinc.org"
}
]
},
{
"contextType": "variable",
"variable": "code",
"transform": "create",
"parameter": [
{
"valueString": "CodeableConcept"
}
]
},
{
"context": "code",
"contextType": "variable",
"element": "coding",
"transform": "copy",
"parameter": [
{
"valueId": "coding"
}
]
},
{
"context": "composition",
"contextType": "variable",
"element": "type",
"transform": "copy",
"parameter": [
{
"valueId": "code"
}
]
}
]
},
{
"name": "setSubject",
"source": [
{
"context": "lm"
}
],
"target": [
{
"context": "composition",
"contextType": "variable",
"element": "subject",
"variable": "subject"
}
],
"rule": [
{
"name": "setSubject",
"source": [
{
"context": "lm"
}
],
"target": [
{
"context": "subject",
"contextType": "variable",
"element": "reference",
"transform": "append",
"parameter": [
{
"valueString": "urn:uuid:"
},
{
"valueId": "pid"
}
]
}
]
}
]
},
{
"name": "setid",
"source": [
{
"context": "lm",
"element": "issuer",
"variable": "issuer"
}
],
"rule": [
{
"name": "setauthr",
"source": [
{
"context": "issuer",
"element": "reference",
"variable": "id"
}
],
"target": [
{
"context": "composition",
"contextType": "variable",
"element": "author",
"variable": "author"
}
],
"rule": [
{
"name": "setAuthor",
"source": [
{
"context": "id"
}
],
"target": [
{
"context": "author",
"contextType": "variable",
"element": "reference",
"transform": "append",
"parameter": [
{
"valueString": "urn:uuid:"
},
{
"valueId": "id"
}
]
}
]
}
]
}
]
},
{
"name": "createMedication",
"source": [
{
"context": "lm"
}
],
"target": [
{
"context": "composition",
"contextType": "variable",
"element": "section",
"variable": "medication"
}
],
"dependent": [
{
"name": "createSectionMedications",
"variable": [
"lm",
"medication",
"mid"
]
}
]
},
{
"name": "createAllergies",
"source": [
{
"context": "lm"
}
],
"target": [
{
"context": "composition",
"contextType": "variable",
"element": "section",
"variable": "allergies"
}
],
"dependent": [
{
"name": "createSectionAllergies",
"variable": [
"lm",
"allergies",
"aid"
]
}
]
},
{
"name": "createProblems",
"source": [
{
"context": "lm"
}
],
"target": [
{
"context": "composition",
"contextType": "variable",
"element": "section",
"variable": "problems"
}
],
"dependent": [
{
"name": "createSectionProblems",
"variable": [
"lm",
"problems",
"proid"
]
}
]
},
{
"name": "createImmunizations",
"source": [
{
"context": "lm"
}
],
"dependent": [
{
"name": "createSectionImmunizations",
"variable": [
"lm",
"ips",
"composition",
"immid",
"pid"
]
}
]
}
]
},
{
"name": "DemographicsToPatient",
"typeMode": "none",
"documentation": "create Patient",
"input": [
{
"name": "lm",
"type": "DVCLogicalModel",
"mode": "source"
},
{
"name": "patient",
"type": "Patient",
"mode": "target"
},
{
"name": "pid",
"mode": "source"
}
],
"rule": [
{
"name": "setPatientId",
"source": [
{
"context": "pid"
}
],
"target": [
{
"context": "patient",
"contextType": "variable",
"element": "id",
"transform": "copy",
"parameter": [
{
"valueId": "pid"
}
]
}
]
},
{
"name": "Setname",
"source": [
{
"context": "lm",
"element": "name",
"variable": "sourceName"
}
],
"target": [
{
"context": "patient",
"contextType": "variable",
"element": "name",
"variable": "targetName"
}
],
"dependent": [
{
"name": "nameToHumanName",
"variable": [
"sourceName",
"targetName"
]
}
]
},
{
"name": "setDateofBirth",
"source": [
{
"context": "lm",
"element": "dob",
"variable": "dob"
}
],
"target": [
{
"context": "patient",
"contextType": "variable",
"element": "birthDate",
"transform": "copy",
"parameter": [
{
"valueId": "dob"
}
]
}
]
},
{
"name": "Patient Gender",
"source": [
{
"context": "lm",
"element": "sex",
"variable": "sex"
}
],
"dependent": [
{
"name": "ExtractGender",
"variable": [
"sex",
"patient"
]
}
]
},
{
"name": "setNationalIdentifier",
"source": [
{
"context": "lm",
"element": "nid",
"variable": "id"
}
],
"target": [
{
"context": "patient",
"contextType": "variable",
"element": "identifier",
"variable": "identifier"
},
{
"context": "identifier",
"contextType": "variable",
"element": "value",
"transform": "copy",
"parameter": [
{
"valueId": "id"
}
]
}
]
},
{
"name": "setGuardianName",
"source": [
{
"context": "lm",
"element": "guardian",
"variable": "guardian"
}
],
"target": [
{
"context": "patient",
"contextType": "variable",
"element": "contact",
"variable": "parentContact"
},
{
"context": "parentContact",
"contextType": "variable",
"element": "name",
"variable": "parentName"
}
],
"dependent": [
{
"name": "nameToHumanName",
"variable": [
"guardian",
"parentName"
]
}
]
}
]
},
{
"name": "ExtractGender",
"typeMode": "none",
"documentation": "deals with short and case sensitive codes",
"input": [
{
"name": "sex",
"mode": "source"
},
{
"name": "patient",
"type": "Patient",
"mode": "target"
}
],
"rule": [
{
"name": "set male",
"source": [
{
"context": "sex",
"condition": "(sex = 'M')"
}
],
"target": [
{
"context": "patient",
"contextType": "variable",
"element": "gender",
"transform": "copy",
"parameter": [
{
"valueString": "male"
}
]
}
]
},
{
"name": "set female",
"source": [
{
"context": "sex",
"condition": "(sex = 'F')"
}
],
"target": [
{
"context": "patient",
"contextType": "variable",
"element": "gender",
"transform": "copy",
"parameter": [
{
"valueString": "female"
}
]
}
]
},
{
"name": "set male",
"source": [
{
"context": "sex",
"condition": "(sex = 'm')"
}
],
"target": [
{
"context": "patient",
"contextType": "variable",
"element": "gender",
"transform": "copy",
"parameter": [
{
"valueString": "male"
}
]
}
]
},
{
"name": "set female",
"source": [
{
"context": "sex",
"condition": "(sex = 'f')"
}
],
"target": [
{
"context": "patient",
"contextType": "variable",
"element": "gender",
"transform": "copy",
"parameter": [
{
"valueString": "female"
}
]
}
]
},
{
"name": "set male",
"source": [
{
"context": "sex",
"condition": "(sex = 'Male')"
}
],
"target": [
{
"context": "patient",
"contextType": "variable",
"element": "gender",
"transform": "copy",
"parameter": [
{
"valueString": "male"
}
]
}
]
},
{
"name": "set female",
"source": [
{
"context": "sex",
"condition": "(sex = 'Female')"
}
],
"target": [
{
"context": "patient",
"contextType": "variable",
"element": "gender",
"transform": "copy",
"parameter": [
{
"valueString": "female"
}
]
}
]
},
{
"name": "set male",
"source": [
{
"context": "sex",
"condition": "(sex = 'male')"
}
],
"target": [
{
"context": "patient",
"contextType": "variable",
"element": "gender",
"transform": "copy",
"parameter": [
{
"valueString": "male"
}
]
}
]
},
{
"name": "set female",
"source": [
{
"context": "sex",
"condition": "(sex = 'female')"
}
],
"target": [
{
"context": "patient",
"contextType": "variable",
"element": "gender",
"transform": "copy",
"parameter": [
{
"valueString": "female"
}
]
}
]
}
]
},
{
"name": "createAuthor",
"typeMode": "none",
"documentation": "create author",
"input": [
{
"name": "issuer",
"mode": "source"
},
{
"name": "org",
"type": "Organization",
"mode": "target"
}
],
"rule": [
{
"name": "setID",
"source": [
{
"context": "issuer",
"element": "reference",
"variable": "id"
}
],
"target": [
{
"context": "org",
"contextType": "variable",
"element": "id",
"transform": "copy",
"parameter": [
{
"valueId": "id"
}
]
}
]
}
]
},
{
"name": "createSectionMedications",
"typeMode": "none",
"documentation": "create sectionMedications",
"input": [
{
"name": "lm",
"type": "DVCLogicalModel",
"mode": "source"
},
{
"name": "med",
"type": "BackboneElement",
"mode": "target"
},
{
"name": "mid",
"mode": "source"
}
],
"rule": [
{
"name": "setmedicationid",
"source": [
{
"context": "mid"
}
],
"target": [
{
"context": "med",
"contextType": "variable",
"element": "id",
"transform": "copy",
"parameter": [
{
"valueId": "mid"
}
]
}
]
},
{
"name": "setMedicationTitle",
"source": [
{
"context": "lm"
}
],
"target": [
{
"context": "med",
"contextType": "variable",
"element": "title",
"transform": "copy",
"parameter": [
{
"valueString": "Medication Summary Section"
}
]
}
]
},
{
"name": "setText",
"source": [
{
"context": "lm"
}
],
"target": [
{
"context": "med",
"contextType": "variable",
"element": "text",
"variable": "text"
}
],
"dependent": [
{
"name": "generateNarrativeText",
"variable": [
"med",
"text"
]
}
]
},
{
"name": "setCode",
"source": [
{
"context": "lm"
}
],
"target": [
{
"contextType": "variable",
"variable": "coding",
"transform": "create",
"parameter": [
{
"valueString": "Coding"
}
]
},
{
"context": "coding",
"contextType": "variable",
"element": "code",
"transform": "copy",
"parameter": [
{
"valueString": "10160-0"
}
]
},
{
"context": "coding",
"contextType": "variable",
"element": "system",
"transform": "copy",
"parameter": [
{
"valueString": "http://loinc.org"
}
]
},
{
"contextType": "variable",
"variable": "code",
"transform": "create",
"parameter": [
{
"valueString": "CodeableConcept"
}
]
},
{
"context": "code",
"contextType": "variable",
"element": "coding",
"transform": "copy",
"parameter": [
{
"valueId": "coding"
}
]
},
{
"context": "med",
"contextType": "variable",
"element": "code",
"transform": "copy",
"parameter": [
{
"valueId": "code"
}
]
}
]
},
{
"name": "setCode",
"source": [
{
"context": "lm"
}
],
"target": [
{
"contextType": "variable",
"variable": "coding",
"transform": "create",
"parameter": [
{
"valueString": "Coding"
}
]
},
{
"context": "coding",
"contextType": "variable",
"element": "code",
"transform": "copy",
"parameter": [
{
"valueString": "unavailable"
}
]
},
{
"context": "coding",
"contextType": "variable",
"element": "system",
"transform": "copy",
"parameter": [
{
"valueString": "http://hl7.org/fhir/ValueSet/list-empty-reason"
}
]
},
{
"contextType": "variable",
"variable": "code",
"transform": "create",
"parameter": [
{
"valueString": "CodeableConcept"
}
]
},
{
"context": "code",
"contextType": "variable",
"element": "coding",
"transform": "copy",
"parameter": [
{
"valueId": "coding"
}
]
},
{
"context": "med",
"contextType": "variable",
"element": "emptyReason",
"transform": "copy",
"parameter": [
{
"valueId": "code"
}
]
}
]
}
]
},
{
"name": "createSectionAllergies",
"typeMode": "none",
"documentation": "create sectionAllergies",
"input": [
{
"name": "lm",
"type": "DVCLogicalModel",
"mode": "source"
},
{
"name": "all",
"type": "BackboneElement",
"mode": "target"
},
{
"name": "aid",
"mode": "source"
}
],
"rule": [
{
"name": "setAllergyId",
"source": [
{
"context": "aid"
}
],
"target": [
{
"context": "all",
"contextType": "variable",
"element": "id",
"transform": "copy",
"parameter": [
{
"valueId": "aid"
}
]
}
]
},
{
"name": "setAllergyTitle",
"source": [
{
"context": "lm"
}
],
"target": [
{
"context": "all",
"contextType": "variable",
"element": "title",
"transform": "copy",
"parameter": [
{
"valueString": "Allergies Section"
}
]
}
]
},
{
"name": "setText",
"source": [
{
"context": "lm"
}
],
"target": [
{
"context": "all",
"contextType": "variable",
"element": "text",
"variable": "text"
}
],
"dependent": [
{
"name": "generateNarrativeText",
"variable": [
"all",
"text"
]
}
]
},
{
"name": "setCode",
"source": [
{
"context": "lm"
}
],
"target": [
{
"contextType": "variable",
"variable": "coding",
"transform": "create",
"parameter": [
{
"valueString": "Coding"
}
]
},
{
"context": "coding",
"contextType": "variable",
"element": "code",
"transform": "copy",
"parameter": [
{
"valueString": "48765-2"
}
]
},
{
"context": "coding",
"contextType": "variable",
"element": "system",
"transform": "copy",
"parameter": [
{
"valueString": "http://loinc.org"
}
]
},
{
"contextType": "variable",
"variable": "code",
"transform": "create",
"parameter": [
{
"valueString": "CodeableConcept"
}
]
},
{
"context": "code",
"contextType": "variable",
"element": "coding",
"transform": "copy",
"parameter": [
{
"valueId": "coding"
}
]
},
{
"context": "all",
"contextType": "variable",
"element": "code",
"transform": "copy",
"parameter": [
{
"valueId": "code"
}
]
}
]
},
{
"name": "setCode",
"source": [
{
"context": "lm"
}
],
"target": [
{
"contextType": "variable",
"variable": "coding",
"transform": "create",
"parameter": [
{
"valueString": "Coding"
}
]
},
{
"context": "coding",
"contextType": "variable",
"element": "code",
"transform": "copy",
"parameter": [
{
"valueString": "unavailable"
}
]
},
{
"context": "coding",
"contextType": "variable",
"element": "system",
"transform": "copy",
"parameter": [
{
"valueString": "http://hl7.org/fhir/ValueSet/list-empty-reason"
}
]
},
{
"contextType": "variable",
"variable": "code",
"transform": "create",
"parameter": [
{
"valueString": "CodeableConcept"
}
]
},
{
"context": "code",
"contextType": "variable",
"element": "coding",
"transform": "copy",
"parameter": [
{
"valueId": "coding"
}
]
},
{
"context": "all",
"contextType": "variable",
"element": "emptyReason",
"transform": "copy",
"parameter": [
{
"valueId": "code"
}
]
}
]
}
]
},
{
"name": "createSectionProblems",
"typeMode": "none",
"documentation": "create sectionProblems",
"input": [
{
"name": "lm",
"type": "DVCLogicalModel",
"mode": "source"
},
{
"name": "prb",
"type": "BackboneElement",
"mode": "target"
},
{
"name": "proid",
"mode": "source"
}
],
"rule": [
{
"name": "setProblemsId",
"source": [
{
"context": "proid"
}
],
"target": [
{
"context": "prb",
"contextType": "variable",
"element": "id",
"transform": "copy",
"parameter": [
{
"valueId": "proid"
}
]
}
]
},
{
"name": "setProblemTitle",
"source": [
{
"context": "lm"
}
],
"target": [
{
"context": "prb",
"contextType": "variable",
"element": "title",
"transform": "copy",
"parameter": [
{
"valueString": "Problems Section"
}
]
}
]
},
{
"name": "setText",
"source": [
{
"context": "lm"
}
],
"target": [
{
"context": "prb",
"contextType": "variable",
"element": "text",
"variable": "text"
}
],
"dependent": [
{
"name": "generateNarrativeText",
"variable": [
"prb",
"text"
]
}
]
},
{
"name": "setCode",
"source": [
{
"context": "lm"
}
],
"target": [
{
"contextType": "variable",
"variable": "coding",
"transform": "create",
"parameter": [
{
"valueString": "Coding"
}
]
},
{
"context": "coding",
"contextType": "variable",
"element": "code",
"transform": "copy",
"parameter": [
{
"valueString": "11450-4"
}
]
},
{
"context": "coding",
"contextType": "variable",
"element": "system",
"transform": "copy",
"parameter": [
{
"valueString": "http://loinc.org"
}
]
},
{
"contextType": "variable",
"variable": "code",
"transform": "create",
"parameter": [
{
"valueString": "CodeableConcept"
}
]
},
{
"context": "code",
"contextType": "variable",
"element": "coding",
"transform": "copy",
"parameter": [
{
"valueId": "coding"
}
]
},
{
"context": "prb",
"contextType": "variable",
"element": "code",
"transform": "copy",
"parameter": [
{
"valueId": "code"
}
]
}
]
},
{
"name": "setCode",
"source": [
{
"context": "lm"
}
],
"target": [
{
"contextType": "variable",
"variable": "coding",
"transform": "create",
"parameter": [
{
"valueString": "Coding"
}
]
},
{
"context": "coding",
"contextType": "variable",
"element": "code",
"transform": "copy",
"parameter": [
{
"valueString": "unavailable"
}
]
},
{
"context": "coding",
"contextType": "variable",
"element": "system",
"transform": "copy",
"parameter": [
{
"valueString": "http://hl7.org/fhir/ValueSet/list-empty-reason"
}
]
},
{
"contextType": "variable",
"variable": "code",
"transform": "create",
"parameter": [
{
"valueString": "CodeableConcept"
}
]
},
{
"context": "code",
"contextType": "variable",
"element": "coding",
"transform": "copy",
"parameter": [
{
"valueId": "coding"
}
]
},
{
"context": "prb",
"contextType": "variable",
"element": "emptyReason",
"transform": "copy",
"parameter": [
{
"valueId": "code"
}
]
}
]
}
]
},
{
"name": "createSectionImmunizations",
"typeMode": "none",
"documentation": "create sectionImmunizations",
"input": [
{
"name": "lm",
"type": "DVCLogicalModel",
"mode": "source"
},
{
"name": "bundle",
"type": "Bundle",
"mode": "target"
},
{
"name": "composition",
"type": "Composition",
"mode": "target"
},
{
"name": "immid",
"mode": "source"
},
{
"name": "pid",
"mode": "source"
}
],
"rule": [
{
"name": "set",
"source": [
{
"context": "lm"
}
],
"target": [
{
"context": "composition",
"contextType": "variable",
"element": "section",
"variable": "imm"
}
],
"rule": [
{
"name": "setImmunizationsId",
"source": [
{
"context": "immid"
}
],
"target": [
{
"context": "imm",
"contextType": "variable",
"element": "id",
"transform": "copy",
"parameter": [
{
"valueId": "immid"
}
]
}
]
},
{
"name": "setImmunizationTitle",
"source": [
{
"context": "lm"
}
],
"target": [
{
"context": "imm",
"contextType": "variable",
"element": "title",
"transform": "copy",
"parameter": [
{
"valueString": "Immunizations Section"
}
]
}
]
},
{
"name": "setText",
"source": [
{
"context": "lm"
}
],
"target": [
{
"context": "imm",
"contextType": "variable",
"element": "text",
"variable": "text"
}
],
"dependent": [
{
"name": "generateNarrativeText",
"variable": [
"imm",
"text"
]
}
]
},
{
"name": "setCode",
"source": [
{
"context": "lm"
}
],
"target": [
{
"contextType": "variable",
"variable": "coding",
"transform": "create",
"parameter": [
{
"valueString": "Coding"
}
]
},
{
"context": "coding",
"contextType": "variable",
"element": "code",
"transform": "copy",
"parameter": [
{
"valueString": "11369-6"
}
]
},
{
"context": "coding",
"contextType": "variable",
"element": "system",
"transform": "copy",
"parameter": [
{
"valueString": "http://loinc.org"
}
]
},
{
"contextType": "variable",
"variable": "code",
"transform": "create",
"parameter": [
{
"valueString": "CodeableConcept"
}
]
},
{
"context": "code",
"contextType": "variable",
"element": "coding",
"transform": "copy",
"parameter": [
{
"valueId": "coding"
}
]
},
{
"context": "imm",
"contextType": "variable",
"element": "code",
"transform": "copy",
"parameter": [
{
"valueId": "code"
}
]
}
]
},
{
"name": "setImmz",
"source": [
{
"context": "lm",
"element": "vaccineDetails",
"variable": "vax"
}
],
"target": [
{
"contextType": "variable",
"variable": "id",
"transform": "uuid"
},
{
"context": "bundle",
"contextType": "variable",
"element": "entry",
"variable": "entry"
},
{
"context": "entry",
"contextType": "variable",
"element": "fullUrl",
"transform": "append",
"parameter": [
{
"valueString": "urn:uuid:"
},
{
"valueId": "id"
}
]
},
{
"context": "imm",
"contextType": "variable",
"element": "entry",
"variable": "sectionEntry"
},
{
"context": "sectionEntry",
"contextType": "variable",
"element": "reference",
"transform": "append",
"parameter": [
{
"valueString": "urn:uuid:"
},
{
"valueId": "id"
}
]
},
{
"context": "entry",
"contextType": "variable",
"element": "resource",
"variable": "immunization",
"transform": "create",
"parameter": [
{
"valueString": "Immunization"
}
]
},
{
"context": "immunization",
"contextType": "variable",
"element": "id",
"transform": "copy",
"parameter": [
{
"valueId": "id"
}
]
}
],
"dependent": [
{
"name": "createImmunizationResource",
"variable": [
"vax",
"immunization",
"pid"
]
}
]
}
]
}
]
},
{
"name": "createImmunizationResource",
"typeMode": "none",
"input": [
{
"name": "vax",
"type": "vaccineDetails",
"mode": "source"
},
{
"name": "immunization",
"type": "Immunization",
"mode": "target"
},
{
"name": "pid",
"mode": "source"
}
],
"rule": [
{
"name": "setStatus",
"source": [
{
"context": "vax"
}
],
"target": [
{
"context": "immunization",
"contextType": "variable",
"element": "status",
"transform": "copy",
"parameter": [
{
"valueString": "completed"
}
]
}
]
},
{
"name": "setvaccinecode",
"source": [
{
"context": "vax",
"element": "vaccineClassification",
"variable": "vaccine"
}
],
"target": [
{
"context": "immunization",
"contextType": "variable",
"element": "vaccineCode",
"transform": "copy",
"parameter": [
{
"valueId": "vaccine"
}
]
}
]
},
{
"name": "setDate",
"source": [
{
"context": "vax",
"element": "date",
"variable": "date"
}
],
"target": [
{
"context": "immunization",
"contextType": "variable",
"element": "occurrence",
"transform": "append",
"parameter": [
{
"valueId": "date"
},
{
"valueString": "T00:00:00.000Z"
}
]
}
]
},
{
"name": "setBatchNo",
"source": [
{
"context": "vax",
"element": "batchNo",
"variable": "batchNo"
}
],
"target": [
{
"context": "immunization",
"contextType": "variable",
"element": "lotNumber",
"transform": "copy",
"parameter": [
{
"valueId": "batchNo"
}
]
}
]
},
{
"name": "setProtocolApplied",
"source": [
{
"context": "vax"
}
],
"target": [
{
"context": "immunization",
"contextType": "variable",
"element": "protocolApplied",
"variable": "protocol"
}
],
"rule": [
{
"name": "setDoseNo",
"source": [
{
"context": "vax",
"element": "doseNumber",
"variable": "doseNo"
}
],
"rule": [
{
"name": "setDoseNo",
"source": [
{
"context": "doseNo",
"element": "coding",
"variable": "coding"
}
],
"rule": [
{
"name": "setDoseNo",
"source": [
{
"context": "coding",
"element": "code",
"variable": "code"
}
],
"target": [
{
"context": "protocol",
"contextType": "variable",
"element": "doseNumber",
"transform": "copy",
"parameter": [
{
"valueId": "code"
}
]
}
]
}
]
}
]
},
{
"name": "setTargetDisease",
"source": [
{
"context": "vax",
"element": "disease",
"variable": "disease"
}
],
"target": [
{
"contextType": "variable",
"variable": "code",
"transform": "create",
"parameter": [
{
"valueString": "CodeableConcept"
}
]
},
{
"context": "code",
"contextType": "variable",
"element": "coding",
"transform": "copy",
"parameter": [
{
"valueId": "disease"
}
]
},
{
"context": "protocol",
"contextType": "variable",
"element": "targetDisease",
"transform": "copy",
"parameter": [
{
"valueId": "code"
}
]
}
]
}
]
},
{
"name": "setSubject",
"source": [
{
"context": "vax"
}
],
"target": [
{
"context": "immunization",
"contextType": "variable",
"element": "patient",
"variable": "subject"
},
{
"context": "subject",
"contextType": "variable",
"element": "reference",
"transform": "append",
"parameter": [
{
"valueString": "urn:uuid:"
},
{
"valueId": "pid"
}
]
}
]
},
{
"name": "set Manufacturer",
"source": [
{
"context": "vax",
"element": "manufacturerId",
"variable": "maId"
}
],
"target": [
{
"contextType": "variable",
"variable": "maRef",
"transform": "create",
"parameter": [
{
"valueString": "Reference"
}
]
},
{
"context": "maRef",
"contextType": "variable",
"element": "identifier",
"transform": "copy",
"parameter": [
{
"valueId": "maId"
}
]
},
{
"context": "immunization",
"contextType": "variable",
"element": "manufacturer",
"transform": "copy",
"parameter": [
{
"valueId": "maRef"
}
]
}
]
}
]
},
{
"name": "generateNarrativeText",
"typeMode": "none",
"documentation": "helper function",
"input": [
{
"name": "src",
"type": "Section",
"mode": "source"
},
{
"name": "text",
"type": "string",
"mode": "target"
}
],
"rule": [
{
"name": "setstatus",
"source": [
{
"context": "src"
}
],
"target": [
{
"context": "text",
"contextType": "variable",
"element": "status",
"transform": "copy",
"parameter": [
{
"valueString": "empty"
}
]
}
]
},
{
"name": "setdiv",
"source": [
{
"context": "src"
}
],
"target": [
{
"context": "text",
"contextType": "variable",
"element": "div",
"transform": "copy",
"parameter": [
{
"valueString": "<div xmlns=\"http://www.w3.org/1999/xhtml\">Narrative not available</div>"
}
]
}
]
}
]
},
{
"name": "nameToHumanName",
"typeMode": "none",
"input": [
{
"name": "sourceName",
"mode": "source"
},
{
"name": "targetName",
"type": "HumanName",
"mode": "target"
}
],
"rule": [
{
"name": "Patient Name",
"source": [
{
"context": "sourceName",
"variable": "patientName"
}
],
"target": [
{
"context": "targetName",
"contextType": "variable",
"element": "text",
"transform": "copy",
"parameter": [
{
"valueId": "patientName"
}
]
}
]
}
]
},
{
"name": "humanNameToHumanName",
"typeMode": "none",
"input": [
{
"name": "sourceName",
"mode": "source"
},
{
"name": "targetName",
"type": "HumanName",
"mode": "target"
}
],
"rule": [
{
"name": "CopyUse",
"source": [
{
"context": "sourceName",
"element": "use",
"variable": "use"
}
],
"target": [
{
"context": "targetName",
"contextType": "variable",
"element": "use",
"transform": "copy",
"parameter": [
{
"valueId": "use"
}
]
}
]
},
{
"name": "CopyText",
"source": [
{
"context": "sourceName",
"element": "text",
"variable": "text"
}
],
"target": [
{
"context": "targetName",
"contextType": "variable",
"element": "text",
"transform": "copy",
"parameter": [
{
"valueId": "text"
}
]
}
]
},
{
"name": "CopyFamily",
"source": [
{
"context": "sourceName",
"element": "family",
"variable": "family"
}
],
"target": [
{
"context": "targetName",
"contextType": "variable",
"element": "family",
"transform": "copy",
"parameter": [
{
"valueId": "family"
}
]
}
]
},
{
"name": "CopyGiven",
"source": [
{
"context": "sourceName",
"element": "given",
"variable": "given"
}
],
"target": [
{
"context": "targetName",
"contextType": "variable",
"element": "given",
"transform": "copy",
"parameter": [
{
"valueId": "given"
}
]
}
]
},
{
"name": "CopyPrefix",
"source": [
{
"context": "sourceName",
"element": "prefix",
"variable": "prefix"
}
],
"target": [
{
"context": "targetName",
"contextType": "variable",
"element": "prefix",
"transform": "copy",
"parameter": [
{
"valueId": "prefix"
}
]
}
]
},
{
"name": "CopySuffix",
"source": [
{
"context": "sourceName",
"element": "suffix",
"variable": "suffix"
}
],
"target": [
{
"context": "targetName",
"contextType": "variable",
"element": "suffix",
"transform": "copy",
"parameter": [
{
"valueId": "suffix"
}
]
}
]
},
{
"name": "copyPeriod",
"source": [
{
"context": "sourceName",
"element": "period",
"variable": "sourcePeriod"
}
],
"target": [
{
"context": "targetName",
"contextType": "variable",
"element": "period",
"variable": "targetPeriod"
}
],
"rule": [
{
"name": "CopyPeriod",
"source": [
{
"context": "sourcePeriod"
}
],
"dependent": [
{
"name": "periodToPeriod",
"variable": [
"sourcePeriod",
"targetPeriod"
]
}
]
}
]
}
]
},
{
"name": "periodToPeriod",
"typeMode": "none",
"input": [
{
"name": "sourcePeriod",
"mode": "source"
},
{
"name": "targetPeriod",
"type": "Period",
"mode": "target"
}
],
"rule": [
{
"name": "set period start",
"source": [
{
"context": "sourcePeriod",
"element": "start",
"variable": "start"
}
],
"target": [
{
"context": "targetPeriod",
"contextType": "variable",
"element": "start",
"transform": "copy",
"parameter": [
{
"valueId": "start"
}
]
}
]
},
{
"name": "set period end",
"source": [
{
"context": "sourcePeriod",
"element": "end",
"variable": "end"
}
],
"target": [
{
"context": "targetPeriod",
"contextType": "variable",
"element": "end",
"transform": "copy",
"parameter": [
{
"valueId": "end"
}
]
}
]
}
]
}
]
}