DCode

CMCIS - MDEC Protocol Gateway

프로젝트 개요

항목 내용
기간 2014.06 — 2016.12 (2년 7개월)
역할 MDEC 임베디드 소프트웨어 개발
제품 의료장비 프로토콜 변환 게이트웨이 (MDEC)
기술스택 C/C++, Linux, UART, USB, TCP/IP, 의료장비 통신 프로토콜

프로젝트 배경

CMCIS(Cardiology Monitoring and Central Information System)는 국책과제로 진행된 심장학 중앙 관제 시스템 프로젝트다. 여러 제조사의 심장학 의료장비에서 생성된 데이터를 하나의 시스템에서 통합 관리하는 것이 최종 목표였다.

이 과제에서 소속 회사가 담당한 부분은 MDEC(Medical Device Exchange Communication) 장비였다. MDEC은 각 장비 제조사의 고유 프로토콜로 되어 있는 생체 신호 정보를 CMCIS에서 정의한 표준 프로토콜로 변환하여 중계하는 게이트웨이 역할을 한다. 의료 현장에서는 여러 제조사의 장비(심전도, 혈압계, 맥박 산소포화도 측정기 등)가 혼용되고 있고, 각각 다른 통신 방식과 데이터 포맷을 사용하기 때문에, 이들을 CMCIS로 연결하기 위한 중계 장치가 필요했다.


담당 범위


주요 기능

의료장비 데이터 수신 및 프로토콜 변환

MDEC은 최대 6종의 측정 장비로부터 데이터를 수신한다. 장비마다 물리 인터페이스(UART 또는 USB)는 물론, 자료 구조와 데이터 형식이 제각각이었다.

CMCIS 표준 프로토콜 중계

MDEC이 CMCIS 표준으로 변환한 데이터는 유선 또는 무선 LAN을 통해 호스트 서버(CMCIS)로 전송된다. RS-232 시리얼 통신과 TCP/IP를 모두 지원하며, CMCIS 표준 규격에 정의된 패킷 구조에 따라 데이터를 구성한다.


설계 및 구현

MDEC 소프트웨어 아키텍처

MDEC 소프트웨어는 Linux 환경 위에서 동작한다. 크게 세 레이어로 구성된다.

  1. 통신 인터페이스 레이어: UART/USB 물리 포트를 통해 장비 데이터를 수신. 장비별 통신 설정(보드레이트, 패리티, 데이터 비트 등)을 관리
  2. 프로토콜 변환 레이어: 각 장비의 고유 데이터 포맷을 해석하고 CMCIS 표준 패킷 구조로 변환
  3. 전송 레이어: 변환된 데이터를 TCP/IP 스택을 통해 CMCIS 서버로 전송. 패킷 손실 시 재전송 처리

고려되었던 설계 요소


개발 환경 및 운영


결과


참고 자료


회고

MDEC은 그 자체로 완결된 제품이라기보다 CMCIS라는 큰 시스템의 구성 요소 중 하나였다. 프로젝트 전체 아키텍처를 설계하는 것이 아니라, 주어진 인터페이스 규격 안에서 게이트웨이 장비의 소프트웨어를 구현하는 데 집중했다.

프리랜서로 참여했기 때문에 단기간에 결과를 내야 하는 압박이 있었다. 여러 제조사의 장비를 직접 연결해보면서 예상치 못한 프로토콜 차이를 발견하고 대응하는 과정이 까다로웠지만, 다양한 의료장비의 통신 방식을 경험할 수 있었다.