| Home | E-Submission | Sitemap | Editorial Office |  
top_img
Korean Journal of Otorhinolaryngology-Head and Neck Surgery > Volume 55(1); 2012 > Article
Korean Journal of Otorhinolaryngology-Head and Neck Surgery 2012;55(1): 14-19.
doi: https://doi.org/10.3342/kjorl-hns.2012.55.1.14
The Development of an Automatic Chronic Otitis Media Operation Recording System with Concurrent Data Input Process.
Sung Wan Byun, Soo Yeon Jung, Ilhoe Jung, Jin Young Park
1Department of Otorhinolaryngology-Head and Neck Surgery, School of Medicine, Ewha Womans University, Seoul, Korea. byunsw@ewha.ac.kr
2Graphics and Media Lab, Seoul National University, Seoul, Korea.
중이염 수술 자료 입력과 동시에 작성되는 자동 수술기록표 시스템의 개발
변성완1 · 정수연1 · 정일회2 · 박진영1
이화여자대학교 의학전문대학원 이비인후과학교실1;서울대학교 그래픽스 및 미디어 연구실2;
ABSTRACT
BACKGROUND AND OBJECTIVES:
It takes considerable time and effort to make an operation record for the chronic otitis media. Also there are risks of incorrectness or omission of data. We developed an automatic operation recording system in order to reduce the burden of the resident keeping the record and to give completeness to the operation data.
SUBJECTS AND METHOD:
The model-view-controller (MVC) pattern isolates the domain logic (controller) from the user interface (data model-view), permitting independent development. We used the MVC pattern to design the program it since it matched with the feature of the operation recording system.
RESULTS:
We implemented this system using the Python programming language, which is composed of 98 fields and 4 different types of widgets linked to those fields. The outputs of the 4 views can be easily copied and pasted to the word processor and the electronic medical recorder. In the pilot test, this system reduced significant amount of time and effort needed for operation recording.
CONCLUSION:
The automatic operation recording system reduces the resident's works and the operation data loss. Furthermore, it could be applied to other types of operation records.
Keywords: Otitis mediaOperation record

Address for correspondence : Sung Wan Byun, MD, PhD, Department of Otorhinolaryngology-Head and Neck Surgery, School of Medicine, Ewha Womans University, 1071 Anyangcheon-ro, Yangcheon-gu, Seoul 158-710, Korea
Tel : +82-2-2650-5650, Fax : +82-2-2650-5604, E-mail : byunsw@ewha.ac.kr

서     론


  
본 저자들은 그 동안 전공의들의 업무 부담을 줄이기 위한 노력을 지속해왔다. 편도 및 아데노이드 적출술, 부비동 내시경 수술, 후두 미세 수술 등 이비인후과에서 자주 시행하는 수술의 의사 처치 명령(order)을 표준화한 critical pathway를 개발하여 보고한 바가 있으며,1,2) 흔한 질환 또는 수술에서 입원기록, 경과기록 및 수술기록표 업무의 감소를 위해 단기 입원병록지를 개발하여 보고한 바 있다.3)
   지도 전문의가 첨삭 또는 수정하는 것을 고려한다 해도 대부분의 국내 수련병원에서 일차적인 수술기록표의 작성은 전공의의 업무이다. 문서 편집기(word processor)와 개인용 컴퓨터의 보급, 예문 기능을 활용할 수 있는 전자 의무 기록(electronic medical records, EMR)이 개발되어 과거에 수기 또는 타자기(typewriter)로 작성하는 경우보다 업무가 점차 용이해졌지만, 중이염 수술은 타 수술에 비해 수술 소견과 해부학적 부위, 변형 정도, 청력 재건 방법, 병변의 범위와 정도, 골 파괴의 범위와 정도가 다양하다는 특징이 있어 수술기록표를 작성하기 어렵다. 또한 중이염 수술 자료 관리를 위한 데이터베이스와 audit system이 여럿 개발되었지만,4,5,6,7,8,9) 처음부터 수술기록표 출력을 염두에 두고 개발된 하나의 예외를9) 제외하면, 자료 입력은 수술기록표 작성과 별개의 작업이라 전공의의 업무를 가중시킬 수 있다.
   수술기록표에는 여러 형식이 존재한다. 국문 또는 국영문을 혼용하여 문장체로 기술하는 방법, 영문만을 사용하여 문장체로 기술하는 방법, 점검 목록(check list) 형태로 기록하는 방법, EMR에서 주어진 화면(form)에 클릭(click) 또는 입력으로 해결하는 방법, 그림을 위주로 간단한 그림 설명을 기록하는 방법, 전술한 여러 가지 방법들을 혼용하는 방법 등이 있다. 각 방법마다 장단점이 있지만 점검 목록(check list) 형태로 기록하는 방법, EMR에서 주어진 화면(form)에 클릭(click) 또는 입력으로 해결하는 방법이 입력시간이 적게 소요되고 정보의 누락을 방지할 수 있는 장점을 가지고 있다. 그러나, 정해진 항목 이외의 변수가 있을 때 입력 서식 자체의 수정이 필요하여 해당 병원 전산과 또는 외부 EMR 개발 업체에 의뢰가 필요하므로 수술기록표 내용의 변화에 따른 신속한 반영이 불가능하다는 단점이 있다.
   본 저자들은 전공의 업무 부담의 감소와 중이염 수술 자료의 누락 방지를 동시에 가능하게 하며 유연한 체계의 입력 서식을 유지할 수 있는 자동 수술기록표 시스템을 개발하였기에 이 경험과 방법론을 보고하고자 한다.

재료 및 방법

프로그래밍 언어
  
자동 수술기록표 시스템을 프로그램할 언어를 선택하는 데 여러 조건이 있었다. 저작권(copyright) 문제가 있을 수 있는 상업용(commercial) 프로그래밍 언어를 피해야 했다. 추후 다른 플랫폼(platform)으로의 이식성, 즉 Microsoft Windows뿐만 아니라 Mac OS, Linux와 같은 운영체제, 스마트폰 OS(Android OS, Windows Mobile 등)에서의 실행 가능성을 고려하였다. 상기 조건을 만족시키는 프로그래밍 언어에는 Java, Python, Ruby 등이 있지만, 이 중 프로그램의 개발속도, 용이성, 이식성, 편리함 면에서는 Python이 가장 유리하다고 판단하였다.
   Microsoft Windows XP, Microsoft Windows 2000 운영체제의 PC에서 Python 프로그래밍 언어(version 2.6)로 본 프로그램을 구현(implementation)하였다.

소프트웨어 공학의 디자인 패턴(Design pattern)
   디자인 패턴은, 프로그램 개발에서 자주 나타나는 과제를 해결하기 위한 방법 중 하나로, 과거의 소프트웨어 개발 과정에서 발견된 설계의 노하우를 축적하고 이름을 붙여, 이후에 재이용하기 좋은 형태로 특정의 규약을 묶어서 정리한 것이다.12) 자동 수술기록표 시스템을 프로그래밍할 때 선택한 디자인 패턴은 MVC 패턴이다. MVC 패턴은 model, view, controller 세가지 부분으로 이루어져 있다. Model은 자료(data)를 생성, 저장, 처리하는 역할을 하는 부분으로 자동 수술기록표 프로그램에서는 수술 자료 자체와 입력형식 부분이다. View는 model로부터 받은 자료를 여러 가지 형태로 사용자에게 보여주는 역할을 하며 본 프로그램에서는 다양한 형태의 수술기록표 출력 부분이 해당된다.12) Controller란 소프트웨어의 흐름을 제어하는 것으로 view와 model 사이에서 관계를 설정하여 주는 부분을 말한다(Fig. 1). 사용자의 입력으로 생성되는 단일한 수술 자료, 다양한 출력 형식의 수술기록표, 두 가지가 MVC 패턴의 model, view와 부합하기 때문에 본 프로그램에 적합한 패턴으로 판단하였다.

프로그램 개발 원칙
  
프로그램 개발은 다음과 같은 원칙하에 진행되었다. 프로그램의 개발 목적 중 하나가 수술기록표 작성 시간의 단축을 통해 전공의 업무 부담을 감소시키는 데 있으므로 최소한의 입력과 클릭만으로 입력을 가능하도록 하여 기존의 수술기록표 작성보다 시간을 단축시킬 수 있어야 했다. 또한 기존 audit system의 목표인 자료 축적을 할 수 있도록 자료를 범용의 데이터베이스로 축적할 수 있어야 했다.
   추후 수술법의 변화, 수술기록표에 기록될 집도의의 변화 등을 쉽게 반영할 수 있고 또한 다른 수술에서도 응용하여 사용할 수 있도록 프로그램을 핵심 엔진 부분(controller)과 data model-view 부분으로 분리하여 controller의 수정 없이 data model-view의 수정만으로 출력물을 수정할 수 있도록 하였다. 이 경우 data model-view를 다른 수술용으로 정의할 때에는 controller의 수정 없이 다른 수술의 수술기록표용으로 사용할 수 있다. 마지막으로 병원의 IT환경[EMR, order communication system(OCS)], 문서 편집기, 데이터베이스 프로그램과 잘 부합하도록 하였다.

시험 적용(Pilot test)
   중이염 수술기록표를 작성하는 연차에 해당하는 본 교실의 모든 전공의(3인)에게 visual analog scale(VAS) 설문으로 기존의 방식으로 수술기록표를 작성하는 노력과 시간을 10이라 할 때 본 프로그램 사용시 어느 정도로 경감되는지, 수술기록표 작성 시간이 얼마나 걸리는지를 측정하여 보았다.

결     과

   입력할 수술 자료(data)는 진주종 및 염증 병변의 분포 범위, 정도, 이소골 상태, 고삭신경의 상태 등 총 98개의 필드(field)로 구성하였다. 98개의 필드를 한 화면에 나열하기에는 화면 공간의 제약이 있어 수술기록표의 부분별 기술 순서에 따라 Prep(preparation, 15필드), Tymp(tympanum, 8필드), Mastoid (mastoid cavity & mastoidectomy, 22필드), Ossicle(13필드), Epi_Meso(epitympanum & mesotympanum, 13필드), Ossiculo(ossiculoplasty, 21필드), Footer(6필드)의 8개의 화면(frame)으로 분할하였다(Fig. 2).
   자료를 입력할 때는 이미 나열된 선택 항목을 클릭하여 입력하는 것이 가장 빠르므로 가능한 많은 경우의 선택 항목을 나열하였다. 기존 선택항목에 없는 자료가 있는 경우 기타 항목을 선택하고 직접 입력이 가능한 입력란을 별도로 만든 경우도 있으며 이런 경우가 많이 발생할 때 쉽게 data model-view가 기술된 부분에 1줄의 새로운 선택항목과 해당하는 수술기록표의 문구를 추가하는 것만으로, 프로그램의 핵심 엔진 수정 없이 화면 입력부분에 변화가 반영될 수 있었다.
   화면에 나타나는 입력을 받는 부분을 위젯(widget)이라고 하며 1) yes/no, on/off 또는 checked/unchecked와 같이 유무로 단일 선택하는 27개의 binary check button 위젯, 2) 여러 선택 항목을 다중 선택할 수 있는 13개의 multiple check button 위젯, 3) 여러 선택 항목 중 하나만 선택할 수 있는 40개의 radio button 위젯, 4) 직접 키보드로 입력하는 입력란인 18개의 data entry 위젯, 모두 98개의 위젯을 사용하였다(Fig. 2). 그 외에 위젯에 여러 가지 편의 기능을 추가하였다.
   프로그램을 실행하는 날짜를 기본 수술날짜로 설정되도록 하고 감소 버튼을 누르면 날짜 입력란의 날짜가 하루씩 전일로 변화하게 하였다. 수술일을 직접 입력하는 것도 가능하지만, 2011년 5월 13일을 2011년 5월 13일, 2011-5-13, 2011-05-13, 2011.5.13 등 여러 형식으로 입력하면 자료의 일관성을 해칠 수 있어 직접 입력하는 방식대신 감소 버튼을 클릭하게 함으로써 일관된 형식의 날짜가 입력될 수 있도록 하였다. 본 프로그램을 사용하기 이전에는 수술기록표를 수술 당일에 작성하지 못하는 경우도 있었지만, 본 프로그램의 이용 후에는 대부분 당일 수술 직후에 수술기록표를 작성하고, 집도의 이메일로도 발송하였으므로 사실상 날짜 편의 기능을 쓰게 되는 경우는 드물었다. 또한 각 위젯이 조건에 따라 화면에 표시 또는 은닉될 수 있도록 하는 기능을 넣었다. 필요할 때 추가로 입력해야 하는 소견의 항목은 그 전 항목의 체크 상태에 따라서 자동으로 표시되도록 하였다. 예를 들면 이소골 상태를 정상으로 체크할 경우 이소골 손상 상태의 세부 항목이 자동으로 숨겨지도록 지능형(smart) check list를 구현하였다.
   출력되는 view 부분은 영문 문장체 형식, 국영문 혼용형식, 번호로 소견을 나열하는 요약형식, 체크 리스트 형식의 네 종류로 구성되었다(Fig. 3).
   다음과 같이 'Tymp' 화면(frame)에 'Perforation Size' rh(radio button horizontal) 위젯, 'Perforation Location' rh 위젯, 'Attic destruction' rh 위젯과 그 선택 사항을 기술하고,
   db.set_frame('Tymp')
   db.rh('Perforation Size')
   db.____('no')
   db.____('small')
   db.____('moderate')
   db.____('large')
   db.____('near_total')
   db.____('multiple')
   db.rh('Perforation Location')
   db.____('central')
   db.____('ant_sup')
   db.____('ant_inf')
   db.____('post_sup')
   db.____('post_inf')
   다음과 같이 영문 문장체 수술기록표로 출력하는 view 부분을 기술하면, 'Perforation Size' 위젯과 필드는 수술기록표에 지정한 'Tympanic membrane had %s' 부분을 자동으로 입력하고, 선택 항목에 따라 지정된 문구로 %s 부분을 치환하게 하였다. 따라서 'Perforation Size' 위젯에서 'small'을 선택하고, 'Perforation Location' 위젯에서 'ant_inf'를 선택하면 수술기록표에는 'Tympanic membrane had a small perforation at the antero-inferior quadrant'가 입력되게 하였다.
   view.rh('Perforation Size', 'Tympanic membrane had %s')
   view.____('no', 'no perforation')
   view.____('small', 'a small perforation')
   view.____('moderate', 'a moderate perforation')
   view.____('large', 'a large perforation')
   view.____('near_total', 'a near-total perforation')
   view.____('multiple', 'multiple perforations')
   view.rh('Perforation Location', 'at the %s.')
   view.____('central', 'central portion')
   view.____('ant_sup', 'antero-superior quadrant')
   view.____('ant_inf', 'antero-inferior quadrant')
   view.____('post_sup', 'postero-superior quadrant')
   view.____('post_inf', 'postero-inferior quadrant')
   다른 국영문 혼용체의 수술기록표로 출력하는 view에서는 'Perforation Size' 위젯에서 'small'을 선택하고, 'Perforation Location' 위젯에서 'ant_inf'를 선택한 경우 마찬가지로 수술기록표에 '고막에는 작은 천공이 전하부에 있었다'가 입력되게 하였다.
   view.rh('Perforation Size', '고막에는 %s')
   view.____('no', '천공이 없었다.')
   view.____('small', '작은 천공이')
   view.____('moderate', '중간 크기의 천공이')
   view.____('large', '큰 천공이')
   view.____('near_total', '거의 전천공이')
   view.____('multiple', '다발성의 천공이')
   view.rh('Perforation Location', '%s에 있었다.')
   view.____('central', '중심부')
   view.____('ant_sup', '전상부')
   view.____('ant_inf', '전하부')
   view.____('post_sup', '후상부')
   view.____('post_inf', '후하부')
   따라서 원하는 형식으로 지정한 형태의 출력물을 만들어 내는 view를 얼마든지 추가할 수 있어, XML 형식, CSV 형식 등 Microsoft Excel이나 Microsoft Access 같은 데이타베이스 프로그램에 입력할 수 있는 자료 형태의 출력물을 만들어낼 수 있다.
   해당 view로 출력한 경우 자동으로 그 내용을 클립보드에 복사해주어 EMR의 입력부분이나 문서 편집기에 바로 붙여넣기를 할 수 있게 하였다.
   메뉴에 지정된 집도의, 전공의 자기 자신 또는 수석 전공의에게 이 자료 파일을 작성함과 동시에 이메일의 첨부 파일로 보내는(Simple Mail Transfer Protocol) 기능을 넣었다. 이 자료 파일이 있으면 본 프로그램에서 불러들여 여러 가지 형태의 수술기록표를 바로 볼 수 있게 하였다.
   시험 적용(pilot test) 결과, 숙련도에 따라 다르나 10분에서 길게는 30분까지 걸리던 유양동 삭개술 및 고실 성형술(tympanomastoidectomy) 수술기록표 작성 시간을 3분 38초
~6분 25초(5분 11초±1분 9초)로 단축시킬 수 있었다. 중이염 수술기록표를 작성하는 전공의에게 VAS 설문 결과, 기존 수술기록표를 작성하는 노력과 시간을 10이라 할 때 본 프로그램 사용시 2~3으로 경감된다는 결과를 얻었다.
   수술자료의 축적을 위해 필요한 데이터 파일의 용량을 확인하였을 때 1건의 수술 자료는 53
~59 kB(56.2±2.3)이었으며, 이는 한 장의 CD(700 MB)에 저장할 경우 약 12800건, 한 장의 DVD(4.7 GB)에 저장할 경우 약 88000건을 담을 수 있는 자료 파일 크기로 자료 축적에 용량 문제를 일으키지 않을 수준이었다.

고     찰

   외래에서 빠른 환자 파악이 가능하도록 원하는 부분만 출력되는 요약본 view를 작성하면 본 프로그램으로 입력한 기존의 자료도 얼마든지 요약본의 수술기록표로 출력할 수 있다. 실제 적용 예로 국내 의료기관 인증 및 국제 의료 기관 평가 위원회(joint commission international) 인증 과정에서 수술의 절차(procedures)와 수술 소견(findings)을 각각 다른 항목으로 입력해야 한다는 요구 사항이 발생하여,13) 이를 OCS-EMR에 반영하게 되었다. 중이염 수술기록표는 그 특성상 수술의 절차와 소견을 명확히 분리하기 어렵고, 이렇게 분리할 경우 읽기가 더 어려워지는 문제가 있었다. 영문 문장체 형식 view의 출력물을 수술 절차란에 번호로 소견을 나열하는 요약형식 view의 출력물을 수술 소견란에 입력하는 방법으로 이와 같은 문제를 해결하였다. 이는 단일 data model에 여러 view를 출력하는 본 프로그램의 유용성을 확인할 수 있는 경우였다.12) 또한 이는 핵심 엔진 부분(controller)을 가지고, 필요한 수술에 적합한 data model과 view만 작성한다면 다른 수술에도 적용 가능한 방법론이라 할 수 있다. 거의 모든 수술기록표의 내용이 유사한 편도 및 아데노이드 적출술과 같은 수술보다는 만성 중이염 수술처럼 소견과 절차가 다양한 수술에 특히 유리한 프로그램이라 할 수 있다. 나아가 본 프로그램은 최대한 유연성(flexibility)과 확장성을 가지도록 작성하였기 때문에 사용자의 필요, EMR, OCS, 문서 편집기, 데이타베이스에서 요구하는 대로 출력물을 만들어 낼 수 있었다. 예를 들어, 안면신경의 dehiscence에 대한 자료를 집계하기 위해서는 db.cm('Natural exposure')로, dura, sig_sinus, scc, facial_n(복수개 선택 가능) 항목이 들어있는 database model을 작성하고, 출력물의 view에 view.cm('Natural exposure', 'Natural exposure: %s,')를 지정하면 Natural exposure: facial_n, 또는 Natural exposure:, 와 같이 출력되어 데이터베이스 프로그램에 CSV형식으로 import하여 집계할 수 있었다.
   본 프로그램은 Python 프로그래밍 언어를 사용하였기 때문에 저작권 문제가 없으며 Platform 독립성이 있어 Mac OS, Linux 등의 다른 개인용 컴퓨터 OS로 이식이 가능하며 스마트 폰 또는 스마트 패드의 OS(Android OS, Windows Mobile)로도 이식이 가능할 것이다.10,11)
   정형화된 문구의 수술기록표를 양산한다는 비판이 있을 수 있지만, 현재 대부분의 수련 병원에서 전공의가 문서 편집기에서 복사 및 붙여넣기를 이용하여 짜집기로 수술기록표를 작성하는 현실을 감안한다면, 본 프로그램에서 자동 작성해주는 문구와 차이는 없을 것이라 본다. 본 프로그램의 경우에는 출력 문구의 원하는 자리에 필요한 만큼의 문장을 마음대로 입력할 수 있게 허용하고, 이렇게 입력한 문장도 자료 파일에 보존하므로 자동 작성의 이점을 최대한 누리면서도 필요한 경우 무제한의 유연성을 보장하는 이상적인 자동 수술기록표 프로그램에 가깝다고 할 수 있다. 더불어 전공의 부담의 감소와 수술 기록 데이터 베이스의 축적이라는 일석이조의 효과를 얻을 수 있다.
   전자의무기록을 사용하는 병원의 공통적인 애로사항으로 고막 관찰 소견 또는 수술 소견의 그림 스케치(drawing sketch)를 전자의무기록에 간편하게 입력하기 어려운 현실이 있다. 의사의 그림은 몇 줄의 서술보다 더 가치 있는 정보를 신속하고 직관적으로 기록, 전달할 수 있음을 대부분 임상의사들은 경험으로 알고 있다. 기술적인 난점이 많지만, 향후의 연구에서는 수술 소견의 그림도 자료 입력과 연계할 수 있는 방안을 모색하여 보고하고자 한다.


REFERENCES
  1. Byun SW. Implementation of critical pathways in the field of otolaryngology. Korean J Otolaryngol-Head Neck Surg 2002;45(5):427-32.

  2. Byun SW, Yoon SO, Chang JA, Lee JY, Shin HJ, Hong SK. Implementation of critical pathway for tonsillectomy and adenoidectomy. J Clinical Otolaryngol 2000;11(2):256-60.

  3. Hong SK, Byun SW, Kim JY, Kim MJ, Cho YH, Shin HJ, et al. Efficiency of short-term admission medical records in patients with common otolaryngologic diseases. Korean J Otolaryngol-Head Neck Surg 2001;44(8):864-70.

  4. Rombout J, Moorman PW, Holm AF, Pauw KH. The methodical collection of ear surgery data as a basis for quality control. Eur Arch Otorhinolaryngol 2002;259(4):184-92.

  5. Mahendran S, Bennett AM, Jones SE, Young BA, Prinsley PR. Audit of specialist registrar training in tympanomastoid surgery for chronic otitis media. J Laryngol Otol 2006;120(3):193-9.

  6. Yung M, Gjuric M, Haeusler R, Van de Heyning PH, Martin C, Swan IR, et al. An international otology database. Otol Neurotol 2005;26(5):1087-92.

  7. Castleden WM, Norman PE, Stacey MC, McGechie D, Brooks JG, Fisher J, et al. How accurate is a computerized surgical audit when resident medical staff collect the data? Aust N Z J Surg 1992;62(7):563-8.

  8. Harkness P, Brown P, Fowler S, Grant H, Ryan R, Topham J. Mastoidectomy audit: results of the Royal College of surgeons of England comparative audit of ENT surgery. Clin Otolaryngol Allied Sci 1995;20(1):89-94.

  9. Kim HJ. A standardized database management of middle ear surgery in Korea. Acta Otolaryngol Suppl 2007;(558):54-60.

  10. Prechelt L. An empirical comparison of C, C++, Java, Perl, Python, Rexx, and Tcl for a search/string-processing program. IEEE Computer 2000;30(10):23-9.

  11. Python software foundation. Python programming language-official website. http://www.python.org. Updated May 25, 2011. Accessed May 26, 2011.

  12. Gamma E, Helm R, Johnson R, Vlissides J. Design patterns: elements of reusable object-oriented software. 1st ed. USA: Addison-Wesley;1994. p.2-6.

  13. Joint Commission Resources, Inc. Joint commission international. http://www.jointcommissioninternational.org. Accessed May 26, 2011.

Editorial Office
Korean Society of Otorhinolaryngology-Head and Neck Surgery
103-307 67 Seobinggo-ro, Yongsan-gu, Seoul 04385, Korea
TEL: +82-2-3487-6602    FAX: +82-2-3487-6603   E-mail: kjorl@korl.or.kr
About |  Browse Articles |  Current Issue |  For Authors and Reviewers
Copyright © Korean Society of Otorhinolaryngology-Head and Neck Surgery.                 Developed in M2PI
Close layer
prev next