140.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
これは、バイト[]、String、またはその他の単純なオブジェクト形式と連携する必要がないため、HL7 リスナーと組み合わせる場合に強力です。HAPI HL7v2 モデルオブジェクトのみを使用できます。メッセージタイプが事前に分かっている場合は、タイプセーフになります。
QRY_A19 msg = exchange.getIn().getBody(QRY_A19.class);
String patientId = msg.getQRD().getWhoSubjectFilter(0).getIDNumber().getValue();