58장. HL7


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

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

  • HL7 MLLP codec for Mina
  • Netty에 대한 HL7 MLLP codec
  • 유형 from/to HAPI 및 String
  • HAPI 라이브러리를 사용한 HL7 DataFormat

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

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-hl7</artifactId>
    <version>3.14.5.redhat-00018</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 또는 link:camel-netty 구성 요소는 HL7MLLPLLPCodec (mina) 또는 HL7MLLPNettyDecoder/HL7MLLPNettyEncoder (NettytytyEncoder)와 함께 사용됩니다.

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

Expand
이름기본값설명

startByte

0x0b

HL7 페이로드에 전달되는 시작 바이트입니다.

endByte1

0x1c

HL7 페이로드를 포함하는 첫 번째 엔드 바이트입니다.

endByte2

0x0d

두 번째 엔드 바이트는 HL7 페이로드에 걸쳐 있습니다.

charset

JVM 기본값

codec에 사용할 인코딩(Char set 이름)입니다. 제공되지 않는 경우 Camel은 JVM 기본 collectdset를 사용합니다.

produceString

true

true인 경우 codec는 정의된 gRPCset를 사용하여 문자열을 생성합니다. false인 경우 codec는 일반 바이트 배열을 경로로 보내 HL7 데이터 형식이 HL7 메시지 콘텐츠에서 실제 줄임 세트를 결정할 수 있습니다.

convertLFtoCR

false

\n을 \n\r (0x0d, 13 10 진수)로 변환합니다. HL7은 \r 을 세그먼트 종료자로 stipulates \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 코드c는 codec=#>-<7codec를 사용하여 설정됩니다. >-< 7codec 는 Spring console ID이므로 이름이 mygrallycodecfor>-<7 또는 기타 항목으로 지정될 수 있습니다. 코드c는 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

다음 엔드포인트 >-<7MinaLlistener 는 다음 Java DSL 예제로 경로에서 소비자로 사용할 수 있습니다.

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

이것은 HL7을 청취하고 patientLookupService 라는 서비스로 라우팅하는 매우 간단한 경로입니다. Spring Console ID도 Spring XML에서 다음과 같이 구성됩니다.

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

비즈니스 로직은 다음과 같이 Camel에 의존하지 않는 gRPC 클래스에서 구현할 수 있습니다.

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 codec는 encoders=#>-<7encoder*and*decoders=#ECDHE7decoder로 설정됩니다. ECDHE 7encoder 및 ECDHE 7decoder 는 빈 ID일 뿐입니다. 따라서 이름이 다르게 지정될 수 있습니다. 빈은 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

다음 엔드포인트 >-<7NettyListener 는 이 Java DSL 예제가 표시되어 있는 경로에서 소비자로 사용할 수 있습니다.

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