HL7x DSL Example

msg(ADT_A01, canonical, "description") {
    sMSH(0, 1) {
        string
        int
        float
    }
    gQUERY_RESPONSE(0, 1) {
        PV1(1, 1)
        PV2(0, *)
    }
    sPID<2.4>(1,1)
}

seg(MSH, 2.5.1, "description") {
}

typ(XLT, 2.4, "description") {
}

xlate(MY_XLATE_1, ADT_A01<2.4>, ADT_A01<canonical>, "description") {
    MSH -> MSH
    EVN -> EVN
    PID[1].1 + "-" + PID[1].2 -> PID[1].1
    QUERY_RESPONSE.PV1 -> QUERY_RESPONSE.PV1
    PV1 -> PV1
    "||||||||||||" -> INS
    "1" -> OBR[1].1.1
    "2" -> OBR[1].1.2
    "5^6^^^" -> OBR[1].2
    OBX[*] -> OBX[*]
}