FHIR © HL7.org  |  Server Home  |  XIG Home  |  XIG Stats  |  Server Source  |  FHIR  

FHIR IG Statistics: StructureMap/DVCLMToIPS

Packagesmart.who.int.icvp
Resource TypeStructureMap
IdDVCLMToIPS
FHIR VersionR4
Sourcehttp://smart.who.int/icvp/https://build.fhir.org/ig/WorldHealthOrganization/smart-icvp/StructureMap-DVCLMToIPS.html
URLhttp://smart.who.int/icvp/StructureMap/DVCLMToIPS
Version0.1.0
Statusdraft
Date2025-07-15T19:22:42+00:00
NameDVCLMToIPS
Authoritywho

Resources that use this resource

No resources found


Resources that this resource uses

No resources found


Narrative

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";
}


Source

{
  "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"
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}