I.

caAdapter를 활용한 HL7 V3 메시지 생성과 DB2caAdapter 매핑 도구 개발

HL7 V3 Message generation using caAdapter and Development of DB2caAdapter mapping tool

Hyoung-jun Seo*, Il-kon Kim*

* Department of Computer Science, Kyungpook National University, 1370 Sangyeok-dong, Buk-gu, Daegu 702-791, hjseo@knu.ac.kr, ikkim@knu.ac.kr

Abstract: In order to share information in Hospital Information System and Electronic Health Record system, exchange of message is essential. HL7 Version 3 message is XML format which is reusable and this is suitable for precise semantic expression and flexible construction of contents. In this study, we examined and analyzed caAdapter and HL7 V3 message design method to create HL7 V3 message. And we implemented mapping tool between database and caAdapter in order to automate HL7 V3 message creation using data inside of database in HIS. Using this tool, HL7 V3 message could be created easily and effectively. We also analyzed other method of HL7 V3 message creation. The HL7 V3 message which is created by this method could be interoperated with other system harmoniously.

Keyword: HL7, HL7 V3 Message, caAdapter, message exchange, Hospital Information System

배 경

병원 내의 다양한 시스템들이 각각 독립적으로 동작하고 있을 경우 각 시스템들이 유기적으로 운영되기 위해서는 정보 공유가 필수적으로 이루어져야 한다. 또한, 평생전자건강기록(EHR) 시스템의 필요성이 대두되고 있는 현대에는 병원간이나 의료기관간의 정보 공유도 이루어져야 한다. 그러한 정보 공유의 방법으로서는 메시지 교환(message exchange)이 일반적으로 이용되고 있다. 또, 향후 다양한 시스템간의 호환성을 위해서는 국제 표준 메시지를 이용해야 한다. HL7 메시지는 의료 정보 공유를 위해 만들어진 국제 표준 메시지이다.

현재 HL7 메시지에는 V2.x 메시지와 V3 메시지가 있다. 널리 알려지고 사용되고 있는 V2.x 메시지의 경우에는 정의된 메시지 타입을 이용하여 세그먼트로서 데이터를 구분하여 생성한다. 그러나, 이는 묵시적인 정보 모델로서 적합성 개념을 기술할 어휘가 부족하며, 데이터 필드 간 구조적인 관계가 명확하지 않다. 한편, V3 메시지는 이와 다른 객체지향(object-oriented) 방법론을 이용한 HL7 RIM(Reference Information Model)에서 파생된 데이터 타입들을 이용하여 XML 포맷으로 생성된다. 그렇기 때문에, V3 메시지는 V2.x 메시지보다 좀 더 명확한 의미(semantic) 표현과 유연한(flexible) 컨텐츠 구성이 가능하다. 뿐만 아니라, 이종 시스템 간 상호호환성이 용이하며, 메시지 명세(specification)에서 선택성을 줄이고 재사용성(reusable)을 극대화하여 일관성을 증가시킨다. 이러한 이유로, 앞으로 병원 정보 시스템 간의 정보 교환에는 HL7 V3 메시지가 널리 이용될 것이다.

그렇지만, 아직 HL7 V3 메시지는 복잡한 RIM 구조와 메시지 생성의 어려움으로 인하여 널리 이용되고 있지 못하다. 이에, 본 연구에서는 데이터베이스내의 데이터로부터 HL7 V3 메시지를 생성하기 위한 방법을 제안하고, 그에 필요한 데이터베이스 매핑 도구(DB2caAdapter 매핑 도구)를 설계, 개발하였다.

II. 관련연구

본 연구에서는 HL7 V3 메시지의 구조를 파악하기 위하여, RIM의 구조와 메시지 설계방법에 관련된 작업을 조사․분석하였으며, 실제 HL7 V3 메시지를 생성하기 위하여, 미국 NCICB(National Cancer Institute Center for Bioinformatics)에서 개발한 caAdapter를 조사․분석하였다.

1.  HL7 V3 메시지 설계방법

RIM 클래스는 Act, Entity, Role, Participation 등의 클래스들로 이루어져 있다. 이런 RIM에서 필요한 클래스와 클래스 관계(relationship), 속성(attribute)등의 부분집합들을 선택하여 D-MIM(Domain Message Information Model)을 정의한다. 그런 후, D-MIM에서 클래스들과의 관계에 이름을 할당하고, 불필요한 클래스 계층을 제거하며, 클래스 관계와 관계상수(cadinality)를 완성하여 R-MIM(Refined Message Information Model)을 생성할 수 있다. 이러한 단계로 생성된 R-MIM을 디자인하기 위해서는 HL7에서 제공하는 RIM repository를 바탕으로 MS Visio에 RMIM Designer를 설치한 후, R-MIM을 디자인 할 수 있다. 디자인된 R-MIM은 RoseTree를 이용하여 HMD(Hierarchical Message Definition)을 생성한다.

Figure 1. HL7 V3 메시지 설계 단계

여기서 생성된 HMD는 HL7 V3 Generator를 이용하여, MIF(Message Interchange Format)와 XML Schema를 생성할 수 있다. 생성된 HMD 파일과 MIF파일, XML 스키마 파일을 이용하여 유효한 XML 타입의 HL7 V3 메시지를 생성하게 된다.

Figure 2. MS Visio에서 디자인 된 RMIM 예제

2.  caAdapter의 API와 도구

caAdapter는 HL7 V3 메시징 표준을 이용하여 의료정보 공유를 지원하기 위한 API와 도구로 이루어져 있으며, 이전의 HL7 JAVA SIG(Sepcial Interest Group)에서 배포된 HL7 SDK의 발전된 버전이다. caAdapter의 핵심 엔진은 HL7 V3 메시지를 생성, 교환하는데 필요한 building, parsing, validating 등의 기능을 지원하며, caAdapter의 매핑 툴은 CSV (comma-separated value) 규격의 데이터를 HL7 V3 메시지 규격으로 매핑하여, 메시지를 생성하도록 지원해준다. Figure 3은 caAdapter 핵심 엔진의 구조도이다. caAdapter의 모든 소스는 자바(Java)로 만들어졌으며, 오픈소스로 제공된다.

Figure 3. caAdapter Core Engine Architecture

III. DB2caAdapter 매핑 도구의 설계 및 개발

오늘날 대부분의 병원 정보 시스템은 관계형 데이터베이스 시스템을 기반으로 구성되어 있다. 그렇기 때문에, 실제 병원이나 의료기관에서 HL7 V3 메시지를 생성하기 위해서는 데이터베이스 내의 데이터를 HL7 V3 메시지의 적절한 데이터 타입으로 매핑을 하고, 자료를 validation 할 수 있어야 한다. 하지만, caAdapter의 mapping tool은 특정한 형식(CSV형식)의 데이터만을 입력 데이터로 지원하고 있어서, 데이터베이스에 바로 접근하여 데이터를 추출하고 HL7 V3 메시지로 생성하는 것은 매우 어렵고 복잡하다. 그리하여, 본 연구에서는 관계형 데이터베이스의 데이터를 caAdapter에서 쉽게 이용할 수 있도록 데이터베이스와 caAdapter 간의 매핑 도구(DB2caAdapter 매핑 도구)를 개발하였다. 개발된 DB2caAdapter 매핑 도구를 이용하면, 데이터베이스 내의 데이터를 실제 HL7 V3 메시지로 생성 가능한 caAdapter tool의 규격(spec)에 맞는 데이터가 생성 된다.

Figure 4. DB2 caAdapter 매핑 도구 Architecture

DB2caAdapter 매핑 도구의 아키텍처는 Figure4와 같다. 본 도구는 Query Manager, SCS Manager, Mapping Manager, CSV Generator의 4개의 모듈로 구성되어 있고, 사용자의 편의성을 위한 GUI 환경을 제공한다. Query Manager 모듈은 DBMS와 연결 설정을 이루고, 적절한 쿼리를 이용하여 데이터 셋을 가져오는 역할을 한다. 그리고 SCS Manager 모듈에서는 caAdapter에서 정의된 CSV파일의 구조(SCS)를 로딩하여, 트리(tree)형태로 데이터 세그먼트(segment)와 필드(field)를 표현해 준다. Mapping Manager 모듈에서는 DBMS의 데이터 셋과 미리 정의된 SCS 구조 사이를 연결하여 매핑하고 매핑 정보를 저장하도록 해주며, 이러한 매핑 정보를 바탕으로 CSV Generator 모듈에서 CSV 형식의 데이터를 파일로 생성한다. 이렇게 생성된 CSV 파일은 caAdapter를 이용하여, HL7 V3 메시지를 생성하고 parsing, validating 작업을 할 수 있다.

DB2caAdapter 매핑 도구에서 테스트한 DBMS는 MySQL이며, 개발은 C# .NET을 이용하여 이루어졌다. 본 매핑 도구로 DBMS에서 HL7 V3 메시지를 생성하는데 필요한 데이터를 얻기 위해서는 1)데이터베이스 서버에 허가된 유저로 로그인하여 2)DB를 선택하고, 3)해당 DB 내의 테이블의 전체 레코드(record)를 불러오거나, 조인(join) 연산 등을 이용한 SQL문을 사용하면 된다. 위의 방법을 통해 얻어진 데이터 셋은 4)SCS 규격의 세그먼트(segment)내의 필드(field)로 매핑을 한다. 매핑이 모두 이루어진 후에는 5)‘CSV 파일 생성’ 메뉴를 통하여 caAdapter  tool에서 사용가능한 CSV 형식의 데이터를 파일로 생성하면 된다.

아래 Figure 5은 개발한 DB2caAdapter 매핑 도구의 사용 예제 화면이다. 여기에서는 로컬 DBMS의 HealthInformation DB에 접속하여, 기관 정보와 소속 의료인 테이블을 조인하여 검색한 3개의 데이터 셋이 E_OrganizationContact(COCT_MT150003) 타입의 메시지에 필요한 SCS 구조 형식으로 매핑된 결과이다.

Figure 5. DB2caAdapter 매핑 도구의 사용 예제

IV. HL7 V3 메시지의 생성

HL7 V3 메시지를 생성하기 위한 방법으로는 여러 가지가 이용될 수 있다. 기본적으로 데이터 포맷이 XML 형태이므로, XML 문서를 생성하도록 지원해주는 XML Spy, MS Infopath 등의 도구의 이용이 가능하다. 하지만, 이 방법은 HL7 V3 메시지가 가지는 Schema의 복잡성과 RIM 데이터 타입의 정확한 이해가 없으면, 생성이 불가능할 뿐만 아니라, 대량의 자동화된 메시지 생성이 힘들다. 또 다른 방법으로는 DOM Parser와 같은 XML Parser를 이용하여 메시지 인스턴스를 로딩하여 새로운 메시지를 생성하거나, JAXB(Java Architecture for XML Binding) 기술을 이용한 JAVA 프로그래밍으로 메시지를 생성하는 방법이 있다. JAXB는 자바 프로그래밍 언어 애플리케이션에서 XML 컨텐츠의 사용을 간소화해주는 기술로서, XML 문서의 Schema를 바탕으로 하여 XML 문서와 JavaBeans 기술 컴포넌트 간의 바인딩을 지정함으로써 작업을 수행한다. 하지만, 이 방법은 HL7 V3 메시지 마다 사용자가 직접 프로그래밍을 통해서 해당 값들을 할당해줘야 하며, HL7 V3 메시지 특성상 XML schema 뿐 만아니라, HMD와 MIF 규격도 만족해야 하는 이유로 생성된 메시지의 validation, parsing 등의 작업이 용이하지 않다.

위에서 설명한 두가지의 메시지 생성 방법과 본 연구에서 진행한 DB2caAdapter 도구를 이용한 메시지 생성 방법과의 비교 분석표는 Table1과 같다.

	XML에디터를이용	JAXB,DOM등의 API 이용	매핑 지원도구이용
HMD, MIF validation	미지원	미지원	지원
자동(대량)생성	불가능	가능	가능
프로그래밍스킬 (XML관련)	필요없음	고급수준의 스킬 필요	필요없음
DB뷰어 기능	미제공(별도필요)	미제공(별도필요)	제공
DB관련 API, SQL스킬	초급이상 요구	고급이상 요구	초급이상요구
RIM의 이해	중급이상 요구	고급이상 요구	중급이상요구

Table 1. 타 방법과의 비교 분석표

본 연구에서는 Figure 6의 과정으로  DB2caAdapter와 caAdapter를 사용하여 HL7 V3 메시지를 생성하는데 성공하였다.

Figure 6. HL7 V3 메시지 생성 과정

위 과정으로 메시지를 생성할 때, caAdapter tool에서는 생성하고자 하는 HL7 V3 메시지 타입의 해당 명세와 CSV 파일의 명세를 미리 정의해야 한다. 그리고 생성된 HL7 V3 메시지는 Control Act, Trasmission을 추가하여, ebXML, MLLP, Web Service Profiles등의 방법으로 전송한다. Figure 7은 이러한 과정을 거쳐 생성된 E_OrgnizationContact 타입의 HL7 V3 메시지 예제이다.

Figure 7. 생성된 HL7 V3 메시지 예제

V. 고 찰

본 연구에서는 의료정보 메시지 교환의 국제 표준인 HL7 V3 메시지를 생성하기 위하여, HL7 RIM의 구조, 메시지 설계방법, caAdapter tool과 API에 대한 연구를 진행하였고, 데이터베이스 시스템의 데이터를 효율적인 방법으로 HL7 V3 메시지로 생성하기 위한 방법을 제시하였다. 또, 메시지 생성에 필요한 데이터베이스와 caAdapter tool 간의 데이터 매핑을 가능하도록 지원도구를 개발하였다.

이를 통하여 DBMS에 축적된 데이터를 필요에 따라 대량 또는 소량으로 HL7 V3 메시지로 생성할 수 있으며, 매핑 정보를 저장해 놓음으로서 메시지 생성의 자동화를 이룰 수 있다. 그럼으로써, 앞으로 병원정보 시스템에서는 정보 공유에 필요한 국제 표준 규격의 HL7 V3 메시지를 손쉽고 빠르게 생성하여 타시스템과 원할히 연동 할수 있을 것이다.

마지막으로, DB2caAdapter 매핑도구가 caAdapter tool의 기능을 포함하도록 하여서 데이터베이스와 HL7 V3 메시지 규격과의 직접적인 매핑을 가능하도록 한다면, 사용자가 메시지 생성에 필요한 매핑 작업이 좀 더 간편해질 수 있으므로, DB2caAdapter 매핑도구와 caAdapter의 통합 방안에 대한 연구가 필요할 것이다.

참고문헌

1. Health Level 7, HL7 Standards Data Models & HL7 Version 3, http://www.hl7.org

2. National Cancer Institute Center for BioInformatics, CAADAPTER 1.3 User's Guide

3. Bernd Blobel: Advanced and secure architectural EHR approaches, International Journal of Medical Informatics (2006)

4. George W. Beeler, Jr. Ph.D., Lloyd McKenzie, P.Eng., Tools Training: Using HL7's Version 3 Message Development Tools, January 2005, Orlando

5. 김항찬, 김일곤. HL7 메시지를 처리하는 HL7 Engine을 생성해 주는 HL7 Message Toolkit 설계와 개발, 대한의료정보학회지 제12권 보완본 1호, 77-80