47.4. 使用 HAPI 的 HL7v2 Model
HL7v2 模型使用 HAPI 库中的 Java 对象。使用这个库,您可以对大多数用于 HL7v2 的 EDI 格式(ER7)进行编码和解码。
以下示例是查找具有病人 ID 0101701234
的病人的请求。
MSH|^~\\&|MYSENDER|MYRECEIVER|MYAPPLICATION||200612211200||QRY^A19|1234|P|2.4 QRD|200612211200|R|I|GetPatient|||1^RD|0101701234|DEM||
MSH|^~\\&|MYSENDER|MYRECEIVER|MYAPPLICATION||200612211200||QRY^A19|1234|P|2.4
QRD|200612211200|R|I|GetPatient|||1^RD|0101701234|DEM||
使用 HL7 模型,您可以使用 ca.uhn.hl7v2.model.Message
对象,例如检索一个病人 ID:
Message msg = exchange.getIn().getBody(Message.class); QRD qrd = (QRD)msg.get("QRD"); String patientId = qrd.getWhoSubjectFilter(0).getIDNumber().getValue(); // 0101701234
Message msg = exchange.getIn().getBody(Message.class);
QRD qrd = (QRD)msg.get("QRD");
String patientId = qrd.getWhoSubjectFilter(0).getIDNumber().getValue(); // 0101701234
这在与 HL7 侦听器结合使用时非常强大,因为您不必使用 byte[]
、String
或任何其他简单对象格式。您只能使用 HAPI HL7v2 模型对象。如果您事先知道消息类型,您可以输入更多类型:
QRY_A19 msg = exchange.getIn().getBody(QRY_A19.class); String patientId = msg.getQRD().getWhoSubjectFilter(0).getIDNumber().getValue();
QRY_A19 msg = exchange.getIn().getBody(QRY_A19.class);
String patientId = msg.getQRD().getWhoSubjectFilter(0).getIDNumber().getValue();