1. 서 론
디지털 정보기술과 컴퓨터 기기의 발전에 따라, 병원에서 생 성되는 정보의 관리, 저장, 검색, 원격전송 등이 용이하게 되어, 필름 없는 병원체계 구현을 위한 의료영상 저장 및 전송시스 템 구축노력이 80년대 초부터 진행되었다. 이러한 노력의 일 환으로, American college of Radiology와 National Electrical
Manufacturers Association (ACR / NEMA) 에서는 1988년 의료 영상 데이타에 관한 표준을 제정하고, 1992년 통신망을 이용한 Picture Archiving and Communi-cations System (PACS)의 표 준 프 로 토 콜 로 서 Digital Image and Communication in Medicine (DICOM) version 3을 제정하였 다 [1]. 따라서, 영상이 포함된 의료정보를 효과적으로 관리, 검 색, 저장, 전송하기 위해서는 DICOM version 3 표준을 따르는 프로토콜 및 이를 기반으로 한 응용 소프트웨어에 대한 연구 및 개발에 대한 요구가 필수적으로 요구된다 [2].
기존의 PACS 시스템은 시스템을 구축하기 위해 고가의 서
CGI Web Solution을 이용한 Web PACS 시스템에 대한 연구
유 남 수・석 정 봉 연세대학교 전산학과
A Web-based PACS using CGI Web Solution Nam-Soo Yoo, Jung-Bong Suk
Dept. of Computer Science, Yonsei University, Wonju
= Abstract =
The ever-improving digital computer and networking technologies have accelerated the hospital to introduce the medical information system that handles the medical data in an effective and user-con- venient way in respects of the management, searching, transmission and storage functionalities. In particular, to achieve the filmless hospital, the Picture Archiving and Communications System (PACS) has been studied since early 1980s. The efforts have been focused to produce a standard for the in- teroperability between equipments that treat diverse medical images. As a result, Digital Image and Communication in Medicine (DICOM) version 3.0 has been accepted as a standard and now widely used for the storage and retrieval of the medical images. In this paper, we design and realize a PACS system being compatible with DICOM ver. 3.0. The main feature of the system is the ease access via Internet using the common browsers that allows the user to obtain the service from anywhere with any type of computer systems. Another design goal is to maximize the cost-effectiveness, which leads us to adopt a Linux OS for the server machine, and utilize various open softwares of our interest, such as CTN for the DICOM protocol, mSQL for the database server, and Apache for the Web server, and so on.
Key words: PACS, DICOM, CTN, mSQL
본 연구는 한국과학재단에서 지원하는 RRC (연세대 의료계측 및 재활공 학 연구센타) 사업의 일환으로 수행되었음
버와 원하는 정보를 얻기 위해 필요한 전용 단말기나 전용 프 로그램 등을 구입해야만 하기 때문에 병원 내 또는 병원간의 호환성, 고 비용 등의 문제점을 갖고 있었다. 본 논문에선, 이 러한 단점을 보완하기 위해, 인터넷이 사용 가능한 곳이면 별 도의 장비나 전용 프로그램 없이 서비스를 받을 수 있는 Web PACS를 제안한다. 또한, 시스템 구축시 비용의 절감을 위해 서버의 운영체제로는 Linux를 사용했고, 서버 프로그램으로는 Mallinckrodt Institute of Radiology (MIR)[3]에서 개발되어, 인터넷을 통해 별도의 비용 없이 다운로드 받을 수 있는 Central Test Node (CTN) PACS 소프트웨어를 사용했으며, database (DB)로는 mSQL을 사용하였다.
본 연구에서는 World Wide Web (WWW) 환경을 이용하여 보다 사용이 용이한 PACS 시스템을 개발하는 것을 목적으로 CTN PACS 서버를 분석하고 이를 바탕으로 WWW 환경에서 PACS 시스템의 클라이언트를 CGI를 이용해 구현하여, 웹 브 라우저 이외의 별도의 클라이언트를 필요로 하지 않는 서버 중 심 구조의 Web PACS 시스템을 구현한다. 본 논문의 구성은 다음과 같다. 먼저, 2장에서는 구현 시스템의 중심인 CTN S/W 의 구조를 살피고, 3장에서는 WWW 환경에서 PACS 시스템 의 장단점과, 본 논문에서 제안하는 서버 중심 구조의 Web PACS 시스템에 관하여 살펴본다.
2. CTN PACS 소프트웨어의 구조
PACS 시스템이란, 방사선 진단 영상 장치들에 각종 영상 획 득 장비를 인터페이스하고 컴퓨터의 기록 매체에 다양한 압축 기법을 사용하여 저장, 보관할 수 있게 하며, 데이터베이스 기 술을 적용하여 저장, 보관 및 검색을 컴퓨터 화하여 보다 간편 하고 신속, 정확하게 영상을 관리하고 전산 네트워크를 통해 많은 양의 영상을 다양한 방법으로 짧은 시간에 의료진들이 직 접 조회할 수 있게 한 의료정보 시스템이다 [4]. CTN S/W에 선 이러한 PACS 기능을 다양한 운영체제에서 사용 할 수 있 도록 DICOM 3.0 표준을 기반으로 개발하여, 이를 배포하여 일 반이 공개적으로 사용할 수 있도록 하였다. 이에 따라, 본 논 문에서는 서버 S/W로서 CTN PACS S/W를 이용하였다.
2-1. CTN 의 설치 환경 및 설치과정
본 연구를 위해 분석된 CTN PACS는 2.10.3 버전을 사용하 였으며, Electronic Radiology Laboratory (ERL)의 ftp site [5]
에서 다운로드 받을 수 있다.
CTN 서버-클라이언트 프로그램은 Unix 플랫폼과 Windows
플랫폼을 지원하는데, 본 논문에서는 Unix 플랫폼 버전을 선 택하였으며, 실제 구현 환경은 Unix 와 호환성이 유지되는 Linux 운영체제를 채택하였다. CTN PACS 프로그램은 Unix 플랫폼에서만 클라이언트에서 이미지를 볼 수 있게 해주는 툴 을 제공한다. 이러한 툴을 사용하기 위해서는, Motif 라이브러 리를 설치해야 하는데, CTN PACS 프로그램에서는 Motif 라 이브러리와 같은 기능을 사용하면서 프리웨어로 사용 할 수 있 는 Lesstif 라이브러리 [6]를 사용하고 있다. 이 라이브러리는 CTN PACS 프로그램을 설치하기 위해서도 반드시 필요하다.
설치 방법은 다운 로드 된 CTN S/W 의 압축을 풀면 나타나 는“contributed”디렉토리에 있는 Linux용 설치 스크립트 파 일인“.linux.configure”와“.makalinuxctn”을 차례대로 실행시 키면 된다. 단, PC의 사양과 Linux의 버전에 따라 스크립트 파 일을 수정해 주어야 하는 경우가 발생 할 수 있다[7].
2-2. CTN PACS 서버의 구조
CTN 서버에서 사용되는 program은 크게 archive_server, archive_agent, archive_cleaner, ris_gateway로 나눌 수 있다.
CTN에선 이 4개의 프로그램의 집합을 Image Archive라는 이 름으로 사용하고 있고, 이 Image Archive는 서버와 외부 클라 이언트의 정보를 다루는 하나의 control DB와 실질적인 환자 의 정보나 이미지 등을 저장하기 위한 여러 개의 image DB 및 FIS DB를 사용하고 있다. Table 1은 CTN S/W에서 control DB, image DB, FIS DB와 각각의 테이블을 생성하기 위해,
“ctn/cfg_scripts/msql”디렉토리에서 수행해야 하는 과정을 나 타낸다.
2-2-1. CTN 환경 설정
CTN 서버는 Fig. 1과 같이 CTN 응용을 위해 사용되는 모 든 환경설정 정보를 저장하는 하나의 control DB 를 갖으며, 디폴트 (default) 로 사용되는 control DB는 CTNControl이라 는 DB이다. 이 control DB는 ApplicationEntity, Security- Matrix, StorageAccess, StorageControl, FISAccess라는 테이 블을 사용한다.
ApplicationEntity 테이블은 CTN이 알고 있는 사용 가능한 모든 Application Entity와 외부 클라이언트에 대한 정보를 갖
Table 1. Process of create DB and Table used by CTN S/W
Control DB Image DB FIS DB
CreateDB CTNControl CreateDB DicomImage CreateDB FISDB CreateTables Control CreateTables DIM CreateTables
CTNControl DicomImage FIS FISDB
는다. 이 테이블은 Title, Node, Port, Comment 라는 4개의 필 드를 갖는다. 이중 Comment 필드는 CTN 서버에서는 직접적 으로 사용되지 않지만, CTN에서 제공하는 응용프로그램인 configuration tool 에서 볼 수 있다.
SecurityMatrix 테이블은 Fig. 1의 외부 클라이언트에서 CTN 서버로의 접속을 설정하기 위해 필요한 테이블로서, Requesti- ngApplication과 RespondingApplication 이란 두 개의 필드를 갖는다. Fig. 1을 예로 들면 첫 번째 필드는 외부 클라이언트 가, 두 번째 필드는 CTN 서버가 테이블에 저장된다.
StorageAccess 테이블은 Application Entity (AE)을 이용하 여, 원하는 데이타가 어떤 DB에 있는지를 제어하는 테이블이 다. 이 테이블은 Title, Dbkey, Owner, GroupName, Access, Comment라는 6개의 필드를 갖는다. 이 중 Owner, GroupName, Access의 세 개의 필드는 설정되어 있으나, 현재 사용되지 않고 있다. Title은 archive_server의 AE Title로서 이 테이블의 Key로 작용되고, Dbkey는 데이타베이스의 실제 이름이다.
StorageControl 테이블은 이미지를 받아 들였을 때, 어떤 저 장소에 이미지를 저장할 것인지 결정하는 테이블이다. 이 테이 블은 RequestingApplication, RedpondingApplicstion, Medium, Root라는 4개의 필드로 구성되어 있다. 첫 번째 필드에는 이 미지 저장을 요청하는 외부 클라이언트의 AE Title이 저장되
고, 두 번째 필드에는 archive_server의 AE Title이 저장된다.
Medium 필드는 현재는 사용되지 않고 있다. 마지막으로 Root 필드는 이미지가 저장될 Linux 시스템의 디렉토리를 저장하게 된다.
FISAccess는 StorageAccess와 비슷한 구조를 갖고 있으며, 단지 StorageAccess 테이블의 Title 필드에 archive_server의 AE Title 대신, Fake Information System (FIS) DB의 이름이 들어가게 된다.
2-2-2. Image Archive
Image Archive는 Fig. 2와 같이 한 개의 control DB와 여러 개의 Image 및 FIS DB를 사용하는 4개의 프로그램으로 구성 되어 있고, 각각은 Image Archive의 하나의 기능으로서 작동 하게 된다. 이 4개의 프로그램이 하는 일은 각각 다음과 같다.
1. archive_server : 외부 클라이언트로부터 요청되는 DICOM association을 받아들이는 응용 프로그램이다. archive_server 는 archive machine에서 단 한 개만 필요하며, 다음의 기능을 제공한다.
- 복합 오브젝트의 저장 (이미지, RT 오브젝트) - 복합 오브젝트의 질의/요청
(이미지, RT 오브젝트)
Fig. 1.Structure of CTN server and external client.
Fig. 2. Model for image archive.
- 저장 위임 요청
archive_server는 C-Move 요청의 결과로서 이미지를 저장 하기 위한 DICOM association을 초기화하고, AE Title을 통해 어떤 archive system이 DICOM association 요청을 받아들일 것인지 결정한다.
2. archive_agent : archive_server와 같은 작업을 수행한다.
즉, agent는 archive_server로 채워진 하나의 작업 큐를 등록 하고, archive_server의 작업을 대신 수행한다. 또한, archive_agent는 archive_server로 들어온 저장 위임 요청을 검사하며, 저장 위임을 위해 요청된 이미지를 image archive가 받았는지 의 여부를 결정한다.
3. archive_cleaner : archive system에서 이미지를 지우길 원할 때만 사용되며, 이 응용 프로그램을 사용하면, 어떠한 설 정된 시간을 초과하는 모든 image와 study의 내용을 제거하는 기능을 수행한다. 이 응용 프로그램은 한번 사용되면, archive image에서 제거된다. CTN S/W에선 아직까지 DB나 시스템 디 스크의 용량을 초과한 경우에 image나 study의 자동 삭제 기 능은 제공하지 않고 있다.
4. ris_gateway : archive_server와 비슷한 서버 프로세스이 다. 이 응용 프로그램은 archive_server에 의해 직접 지원되지 않는 HIS/RIS (Radiology Information System) 기능의 수행 을 원하는 응용 프로그램으로부터의 접속을 받아들인다.
ris_gateway는 DICOM HIS/RIS 서비스에서 사용되는 reports 의 저장을 위해 Image Archive에 포함되었다 [8].
3. World Wide Web 환경에서의 PACS 시스템
WWW환경에서의 PACS 시스템은 기존의 전용 단말기 형식 의 PACS나 PC-Based의 MicroPACS와 차별된다. 기존의 PACS 시스템은 원하는 정보를 얻기 위해 별도의 전용 단말기 나 전용 클라이언트 프로그램을 설치해야 하기 때문에 병원 내 또는 병원간 호환성, 비용 등의 문제들이 발생한다. 하지만, WWW환경에서의 PACS 시스템은 정보 서비스를 위해 범용 Web 브라우저를, 서버 운영체제로는 Linux를, 그리고 서버 프 로그램으로는 CTN S/W를 사용하고 있다. 또한, DB는 mSQL 을 사용하여, 호환성 및 비용 등의 문제점을 해결하고 있다. 그 러나, 본 논문에서 제안하는 서버 중심형 Web PACS 시스템 은 클라이언트를 CGI로 제작하기 때문에 bmp, gif 등과 같은 범용 브라우저에서 지원하는 이미지 포맷만을 사용하여야 하 므로 이미지 품질이 다소 떨어질 수 있으며, 또한 브라우저에 서 HTML 문을 이용하기 때문에, 환자의 이미지 확대, 축소 등
전용 단말기에서 지원되는 이미지 처리를 할 수 없는 한계가 있다.
3-1. 서버 중심형의 Web PACS 시스템
서버 중심형 Web PACS 시스템은 클라이언트의 기능을 CGI 형태로 구현하여, 클라이언트의 기능을 서버 쪽에서 대신 수행 하도록 하고, 사용자는 서비스 요청에 따른 결과만 범용 Web 브라우저를 통해 받아 볼 수 있도록 구성되어 있는 시스템을 말한다. 즉, 별도의 전용 프로그램을 필요로 하지 않고, 범용 Web 브라우저만 있으면 어디서든 PACS 서비스를 받을 수 있 다.
서버 중심형 Web PACS 시스템의 주요 동작은 다음과 같 다. 먼저, Web 브라우저에서 Web 서버로 요청이 발생되면, Web 서버가 CGI로 작성된 PACS 클라이언트를 실행시킨다.
이 때, 사용자는 CTN PACS 서버의 archive system을 사용 하기 위해 archive_server를 선택해야 하는데, 이것은 위에서 언급한 archive_agent가 생성한 큐 에 있는 archive_server중 의 한 개를 선택하는 것을 의미한다. archive_server를 선택하 기 위해선, archive list가 브라우저에 나타나야 하는데, 이것은 Web 브라우저가 CGI를 처음으로 호출 할 때, PACS 서버로부 터 list가 생성되어 화면상에 나타나게 된다. 수행 과정은 다음 과 같다.
1. DMAN_Open() 함수를 통해 control DB에 접근한다.
2. 서버에 archive list를 요청한다.
3. DMAN_Close() 함수를 통해 control DB와의 연결을 해 제한다.
4. 정보결과를 HTML문에 맞게 출력시킨다.
CTN S/W에선 control DB에 대한 요청을 처리할 수 있게 해
Fig. 3.Model for server oriented Web PACS system.
주는 함수를 제공하는 manage 라이브러리를 사용한다. 위의 수 행 과정은 CTN S/W에서 사용하는 control DB, Image DB, FIS DB 중 control DB에 대한 처리 과정을 나타내는 것이다. 먼저, DMAN_Open()의 인자로는 databaseName, requstingTitle, respondingTitle, handle이 있다. 이 함수는 databaseName의 인 자를 이용해서, mSQL DB에 접근하게 되는데, 이 때는 mSQL 에서 제공하는 API 함수인 msql-Connect()를 이용해 mSQL DB 서버에 접속하게 되고, DMAN_Open() 함수에서 인자로 넘 겨받은 databasName을 msqlSelectDB()의 인자로 넘겨주어 원 하는 DB를 선택하게 된다. 위의 과정에선 CTNControl DB를 선택하게 된다. 다음으로 서버에 archive list를 요청하게 되면, DMAN_Select() 함수를 통해 원하는 정보를 얻어 오게 된다.
이 때, mSQL API 함수인 msqlQuery(), msqlStoreResult() 등 을 이용하여 원하는 정보를 DB에 요청하고 결과를 받아 볼 수 있게 된다. 그 후엔 DMAN_Close() 함수를 호출하여 mSLQ API 함수인 msqlClose() 함수를 이용하여 DB와의 접속을 해 제한다. 이렇게 얻어진 결과물은 CGI를 통해 HTML문으로 만 들어지게 되고, Web 서버를 통해 Web 브라우저로 결과물이 출력된다.
CTN S/W에서 사용하는 DB인 Image DB, FIS DB를 처리 하는 방법은 control DB를 처리하는 방법과 매우 유사하다. 이 를 위해 CTN S/W에선 IDB_Open(), IDB_Select(), IDB_Close() 함수 등을 이용하는 IDB 라이브러리를 사용하여 Image DB에 대한 요청을 처리를 할 수 있게 하고, FIS_Open(), FIS_Select(), FIS_Close() 함수 등을 이용하는 FIS 라이브러 리를 사용하여 FIS DB에 대한 처리를 할 수 있는 함수를 제 공하고 있다. 이 함수들 에서도 mSQL API 함수를 이용하게 된다 [9].
Fig. 3은 이러한 서버 중심형의 Web PACS 시스템의 전반 적인 구조를 나타내고 있고, 다음과 같은 정보 서비스 과정을 갖는다.
1. Web 브라우저에서 Web 서버로의 요청이 발생한다.
2. Web 서버가 CGI로 작성된 PACS 클라이언트를 실행시 킨다.
3. PACS 클라이언트는 PACS 서버에 정보를 요청한다.
4. PACS 서버는 DB로부터 필요한 정보를 얻고, DICOM 프 로토콜을 이용하여 클라이언트에 정보를 보내준다.
5. DICOM 프로토콜을 통해 전송된 정보를 디코딩하고, 다 시 html형식의 데이터를 생성하여 웹 서버에 전송한다.
6. 웹 서버는 http프로토콜을 이용하여 사용자에게 데이터를 제공한다.
4. 결 론
디지털 정보 사회의 일환으로 병원에서도 필름 없는 환경을 설립하는 것을 목적으로 개발된 PACS 시스템은 그 유용성에 불구하고, 고가의 장비와 호환성, 비용 등의 문제점을 안고 있 었다. 이에 본 논문에서는 운영체제로는 Linux를 이용하고, DB 로는 프리웨에인 mSQL을, 서버 프로그램으로는 CTN S/W를 사용하여 저가의 시스템 사양을 고려하였다. 또한, 별도의 전 용 클라이언트 프로그램을 필요로 하지 않아도 범용 Web 브 라우저를 통해 인터넷상으로 어디서든 서비스 받을 수 있는 서 버 중심형의 Web PACS 시스템의 구조를 제시하고 이를 구현 하였다.
본 연구에서 개발된 Web 기반 PACS 시스템은, 고가의 전용 단말기를 이용하여 병원 내에서만 사용되는 기존의 PACS 시 스템과 달리, 공간적 제약 없이 일반 PC에서 범용 브라우저를 이용하여 손쉽게 인터넷 접속으로 영상 의료정보를 활용할 수 있는 장점을 갖고 있다. 그러나, CGI를 이용하여 클라이언트를 구성하고 HTML을 사용하여 화면 처리를 때문에, 다양한 영상 처리를 할 수 없는 취약성을 안고 있다. 이러한 문제점은 ActiveX나 Java와 같은 Web 기술을 적용하여 보완될 수 있다 고 판단되는데, 이와 같이 브라우저의 기능이 강화된 브라우 저-서버 분산형 Web PACS 시스템은 향후 연구과제로 추진 한다.
참 고 문 헌
1. J. Duchene, J.F. Lerallut, N. Gong and R. Kanz, MicroPACS: a PC-bases small PACS implementation , Med. & Biol. Eng. &
Comput., pp.268-276, 1993
2. NEMA Standards Publication PS3.x, Digital Imaging and Communications in Medicine, 1994
3. MIR’s URL : www.mir.wustrl.com
4. S.Hludoy and G.Noelle, PACS for Teleradiology , Proc. Of 12th IEEE Symposium on Computer-Based Medical System Stanford, Connecticut, 18-20 June, 1999
5. ERL’s URL : ftp.erl.wustrl.com 6. lesstif’s UTL : www.lesstif.org
7. 연세대학교-전산학과-정보통신연구실-Internal Document #1 8. Central Test Node PACS Document 중 USER_GUIDE Part P1-
12
9. Central Test Node PACS Document중 manage, IDB, FIS Part