DICOM 플러그인
DicomPlugin으로 의료 이미지를 보기
DICOM 플러그인은 Doconut에 의료 이미지 뷰어 기능을 추가합니다: 다중 프레임 DICOM 파일은 애니메이션 개요, 개별 프레임, 또는 두 가지 모두로 렌더링됩니다. DICOM은 플러그인 전용 포맷이며 — 이 플러그인(및 해당 라이선스 기능) 없이는 .dcm 파일을 전혀 열 수 없습니다.
패키지 설치
dotnet add package Doconut.NETStandard.Dicom버전 지정이 없는 명령은 최신 안정 버전을 설치합니다. 플러그인을 현재 26.8.0 릴리스에 고정하려면 버전을 별도로 전달합니다:
dotnet add package Doconut.NETStandard.Dicom --version 26.8.0DICOM 패키지를 Doconut.NETStandard와 동일한 버전으로 유지하십시오. 패키지 ID는 Doconut.NETStandard.Dicom이며, .26.8.0은 다운로드된 .nupkg 파일 이름에만 나타납니다.
플러그인 등록
builder.Services.AddDoconut(options =>
{
options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});플러그인(Name: "Doconut DICOM Viewer")은 .dcm 및 .ima 확장자를 위한 뷰어를 Dicom 기능에 의해 제한하여 등록합니다. 누락되었거나 충분하지 않은 비임시 권한은 일반적으로 AddDoconut() 중에 실패합니다. 내장 뷰어가 이러한 포맷을 처리하지 않기 때문에, 런타임 게이트는 나중에 기능이 사용 불가능해지면 강제로 실패합니다:
LicenseException: This document type requires the 'Dicom' plugin license.DICOM 파일 열기
var token = await viewer.OpenDocumentAsync(path, new DicomConfig
{
DisplayMode = DicomDisplayMode.AnimationAndFrames
});표시 모드
다중 프레임 DICOM 파일은 세 가지 방식(DicomDisplayMode)으로 표시될 수 있습니다:
| 모드 | 생성된 페이지 | 사용 용도 |
|---|---|---|
AnimationOnly | 페이지 1 = 모든 프레임을 순환하는 애니메이션 GIF | 빠른 시네마틱 검토 |
FramesOnly | 페이지 1..N = 프레임당 정적 PNG 하나 | 프레임별 진단 탐색 |
AnimationAndFrames (default) | 페이지 1 = 애니메이션 GIF, 페이지 2..N = 정적 프레임 | 한 문서에서 개요와 상세 |
애니메이션 타이밍은 AnimationFrameDelayMs(기본값 100 ms = 10 FPS; GIF 세분화는 10 ms 단위)와 LoopCount(0 = 무한 반복)로 제어됩니다.
해상도
DicomConfig는 기본적으로 축당 100 DPI로 렌더링합니다. 해상도 속성에는 알아두면 좋은 대체 체인이 있습니다: HorizontalResolution/VerticalResolution을 명시적으로 설정하지 않으면, 해당 값이 설정된 경우 BaseConfig.ImageResolution을 따르고, 그렇지 않으면 100으로 대체됩니다.
// Uniform bump via the base property…
new DicomConfig { ImageResolution = 150 };
// …or per-axis control
new DicomConfig { HorizontalResolution = 200, VerticalResolution = 150 };.NET Standard에서 DICOM 메타데이터 가용성
DICOM 페이지 렌더링, 개별 프레임, 애니메이션, 변환 및 워터마킹이 지원됩니다. 기술 태그 메타데이터는 메타데이터 리더가 .NET 8 빌드만 제공하기 때문에 .NET Standard 패키지에서는 사용할 수 없습니다.
Viewer.GetDicomMetadataAsync(token)은 DICOM 세션에 대해 null을 반환하고 한 번만 경고를 기록합니다. 해당 ?token=…&meta 미들웨어 요청은 안정적인 오류 코드 dicom_metadata_unsupported와 함께 HTTP 501 Not Implemented를 반환합니다. 기술적인 DICOM 메타데이터가 필요할 경우 .NET 8 패키지를 사용하십시오.
전체 구성 참조
DicomConfig 전체 속성 표는 API Reference → Format Configs에 있습니다. 레퍼런스 앱의 확장자별 스위치에서 가져온 실제 예시는 다음과 같습니다:
".DCM" or ".IMA" => new DicomConfig { DisplayMode = DicomDisplayMode.AnimationAndFrames },워터마크 및 메모리 동작
일반 페이지 워터마크 결정은 DICOM 출력에도 적용됩니다. 애니메이션 출력의 경우 각 GIF 프레임에 워터마크가 찍혀 재생 전체에 걸쳐 표시됩니다. 커스텀 DocOptions.Watermark는 라이선스 경로가 커스텀 워터마크를 허용할 때만 사용되며, 평가용 워터마크를 대체할 수 없습니다.
다중 프레임 연구는 애니메이션과 프레임당 정적 페이지를 모두 생성할 수 있습니다. AnimationAndFrames는 가장 풍부한 탐색을 제공하지만 렌더링 및 캐시 비용이 가장 높습니다. 대규모 연구의 경우:
FramesOnly를 사용하여 프레임 검사가 시네마틱 재생보다 중요할 때 사용하십시오;- 메모리를 측정하지 않고 해상도 축을 모두 늘리는 것을 피하십시오;
- 연구가 더 이상 열려 있지 않을 때 세션을 명시적으로 종료하십시오;
CachePages는 반복 접근 이점이 보관된 이미지보다 클 때만 활성화하십시오.
문제 해결
| 증상 | 점검 |
|---|---|
.dcm이 지원되지 않음으로 보고됨 | DicomPlugin 등록 및 패키지 배포 |
| 플러그인 추가 후 시작 실패 | 로드된 라이선스가 Dicom을 부여함 |
| 한 페이지만 표시됨 | 소스가 단일 프레임이거나 DisplayMode가 AnimationOnly일 수 있음 |
| 애니메이션이 너무 빠르거나 느림 | AnimationFrameDelayMs; 실제 GIF 타이밍은 10 ms 단위 사용 |
| 대형 다중 프레임 파일에서 메모리 증가 | 표시 모드, 해상도, 페이지 캐시, 명시적 세션 종료 |
메타데이터가 null이거나 &meta가 501 반환 | 이 패키지의 예상 제한; 렌더링에는 영향 없음 |
이 페이지가 도움이 되었나요?