map "http://smart.who.int/icvp/StructureMap/ICVPClaimtoICVPLM" = "ICVPClaimtoICVPLM" uses "http://smart.who.int/icvp/StructureDefinition/ICVPMin" alias ICVPPayload as source uses "http://smart.who.int/icvp/StructureDefinition/ICVP" alias ICVPModel as target uses "http://smart.who.int/icvp/StructureDefinition/ICVPMinVaccineDetails" alias ICVPVaccineDetails as target group ICVPClaimtoICVPLM(source src : ICVPPayload, target tgt : ICVPModel) { src.n as name -> tgt.name = name "rule1"; src.dob as dob -> tgt.dob = dob "rule2"; src.s as sex -> tgt.sex = sex "rule3"; src.ndt as ndt -> tgt.ndt = ndt "rule3a"; src.ntl as nationality -> tgt.nationality = nationality "rule4"; src.nid as id -> tgt.nid = id "rule5"; src.gn as gName -> tgt.guardian = gName "rule6"; src.v as v -> tgt.vaccineDetails as tv then mapVaccineDetails(v,tv) "rule7"; } group mapVaccineDetails(source src : BackboneElement , target tgt : ICVPVaccineDetails ) { src.vp as vp -> create('Coding') as coding, coding.code = vp, coding.system = "http://smart.who.int/pcmt-vaxprequal/CodeSystem/PreQualProductIds", tgt.productID = coding "rule9"; src.dt as dt -> tgt.date = dt "rule13"; src.bo as bo -> create('CodeableConcept') as code, code.text = bo, tgt.batchNo = code "rule14"; src -> create('Period') as period then { src.vls as start -> period.start = start "rule15"; src.vle as end -> period.end = end "rule16"; src -> tgt.validityPeriod = period "rule17"; } "rule18"; src.cn as cn -> tgt.clinicianName = cn "rule19"; src.is as is -> tgt.issuer as issuer, issuer.reference = append('Organization/',is) "rule21"; } //helper function group generateNarrativeText(source src: Section, target text: string) { src -> text.status = "empty" "setstatus"; src -> text.div = "