DICOM SR 값을 EMR로 넘기는 방법
JSON, REST API, DICOMweb, XML, HL7 v2, FHIR — 어떤 방법이 있고 어떻게 고를까요.
SR 값이 EMR에 그대로 들어가지 않는 이유
DICOM SR(Structured Report)은 측정값과 소견을 트리 형태로 담은 DICOM 객체입니다. 값은 들어 있지만, 같은 측정이라도 장비와 모델, 소프트웨어 버전에 따라 구조와 명칭이 달라서 EMR이 곧바로 읽지 못하는 경우가 많습니다.
그래서 보통 PDF나 영상으로만 EMR에 들어가고, 값 자체를 쓰려면 연동 개발이 장비마다 반복됩니다. 해결의 첫 단계는 SR을 다른 시스템이 읽을 수 있는 형태로 바꿔서 전달하는 것이며, 그 형태는 여러 가지입니다.
한눈에 보는 비교
| 방법 | 어떤 방식인가 | 잘 맞는 경우 | 주의할 점 |
|---|---|---|---|
| JSON | SR 내용을 JSON으로 표현 | 새로 만드는 연동, 값을 직접 가공할 때 | 필드 이름과 구조를 약속해야 함 |
| REST API | 변환한 JSON을 HTTP로 EMR이나 중간 서버에 전송 | EMR이 REST 수신을 지원할 때 | 인증·재시도·오류 처리 설계 필요 |
| DICOMweb | PACS 등에서 HTTP로 SR을 조회(WADO-RS) | PACS가 DICOMweb을 지원할 때 | 태그 번호 기반이라 추가 해석 필요 |
| XML | DICOM의 XML 표현이나 XML 기반 기존 연동 | 이미 XML로 주고받는 환경 | 구조가 장황해 사람이 읽기 어려움 |
| HL7 v2 | 결과 메시지(ORU 등)로 변환 | 기존 병원 인터페이스 엔진이 HL7 v2일 때 | 매핑 설계와 인터페이스 엔진 설정 필요 |
| FHIR | Observation, 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)를 개발하고 있지만, 아직 공식 릴리스 전 버전이 공개돼 있어 적용 전에 최신 상태를 확인해야 합니다.
어떤 방법을 고를까
- EMR이 REST로 JSON을 받을 수 있다 → JSON + REST API
- PACS가 DICOMweb을 제공한다 → DICOMweb으로 조회한 뒤 JSON으로 정리
- 병원 인터페이스 엔진이 HL7 v2 중심이다 → HL7 v2 변환
- EMR이 FHIR을 지원한다 → FHIR 변환
- 이미 XML로 연동 중이다 → XML 유지
환자 정보에 대해 알아 둘 점
실제 SR에는 환자 정보가 들어 있을 수 있습니다. SR을 외부 서비스에 올리는 도구를 쓸 때는 파일이 어디서 처리되는지 먼저 확인하세요. SyncSR의 데모는 파일을 방문자의 브라우저 안에서만 처리하고 SyncSR 서버로 전송하지 않습니다. 확인 방법 보기
SyncSR이 지금 하는 일
- 지금 가능한 것: 데모에서 SR 파일을 올려, 값·단위·명칭을 바꾸지 않고 원본 구조 그대로 JSON으로 확인할 수 있습니다.
- 준비 중: 설치형 에이전트와 SDK. 현재는 데모와 베타 신청을 받고 있습니다.
- 수요에 따라 검토: REST 전송, FHIR·HL7 출력 등 다른 형식입니다.