DICOM SR 값을 EMR로 넘기는 방법

JSON, REST API, DICOMweb, XML, HL7 v2, FHIR — 어떤 방법이 있고 어떻게 고를까요.

SR 값이 EMR에 그대로 들어가지 않는 이유

DICOM SR(Structured Report)은 측정값과 소견을 트리 형태로 담은 DICOM 객체입니다. 값은 들어 있지만, 같은 측정이라도 장비와 모델, 소프트웨어 버전에 따라 구조와 명칭이 달라서 EMR이 곧바로 읽지 못하는 경우가 많습니다.

그래서 보통 PDF나 영상으로만 EMR에 들어가고, 값 자체를 쓰려면 연동 개발이 장비마다 반복됩니다. 해결의 첫 단계는 SR을 다른 시스템이 읽을 수 있는 형태로 바꿔서 전달하는 것이며, 그 형태는 여러 가지입니다.

한눈에 보는 비교

방법어떤 방식인가잘 맞는 경우주의할 점
JSONSR 내용을 JSON으로 표현새로 만드는 연동, 값을 직접 가공할 때필드 이름과 구조를 약속해야 함
REST API변환한 JSON을 HTTP로 EMR이나 중간 서버에 전송EMR이 REST 수신을 지원할 때인증·재시도·오류 처리 설계 필요
DICOMwebPACS 등에서 HTTP로 SR을 조회(WADO-RS)PACS가 DICOMweb을 지원할 때태그 번호 기반이라 추가 해석 필요
XMLDICOM의 XML 표현이나 XML 기반 기존 연동이미 XML로 주고받는 환경구조가 장황해 사람이 읽기 어려움
HL7 v2결과 메시지(ORU 등)로 변환기존 병원 인터페이스 엔진이 HL7 v2일 때매핑 설계와 인터페이스 엔진 설정 필요
FHIRObservation, DiagnosticReport 등 리소스로 변환EMR이 FHIR을 지원할 때매핑 설계 필요, HL7의 SR→FHIR 매핑 가이드는 공식 릴리스 전

방법별 설명

JSON

대부분의 시스템이 가장 쉽게 읽는 형태입니다. DICOM 표준에도 JSON 표현(PS3.18 Annex F)이 있지만 태그 번호를 키로 쓰기 때문에, 측정 이름과 값, 단위를 EMR이 바로 쓰려면 추가로 읽어서 정리하는 단계가 필요합니다.

REST API

변환한 JSON을 EMR이나 중간 서버의 HTTP API로 보내는 방식입니다. 구현은 단순하지만 인증, 실패 시 재전송, 중복 전송 방지를 어떻게 할지 정해야 합니다.

DICOMweb

PACS 같은 저장소가 DICOMweb 서비스를 제공하면, HTTP로 SR 인스턴스의 메타데이터를 JSON(application/dicom+json)이나 XML(application/dicom+xml)로 가져올 수 있습니다. 표준적인 경로지만, 가져온 내용을 EMR이 쓰는 형태로 옮기는 일은 따로 해야 합니다.

XML

DICOM 표준에는 XML 표현(PS3.19의 Native DICOM Model)이 있고, DICOMweb도 이 형식을 지원합니다. 이미 XML로 주고받는 연동 환경에 맞출 때 선택합니다.

HL7 v2

병원 인터페이스 엔진에서 널리 쓰이는 메시지 방식입니다. 측정값을 결과 메시지로 옮기려면 어떤 값이 어떤 항목에 들어갈지 약속(매핑)을 정해야 합니다.

FHIR

측정값을 Observation, 보고서를 DiagnosticReport 같은 리소스로 표현하는 방식입니다. HL7이 DICOM SR을 FHIR 리소스로 옮기는 매핑 가이드(DICOM SR to FHIR Resource Mapping IG)를 개발하고 있지만, 아직 공식 릴리스 전 버전이 공개돼 있어 적용 전에 최신 상태를 확인해야 합니다.

어떤 방법을 고를까

환자 정보에 대해 알아 둘 점

실제 SR에는 환자 정보가 들어 있을 수 있습니다. SR을 외부 서비스에 올리는 도구를 쓸 때는 파일이 어디서 처리되는지 먼저 확인하세요. SyncSR의 데모는 파일을 방문자의 브라우저 안에서만 처리하고 SyncSR 서버로 전송하지 않습니다. 확인 방법 보기

SyncSR이 지금 하는 일

참고 자료