148.3. HAPI를 사용한 HL7v2 모델
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||
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
이 기능은 byte[], String 또는 기타 간단한 개체 형식으로 작업할 필요가 없기 때문에 HL7 리스너와 결합할 때 강력합니다. HAPI HL7v2 모델 오브젝트만 사용할 수 있습니다. 메시지 유형을 사전에 알고 있는 경우 더 유형이 안전할 수 있습니다.
QRY_A19 msg = exchange.getIn().getBody(QRY_A19.class); String patientId = msg.getQRD().getWhoSubjectFilter(0).getIDNumber().getValue();