58장. HL7
HL7 구성 요소는 HAPI 라이브러리를 사용하여 HL7 MLLP 프로토콜 및 HL7 v2 메시지 작업에 사용됩니다.
이 구성 요소는 다음을 지원합니다.
Maven 사용자는 이 구성 요소에 대해 pom.xml
에 다음 종속성을 추가해야 합니다.
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는 다음과 같이 구성할 수 있습니다.
이름 | 기본값 | 설명 |
---|---|---|
|
| HL7 페이로드에 전달되는 시작 바이트입니다. |
|
| HL7 페이로드를 포함하는 첫 번째 엔드 바이트입니다. |
|
| 두 번째 엔드 바이트는 HL7 페이로드에 걸쳐 있습니다. |
| JVM 기본값 | codec에 사용할 인코딩(Char set 이름)입니다. 제공되지 않는 경우 Camel은 JVM 기본 collectdset를 사용합니다. |
|
| true인 경우 codec는 정의된 gRPCset를 사용하여 문자열을 생성합니다. false인 경우 codec는 일반 바이트 배열을 경로로 보내 HL7 데이터 형식이 HL7 메시지 콘텐츠에서 실제 줄임 세트를 결정할 수 있습니다. |
|
|
\n을 |
58.1.1. Mina를 사용하여 HL7 리스너 노출 링크 복사링크가 클립보드에 복사되었습니다!
Spring XML 파일에서는 포트 8888
에서 TCP를 사용하여 HL7 요청을 수신 대기하도록 mina 엔드포인트를 구성합니다.
<endpoint id="hl7MinaListener" uri="mina:tcp://localhost:8888?sync=true&codec=#hl7codec"/>
<endpoint id="hl7MinaListener" uri="mina:tcp://localhost:8888?sync=true&codec=#hl7codec"/>
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>
<bean id="hl7codec" class="org.apache.camel.component.hl7.HL7MLLPCodec">
<property name="charset" value="iso-8859-1"/>
</bean>
다음 엔드포인트 >-<7MinaLlistener 는 다음 Java DSL 예제로 경로에서 소비자로 사용할 수 있습니다.
from("hl7MinaListener") .bean("patientLookupService");
from("hl7MinaListener")
.bean("patientLookupService");
이것은 HL7을 청취하고 patientLookupService 라는 서비스로 라우팅하는 매우 간단한 경로입니다. Spring Console ID도 Spring XML에서 다음과 같이 구성됩니다.
<bean id="patientLookupService" class="com.mycompany.healthcare.service.PatientLookupService"/>
<bean id="patientLookupService" class="com.mycompany.healthcare.service.PatientLookupService"/>
비즈니스 로직은 다음과 같이 Camel에 의존하지 않는 gRPC 클래스에서 구현할 수 있습니다.
58.1.2. Netty를 사용하여 HL7 리스너 노출( Camel 2.15에서 제공) 링크 복사링크가 클립보드에 복사되었습니다!
Spring XML 파일에서는 포트 8888
에서 TCP를 사용하여 HL7 요청을 수신 대기하도록 netty 엔드포인트를 구성합니다.
<endpoint id="hl7NettyListener" uri="netty:tcp://localhost:8888?sync=true&encoders=#hl7encoder&decoders=#hl7decoder"/>
<endpoint id="hl7NettyListener" uri="netty:tcp://localhost:8888?sync=true&encoders=#hl7encoder&decoders=#hl7decoder"/>
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"/>
<bean id="hl7decoder" class="org.apache.camel.component.hl7.HL7MLLPNettyDecoderFactory"/>
<bean id="hl7encoder" class="org.apache.camel.component.hl7.HL7MLLPNettyEncoderFactory"/>
다음 엔드포인트 >-<7NettyListener 는 이 Java DSL 예제가 표시되어 있는 경로에서 소비자로 사용할 수 있습니다.
from("hl7NettyListener") .bean("patientLookupService");
from("hl7NettyListener")
.bean("patientLookupService");