abox.tools

언어: 한국어

DICOM 파일 여는 법, 그리고 그 안에 무엇이 있는지

병원 CD는 확장자 없는 파일이 든 폴더와 윈도우 XP 시절에 만들어진 뷰어입니다. 파일은 DICOM이고, 거기에 별난 것은 없습니다. 영상 하나는 필드가 가득한 헤더와 픽셀 덩어리입니다. 그것을 어떻게 보는지, 조작이 무슨 뜻인지, 그리고 그 파일이 그림 말고 무엇을 더 지니고 있는지입니다.

DICOM 뷰어 열기 CT, MRI, 엑스레이, 초음파를 창과 헤더와 계측까지.

Markdown으로 보기

짧은 답

DICOM 뷰어를 열고 파일이 든 폴더를 통째로 끌어다 놓으십시오. 파일은 이 기기에서 읽히고, 원래의 시리즈로 되돌려지고, 장비가 찍은 순서대로 쌓입니다. 아무것도 업로드되지 않고, 파일에 다시 쓰이는 것도 없습니다.

CD를 받아 들고 어느 파일을 열어야 하는지 궁금하다면, 전부입니다. 한꺼번에요. CT나 MRI는 파일 하나가 아닙니다. 한 장에 파일 하나이고, 흉부 검사라면 삼백 개쯤입니다.

병원 CD에 무엇이 들어 있는가

보통 네 가지이고, 그중 하나만 중요합니다.

영상에는 그 뷰어가 필요하지 않습니다. 형식은 공개된 표준이고 파일은 그 자체로 읽힙니다. CD에 든 실행 파일은 그것을 읽을 수 있는 프로그램 하나일 뿐 유일한 프로그램이 아닙니다.

파일에 왜 확장자가 없는가

DICOM에는 확장자가 필요 없기 때문입니다. 모든 파일은 자기 표식을 지니고 있습니다. 아무것도 아닌 128바이트, 그다음 DICM이라는 네 글자, 그다음 파일의 나머지가 어떻게 쓰였는지를 적은 작은 필드 묶음입니다. 읽는 쪽은 .dcm으로 끝나는 이름이 아니라 그 네 글자를 확인합니다.

파일 이름을 .dcm으로 바꿔도 아무것도 달라지지 않는 이유이고, 확장자를 고집하는 뷰어가 쓸데없이 까다로운 이유이기도 합니다. 병원 네트워크에서 바로 나온 파일은 그 128바이트와 표식조차 없습니다. 앞에 아무것도 없이 데이터만 있는 것이고, 읽는 쪽은 첫 번째 요소에서 인코딩을 알아내야 합니다. 그것은 정상 파일이지 깨진 파일이 아닙니다.

창과 레벨, 그것이 중요한 조작입니다

의료 영상을 사진과 다르게 만드는 유일한 것이고, 이미지 편집기로 의료 영상을 보면 안 되는 이유입니다.

CT 한 장에는 서로 다른 값이 사천 개쯤 들어 있습니다. 화면은 회색 이백쉰여섯 단계를 보여 줍니다. 그 사천 개 중 어느 것이 그 이백쉰여섯 중 어디로 갈지를 무언가가 정해야 하고, 그 결정이 창입니다. 그 아래는 전부 검정, 위는 전부 흰색, 그 사이의 범위가 회색들에 펼쳐집니다.

창을 옮기면 같은 파일이 다른 영상처럼 보입니다. 그것은 렌더링 오류가 아니라 바로 그 점이 핵심입니다. 폐와 뼈는 둘 다 그 한 장 안에 있지만 동시에 볼 수 없습니다. 부푼 폐의 결을 보여 주는 창은 모든 뼈를 순백으로 만들고, 갈비뼈의 잔가지 구조를 보여 주는 창은 폐 전체를 새까맣게 만듭니다.

CT의 숫자는 하운스필드 단위이고, 장비마다 다른 것이 아니라 절대적으로 정의되어 있습니다. 물이 0이고 공기가 −1000입니다. 세상 어느 CT에서나 그렇습니다. 그래서 뷰어가 이름 붙은 창 — 폐, 뼈, 뇌, 연부조직 — 을 내놓을 수 있고, 그것이 당신의 파일에서도 판독실 장비에서와 같은 뜻을 가집니다. 흔한 것들입니다.

MRI에는 그런 척도가 없습니다. 값이 시퀀스와 코일과 장비에 따라 달라지므로 프리셋에 이름을 붙일 근거가 없고, 처음 열릴 때의 창은 파일 자신이 요청하는 창입니다. 모든 영상이 하나씩 제안을 지니고 있습니다.

뷰어. 회색조 단면과 그 옆의 창과 레벨 조작, 흔히 쓰는 조직 범위의 미리 정해 둔 값들, 그리고 모서리의 검사 정보.
중요한 조작은 창과 레벨 둘입니다. 스캔은 화면이 보여 줄 수 있는 것보다 많은 계조를 담고 있고, 그중 어디를 보는지를 이 둘이 정합니다.

왜 가끔 장이 거꾸로 넘어가는가

뷰어는 파일을 어떤 순서로 놓을지 정해야 하고, 파일 안에 쓸 수 있는 것이 둘 있습니다.

Instance Number는 세는 숫자입니다. 뻔한 선택이고, 파일을 쓴 무언가가 매기는데, 그것이 환자가 누운 방향으로 번호를 매길 이유는 없습니다. 발에서 위로 재구성하면서 머리에서 아래로 번호를 매긴 검사는 거꾸로 넘어가고, 재구성 두 개를 합쳐 만든 시리즈는 번호가 아예 겹칠 수도 있습니다.

Image Position (Patient)는 그 장이 물리적으로 어디에 있는지를 밀리미터로, 장비가 아니라 환자에 붙은 좌표계로 적은 것입니다. 그것으로 정렬하면 번호가 무엇을 했든 옳고, 쓸모 있는 부수 효과도 있습니다. 장이 물리적 순서로 놓이고 나면 장 사이의 간격을 잴 수 있으므로, 뷰어가 장 간격이 5 mm라고 말해 줄 수 있고 — 파일이 절대 말해 주지 않는 — 한 장이 빠졌다는 것도 알아챌 수 있습니다.

무언가를 재기

영상은 측정된 자료이므로 그 위의 길이는 실제 길이입니다. 파일이 픽셀 간격을 밝혀 두었다면요. 그것은 Pixel Spacing이라는 필드 하나이고 단위는 밀리미터이며, 사실상 모든 CT와 MRI에 들어 있습니다.

초음파 영상, 스캔한 문서, DICOM으로 저장한 화면 캡처에는 없는 일이 잦습니다. 없는 곳에서 밀리미터로 답할 정직한 방법은 없고, 그래도 답을 내놓는 뷰어는 배율을 지어낸 것입니다. 픽셀 수는 파일이 답할 수 없는 물음에 대한 옳은 답입니다.

정사각형이 아닌 픽셀도 조심하십시오. CT 밖에서는 그것이 보통입니다. 픽셀로 재서 간격 숫자 하나를 곱하는 것은 두 값이 같을 때만 옳고, 축마다 자기 값으로 재야 합니다.

영상이 그림 말고 무엇을 지니고 있는가

사람들이 틀리는 부분이고, 이런 파일을 조심해야 하는 이유입니다.

DICOM 파일은 메타데이터가 붙은 그림이 아닙니다. 그림이 들어 있는 진료 기록입니다. 헤더는 필드의 목록이고, 흔한 임상 영상이라면 이런 것들이 들어 있습니다.

받아 든 파일이 무엇이든 그 전부를 지니고 있고, 그것은 파일이 어디로 가든 함께 갑니다. 이름을 지우는 것으로는 부족합니다. 생년월일과 우편번호만 한 크기의 기관과 촬영 시각이면 이름만큼이나 한 사람을 가리키고, 검사 UID는 아카이브에 접근할 수 있는 사람에게 그 사람을 정확히 가리킵니다.

어떤 장비는 환자 이름의 두 번째 사본을 비공개 필드에 남기기도 합니다. 그 필드는 뜻이 어디에도 공개되지 않은 것이고, 안에 무엇이 있는지 알 수 없기 때문에 대부분의 익명화 도구가 손대지 않습니다.

이 파일에서 환자를 가리키는 것들을 늘어놓은 카드. 이름, 식별 번호, 생년월일, 검사 설명.
스캔이 영상 말고도 지니고 다니는 것들입니다. 이런 파일을 메일로 보내지 말아야 하는 이유를 말해 주는 카드입니다.

보려고 영상을 올리지 마십시오

이 문제가 흔히 풀리는 방식은 ‘dicom viewer online’ 검색과 업로드 칸입니다. 그때 방금 일어난 일은 낯선 사람이 진료 기록의 사본을 갖게 된 것입니다. 픽셀과 이름과 생년월일과 등록번호와 아카이브로 되돌아가는 열쇠까지 말입니다.

그럴 이유가 없습니다. DICOM 파일을 읽는 것은 헤더를 해석하고 정수를 몇 개 풀어내는 일이고, 브라우저는 그것을 아주 잘합니다. 그래서 여기 있는 뷰어에는 네트워크 기능이 아예 없습니다. fetch도, XMLHttpRequest도, 무언가가 시도한다 해도 파일을 보낼 수 있는 것이 없습니다. 페이지를 한 번 불러온 다음 인터넷을 끊어도 영상은 계속 열립니다.

온라인 변환기에 파일을 올려도 안전한가요?가 그 주장을 이 사이트에서든 다른 사이트에서든 어떻게 확인하는지 설명합니다. 확인해 볼 값이 가장 큰 파일 종류가 바로 이것입니다.

브라우저가 할 수 없는 것

두 가지이고, 둘 다 분명히 말해 둘 만합니다.

판독용 뷰어가 아닙니다. 화면은 보정되어 있지 않고, 브라우저는 검증된 렌더링 경로가 아니며, 어떤 웹 페이지도 규제 평가를 거치지 않았습니다. 임상적 판단을 위해 영상을 읽는 일은 그것을 판독한 장비의 몫입니다. CD에 무엇이 들어 있는지 보기, 강의 자료나 논문에 쓸 한 장 꺼내기, 헤더 읽기, 다른 프로그램이 왜 이 파일을 거부하는지 알아보기는 모두 브라우저에서 영상을 열 충분한 이유입니다.

어떤 압축 영상은 디코딩되지 않습니다. DICOM은 여러 압축 방식을 허용하고 브라우저는 그중 하나를 구현합니다. 압축하지 않은 파일, run-length로 부호화한 파일, baseline JPEG, 그리고 병원 내보내기가 대부분 쓰는 JPEG Lossless는 모두 열립니다. JPEG 2000과 JPEG-LS와 동영상 형식은 컴파일된 라이브러리 수 메가바이트짜리 코덱을 요구합니다. 그림을 디코딩할 수 없는 경우에도 헤더는 온전히 읽히는데, 대개는 그쪽이 애초에 보러 온 절반입니다.