I.

아덴신택스기반 의료 논리 모듈 엔진의 구조

An Architecture for Medical Logic Module Engines

Hee-Su Kim*, Il Kon Kim*

* Department of Computer Science, College of Natural Science, Kyungpook National University, Daegu, wizardhs@lycos.co.kr

Abstract: The Arden Syntax is the syntax for writing and sharing knowledge for Medical Logic Modules (MLMs), developed by HL7, a standard developing organization. The Arden Syntax is used as a standard knowledge representation in clinical decision support systems which help clinicians to reduce critical mistakes. MLM engines are clinical decision support systems for executing medical logics. This paper shows the architecture, which is highly extensible, modular and independent of platform and programming language, for the Arden Syntax-based MLM engines. The architecture facilitates to share or sell components of clinical decision support systems with MLMs represented by the Arden Syntax and distribute MLM engine components over the network

Keyword: Arden Syntax, Medical Decision Support System, MLM, HL7, Architecture

배 경

의사에 의한 의료시술행위 또는 약처방의 실수를 줄이기 위해 의사결정지원시스템을 사용할 수 있다. 이를 테면, 의사결정지원시스템은 알레르기(Allergy), 약부작용, 등을 의료인이나 환자에게 경고함으로써 실수를 방지하는데 큰 보탬이 될 수 있다. 의사결정지원시스템은 의료지식을 담은 지식기반(Knowledge Base)과 그 지식을 활용해서 의사결정을 도울 수 있도록 경고하거나 하는 엔진(Engine)으로 구성된다. 아덴신택스(Arden Syntax)[1]는 HL7(Health Level7) 표준개발위원회[2]에 의해 개발되고 있는 의료지식표현(Knowledge Representation)형식이다. 아덴신택스(Arden Syntax)기반 의사결정지원시스템에서는 아덴신택스(Arden Syntax)을 따라 만들어진 Medical Logic Module(MLM)들로 구성된 지식기반을 가진다.[4]

□ Arden Syntax의 필요성

의료관련 사실, 경험, 모형 등을 말하는 의료지식들은 다양한 국가, 지역, 조직에서 발생할 수 있다. 전문가들이 모여 의료지식들을 모아 지식기반을 만들어내는 것은 그 산출물에 대한 규모와 어우르는 범위, 다양성을 반영하기 힘들다는 점에서 한계가 명백하다. 이러한 이유에서 의료지식들은 공유될 필요가 있다.[4]

의료 혹은 임상 의사결정지원시스템을 위한 지식표현은 여러 가지 형태로 될 수 있다. HELP, KL-ONE, MYCIN, CASNET, QMR, Galen 등의 시스템에서 사용된 규칙(Rule), 논리(Logic), 프레임(Frame) 등의 다양한 표현들이 그 것이다. 이러한 시스템들에 사용된 지식들은 표현이 서로 달라서, 다른 시스템을 사용하는 병원에서의 지식을 사용하려면 사용가능한 지식표현형태로 변환하는데 큰 비용을 지불해야 한다.

아덴신택스(Arden Syntax)는 ANSI, HL7 표준으로써 지식기반시스템들간의 지식공유를 촉진하기 위해 만들어졌으며, 이를 기반으로 한 의사결정지원시스템들이 개발되고 운용 중에 있어, 이러한 시스템을 운용하는 병원 혹은 연구소끼리 지식을 공유할 수 있다.[4] 또한, 아덴신택스(Arden Syntax)는 작성되기 쉬운 절차적 표현으로 논리를 표현하고 있으며, 병원마다의 다른 환경을 반영하도록 설계되어 있어, 어떠한 병원, 연구소에서도 채택될 수 있는 가능성이 높다.

II. 시스템의 설계

본 연구에서는 아덴신택스(Arden Syntax)기반 의사결정지원시스템을 확장가능하며 플랫폼독립(Platform Independence), 프로그래밍언어독립(Programming Language Independence)적으로 설계하였다. 또한, 모듈(Module)들 간의 통신방법으로써 웹서비스(WebService)를 제안한다.

1.  기본적인 설계 사항

아덴신택스(Arden Syntax)기반 MLM(Medical Logic Module)은 사건(Event), 조건(Condition), 행동(Action)을 서술한 규칙(Rule)으로 이루어진다.[1] 그러므로 엔진(Engine)은 사건을 감지하고, 조건을 평가하며, 행동을 실행할 수 있도록 설계되어야 한다.

사건감지의 원천이 되는 환자나 검사에 관한 자료들은 병원 내의 데이터베이스(Database)에 저장되어 있으며, 이 데이터베이스들의 종류와 구조는 병원마다 차이를 보인다. 또한, 병원이나 국가에 따라 지식을 표현하기 위한 용어가 다를 수 있다. 아덴신택스에서는 이렇게 병원마다 다를 수 있는 부분들은 중괄호({,})로 싸여져서 쉽게 구분이 가능하도록 되어 있으며, 엔진은 중괄호 내의 내용을 하나의 MLM내에서 사용가능한 변수로 대응(Mapping)시키는 방법을 제공하여야 한다. 이러한 방법을 본 논문에서는 적응구조(Adaptation Mechanism)라고 하겠다.

2. 적응 구조 (Adaptation Mechanism)

병원마다 다를 수 있는 부분은 Event, Read, Message, Destination, 그리고 Interface구문들(Statements)이다. 이들의 용도는 다음과 같다:

* Event문 : 사건의 정의

* Read문 : 환자나 검사기록 등을 읽기

* Message문 : 보내질 메시지의 내용의 기술

* Destination문 : 보내질 목표 (e-mail주소 등)

* Interface문 : 외부 호출 (External Call)

이러한 다양한 구문들에 대해 본 연구에서 제안하는 적응 구조의 핵심원리는 한 가지로써, 이러한 구문들로써 MLM변수의 내용을 정의하는 중괄호 안의 부분을 엔진 외부의 다른 모듈이 맡아 처리하고 그 결과를 엔진에 돌려주거나 알려주는 것이다. 다음은 본 연구에서 제안하는 부가적인 설계결정사항들이다.

각각의 외부모듈들(External Modules)은 식별자(Identifier)를 가지며, 이를 중괄호 안에 씀으로써 엔진이 중괄호 안의 내용을 어느 모듈에 처리하도록 요청할 것인지를 알 수 있다.

외부모듈들은 엔진과는 완전히 독립된, 그리고 실행 가능한 어떠한 형태도 될 수 있지만, 단지 엔진과 통신할 수 있어야 한다는 조건이 존재한다. 외부모듈들은 각 병원의 다양한 환경을 반영할 수 있어야 하기 때문에 그 실행형태를 제한하지 않고, 자유롭게 만들 수 있게 하려는 의도이다. 이는 또한, 외부모듈들이 엔진과 다른 기종, 다른 운영체제, 다른 프로그래밍언어 상에서 개발될 수 있도록 허용하며, 병원의 특수한 데이터베이스 서버(Database Server)상에서도 외부모듈을 운용하여, 엔진이 데이터베이스에 접근가능하게 한다.

그렇다면, 외부모듈들과 엔진 사이의 통신수단은 어떻게 할 것인가. 모든 병원들에 걸쳐 통일된 통신규약이 있으면 이상적이지만, 본 연구에서는 특정한 통신규약 혹은 수단이어야 한다고 주장하지 않는다. 통신규약은 본 연구의 범위 밖이고, 통신수단의 좋은 후보들을 제안한다면, 전송제어프로토콜(TCP)[9]와 XML 웹서비스(WebService)[10]이다.

이 통신수단들은 모두 신뢰성있고, 플랫폼독립적인 통신을 가능하게 해준다. 하지만 보안 및 인증을 추가적으로 고려해서 구현하는 것이 안전한 운용을 위해 바람직할 것이다.

외부모듈과의 통신을 위해서는 통신규약의 수립뿐 아니라 외부모듈의 위치를 파악할 필요가 있다. 엔진은 외부모듈의 식별자를 통해 외부모듈을 구분하지만, 외부모듈들은 다른 기계, 다른 운영체제 상에 있을 수 있다. 본 연구에서는 이 외부모듈 식별자와 외부모듈의 위치를 관리하고, 위치를 알려주는 모듈위치표(Modules Locations Table)를 두어 이 문제를 해결하였다.

이러한 어떠한 형태의 외부모듈도 만들어 추가할 수 있기 때문에, 본 의사결정지원시스템은 확장가능하며, 다양한 병원 전산환경에 적응력이 있다고 말할 수 있다.

3. 적응 구조의 적용

각각의 병원특정(Institution-specific) 구문들에 대해 적응구조를 적용해보도록 하겠다.

하나의 사건원천(Event Source)으로부터의 사건(Event)의 발생을 감지하기 위해서, 하나의 사건감지기모듈(Event Detector Module)을 외부모듈로써 둘 수 있다. 사건감지기의 전형적인 예는 데이터베이스에서의 변화(삽입,수정,삭제)를 감지하는 것이다. 이는 능동 데이터베이스(Active Database)의 방아쇠(Trigger)를 이용하면 가능하다.[8]

사건의 원천은 여러 곳일 수 있다. 데이터베이스, 시간적인 사건, 외부 사용자에 의해 발생하는 사건, 의료기기로부터의 사건 등이 원천들이 될 수 있다.[4]

아덴신택스는 시간적인 사건을 두 종류로 지원한다. 첫째, 어떤 다른 사건이 발생한 후에 얼마간의 시간이 지난 후 발생되는 사건, 둘째, 어떤 다른 사건이 발생한 후부터 주기적으로 발생되는 사건이다. 이러한 시간적인 사건들은 다른 사건(검사 등) 후 특정 시간이 경과한 후에 자동적으로 의료인이나 환자에게 알려주기 위한 용도이다.[1]

사건의 종류에는 한 가지가 더 있는데, 그 것은 여러 사건들이 복합적(Composite)으로 일어났을 때 발생되는 사건이다. 아덴신택스에서는 OR에 대한 복합사건을 지원함으로써 구현이 쉽게 될 수 있다.[1]

시간적인 사건과 복합사건의 감지를 하기 위해서는 다른 사건의 발생을 알아야 한다. 이러한 목적에서 본 연구에서는 사건감지관리자(Event Detection Manager)라는 모듈을 둔다. 사건감지관리자는 모든 사건감지기로부터 모든 사건을 보고(Report)받으며, 시간적인 사건과 복합사건을 감지하고 엔진에 보고하는 역할을 하게 된다.

Read문을 처리하는 Read Server외부모듈은 데이터베이스나 파일 등으로부터 환자나 검사기록 등을 읽어 아덴 결과자료형(Arden Result Data Type)으로써 변환하여 돌려준다.

Destination문을 처리하는 Destination server외부모듈은 메시지를 해당하는 목표지점으로 보내준다. 예를 들면, e-mail, 휴대폰, fax 등으로 메시지를 전달해줌으로써 의료인이나 환자에게 중요한 사실을 알려 줄 수 있게 한다.

Message문을 처리하는 Message Server외부모듈은  Message문에서 정의하는 내용을 처리하여 엔진에게 전달해 주는 역할을 하며, 엔진에 전달된 메시지는 궁극적으로 Destination Server모듈에게 전달된다. 이는 메시지를 다른 형태로 변환할 수 있는 기회를 준다. 또는, Message문의 내용을 Message의 위치를 가리키도록 하고, Message Server에서는 그 위치에서 해당 Message를 가져와서 엔진에 전달할 수 있다.

Interface Server모듈은 Interface문을 처리하는데, 이는 필요한 외부함수를 호출해주고, 결과를 반환해주는 역할을 수행한다.

III. 전체적인 구조

이 부분에서는 본 연구에서 제안하는 MLM Engine의 전체적인 구조를 설명한다.

그림 1은 MLM기반 의사결정지원시스템의 전체적인 조직도이다. 외부모듈들은 병원의 정보시스템과 상호작용하며, 엔진이나 실행 중인 MLM의 요청들을 수행해 준다. 실행 중인 MLM들은 JAVA 플랫폼[11] 등의 어떠한 실행환경 상에서 실행된다.

사건의 발생으로 인해 실행된 MLM들은 조건(Condition)과 행동(Action)부분을 처리한다. MLM들은 좀더 엄격한 조건을 검사하여, 조건만족시 행동부분을 수행하게 된다. 행동부분은 일반적으로 의료인에게 메시지를 보내는 것이다.

MLM들이 실행되기 위해서는 아덴신택스로 된 MLM들이 컴파일(Compile)되거나 인터프리트(Interpret)될 필요가 있다.

그림 2는 MLM엔진(MLM Engine)의 전체적인 구조도이다. 여기서 모든 구성요소들이 바뀌어 질 수 있다. 이 것을 가능하게 하는 것은 이러한 구성요소들 간의 통신규약을 정의해 두는 것이다. 구성요소의 내부동작이나 구성요소 자체가 바뀌어도 다른 구성요소들과 통신만 정상적으로 가능하다면 어떠한 형태의 변화, 향상도 가능해진다.

본 연구에서 제안한 구조는 다양한 구성요소들을 공유 또는 판매하는 것을 촉진시킬 수 있다. 구성요소들 사이의 표준의 통신규약이 확립된다면, 이러한 개개의 구성요소들은 각기 다른 실행환경이나 기능을 가진 구성요소로써 다른 병원이나 연구소들 사이에서 공유되거나 병원이나 소프트웨어개발회사에 의해 판매될 수 있다.

IV. 결 론

본 연구에서는 아덴신택스기반 의사결정지원시스템을 위한 병원마다의 이질적인 전산환경에 적응성과 확장성을 지니고, 쉽게 구성요소들을 교체할 수 있도록 하는 시스템구조(Architecture)를 보여 주었다.

본 연구에서 제안한 구조를 이용하고, 구성요소들 사이의 통신규약을 병원이나 연구소들, 소프트웨어개발회사 사이에서 통일한다면, 각각의 구성요소들의 공유나 상업용 판매제품으로 판매가 가능해 진다. 몇몇 구성요소들의 경우, 전세계적인 대량판매가 가능한 시장성이 있을 수 있으며, 이는 그 구성요소들의 가격을 낮추는 요인이 된다. 또한, 특수한 병원전산시스템(구형 데이터베이스서버 등)들이나 의료기기들을 위한 구성요소들이 공유되거나 주문에 의해 판매될 수 있게 되므로, 이러한 구성요소들을 구하거나 향상시킬 기회가 높아지게 된다.

결과적으로 이 구조를 통해 아덴신택스기반 의사결정지원시스템을 개발, 구축하는 비용이 절감될 수 있을 것이며, 이로써 이전에는 비용문제로 의사결정지원시스템의 도입이 어려웠던 병원이나 연구소에서도 도입할 가능성이 높아질 것이다. 전세계적으로 의사결정지원시스템의 도입이 촉진되고, 이로써 의료인들의 실수를 줄인다거나 현명한 의사결정을 하도록 도울 수 있을 것이다.

참고문헌

1. Arden Syntax for Medical Logic Systems version 2.1. Health Level Seven, Inc. (2002)

2. Health Level 7 Web site. Health Level Seven, Inc. http://www.hl7.org

3. Hripcsak, G., Clayton, P.D., Jenders, R.A., Cimino, J.J., Johnson, S.B.: Design of a Clinical Event Monitor. Computers and Biomedical Research, Vol. 29. Academic Press (1996) 194-221

4. Hripcsak, G., Ludemann, P., Pryor, T.A., Wigertz, O.B., Clayton, P.D.: Rationale for the Arden Syntax. Computers and Biomedical Research, Vol. 27. Academic Press (1994) 291-324

5. Karadimas, H.C., Chailloleau, C., Hemery, F., Simonnet, J., Lepage, E.: Arden/J: An Architecture for MLM Execution on the Java Platform. Journal of the American Medical Informatics Association, Vol. 9, No. 4. American Medical Informatics Association (2002) 359-368

6. McCauley, B., Young, I., Clark, I., Peters, M.: Incorporation of the Arden Syntax within the Reimplementation of a Closed-Loop Decision Support System. Computers and Biomedical Research, Vol. 29. Academic Press (1996) 507-518

7. Miller, R.A.: Medical Diagnostic Decision Support Systems . Past, Present, and Future: A Threaded Bibliography and Brief Commentary. Journal of the American Medical Informatics Association, Vol. 1, No. 1. American Medical Informatics Association (1994) 8-27

8. Paton, N.W., Diaz, O.: Active Database Systems. ACM Computing Surveys, Vol. 31, No. 1. ACM, Inc. (1999) 63-103

9. Postel, J. (ed.), "Transmission Control Protocol - DARPA Internet Program Protocol Specification", RFC 793, USC/Information Sciences Institute, September 1981.

10. Web Services Architecture, W3C Working Group Note, D. Booth, H. Haas, F. McCabe, E. Newcomer, M. Champion, C. Ferris, D. Orchard, 11 February 2004

11. Java, Sun Microsystems, Inc. http://java.sun.com