(51) Int. Cl. (19) 대한민국특허청 (KR) (12) 등록특허공보 (B1) G06Q 50/00 (2006.01) (21) 출원번호 10-2007-0112327 (22) 출원일자 2007 년 11 월 05 일 심사청구일자 2007 년 11 월 05 일 (65) 공개번호 10-2009-0046290 (43) 공개일자 2009 년 05 월 11 일 (56) 선행기술조사문헌 KR1020010096000 A* KR1020070091748 A KR1020050000735 A KR1020000063796 A * 는심사관에의하여인용된문헌 (45) 공고일자 2009년12월21일 (11) 등록번호 10-0932711 (24) 등록일자 2009년12월10일 (73) 특허권자 경북대학교산학협력단 대구광역시북구산격동 1370 경북대학교내 (72) 발명자 김일곤 대구북구읍내동럭키아파트 103 동 1304 호 김항찬 울산동구전하 1 동 544-99 번지로얄빌라 103 호 (74) 대리인 김성남 전체청구항수 : 총 26 항심사관 : 나광표 (54) 의료정보통합관리시스템및방법 (57) 요약 의료기관단말기로부터전송되는데이터로부터 HL7 메시지를생성하여다양한의료기관에서의료정보를공유할수있도록하기위한의료정보통합관리시스템및방법을제시한다. 본발명의의료정보통합관리시스템은 HL7 메시지구조를정의하고있으며, 정의된 HL7 메시지구조를처리하기위한 HL7 엔진을구비하고, 의료기관단말기를모니터링하여, 신규데이터의입력이벤트가발생한경우의료기관단말기로부터신규데이터를추출하여 HL7 메시지로생성하고, 의료기관단말기를모니터링하여, HL7 메시지요청이벤트가발생한경우 HL7 메시지를추출하여제공하는메시지구성모듈및메시지구성모듈에서생성하여저장한 HL7 메시지를전송받아저장하고, HL7 메시지의이력을관리하는메시지교환모듈을포함하여, HL7 메시지를고속으로생성할수있고, HL7 메시지로생성된의료정보를다양한기관및의료진이공유할수있다. 대표도 - 도 2-1 -
특허청구의범위청구항 1 통신망을통해적어도하나의의료기관단말기와접속되는의료정보통합관리시스템으로서, HL7 메시지구조를정의하고있으며, 상기정의된 HL7 메시지구조를처리하기위한 HL7 엔진을구비하고, 상기의료기관단말기를모니터링하여, 신규데이터의입력이벤트가발생한경우상기의료기관단말기로부터신규데이터를추출하여 HL7 메시지로생성및저장하고, 상기의료기관단말기를모니터링하여, HL7 메시지요청이벤트가발생한경우 HL7 메시지를추출하여제공하는메시지구성모듈 ; 및상기메시지구성모듈에서생성한 HL7 메시지를전송받아상기 HL7 메시지의이력을관리하는메시지교환모듈 ; 을포함하고, 상기메시지구성모듈은, 메시지생성블록및메시지처리블록을포함하며, 상기메시지생성블록은, 발생될이벤트및추가정보에따라 HL7 메시지구조를편집하도록하는메시지구조편집부 ; 상기메시지구조편집부에서편집된메시지구조를이용하여 HL7 메시지를생성하기위한상기 HL7 엔진을생성하는 HL7 엔진생성부 ; 상기 HL7 엔진과실제데이터간의맵핑을수행하여 HL7 메시지를생성하여저장하는프로그램프로젝트 ; 및상기메시지구조편집부에서편집된메시지구조를바탕으로 HL7 메시지를생성, 검증및파싱하는 HL7 엔진 ; 을포함하는의료정보통합관리시스템. 청구항 2 삭제청구항 3 제 1 항에있어서, 상기 HL7 메시지는복수의세그먼트를포함하며, 상기메시지구조편집부는상기세그먼트중불필요한세그먼트를삭제하는것을특징으로하는의료정보통합관리시스템. 청구항 4 제 1 항에있어서, 상기메시지구조편집부는, 상기 HL7 메시지표준에제시되어있지않은확장메시지또는세그먼트를 HL7 메시지구조에포함시키는것을특징으로하는의료정보통합관리시스템. 청구항 5 제 1 항에있어서, 상기메시지구조편집부는, 상기 HL7 메시지구조를트리구조로표현하고, 상기 HL7 메시지에포함된세그먼트와컴포넌트가가지는데이터를트리또는리스트구조로표현하는것을특징으로하는의료정보통합관리시스템. 청구항 6 제 1 항에있어서, 상기프로그램프로젝트는, 상기의료기관단말기를모니터링하여데이터저장이벤트가발생되면, 메시지생성에필요한데이터를질의하여데이터를추출하고 HL7 메시지를생성하는센더 ; 및상기의료기관단말기로부터데이터를수신한후응답메시지를전송하는리시버 ; 를포함하는것을특징으로하는의료정보통합관리시스템. - 2 -
청구항 7 제 6 항에있어서, 상기리시버는, 상기의료기관단말기로부터데이터를수신하는경우상기데이터를검증하고, HL7 메시지생성이완료된후상기의료기관단말기로응답메시지를전송하는것을특징으로하는의료정보통합관리시스템. 청구항 8 제 6 항에있어서, 상기리시버는, 상기의료기관단말기로부터데이터를수신하는경우상기데이터를저장한후상기의료기관단말기로수락응답메시지를전송하고, 상기데이터로부터 HL7 메시지생성이완료되면완료메시지를전송하는것을특징으로하는의료정보통합관리시스템. 청구항 9 제 1 항에있어서, 상기메시지처리블록은, 상기 HL7 엔진을사용하여메시지를송수신하는데필요한외부인터페이스와, 상기 HL7 메시지처리에필요한기본틀을구성한프로젝트를생성하는프로젝트생성부 ; 및 HL7 메시지의버전에따른메시지구조를유지및관리하고, 상기메시지구조를상기메시지생성블록으로제공하는메시지구조관리부 ; 를포함하는것을특징으로하는의료정보통합관리시스템. 청구항 10 제 9 항에있어서, 상기메시지구조관리부는, 개발자가 HL7 메시지의표준구조를변경하고자하거나새로운세그먼트를추가하여메시지구조를변경하고자하는경우변경된메시지구조를저장및관리하는것을특징으로하는의료정보통합관리시스템. 청구항 11 제 9 항에있어서, 상기메시지처리블록은, 상기 HL7 메시지를입력받아디스플레이하고, 상기 HL7 엔진을이용하여검증을수행하며, 검증결과를디스플레이하는메시지브라우저를더포함하는것을특징으로하는의료정보통합관리시스템. 청구항 12 제 11 항에있어서, 상기메시지브라우저는, 상기 HL7 메시지와세그먼트의구성, 상기 HL7 메시지인코딩규칙을체크하고, 데이터타입과실제데이터가일치하는지, 데이터가 HL7 테이블에있는값들과일치하는지를체크하는것을특징으로하는의료정보통합관리시스템. 청구항 13 제 11 항에있어서, 상기메시지브라우저는, 상기 HL7를트리형태로디스플레이하고, 상기 HL7 메시지구조의데이터필드와실제데이터값을출력하는것을특징으로하는의료정보통합관리시스템. 청구항 14 제 9 항에있어서, 상기메시지처리블록은, HL7 메시지를수신하여 HL7 표준에맞는지확인하고, 표준에맞는경우응답메시지 - 3 -
를전송하는메시지테스터를더포함하는것을특징으로하는의료정보통합관리시스템. 청구항 15 제 13 항에있어서, 상기메시지테스터는, HL7 메시지를외부단말기로전송하는센더 ; 및 HL7 메시지를수신하여표준에맞는지확인하고, 표준에맞는경우응답메시지를전송하는리시버 ; 를포함하는것을특징으로하는의료정보통합관리시스템. 청구항 16 제 14 항또는제 15 항에있어서, 상기메시지테스터는, LLP(Low Layer Protocol) 을기반으로동작하는것을특징으로하는의료정보통합관리시스템. 청구항 17 제 1 항에있어서, 상기메시지교환모듈은, 파일입출력이나 HL7 메시지전송시에필요한프로토콜에따라메시지를송수신하기위한통신프로토콜을담당하는어댑터 ; 상기 HL7 메시지의처리과정을저장및관리하는로그관리부 ; 상기 HL7 메시지를순차적으로저장하는메시지큐 ; 및상기 HL7 메시지의송수신장소이름을 IP 주소와맵핑하여저장및관리하고, 상기 IP 주소를참조하여상기 HL7 메시지를전달하는라우팅처리부 ; 를포함하는것을특징으로하는의료정보통합관리시스템. 청구항 18 제 17 항에있어서, 상기어댑터는, 파일어댑터, FTP 어댑터, TCP/IP 어댑터를포함하는것을특징으로하는의료정보통합관리시스템. 청구항 19 제 17 항에있어서, 상기메시지교환모듈은, 의료기관단말기가 HL7 메시지를요청하는경우상기의료기관단말기에서처리가능한형태로 HL7 메시지를변환하는메시지변환부를더포함하는것을특징으로하는의료정보통합관리시스템. 청구항 20 제 17 항에있어서, 상기메시지교환모듈은, 메시지큐에저장된상기 HL7 메시지의양, 상기 HL7 메시지의처리량, 상기 HL7 메시지의처리시간을출력하는메시지감시부를더포함하는것을특징으로하는의료정보통합관리시스템. 청구항 21 제 17 항에있어서, 상기메시지교환모듈은, 상기로그관리부에서관리하는상기 HL7 메시지처리과정에따라, 상기 HL7 메시지가전달되는과정을추적하여사용자에게제공하고, 상기 HL7 메시지의전달과정별로처리된결과를제공하는메시지추적부를더포함하는것을특징으로하는의료정보통합관리시스템. - 4 -
청구항 22 통신망을통해복수의의료기관단말기와접속되어의료정보를통합관리하는의료정보통합관리시스템에서의의료정보통합관리방법으로서, 상기의료정보통합관리시스템이 HL7 엔진을생성하는제 1 과정 ; 상기의료정보통합관리시스템이상기의료기관단말기들을모니터링하여, 데이터저장이벤트가발생한경우상기의료기관단말기로부터저장하고자하는데이터를추출하는제 2 과정 ; 상기의료기관단말기로부터추출한데이터를상기 HL7 엔진을사용하여 HL7 메시지에맵핑하여 HL7 메시지를생성하는제 3 과정 ; 상기 HL7 메시지를검증하는제 4 과정 ; 및상기검증된 HL7 메시지를저장하는제 5 과정 ; 을포함하고, 상기제 1 과정은, 발생할이벤트및추가정보를수집하는제 1-1 과정 ; 상기이벤트정보및추가정보를참조하여메시지구조를편집하는제 1-2과정 ; 및상기 HL7 엔진이수행하여야하는기본기능을가진라이브러리를생성하는제 1-3 과정 ; 을포함하는의료정보통합관리방법. 청구항 23 제 22 항에있어서, 상기제 5 과정이후, HL7 메시지처리결과를상기의료기관단말기로통보하는제 6 과정을더포함하는것을특징으로하는의료정보통합관리방법. 청구항 24 제 22 항에있어서, 상기제 2 과정이후, 상기제 3 과정을수행하기전, 상기의료기관단말기로부터추출한데이터를저장하는제 2-1 과정 ; 및상기의료기관단말기로응답메시지를전송하는제 2-2 과정을더포함하는것을특징으로하는의료정보통합관리방법. 청구항 25 삭제청구항 26 통신망을통해복수의의료기관단말기와접속되어의료정보를통합관리하는의료정보통합관리시스템에서의의료정보통합관리방법으로서, 상기의료정보통합관리시스템이 HL7 엔진을생성하는제 1 과정 ; 상기의료정보통합관리시스템이상기의료기관단말기를모니터링하여, 의료정보전달요청메시지가전송되는경우, 전달요청된의료정보가저장되어있는의료기관단말기를검색하는제 2 과정 ; 상기검색한의료기관단말기로부터상기전달요청된의료정보를추출하고, 상기 HL7 엔진을사용하여 HL7 메시지로변환하는제 3 과정 ; 상기의료정보전달요청메시지를참조하여, 상기전달요청된의료정보수신처로상기 HL7 메시지를전송하는제 4 과정 ; 을포함하고, 상기제 1 과정은, 발생할이벤트및추가정보를수집하는제 1-1 과정 ; 상기이벤트정보및추가정보를참조하여메시지구조를편집하는제 1-2과정 ; 및 - 5 -
상기 HL7 엔진이수행하여야하는기본기능을가진라이브러리를생성하는제 1-3 과정 ; 을포함하는의료정보통합관리방법. 청구항 27 제 26 항에있어서, 상기제 3 과정이후, 상기제 4 과정을수행하기전, 상기추출한 HL7 메시지를상기의료기관단말기에서처리가능한형태로변환하는과정을더포함하는것을특징으로하는의료정보통합관리방법. 청구항 28 제 26 항에있어서, 상기의료정보전달요청메시지는, 상기전달요청된의료정보수신처의고유이름을포함하는 HL7 메시지이고, 상기의료정보통합관리시스템은상기고유이름각각에매핑되는 IP 주소를관리하고있으며, 상기제 4 과정은, 상기고유이름에매핑되어있는 IP 주소를추출하고, 상기 HL7 메시지로변환한의료정보를상기추출한 IP 주소에따라전송하는과정인것을특징으로하는의료정보통합관리방법. 명세서 발명의상세한설명 <1> 기술분야본발명은의료정보관리시스템및방법에관한것으로, 보다구체적으로는의료기관단말기로부터전송되는데이터로부터 HL7 메시지를생성하여다양한의료기관에서의료정보를공유할수있도록하기위한의료정보통합관리시스템및방법에관한것이다. <2> <3> <4> <5> <6> <7> 배경기술최근, 의료서비스의질을향상시키기위한노력으로의료정보화사업이활발히추진되고있으며, 의료서비스또는헬스케어시장에서의료정보의전산화및전산통합수준의의료정보화는대형병원을중심으로이루어지고있다. 의료정보화는의료영상정보시스템, 처방전달시스템, 전자의무기록등을연동함으로써비용절감효과, 진료의안정성, 서비스품질향상, 환자대기시간절감, 정보저장의편의성, 환자기록에대한의료진의접근용이성등의이점을제공한다. 이에따라, 보건의료정보영역에서정보공유에대한필요성이증가하고, 국제표준에대한인식이확대되고있으며, 보건의료정보공유를위한국제표준인 HL7(Health Level 7) 메시지에대한관심이높아지고있다. HL7은서로다른보건의료분야의소프트웨어어플리케이션간정보가호환될수있도록하는규칙의집합으로서, 전세계적표준으로자리잡고있는추세이며, 이를이용하게되면의료기관의유형또는규모에무관하게모든종류의의료업무서비스를이용할수있게된다. 다시말해, HL7은환자의진료정보를공유할수있는네트워크표준인것이다. HL7 프로토콜에서는메시지구조, 코딩규칙, 트리거이벤트등의요소를명세화하고있으며, 여기에서, 메시지구조는메시지의추상적정의를의미하고, 코딩규칙은전송을위한메시지표현방식을의미하며, 트리거이벤트는메시지를발생하도록하는어플리케이션이벤트를의미한다. HL7에서, 트리거이벤트에의해하나의사건이발생하면, 그사건에의해데이터교환을수행할둘이상의시스템간에네트워크를통해경로가설정되게된다. 이후, 하나의시스템에서다른시스템으로메시지형태의데이터전송이이루어지면, 메시지를수신한시스템에서수신여부를확인하는응답메시지를메시지를전송한시스템으로보냄으로써하나의사이클이마무리된다. HL7은의료기관에서제공하는다양한업무와관련된메시지를정의하고있으며, 환자원무관리, 질의, 처방, 처방및임상결과에대한관찰기록보고, 제품실험, 파형결과, 환자의뢰, 회계관리, 일정관리등을그예 - 6 -
로들수있다. <8> <9> <10> <11> <12> <13> <14> <15> <16> <17> 이와같이, HL7을이용하여환자의진료정보를공유하게되면환자들에게더욱질높은서비스를제공할수있고, 중요한질병에대한진료결과를토대로의학의발전을기대할수있다. 이러한 HL7 메시지는 2000년도에버전 2.4와 2003년도에버전 2.5가 ANSI(American National Standard Institute) 표준으로승인되어국제적으로널리사용되고있으며, XML(eXtensible Markup Language) 을기반으로용어와코드를고려한버전 3.0이개발되고있다. HL7 메시지는다양한독립시스템들이연계되어야하는미국중심의보건의료정보시스템에초점이맞춰져있어, 대한민국내의데이터베이스를중심으로하는통합시스템에서는효용성이많이떨어진다. 그러나데이터베이스중심의 OCS(Order Communication System) 도 PACS(Picture Archiving Communication System) 와같은독립시스템과연계를위해서는 HL7 메시지를이용하는것이효과적이다. 여기에서, OCS는의사가내리는오더 (order) 를전달해주는시스템을말하고, PACS는이미지를저장하고전달하여이미지공유를지원하는시스템을의미한다. 그리고, 최신의료기기시스템들은검사및측정결과를 HL7 메시지로제공하거나, 검사요청정보를 HL7 메시지로연동하도록만들어지고있다. 대한민국내보건의료정보시스템에서도이러한최신기기들을도입할경우쉽고빠른시스템통합을위해 HL7 메시지를사용하는것이필요하다. 뿐만아니라, 응급환자를이송하는가운데환자의정보를공유하는실시간응급전산망의구축과정보교환시 HL7 메시지를사용하는것도요구되고있다. 대한민국내환경에서기존의병원정보시스템에최소한의변화를주면서 HL7 메시지를생성하기위한방법으로 HL7 메시지서버방식을들수있다. 이방식은각각개발된시스템들이정보를공유할때메시지서버에메시지를전달하여정보를공유하는방법으로, 각시스템이다른시스템의환경에영향을받지않고메시지만처리하면되기때문에시스템간에연계가용이한이점이있다. 한편, HL7 메시지를 XML로변환하여저장, 검색및저장할때, 중복데이터를제거하여저장공간을절약하는방법도있다. 이러한방법들은병원정보시스템과같은규모가큰시스템에서서버형태로동작하면서 HL7 메시지를생성하는데초점이맞추어져있다. 이러한서버형태의동작방식에서데이터의형태가특수하게정해질수있다면, 공통뷰를생성하여이질적인데이터베이스와독립적으로서버가동작하는방법도이용할수있다. 그러나, 공통뷰와이질적인데이터베이스의연계또한쉽지않은부분이며, 공유하고자하는데이터의공통뷰를생성하는것도용이하지않다. 아울러, 서버에서메시지를생성하는것도중요하지만메시지를검증하고데이터를추출하여처리하는것도중요한부분이다. 또한, 메시지를전송하는것도필요하다. 이외에도중앙에 HL7 기반의 XML 저장관리시스템을서버로두고, 정보를공유하는방법도있으나, 이러한방법은국가의관리가필요하고, 법과제도적인지원이바탕이되어야하므로현재로써는시행하기어려운방법이다. 그러나, 평생전자건강진료기록시스템 (Electronic Health Record System; EHRs) 과개인평생전자건강진료기록시스템 (Personal Health Record System; PHRs) 은궁극적으로지역, 국가, 세계가보건의료정보의상호운용성을보장하는방향으로발전하고있으므로, HL7 메시지를통해보건의료정보를안정적이고효율적으로공유할필요가있다. 이와같이, 보건의료정보영역에서 HL7 메시지를이용하여다양한시스템과어플리케이션의연계를필요로하고있으나, HL7 메시지를어떻게다루는것이효과적인지에대한정보가부족한단점이있다. 이로인하여, 국내에서는 HL7 메시지를이용하여정보를공유할때, 오히려복잡하고어렵게느끼고, 표준의장점을얻지못하여 HL7 메시지의사용을꺼려하고있는문제가있다. 발명의내용 <18> 해결하고자하는과제 본발명은상술한단점및문제점을해결하기위한것으로, 의료기관단말기로부터전송되는데이터를쉽고빠 르게 HL7 메시지로생성할수있는의료정보통합관리시스템및방법을제공하는데그기술적과제가있다. - 7 -
<19> 본발명의다른기술적과제는 HL7 메시지로생성된의료정보를효율적이고안정적으로공유하면서, 의료기관 단말기들이효율적으로연계할수있는의료정보통합관리시스템및방법을제공하는데있다. <20> <21> <22> 과제해결수단상술한기술적과제를달성하기위한본발명의일실시예에의한의료정보통합관리시스템은통신망을통해적어도하나의의료기관단말기와접속되는의료정보통합관리시스템으로서, HL7 메시지구조를정의하고있으며, 상기정의된 HL7 메시지구조를처리하기위한 HL7 엔진을구비하고, 상기의료기관단말기를모니터링하여, 신규데이터의입력이벤트가발생한경우상기의료기관단말기로부터신규데이터를추출하여 HL7 메시지로생성하고, 상기의료기관단말기를모니터링하여, HL7 메시지요청이벤트가발생한경우 HL7 메시지를추출하여제공하는메시지구성모듈 ; 및상기메시지구성모듈에서생성하여저장한 HL7 메시지를전송받아저장하고, 상기 HL7 메시지의이력을관리하는메시지교환모듈 ; 을포함한다. 또한, 본발명의일실시예에의한의료정보통합관리방법은의료정보통합관리시스템이 HL7 엔진을생성하는제 1 과정 ; 상기의료정보통합관리시스템이의료기관단말기들을모니터링하여, 데이터저장이벤트가발생한경우상기의료기관단말기로부터저장하고자하는데이터를추출하는제 2 과정 ; 상기의료기관단말기로부터추출한데이터를상기 HL7 엔진을사용하여 HL7 메시지에맵핑하여 HL7 메시지를생성하는제 3 과정 ; 상기 HL7 메시지를검증하는제 4 과정 ; 및상기검증된 HL7 메시지를저장하는제 5 과정 ; 을포함한다. 아울러, 본발명의다른실시예에의한의료정보통합관리방법은의료정보통합관리시스템이의료기관단말기를모니터링하여, 의료정보전달요청메시지가전송되는경우, 전달요청된의료정보가저장되어있는의료기관단말기를검색하는제 1 과정 ; 상기검색한의료기관단말기로부터상기전달요청된의료정보를추출하고, HL7 메시지로변환하는제 2 과정 ; 상기의료정보전달요청메시지를참조하여, 상기전달요청된의료정보수신처로상기 HL7 메시지를전송하는제 3 과정 ; 을포함한다. <23> <24> 효과본발명에의하면, 복수의의료기관단말로부터전송되는의료정보로부터 HL7 메시지를고속으로생성함으로써, HL7 메시지로생성된의료정보를다양한기관및의료진이공유할수있다. 또한, 의료정보통합관리시스템에서 HL7 메시지를생성함에따라의료기관단말기의변경이나업그레이드없이의료정보를용이하게공유할수있으며, 의료기관단말기의요청이있는경우 HL7 메시지의구조를변환하여제공함으로써, 의료정보의효율적이고안정적인공유가가능하다. <25> <26> <27> <28> <29> <30> <31> <32> 발명의실시를위한구체적인내용이하에서는첨부된도면을참조하여본발명의바람직한실시예를보다구체적으로설명한다. 도 1은본발명에의한의료정보통합관리시스템이적용되는통신망의일예시도이다. 도시한것과같이, 의료정보통합관리시스템 (10) 은복수의의료기관단말기 (20) 들과통신망 (30) 을통해접속된다. 의료정보통합관리시스템 (10) 은의료기관단말기 (20) 를모니터링하고, 신규의료정보데이터가발생하는경우이를 HL7 메시지로생성하여검증한후저장한다. 아울러, 특정의료기관단말기 (20) 가 HL7 메시지를이용하여의료정보를요청하는경우, 의료정보통합관리시스템 (10) 에접속된타의료기관단말기로부터요청된의료정보를검색하여, 의료정보를요청한의료기관단말기 (20) 가열람할수있는형태로가공하여제공한다. 이를위하여, 의료정보통합관리시스템 (10) 은메시지구성모듈및메시지교환모듈을포함하며, 도 2를참조하여구체적으로설명하면다음과같다. 도 2는본발명의일실시예에의한의료정보통합관리시스템의상세구성도이다. 도 2에도시한것과같이, 의료정보통합관리시스템 (10) 은전체적인동작을제어하는제어부 (110), 메시지구성모듈 (130), 메시지교환모듈 (150), 저장모듈 (170) 및입출력처리모듈 (190) 을포함한다. 메시지구성모듈 (130) 은의료기관단말기 (20) 를지정된주기로모니터링한다. 모니터링중에신규데이터의입력이발생한것을확인하면, 해당의료기관단말기 (20) 로부터신규데이터를추출하고, 이를 HL7 엔진을이용하여 HL7 메시지로생성한후메시지교환모듈 (150) 로전송한다. - 8 -
<33> <34> <35> <36> <37> <38> <39> <40> <41> <42> <43> <44> <45> 이를위하여, 메시지구성모듈 (130) 은 HL7 메시지구조를정의하고있어야하며, 정의된 HL7 메시지구조를처리할수있는 HL7 엔진을생성해두어야한다. 한편, 메시지교환모듈 (150) 은메시지구성모듈 (130) 에서생성하여저장한 HL7 메시지를전송받아 HL7 메시지를어디로보낼것인지확인한후, 해당수신처로 HL7 메시지를전송한다. 여기에서, HL7 메시지의수신처는타의료기관단말기 (20) 또는메시지구성모듈 (130) 이될수있다. 메시지교환모듈 (150) 의확인결과, 메시지수신처가메시지구성모듈 (130) 인경우, 메시지구성모듈 (130) 은 HL7 메시지를수신하여검증한후저장모듈 (170) 에저장하고, 이에따라생성되는 HL7 메시지의이력은메시지교환모듈 (150) 에서관리된다. 또한, 의료기관단말기 (20) 가메시지전송을요청하는경우, 메시지구성모듈 (130) 은메시지전송을요청한해당단말기에서사용하는뷰어또는의료정보관리프로그램의종류에따라메시지변환을수행하여, 메시지송수신어플리케이션의수정없이시스템간에정보를공유할수있도록한다. 이와같이, 메시지구성모듈 (130) 은 HL7 메시지를빠르고, 효율적이며, 안정적으로생성하는한편, 메시지를검증하여저장및전송하는역할을수행한다. 또한, 메시지교환모듈 (150) 은 HL7 메시지의효율적인교환및이력관리를가능하게하며, 이러한의미에서본발명의의료정보통합관리시스템은 HMMC(Healthcare Message Multi-Center) 라칭할수있다. 도 3은도 2에도시한메시지구성모듈의상세구성도이다. 도 3을참조하면, 본발명에의한메시지구성모듈 (130) 은 HL7 메시지를생성하여메시지교환모듈 (150) 로전송하기위한메시지생성블록 (131) 및생성된 HL7 메시지를메시지교환모듈 (150) 로부터수신하여검증하고저장모듈 (170) 에저장하기위한메시지처리블록 (132) 으로이루어진다. 아울러, 메시지생성블록 (131) 은메시지구조편집부 (1301), HL7 엔진생성부 (1303), 프로그램프로젝트 (1305) 및 HL7 엔진 (1307) 을포함하고, 메시지처리블록 (132) 은메시지테스터 (1309), 프로젝트생성부 (1311), 메시지브러우저 (1313) 및메시지구조관리부 (1315) 를포함한다. 먼저, 메시지생성블록 (131) 의각구성요소에대하여설명하면다음과같다. 메시지구조편집부 (1301) 는발생될이벤트가어떤것들이있는지, 이벤트가발생하면어떤메시지를사용할것인지, 메시지구조에추가될정보가있는지에따라개발자가 HL7 메시지구조를편집할수있도록한다. HL7 메시지는세그먼트 (Segment) 를포함하고, 각세그먼트는적어도하나의필드 (Field) 를포함하며, 하나의필드가내부적으로여러개의값을가질때이값들을컴포넌트 (Component) 라한다. 예를들어, 세그먼트는환자정보를담고있는세그먼트, 검사결과를담고있는세그먼트등이존재할수있고, 환자정보를담고있는세그먼트는환자이름필드를포함할수있다. 아울러, 환자이름필드는환자의성, 이름, 별명등의컴포넌트를포함할수있다. HL7 메시지는부가세그먼트들이많이존재하기때문에, 메시지구조편집부 (1301) 에서불필요한세그먼트들을삭제하여단순화시키는것이바람직하다. 이러한세그먼트들의제거는 HL7 메시지에필수내용들만남김으로써, 의사소통과데이터처리시작업능률이향상되게된다. 그리고, 사용자 ( 의료진 ) 가 HL7 표준에제시되어있지않은확장메시지 ( 통상 'z' 로시작하는메시지 ) 나세그먼트들을만들수있으므로, 이를메시지구조에포함시킨다. 또한, HL7 표준에서는특정필드에들어갈수있는값들을테이블로표현하고있는데, 이테이블에새로운값을추가하거나기존값을수정한다. 또한, 메시지구조를사용자가알아보기쉽게, 예를들어트리 (tree) 구조로표현하며, 세그먼트와컴포넌트가가지는데이터들을트리나리스트구조로표현하여사용자가 HL7 메시지를용이하게이해할수있도록한다. 이러한기능에따라, 사용자의 HL7 메시지에대한이해와사용능력이향상되어어플리케이션이빠르고정확하게개발될수있다. HL7 엔진생성부 (1303) 는메시지구조편집부 (1301) 에서편집된메시지구조를이용하여 HL7 메시지를다루는핵심모듈인 HL7 엔진을생성한다. 즉, HL7 엔진이수행하여야하는기본기능을가진라이브러리를생성하는것이다. HL7 엔진은객체모델형태로제공되어, 메시지를편집할때트리구조와같이이해도가높은형태로제공될필요가있다. 객체모델형태보다더욱간단한형태로데이터를맵핑하여 HL7 메시지를생성하고파싱한다면, 간단화된형태와 HL7 구조사이의맵핑이메시지구조편집부 (1301) 에서이루어져야한다. 예를들어, Chameleon 상용제품은데이터베이스테이블과같은구조와 HL7 메시지사이에맵핑정보를설정하고있으며, - 9 -
HL7 엔진에서는테이블에값을세팅하고추출하기만하면된다. <46> <47> <48> <49> <50> <51> <52> <53> <54> <55> <56> 프로그램프로젝트 (1305) 는 HL7 엔진과실제데이터간의맵핑작업을수행하기위한것으로, 센더 (Sender) 와리시버 (Receiver) 를포함한다. 센더는의료기관단말기를설정된시간간격 ( 예를들어, 5초또는 10초 ) 으로모니터링하다가이벤트가발생되면, 메시지생성또는전달에필요한데이터를질의하여데이터를추출하고 HL7 메시지를생성하게된다. 여기에서, 프로그램프로젝트 (1305) 에서모니터링하는이벤트는메시지생성이벤트, 메시지전달이벤트가될수있다. 메시지생성이벤트는특정의료기관단말기에새로운의료정보가추가된경우, 이를 HL7 메시지로생성하기위한것으로, 도 5를참조하여후술할것이다. 한편, 메시지전달이벤트는특정의료기관단말기가의료정보를요청한경우타의료기관단말기로부터의료정보를검색하여제공하기위한것으로, 도 7을참조하여후술할것이다. 한편, 리시버는메시지를수신하면 2가지방법으로응답 (Ack) 메시지를전송할수있다. 첫번째방법은오리지널모드 (Original Mode) 로, 메시지를수신하면검증하고데이터처리후응답메시지를전송하는것이다. 두번째방법은인핸스드모드 (Enhanced Mode) 로, 메시지를수신하면일단저장하고수락응답 (accept Ack) 메시지를보내고, 메시지처리가완료되면완료 (application Ack) 메시지를전송하는방법이다. 안정적인메시지처리를위해서는메시지를저장하여처리하는인핸스드모드를사용하는것이바람직하다. HL7 엔진 (1307) 은메시지구조편집부 (1301) 에서편집된메시지구조를바탕으로 HL7 메시지를생성, 검증및파싱한다. 이를위하여, HL7 엔진 (1307) 은특정언어를위한라이브러리로제공될수도있고, 소스파일로구현될수도있다. HL7 메시지를생성할때에는메시지의불필요한요소들을제거하여최적화된메시지를생성하는기능도제공하여메시지전송시효율을높일수있다. 다음으로, 메시지처리블록 (132) 의각구성요소에대하여설명하면다음과같다. 메시지테스터 (1309) 또한센더와리시버의두부분으로구성된다. 센더는 HL7 메시지를외부장치나단말기 ( 저장모듈, 의료기관단말기등 ) 전송하는프로그램으로, HL7 메시지를문자열이나파일에서읽어들여 TCP/IP 로전송할수있다. 한편, 리시버는메시지처리모듈 (150) 로부터 HL7 메시지를수신하여표준에맞는경우응답 (Ack) 메시지를전송한다. 메시지테스터 (1309) 는 HL7 에서제시한 LLP(Low Layer Protocol) 을기반으로작동하는것이바람직하다. 프로젝트생성부 (1311) 는 HL7 엔진을사용하여메시지를송수신하는데필요한최소한의외부인터페이스와메시지처리에필요한기본틀을구성한프로젝트를생성한다. 여기에서, 프로젝트는하나의프로그램을생성하기위한소스들과라이브러리들을통합한것으로정의될수있으며, 개발자가자신에게익숙한프로그래밍언어를사용할수있도록프로젝트를복수의언어로생성하는것이바람직하다. 메시지브라우저 (1313) 는 HL7 메시지를스트링 (string) 이나파일형태로입력받아내용을검증한다. 이를위하여, 메시지브라우저 (1313) 는사용자인터페이스를가지고, 사용자가특정파일을선택하거나입력할수있는다양한입력방법을비주얼하게제공해주고, 결과또한사용자가확인가능한형태로보여준다. 검증시에는메시지와세그먼트의구성및메시지인코딩규칙을체크하고, 데이터타입과실제데이터가맞는지, 데이터가 HL7 테이블에있는값들과일치하는지등을체크한다. 뿐만아니라메시지를트리형태로표현하면서메시지구조의데이터필드와실제데이터값을표현한다. 이는개발자가넣으려고의도했던필드에실제데이터가올바르게들어갔는지확인하기위해필요한기능이다. 그리고, 메시지브라우저 (1313) 에서는잘못된부분을알려주고, 수정할수있는정보 ( 테이블리스트값들 ) 들을제공하여개발자가틀린부분을용이하게수정할수있도록한다. 메시지브라우저 (1313) 의검증기능은 HL7 엔진 (1307) 의검증기능을이용하여수행된다. 메시지구조관리부 (1315) 는 HL7 메시지의버전에따른구조를유지및관리한다. 예를들어사용자가 HL7 V2.4 메시지를생성하고자하는경우메시지구조관리부 (1315) 는 HL7 V2.4 메시지구조를제공하게된다. 또한, 메시지구조관리부 (1315) 는사용자가표준구조를변경하고자하거나새로운세그먼트를추가하여메시지구조를변경하고자하는경우변경된메시지구조를제공하며, 사용자가수정한메시지구조정보를저장하고읽어낸다. 아울러, 메시지구조편집부 (1301) 와메시지브라우저 (1313) 에서메시지구조정보를이용할수있도록 HL7 메시지구조정보를제공한다. 도 4는도 2에도시한메시지교환모듈의상세구성도이다. 도시한것과같이, 메시지교환모듈 (150) 은어댑터 (1501), 로그관리부 (1503), 메시지큐 (1505), 메시지변환 - 10 -
부 (1507), 라우팅처리부 (1509), 메시지감시부 (1511) 및메시지추적부 (1513) 를포함한다. <57> <58> <59> <60> <61> <62> <63> <64> <65> <66> <67> <68> <69> <70> 먼저, 어댑터 (1501) 는통신프로토콜을담당하는것으로, 파일입출력이나 HL7 메시지전송시에필요한프로토콜에따라메시지를송수신한다. 이를위하여, 어댑터 (1501) 는파일어댑터, FTP 어댑터, TCP/IP 어댑터를포함할수있다. HL7 메시지는일반적으로 TCP/IP를이용하여전송되며, 이경우 TCP/IP 어댑터가 HL7 메시지를수신하여메시지큐 (1505) 를통해저장모듈 (170) 에저장한다. 만약 HL7 메시지가 TCP/IP가아닌 FTP 방식으로전송되면 FTP 어댑터가메시지를수신하여메시지큐 (1505) 를통해저장모듈 (170) 에저장하는것이다. 다음, 로그관리부 (1503) 는메시지를수신, 저장, 라우팅, 변환하는모든과정을관리하여메시지가처리되는과정을확인할수있도록한다. 이와같이함으로써의료정보통합관리시스템 (10) 의상태를모니터링할수있고, 에러발생시에러발생지점을찾아문제를해결할수있게된다. 메시지큐 (1505) 는어댑터 (1501) 를통해읽어들인 HL7 메시지들을저장모듈 (170) 에순서대로저장한다. 메시지큐 (1505) 를통해메시지를파일이나데이터베이스로저장하여둠으로써, 시스템에문제가발생하는경우에도메시지가손실되지않도록할수있다. 메시지변환부 (1507) 는의료기관단말기가 HL7 메시지를요청하는경우의료기관단말기에서처리가능한형태로메시지를변환하며, 의료기관단말기와의료정보통합관리시스템 (10) 에서사용하는 HL7 메시지의버전이상이한경우에도메시지변환을수행한다. 이를위하여, 메시지의특정필드에고정데이터를세팅하거나특정데이터를변환한다. 라우팅처리부 (1509) 는 HL7 메시지에포함된보내는장소 ( 송신측 ) 와받는장소 ( 수신측 ) 의이름을이용하여해당위치로메시지를전달한다. 이를위하여라우팅처리부 (1509) 는시스템의고유한이름과실제 IP 주소를맵핑하는정보를유지 / 관리한다. 이와같이함으로써, HL7 메시지를보내고받을때보내고자하는위치를고려하지않고라우팅처리부 (1509) 로보내기만하면되므로어플리케이션개발에부담을줄이게된다. 메시지감시부 (1511) 는얼마나많은 HL7 메시지가메시지큐 (1505) 에쌓여있고, 얼마나많은메시지들이처리되었으며, 처리하는데소요되는시간등을모리터링할수있는 GUI(Graphic User Interface) 를제공하여, 개발자가의료정보통합관리시스템 (10) 의전체적인상태를파악할수있도록한다. 메시지추적부 (1513) 는로그관리부 (1503) 에서관리하는메시지처리과정에따라, 메시지가전달되는과정을추적하여개발자에게제공하며, 각전달과정별로처리된결과를제공한다. 이에따라, 에러발생시에러발생지점을찾아내어문제를해결할수있게된다. 도 5는본발명의일실시예에의한 HL7 메시지생성방법을설명하기위한흐름도이다. 먼저, 의료정보통합관리시스템 (10) 의 HL7 엔진생성부 (1303) 는의료기관단말기로부터데이터를수신하여, 이를 HL7 메시지로생성하기위한 HL7 엔진을미리생성하여둔다 (S101). 그리고, 프로그램프로젝트 (1305) 는네트워크 (30) 를통해접속된의료기관단말기들을모니터링하며 (S103), 모니터링중에데이터를저장하고자하는이벤트가발생하는지확인하여 (S105), 이벤트가발생한경우에는해당의료기관단말기로부터데이터를추출한다 (S107). 그리고, 프로그램프로젝트 (1305) 는 HL7 엔진을이용하여의료기관단말기로부터추출한데이터를 HL7 메시지에맵핑함으로써 HL7 메시지를생성한다 (S109). 이후, 메시지브라우저 (1313) 는단계 S109에서생성한 HL7 메시지를디스플레이하고, HL7 엔진의검증기능을이용하여단계 S109에서생성한 HL7 메시지를검증한다 (S111). 검증시에는메시지와세그먼트의구성및메시지인코딩규칙을체크하고, 데이터타입과실제데이터가맞는지, 데이터가 HL7 테이블에있는값들과일치하는지등을체크한다. 검증이완료되면, 생성된 HL7 메시지는메시지큐 (1505) 를통해저장모듈 (170) 에저장되며, 프로그램프로젝트 (1305) 는 HL7 메시지처리결과를해당의료기관단말기로알려준다 (S115). 여기에서, 데이터추출, HL7 메시지로생성, 검증및저장되는모든과정은로그관리부 (1503) 에의해관리된다. 한편, 단계 S107 이후, 단계 S109를수행하기전, 프로그램프로젝트 (1305) 가추출한데이터를저장하고 (S121), 해당의료기관단말로응답메시지를전송하게되면 (S123) 더욱안정적인데이터처리가가능하게되는이점이있다. - 11 -
<71> <72> <73> <74> <75> <76> <77> <78> <79> <80> <81> <82> 도 6은도 5에도시한 HL7 엔진생성과정의상세흐름도이다. 본발명의의료정보통합관리시스템 (10) 은의료기관단말기로부터추출한데이터를 HL7 메시지로생성하기위하여, HL7 엔진을기생성하여야한다. 보다구체적으로, 개발자는발생할이벤트가어떤것이있는지, 이벤트가발생한다면어떤메시지를사용할것인지, 메시지구조에추가될정보가있는지를수집한다 (S201). 그리고, 수집한이벤트정보및추가정보를참조하여메시지구조편집부 (1301) 를이용하여메시지구조를편집한다 (S203). 이와같이메시지구조가편집된후, HL7 엔진생성부 (1303) 는 HL7 메시지를다루는핵심모듈인 HL7 엔진을생성한다 (S205). 즉, HL7 엔진이수행하여야하는기본기능을가진라이브러리를생성하는것이다. 이와같이, 개발자가메시지구조를편집하고, 이를바탕으로 HL7 엔진을생성함으로써, 이후프로그램프로젝트 (1305) 의맵핑과정에의해 HL7 메시지가생성될수있다. 도 7은본발명의일실시예에의한 HL7 메시지교환방법을설명하기위한흐름도이다. 메시지생성블록 (131) 은통신망 (30) 을통해접속되어있는의료기관단말기들또는메시지교환모듈 (150) 을모니터링하며 (S301), 모니터링중의료정보전달이벤트가발생하는지확인한다 (S303). 여기에서, 의료정보전달요청메시지는 HL7 메시지에의해전송되며, 이 HL7 메시지에는의료정보전달을요청한의료기관단말즉, 의료정보수신측의고유이름이포함되어있다. 확인결과, 특정의료기관단말기또는메시지교환모듈 (150) 이 HL7 메시지를요청한경우, 프로그램프로젝트 (1305) 는요청된의료정보가존재하는의료기관단말기로부터데이터를추출하고 HL7 메시지로변환하게된다 (S305). 이후, 메시지변환부 (1507) 는의료정보를요청한의료기관단말기에서처리가능한형태로메시지를변환한다 (S307). 이러한변환과정은의료기관단말기의기종이나사양에따라생략가능함은물론이다. 이후, 라우팅처리부 (1509) 는의료정보전달을요청한 HL7 메시지에포함된수신측의고유이름을확인하고, 이고유이름과매핑되어저장되어있는수신측 IP 주소를확인하며 (S309), 메시지테스터 (1309) 는단계 S309에서확인된 IP 주소에따라해당 HL7 메시지를전송한다 (S311). 상술한메시지교환과정에서, 의료기관단말기에의한메시지요청, 추출, 변환및전송과정은로그관리부 (1503) 에의해저장및관리된다. 본발명이속하는기술분야의당업자는본발명이그기술적사상이나필수적특징을변경하지않고서다른구체적인형태로실시될수있다는것을이해할수있을것이다. 그러므로이상에서기술한실시예들은모든면에서예시적인것이며한정적인것이아닌것으로서이해해야만한다. 본발명의범위는상기상세한설명보다는후술하는특허청구범위에의하여나타내어지며, 특허청구범위의의미및범위그리고그등가개념으로부터도출되는모든변경또는변형된형태가본발명의범위에포함되는것으로해석되어야한다. <83> 산업이용가능성본발명에의하면보건의료기관내의다양한어플리케이션을빠르게개발할수있는환경을제공하고, 어플리케이션을개발한다양한센터들이메시지를이용하여안정적이고효과적으로정보를공유할수있다. 이를통해 3차병원급 OCS(Order Communication System) 시스템과검사실시스템간의적용, 병원정보시스템과가정용 / 휴대용의료기기간의정보공유가가능하게된다. <84> <85> <86> <87> <88> 도면의간단한설명도 1은본발명에의한의료정보통합관리시스템이적용되는통신망의일예시도, 도 2는본발명의일실시예에의한의료정보통합관리시스템의상세구성도, 도 3은도 2에도시한메시지구성모듈의상세구성도, 도 4는도 2에도시한메시지교환모듈의상세구성도, 도 5는본발명의일실시예에의한 HL7 메시지생성방법을설명하기위한흐름도, - 12 -
<89> <90> <91> <92> <93> <94> <95> <96> <97> <98> <99> <100> <101> <102> 도 6은도 5에도시한 HL7 엔진생성과정의상세흐름도, 도 7은본발명의일실시예에의한 HL7 메시지교환방법을설명하기위한흐름도이다. < 도면의주요부분에대한부호설명 > 10 : 의료정보통합관리시스템 110 : 제어부 130 : 메시지구성모듈 150 : 메시지교환모듈 170 : 저장모듈 190 : 입출력처리모듈 1301 : 메시지구조편집부 1303 : HL7 엔진생성부 1305 : 프로그램프로젝트 1307 : HL7 엔진 1309 : 메시지테스터 1311 : 프로젝트생성부 1313 : 메시지브라우저 1315 : 메시지구조관리부 1501 : 어댑터 1503 : 로그관리부 1505 : 메시지큐 1507 : 메시지변환부 1509 : 라우팅처리부 1511 : 메시지감시부 1513 : 메시지추적부 도면 도면 1-13 -
도면 2 도면 3-14 -
도면 4 도면 5-15 -
도면 6 도면 7-16 -