第58章 HL7


HL7 コンポーネントは、HAPI ライブラリー を使用して HL7 MLLP プロトコルおよび HL7 v2 メッセージ を操作するために使用されます。

このコンポーネントは以下をサポートします。

  • HL7 MLLP codec ( Mina)
  • Nettyの HL7 MLLP コーデック
  • HAPI および文字列との間の型コンバーター
  • HAPI ライブラリーを使用した HL7 DataFormat

Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-hl7</artifactId>
    <version>{CamelSBVersion}</version>
    <!-- use the same version as your Camel core version -->
</dependency>
Copy to Clipboard Toggle word wrap

58.1. HL7 MLLP プロトコル

HL7 は、テキストベースの TCP ソケットベースのプロトコルである HL7 MLLP プロトコルでよく使用されます。このコンポーネントには、MLLP プロトコルに準拠する Mina および Netty Codec が同梱されるため、TCP トランスポート層で HL7 要求を受け入れる HL7 リスナーを簡単に公開できます。HL7 リスナーサービスを公開するには、camel-mina またはリンクのcamel-netty コンポーネントを使用します。camel-netty コンポーネントは、HL7MLLPCodec (mina)または HL7MLLPNettyDecoder/HL7MLLPNettyEncoder (Netty)で使用されます。

HL7 MLLP コーデックは、以下のように設定できます。

Expand
名前デフォルト値説明

startByte

0x0b

HL7 ペイロードにまたがる開始バイト。

endByte1

0x1c

HL7 ペイロードにまたがる最初のエンドバイト。

endByte2

0x0d

HL7 ペイロードにまたがる 2 番目の終了バイト。

charset

JVM のデフォルト

codec に使用するエンコーディング( 文字セット名)。指定しない場合、Camel は JVM のデフォルト Charset を 使用します。

produceString

true

true の場合、codec は定義された charset を使用して文字列を作成します。false の場合、コーデックはプレーンなバイトアレイをルートに送信し、HL7 Data Format が HL7 メッセージコンテンツから実際の文字セットを決定できるようにします。

convertLFtoCR

false

は、\n\r (0x0d、13 進数)に変換します。HL7 は、セグメントターミネーターとして \r を使用します。HAPI ライブラリーには \r を使用する必要があります。

58.1.1. Mina を使用した HL7 リスナーの公開

Spring XML ファイルでは、ポート 8888 で TCP を使用して HL7 要求をリッスンするように mina エンドポイントを設定します。

<endpoint id="hl7MinaListener" uri="mina:tcp://localhost:8888?sync=true&amp;codec=#hl7codec"/>
Copy to Clipboard Toggle word wrap

sync=true は、このリスナーが同期されているため、呼び出し元に HL7 応答を返すことを示します。HL7 コーデックが codec=#hl7codec で設定されます。hl7codec は Spring Bean ID であるため、mygreatcodecforhl7 または任意の名前を付けることができることに注意してください。codec も Spring XML ファイルで設定されます。

<bean id="hl7codec" class="org.apache.camel.component.hl7.HL7MLLPCodec">
    <property name="charset" value="iso-8859-1"/>
</bean>
Copy to Clipboard Toggle word wrap

この Java DSL の例が示すように、エンドポイント hl7MinaLlistener はルートでコンシューマーとして使用できます。

from("hl7MinaListener")
  .bean("patientLookupService");
Copy to Clipboard Toggle word wrap

これは、HL7 をリッスンし、HL7 という名前のサービスにルーティングする非常に単純 なルートです。これは Spring Bean ID で、以下のように Spring XML で設定されます。

<bean id="patientLookupService" class="com.mycompany.healthcare.service.PatientLookupService"/>
Copy to Clipboard Toggle word wrap

以下のように、ビジネスロジックを Camel に依存しない POJO クラスに実装できます。

import ca.uhn.hl7v2.HL7Exception;
import ca.uhn.hl7v2.model.Message;
import ca.uhn.hl7v2.model.v24.segment.QRD;

public class PatientLookupService {
    public Message lookupPatient(Message input) throws HL7Exception {
        QRD qrd = (QRD)input.get("QRD");
        String patientId = qrd.getWhoSubjectFilter(0).getIDNumber().getValue();

        // find patient data based on the patient id and create a HL7 model object with the response
        Message response = ... create and set response data
        return response
    }
Copy to Clipboard Toggle word wrap

58.1.2. Netty を使用した HL7 リスナーの公開(Camel 2.15 以降から利用可能)

Spring XML ファイルでは、ポート 8888 で TCP を使用して HL7 要求をリッスンするように netty エンドポイントを設定します。

<endpoint id="hl7NettyListener" uri="netty:tcp://localhost:8888?sync=true&amp;encoders=#hl7encoder&amp;decoders=#hl7decoder"/>
Copy to Clipboard Toggle word wrap

sync=true は、このリスナーが同期されているため、呼び出し元に HL7 応答を返すことを示します。HL7 コーデックは encoders=#hl7encoder*and*decoders=#hl7decoder で設定されます。hl7encoder および hl7decoder は Bean ID のみであるため、名前が異なる可能性があることに注意してください。Bean は Spring XML ファイルで設定できます。

<bean id="hl7decoder" class="org.apache.camel.component.hl7.HL7MLLPNettyDecoderFactory"/>
<bean id="hl7encoder" class="org.apache.camel.component.hl7.HL7MLLPNettyEncoderFactory"/>
Copy to Clipboard Toggle word wrap

この Java DSL の例では、エンドポイント hl7NettyListener をコンシューマーとしてルートで使用できます。

from("hl7NettyListener")
  .bean("patientLookupService");
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat