I.

HL7 표준을 준수하는 지역화 된 메시지들의 교환 방법

Method of exchanging localized messages that is based on HL7 standard

Ji-su Kim*, Ilkon Kim, PhD.*

* Department of Computer Science, Kyungpook National University, 1370 Sankyuk-dong Buk-gu, Daegu,

ggariggari@hotmail.com, ikkim@knu..ac.kr

Abstract: Health Level 7(HL7) is the standard of electronic data exchange in the health domain. Many hospitals have introduced healthcare information system. Healthcare information system is based on information exchange. In each hospital, data format exists in handling localized message. Because information about localized message exists in hospital, message exchange is attained smoothly. But in case of exchange message between other healthcare information system, localized message should be processed. Localized message can be exchanged establishing Translator Agent between each healthcare information system.

Keyword: HL7, Localized Message, Healthcare information system, Translator Agent

배 경

의료정보산업이 점차 확대됨에 따라 병원들의 업무도 점차 전산화되고 있는 실정이다. 예전의 차트로 대변되었던 병원 시스템은 점차 의료 산업적인 측면에서 경쟁력이 떨어지기 때문에 각 병원들은 전산화를 서두르고 있다. 이런 흐름에 따라 많은 기업들도 의료정보 시스템 및 솔루션들을 개발하여 병원에 공급하고 있다. 하지만 많은 솔루션들이 자사 제품 이외의 다른 제품과는 의료분야 메시지를 주고받는 데 많은 어려움이 있다. 이러한 어려움으로 인하여 3차 병원을 비롯한 많은 병원들 간의 메시지(의료정보) 교환에 에로사항이 많다. 또한 병원마다 Localize된 Message들이 다른 병원 시스템에 도착했을 때 이 병원 시스템으로 Message들을 파악할 수 없는 상황도 발생할 수 있다. 이러한 문제점을 해결하기 위해서는 서로 다른 병원 솔루션들 간에 포맷이 다른 메시지들을 인식하여 처리할 수 있는 모듈이 필요하다. Health Level 7(HL7)은 서로 다른 보건의료분야 소프트웨어 애플리케이션 간 정보가 호환될 수 있도록 하는 규칙의 집합이다. 1987년에 처음 개발되었으며, 현재 북아메리카에서는 의료정보의 전자적 교환을 위한 사실상의 표준으로 사용되고 있다. 의료기관의 유형 및 규모에 상관없이 모든 종류의 의료업무의 서비스 요구 수준을 충족시킬 수 있으며, 사용자, 시스템공급자 및 기타 의료정보 이해관계자들에 의해 합동으로 개발된 합의 표준이다. HL7을 이용함으로써 서로 다른 시스템공급자에 의해 개발된 컴퓨터 애플리케이션 간 정보 교환이 가능하게 되고 문서작업을 줄여주고, 의사결정 지원능력을 향상시켜 주며, 의료정보의 누적통합관리도 가능하게 되는 장점이 있다. 그리하여 HL7을 기반으로 하는 많은 Toolkit이 개발되었다. Symphonia 3.0, NeoBrowse TCP for HL7, Chameleon Development Toolkit, LINKTools 4.2 Interface Development Kit 이외에도 많은 제품들이 존재한다. 이런 제품들은 HL7을 기반으로 제작되었지만 타사제품과의 메시지 교환에는 많은 어려움이 존재하고 궁극적으로 EHR(Electronic Health Record)을 구축하는 데 더 많은 돈과 노력이 소요된다. 이러한 번거로움을 줄이기 위하여 HL7을 기반으로 제작된 Engine들이 Message를 교환할 때 각각의 Engine에 맞게 Format을 맞추는 Module이 존재해야 한다.

Fig 1. 정보 공유 인터페이스

II. 방 법

1. 정보공유를 위한 인터페이스 구축

우선 예전에 사용되었던 정보공유 인터페이스를 보겠다. 이 인터페이스는 작은 수의 Information System이 연결되었을 경우에는 아주 효율적으로 정

보공유가 이루어지나 Information System이 점점 늘어남에 따라 많은 문제점을 가지게 된다. 첫째, 상호교환 당사자간 세부적인 합의가 필요하다. 둘째, 시스템 간의 인터페이스가 시스템이 늘어남에 따라 증가한다. 예를 들어 N개 시스템은 N(N-1)개의 인터페이스를 필요로 하게 된다. 셋째, 늘어나는 인터페이스에 따른 유지비가 증가하게 된다. 넷째, 원래 존재하던 시스템을 신규시스템으로 대체하였을 경우 인터페이스를 재정의해야 한다. 이러한 문제점으로 인하여 Fig. 1과 같은 설계는 많은 병원정보 시스템이 존재하는 현실과는 어울리지 않는다.

2. HL7을 이용한 단일통신구조

HL7을 이용한 단일통신구조 시스템을 사용하였을 경우에는 Fig. 1 과 같은 문제점을 보완할 수 있다.

Fig 2. HL7을 이용한 단일통신구조

우선 Information System마다 스펙을 준수하는 HL7 Message를 사용하여 통신을 하기 때문에 인터페이스의 수가 일정하게 유지되고 기존 시스템이 새로운 시스템으로 대치된다 하더라도 인터페이스를 재정의해야 하는 문제가 사라지게 된다. 대신 HL7 표준에 맞게 인터페이스를 재정의 하면 된다.

Fig 3. HL7 Message Exchange

3. HL7 Message Engine의 Composer

Message 생성과 교환을 위해서 아주 Compact한 Engine을 설계하고 있다. 이 Engine은 HL7 Standard Version 2.4 에 맞는 메시지를 생성하고, 생성된 메시지를 Parsing하여 HL7 Standard Version 2.4와 비교한 후 Message가 담고 있는 내용을 뽑아낼 수 있도록 하는 아주 Compact한 기능을 수행한다. Engine은 Compose, Access, Validate, Control 기능들을 수행하는 Module들로 구성된다. 아직 개발 중간과정이기 때문에 Visual하게 보여줄 것은 없지만 Composer의 기능에 대해 간략하게 소개하겠다. Composer는 HL7 표준을 Domain에 적합하도록 수정하는 기능을 수행한다. Composer가 수정, 추가, 삭제할 수 있는 범위는 메시지 구조, 세그먼트의 구조, 데이터 타입의 구조, 테이블 값은 기본이며 그 외의 각 의미 단위의 Description 등도 수정할 수 있다. 예를 들어 메시지 구조 변경하는 과정을 보여주겠다. 우선 Composer를 실행하고 이벤트 코드 목록을 살핀다. 수정하기 위한 이벤트 코드를 선택한다. 이벤트 코드에 상응하는 메시지 구조를 읽어온다. 메시지 구조에 대한 정보들(Segment ID, 반복, REQ/OPT)이 나타난다. Segment의 특성을 수정한다. 변경된 내용을 저장한다. 이러한 과정을 거치면서 메시지 구조가 변경된다.

4. HL7 Message의 구조

Message는 데이터 전송의 가장 작은 단위이며, Segment들로 구성된다. 메시지 타입과 트리거 이벤트로 메시지와 메시지를 구별한다. 메시지 타입과 트리거 이벤트는 일대다(one-to-many) 관계가 성립된다. ‘Z'로 시작하는 모든 메시지 타입과 트리거 이벤트 코드는 각 지역의 특수성에 맞도록 사용자 정의 메시지로 사용된다. 예를 들어, 환자의 입원 정보를 전송하는 메시지의 경우 메시지 타입 ADT와 트리거 이벤트 A01의 조합 ADT^A01으로 확인할 수 있다.

III. 결 과

HL7의 기본 원칙은 point-to-point information interchange paradigm이다(1:1 또는 1:n). 커뮤니케이션은 트리거 이벤트나 query/response 교환을 통해서 제어된다. Fig 4.와 같이 Engine A와 Engine B 사이에 Meta File을 처리하는 Translator Agent가 존재한다고 하자. Translator Agent는 서로 다른 Engine의 Composer에서 구성된 Message를 받아서 HL7 Standard Version 2.4을 준수하는 Message의 구조와 비교하여 각 Engine에서 Localize된 Message들을 다른 엔진이 인식하도록 Support하는 일을 한다. 여기서 Meta File이란 HL7 메시지 구조를 XML 구조로 생성한 파일이다. 서로 다른 시스템에서 돌아가고 있는 Engine의 Composer는 Message 교환을 할 때 원본 메시지에 대한 교환도 하지만 각 Engine마다 Localize된 Segment나 Data의 내용을 체크하기 위하여 Meta File을 보낸다. 이렇게 보내어진 Meta File을 Translator Agent가 받아서 Message들을 처리하게 되는 것이다. 이렇게 인식된 내용은 XML 파일구조로 다시 Translator Server로 보내어져서 저장되게 된다. 한 번만 이렇게 메시지의 교환이 이루어진다면 다음부터는 Translator Agent가 Engine A, B 간의 Message Format의 차이점을 알게 되어 무리 없이 두 시스템 간의 HL7 Message 교환이 이루어지게 된다. 더 많은 의료정보시스템의 Engine이 작동하더라도 Translator Agent만 설치되어 있다면 Z segment를 비롯하여 각 병원 의료정보시스템에서  HL7 스펙과 내용이 다른 Message, Segment, Table의 Data들을 처리할 수 있다.

Fig 4. Composer간의 Message 교환

IV. 결 론

본 논문에서는 HL7 스펙을 준수하는 Engine들의 Localize된 Message들을 어떻게 처리하는가와 HL7에 대해서 알아보았다. 한 병원정보 시스템에 Engine을 설치하여 작동시켰을 경우 그 병원 안에서는 Localize된 정보들이 발생하더라도 문제가 생기지 않는다. 그 병원 안에서는 Localize된 정보들에 대한 Format이 동일하기 때문이다. 하지만 이렇게 Localize된 Message들이 다른 병원들과 교환이 필요한 경우에는 많은 문제들이 발생한다. 이러한 문제를 해결하기 위하여 본 논문에서는 병원 시스템 간의 Engine 사이에 Translator Agent설치를 제안하였다. Translator Agent는 위에서 말한 정보 공유 인터페이스 구축에 따르는 많은 문제점(시스템 간의 인터페이스 증가 문제, 늘어나는 인터페이스에 따른 유지비 문제 등등)을 해결해 준다. 또한 Engine들 간의 Message 직접적인 메시지 교환이 이루어지기 전에 메시지에 대한 Meta File이 먼저 Translator에 전송됨으로써 각 시스템에서 Localize된 Message에 대한 파악이 먼저 이루어짐으로써 다음 직접적인 Message exchange가 이루어질　때 문제가 발생하지 않을 것이다. 이러한 정보는 Translator Server에 보관되어서 이 시스템 이외의 또 다른 시스템이 들어와서 메시지 교환을 요청하였을 경우에도 Server에 저장된 정보를 바탕으로 Message exchange가 이루어지게 될 것이다. 물론 Engine마다 Meta File을 생성하는 모듈이 존재하지 않는 문제가 존재하지만 이러한 점은 Translator Agent에서 HL7 Message를 받았을 때 이 Message를 Meta File로 변환하는 Function을 추가해 준다면 해결될 것이다. 또, Server에 등록되어 있는 의료정보시스템의 변화나 각 의료정보시스템의 Localize된 Message Format의 변화를 스스로 찾아서 작동하는 기능이 Agent에 추가된다면 한 단계 더 발전한 의료정보시스템이 될 것이다.

참고문헌

1. HL7 URL : http://www.hl7.org/

2. Health Level Seven Standard Version 2.4 Level Seven Inc.

3. Bernd Blobel Martin Holena, Comparing middleware concepts for advanced healthcare system architectures, International Journal of Medical Informatics (1997) 46, 69-85

4. Eah-Wen Huang, Sheng-Hsiung Hsiao, Der-Ming Liou, Design and implementation of a web-based HL7 message generation and validation system, International Journal of Medical Informatics (2003) 70, 49-58

5. Chameleon Document