148장. HL7 DataFormat


Camel 버전 2.0에서 사용 가능

HL7 구성 요소는 HAPI 라이브러리 를 사용하여 HL7 MLLP 프로토콜 및 HL7 v2 메시지 와 함께 작업하는 데 사용됩니다.

이 구성 요소는 다음을 지원합니다.

  • Mina용 HL7 MLLP codec
  • Camel 2.15 이후의 Netty4 용 HL7 MLLP codec
  • 유형: from/to HAPI and String
  • HAPI 라이브러리를 사용한 HL7 DataFormat
  • camel-mina2 구성 요소와 통합되어 있어 더욱 쉽게 사용할 수 있습니다.

Maven 사용자는 이 구성 요소의 pom.xml 에 다음 종속성을 추가해야 합니다.

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

148.1. HL7 MLLP 프로토콜

HL7은 텍스트 기반 TCP 소켓 기반 프로토콜인 HL7 MLLP 프로토콜과 함께 사용됩니다. 이 구성 요소에는 MLLP 프로토콜을 준수하는 Mina 및 Netty4 Codec가 포함되어 있으므로 TCP 전송 계층에서 HL7 요청을 수락하는 HL7 리스너를 쉽게 노출할 수 있습니다. HL7 리스너 서비스를 노출하기 위해 camel-mina2 또는 camel-netty4 구성 요소는 HL7MLLPCodec (mina2) 또는 HL7MLLPNettyDecoder/HL7MLLPNettyEncoder (Netty4)와 함께 사용됩니다.

HL7 MLLP codec는 다음과 같이 구성할 수 있습니다.

Expand
이름기본값설명

startByte

0x0b

HL7 페이로드에 걸친 시작 바이트입니다.

endByte1

0x1c

HL7 페이로드에 걸친 첫 번째 엔드 바이트입니다.

endByte2

0x0d

HL7 페이로드에 걸친 2nd 엔드 바이트입니다.

charset

JVM 기본값

codec에 사용할 인코딩(자체 세트 이름)입니다. 제공되지 않는 경우 Camel은 JVM 기본값을 사용합니다.

produceString

true

( Camel 2.14.1부터) true인 경우 codec는 정의된ECDHEset을 사용하여 문자열을 생성합니다. false인 경우 codec는 일반 바이트 배열을 경로에 보내 HL7 데이터 형식이 HL7 메시지 콘텐츠에서 실제-2020:set을 결정할 수 있도록 합니다.

convertLFtoCR

false

\n \r (0x0d, 10진수)로 HL7로 변환합니다. HAPI 라이브러리를 사용하려면 \r 를 사용해야 합니다.

148.1.1. Mina를 사용하여 HL7 리스너 노출

Spring XML 파일에서는 포트 8888 에서 TCP를 사용하여 HL7 요청을 수신 대기하도록 mina2 끝점을 구성합니다.

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

sync=true 는 이 리스너가 동기이므로 호출자에게 HL7 응답을 반환합니다. HL7 codec는 codec=#hl7codec 로 설정되어 있습니다. hl7codec 는 SpringBean 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을 청취하여 patientLookupService 라는 서비스로 라우팅하는 매우 간단한 경로입니다. 이 ID는 Spring XML에서 다음과 같이 구성된 SpringBean ID이기도 합니다.

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

비즈니스 논리는 Camel에 의존하지 않는 classes에서 다음과 같이 구현할 수 있습니다.

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

148.1.2. Netty를 사용하여 HL7 리스너 노출 ( Camel 2.15 이상에서 사용)

Spring XML 파일에서는 포트 8888 에서 TCP를 사용하여 HL7 요청을 수신 대기하도록 netty4 끝점을 구성합니다.

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

sync=true 는 이 리스너가 동기이므로 호출자에게 HL7 응답을 반환합니다. HL7 codec는 encoder=#hl7encoder*and*decoder=#hl7decoder. hl7encoderhl7decoder 는Bean ID일 뿐이므로 이름을 다르게 지정할 수 있습니다. Beans는 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은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat