I.

의료환경에서 상황인식을 지원하는 컨텍스트 미들웨어 개발

Development of a Context Middleware supporting Context-Awareness in Medical Environment

Jae-Heum Joo Ph. D, Choon-Bo Shim Ph. D, and Yong-Won Shin Ph. D*

School of Computer Information Engineering, Dept. of Healthcare Management*, Catholic University of Pusan

Abstract

Adaptive and intelligent services like rounding patients in hospital need to become as mobile as their users in the future. Context-awareness is a technology to facilitate information acquisition and execution by supporting interoperability between users and mobile devices based on users' context. The objective of this study is to develop a middleware for dealing with context-awareness in medical environment. To achieve it, our middleware plays an important role in recognizing a client with PDA by using a bluetooth wireless communication technology as well as in executing an appropriate execution module according to the context acquired from a context server. In addition, for verifying the usefulness of the proposed middleware, we develop an application system which provides voice playing services for notification of other physicians through our context middleware. Finally, our system can help to treat and make a diagnosis practically for patients in specific medical environment.

Key Words: Medical Environment, Context Middleware, Intelligent Services

배 경

제록스 팔로 알토(Palo Alto) 연구소의 마크 와이저(Mark Weiser)는 ‘사람을 포함한 현실 공간에 존재하는 모든 대상물을 기능적, 공간적으로 연결해 사용자에게 필요한 정보나 서비스를 즉시에 제공할 수 있는 컴퓨팅 환경 즉, 필요한 일부 기능만을 추가하고 부가적으로 필요한 자원들을 주변 환경 내부에 내장시켜 무선 네트워킹 기술을 이용해 상호 연결이 이루어지는 컴퓨팅 환경을 유비쿼터스 컴퓨팅이라고 정의하고 있다1). 이러한 유비쿼터스 컴퓨팅 기술은 의료환경에서 지능형서비스를 제공함으로써 국민보건과 의료혜택의 증대를 가져올 수 있다.

최근 의료 환경에서는 PDA 등을 이용한 모바일시스템들이 개발되고 있다2)3). 이러한 시스템들은 상황인식이라는 측면보다는 발생하는 이벤트(event)를 네트워크를 통해 시스템에 전송되는 데이터중심(data-oriented)의 형태이다. 작업중심적인 형태의 기술은 지능형(intelligent)서비스라기보다는 진료의사가 상황을 인식하여 상황에 맞게 준비된 데이터를 기반으로 진료를 행하는 것을 말한다. 임상의사결정지원시스템(Clinical Decision Support System)과 같이 데이터중심이라기보다는 작업중심 (work oriented)으로 된 지능형시스템이 필요하다고 할 수 있다. 의료 환경에서 사용되어질 유비쿼터스 컴퓨팅 기술4)은 기반기술, 하드웨어기술, 통신기술로 나눌 수 있다. 먼저, 기반 기술은 진료의사에 대한 인증 기술이나 보안 기술, 상황인식 기술 등과 같이 언제 어디서나 편리하고 안전하게 컴퓨터를 이용할 수 있는 기술들을 의미한다. 하드웨어 기술은 인간 중심의 비가시적인 입출력 장치 기술, 소형화(SoC) 기술, 저소비 저전력 기술, 나노, 병렬등과 같은 고집적화 기술, 내장형 기술 등과 같이 극히 제한된 전력만으로 장시간 동작할 수 있으며 방대한 의료데이터를 축적 및 처리하고 병원환경 속에 내재되어 진료의사의 진료를 지원하고 개선해 줄 수 있는 기술들을 말한다. 통신 기술은 센서 네트워크, 근거리 무선 통신 기술, 장치 접속 기술 등과 같이 셀 수 없이 무수히 많은 노드들을 가지고 있으며 수시로 자라나거나 축소되는 동적인 센서 네트워크를 관리할 수 있는 라우팅 기술을 의미한다.

본 연구에서는 특히 진료의사가 필요로 하는 서비스를 제공하기 위해서는 병원 내에 편재된 센서 및 컴퓨터들이 회진 시에 입원환자에 대한 자료를 진료의사의 상황에 맞게 환자의 병력과 현재상태와 수집한 각종 환경 정보를 효과적으로 상호 공유하여 사용자 및 주변 환경의 컨텍스트(context)를 알아내는 상황인식 기술5)6)을 다룬다. 상황인식 기술은 진료의사를 중심으로 하는 주변 환경과 진료의사를 지능적, 자동적으로 선택하여 지원해 줌으로써 진료의사로 하여금 정보 획득 및 실행을 보다 용이하도록 지원한다. 의료 환경에서 회진 시 환자에 대한 또는 병실에 관련된 상황인식을 지원하는 미들웨어를 설계 및 구현한다. 이는 진료의사가 회진 시 인간적 요소의 개입이 비교적 빈번하고, 다양성을 지닌 데이터를 지원하고 병원 전체 영역으로 확장할 수 있는 시발점이 된다는 점에서 병원 정보시스템의 한 방법론의 구현이라는 점에서도 그 필요성 및 의의가 크다고 할 수 있다.

II. 방 법

본 연구에서는 이를 위해 상황인식 기반의 미들웨어는 블루투스(bluetooth) 무선 통신 기술7)8)을 이용하여 PDA를 가진 진료의사를 발견하고, 컨텍스트 서버에 등록하여 해당 컨텍스트에 적합한 음성, 화상, 전문 텍스트를 서비스하는 기능을 담당한다. 또한 PDA의 프로필을 지닌 진료의사가 미들웨어에 접근하면 미들웨어는 이 PDA의 프로필을 이용하여 컨텍스트 서버에 접속한 후, 수행해야 할 상황 정보를 검색한다. 검색된 정보를 해당 미들웨어로 전달 한 후 주어진 상황에 적합한 서비스를 제공하는 응용 시스템을 통해서 제안하는 상황인식을 위한 미들웨어의 유용성을 보인다.

1. 전체 시스템 구성도

의료환경에서 상황인식 기술을 위한 제안하는 미들웨어에 대한 전체 시스템을 도식화하면 Figure 1과 같다. 제안하는 시스템은 컨텍스트 데이터베이스를 관리하는 컨텍스트 서버(context server)와 일정영역의 진료의사의 PDA를 담당하는 고정노드(fixed node)에 해당하는 미들웨어, 그리고 임베디드 이동 단말인 이동노드(moving node)로 구성된다. 서버와 고정노드 사이는 TCP/IP를 통한 유선 네트워크로 구성되어 있고, 고정노드와 PDA 사이에는 무선 통신인 블루투스를 이용하여 서로의 데이터를 교환한다.

Figure 1. 의료환경에서 상황인식을 위한 전체 구조

각각의 요소별 세부 컴포넌트 모듈을 살펴보면 다음과 같다. 미들웨어 역할을 담당하는 고정노드는 블루투스 장치를 사용하는 의료환경에서 상황인식 처리 기술을 위한 원격 객체 발견, 등록, 실행을 하는 모듈과 상황정의 스크립트 및 처리기로 구성되어 있으며, 아울러 원격 객체 정보와 컨텍스트 정보를 객체 데이터베이스와 컨텍스트 데이터베이스에 저장하고 검색할 수 있는 컨텍스트 서버로 구성된다. 진료의사의 PDA는 원격 객체(컨텍스트 객체)로서 고정노드와 블루투스 통신을 통하여 데이터를 교환하며, 미리 정의된 상황에 따라 미들웨어와 상호작용을 통해 내장된 환자관련 프로그램이 실행되거나 지정된 처리를 수행하게 된다.

2. 미들웨어의 기능

제안하는 상황인식 기술을 위한 컨텍스트 미들웨어는 전체적으로 Figure 2와 같이 세 단계의 개념적인 계층으로 구성되며, 각각은 탐지 및 모니터링 계층, 상황인식 계층, 응용계층으로 구성된다. 첫째, 탐지 및 모니터링 계층은 진료의사의 위치정보나 응용 프로그램과 상호작용에 따른 이벤트, 그리고 CPU 사용량, 메모리의 사용량, 가용한 대역폭, 블루투스 장치를 포함하여 장치에 관련된 이벤트 정보 등과 같은 컴퓨팅 자원이나 네트워크 상태를 모니터링 할 수 있는 기능을 담당하며, 이 계층에서는 응용에 따라 탐지 모듈의 유연한 형태를 가진다. 둘째, 상황인식(context awareness) 계층은 편재형 컴퓨팅을 위한 상황인식 처리 기술의 핵심 계층으로서 미들웨어 역할을 담당한다. 이 계층은 크게 스크립트 처리기, 원격 객체 관리기, 컨텍스트 관리기, 컨텍스트 선택 관리기, 통신 프락시 관리기의 5 가지의 관리자로 구성된다.

Figure 2. 미들웨어의 세부 컴포넌트

각각의 역할을 간단히 기술하면 Table 1과 같다. 마지막으로 응용 계층은 하부의 상황인식 계층인 미들웨어와 독립적으로 동작하면서 미들웨어의 응용 프로그래밍 인터페이스(API)를 통해 상황인식 처리 기술에 기반을 둔 다양한 응용 프로그램을 개발하기 위한 기능을 수행한다.

3. 클라이언트(PDA)의 기능

진료의사로부터 수행되는 PDA의 구성 요소는 Table 2와 같다. 블루투스 소켓 모듈은 미들웨어에 접속하기 위한 API와 미들웨어와 데이터를 주고받는 API로 나뉘어져 있다.

Table 1.  미들웨어의 세부 관리자의 기능

Script Processor	응용 프로그램의 상황인식 정의 스크립트의 각 내용을 분석하여 규약에 명시된 역할을 수행하도록 한다.
Object Manager	각 응용 프로그램에서 현재 사용하고 있는 원격 객체(컨텍스트 객체)에 포함되어 있는 모든 정보를 위한 데이터 구조를 관리한다.
Context Manager	사용자의 취향, 이동 단말 기기의 성능, 현재 위치정보 등을 포함하고 있는 주어진 환경이나 상황에 대한 컨텍스트 정보를 관리한다.
Context Selection Manager	응용 프로그램을 통해 사용자에게 전송될 가장 유사한 조건에 부합되는 컨텍스트 정보를 선별한다.
Communication(Proxy) Manager	TCP/IP를 통하여 컨텍스트 서버와 통신을 담당하며, 예상하지 못한 네트워크의 장애로 인한 문제에 대비하여, 즉 재전송을 위해 일시적으로 내용을 보관하는 기능을 수행한다.

Figure 3은 고정노드와 PDA의 전체적인 수행 흐름을 보여준다. 고정노드의 미들웨어가 실행되어 진료의사 PDA의 블루투스 접속에 대해서 수락할 준비가 되어 있는 상태가 되면 PDA는 각 고정노드 리스트를 가지고 각 고정노드에 대해서 접속 시도를 한다. 고정노드의 접속 신호에 대해서 전파가 닿아 그 신호를 수락할 수 있는 고정노드가 있으면, 고정노드는 접속 신호를 수락하여 양쪽 노드가 연결되고 컨텍스트 서버 측으로 PDA를 등록한다. 이후에 양쪽 노드 간 주기적인 통신을 통하여 접속 상태에 대해서 확인을 하며 상황에 따라 적절한 조치를 취하게 된다.

Table 2.  클라이언트의 세부 관리자의 기능

Main Module	이동노드의 클라이언트 시작 및 역할 블루투스 소켓의 준비
Bluetooth Socket Module	미들웨어와의 블루투스 통신을 위한 소켓 라이브러리
Environment Configuration Module	설정 파일을 로딩하여 전역변수에 설정 값을 할당

III. 구 현

상황인식을 지원하는 제안하는 미들웨어의 구현 환경은 512MB의 메모리를 탑재한 시스템 클럭 2.8Ghz 펜티엄 4 시스템, 운영체제는 Redhat Linux 7.3 (kernel verion 2.4.20)을 이용하였으며, 블루투스 통신을 위한 장치 드라이버 및 프로토콜 스택은 affix 2.0.2, 컴파일러로는 GCC 2.95.4를 사용하였다.

Figure 3. 클라이언트와 미들웨어간의 처리과정

본 연구에서는 제안하는 미들웨어의 유용성을 검증하기 위해 의료환경 상황인식 기반 음성 재생 서비스를 제공하는 응용 시스템을 구축하였다. 진료의사는 하나의 PDA를 소유하고 있으며, 진료의사의 위치에 따라 고정노드는 진료의사의 접근을 감지해 진료의사에 대해 미리 정의해둔 음성을 재생하는 역할을 수행한다. 이 때, 음성은 진료의사별로 서로 다르게 정의되어 있으며 같은 진료의사에 대해서도 오전, 오후, 야간과 같은 시간대에 따라, 또는 환자에 따라 다른 음성이 정의되어 있다. 따라서 응용 시스템은 각 진료의사에 따라 환자별 음성이 재생함에 있어서 진료의사 1이 병동 A에서 병동 B로 이동한다고 가정할 때, 병동 A에서 진료의사 1에게 A병동환자에 관련된 음성이 재생되고 있다면, 진료의사 1이 병동 B로 옮겨감에 따라 병동 A의 A병동환자에 대한 음성이 정지되고 병동 B에서 새로운 B병동환자의 관련된 음성이 진료의사 1에게 재생되어지게 된다. 한편, 고정노드는 진료의사를 구분하여 진료의사에 따른 각각의 환자에 관련한 음성이 재생되며, 진료의사가 고정노드 영역에 들어온 시각을 파악하여 시간대에 따라, 환자에 따라 정의된 음성을 재생하게 된다.

구축된 응용 시스템이 정상적으로 동작하는지 검증하였다. 검증 항목은 PDA를 소유한 진료의사가 고정노드로 접근하거나 멀어질 때, 각각 다른 진료의사가 고정노드에 접근할 때 미들웨어의 동작, 진료의사가 고정노드에 접근할 때 시간대별 미들웨어의 수행동작 등 다양한 항목들이 있지만, 본 연구에서는 단지 PDA를 소유한 진료의사가 고정노드로 접근할 때와 다른 고정노드로 멀어져 갈 때에 대한 검증에 대해서만 언급한다. Figure 4는 환자관련응용 시스템의 검증 환경을 보여준다. 검증을 위한 장소로는 병원 내의 ‘D 병동’과 ‘M 병동’을 이용했으며, 각 장소에는 블루투스 PDA를 감지 할 수 있는 고정노드가 설치되어 있다. 두 장소간 거리는 직선거리로 약 60m 가량으로서 복도로 연결되어 있다. 진료의사는 PDA를 가지고 ‘D 병동’에서 ‘M 병동’으로 이동하거나 ‘M 병동’에서 ‘D 병동’으로 이동하여 각각의 상황에 대해서 정상적으로 동작하는지를 검증하였다.

Figure 4. 컨텍스트 미들웨어의 테스트 환경

Figure 5는 이동노드를 소유한 진료의사가 고정노드로 접근했을 때의 동작 화면을 캡쳐한 것이다. Figure 5의 ①은 진료의사 접근 감지와 함께 진료의사의 이름을 PDA로부터 획득한 모습이고, 아울러 인증절차를 수행하는 것을 확인할 수 있다. 인증절차가 끝나게 되면 진료의사가 어떤 환자에 접근하는지에 따라 음성을 검색하고 난 후, ②의 모습과 같이 환자에 따른 음성을 서버로부터 다운로드 받는다. 다운로드가 완료되는 시점에서 ③과 같은 음성 재생 플레이어가 수행되어 음성이 재생되는 것을 확인할 수 있었다.

Figure 5. 고정노드로 접근시 동작화면(음성 메시지 전달)

IV. 고찰

최근 하드웨어 기술 발전에 따라서 PDA나 스마트폰과 같은 휴대용 기기와 Bluetooth, IEEE 1394, IEEE 802.11b 등과 같은 통신기술이 대중화 되었다. 이에 따라 병원환경의 현실 공간에 존재하는 모든 대상물을 기능적, 공간적으로 연결해 진료의사에게 필요한 정보나 서비스를 즉시에 제공할 수 있는 유비쿼터스 컴퓨팅시대가 도래하고 있다. 유비쿼터스 컴퓨팅에 있어서 진료의사가 필요로 하는 서비스를 제공하기 위해서는 도처에 편재된 센서 및 컴퓨터들이 수집한 각종 정보를 효과적으로 상호 공유하여 진료의사 및 주변 환경의 컨텍스트를 알아내는 상황인식 처리 기술이 요구된다. 이러한 상황인식 처리 기술은 진료의사를 중심으로 상황을 파악해 진료의사에 알맞은 서비스를 선택하여 지원해 줌으로써, 진료의사로 하여금 정보 획득을 보다 용이하도록 지원한다.

본 연구에서는 유비쿼터스 컴퓨팅 환경에서 상황인식을 효율적으로 지원해 줄 수 있는 블루투스 기반 컨텍스트 미들웨어를 개발하였다. 상황인식 기반의 미들웨어는 블루투스(Bluetooth) 무선 통신 기술을 이용하여 이동성을 지닌 PDA를 발견하고, 컨텍스트 서버에 등록하며 해당 컨텍스트에 적합한 실행 모듈을 서비스하도록 설계하였다. 아울러 제안하는 미들웨어를 기반으로 전체적인 시스템의 동작을 검증하기 위해 다음 회진 의사에게 음성 재생 서비스를 제공하는 응용 시스템을 구축하였다. 응용 시스템은 진료의사의 프로필을 지닌 PDA가 고정노드에 접근하면 미들웨어는 PDA의 프로필을 컨텍스트 서버에 전송하여서 컨텍스트를 검색하고, 해당 자료를 전송받아 해당 미들웨어에서 알맞은 모듈을 실행함으로써 상황 인식에 따른 진료의사에 따른 알맞은 서비스를 수행함으로써 전체적인 시스템이 진료의사 개개인에 대해서 정상적으로 상황 인식을 하며 동작함을 확인 할 수 있었다. 본 시스템은 특정 임상환경에서 환자에게 실질적으로 진단 및 치료에 도움을 줄 수 있을 것이다.

참고문헌

1. M. Weiser, Some Computer Science Issues in Ubiquitous Computing, Commnunications of the ACM 1993: 36(7): 75-84.

2. 범희승, 외8인, “웹기반 PDA용 갑상선질환 핵의학진단보조시스템 개발,” 제18차 의료정보학회 추계학술대회, 2002.

3. 한승빈, 외5인, “알쯔하이머 질환 진단과 치료를 위한 PDA용 임상의사결정시스템(Clinical Decision Support System:CDSS)의 개발,” 제18차 대한의료정보학회 추계학술대회, 2002.

4. 윤희용, 유비쿼터스 컴퓨팅 미들웨어 기술, 대한전자공학회지 2003: 30(11).

5. P. Couderc, A. M. Kermarrec, “Improving Level of Service for Mobile Users Using Context-Awareness,” 18th IEEE Symposium on Reliable Distributed Systems 1999: 24-33.

6. A. Harter, A. Hopper, P. Steggles, A. Ward, P. Webster, “The anatomy of a Context-aware application,” Wireless Networks 2002: 8(2): 187-197.

7. Bluetooth Version 1.1 Profile, http://www.bluetooth.com.

8. J. Bray, C. F. Sturman, Bluetooth : Connect Without Cables, 홍릉과학출판사 2001.