71.3. 使用 HAPI 的 HL7v2 模型
HL7v2 模型使用 HAPI 库中的 Java 对象。使用这个库,您可以从大多数与 HL7v2 一起使用的 EDI 格式编码和解码。
				以下示例是查找 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[]、字符串 或其他简单对象格式。您只能使用 HAPI HL7v2 模型对象。如果事先知道消息类型,则可以是更多的 type-safe :
			
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();