Plugin DICOM
Xem hình ảnh y tế với DicomPlugin
Plugin DICOM thêm khả năng xem hình ảnh y tế vào Doconut: các tệp DICOM đa khung được hiển thị dưới dạng tổng quan hoạt hình, các khung riêng lẻ, hoặc cả hai. DICOM là một định dạng chỉ dành cho plugin — nếu không có plugin này (và khả năng cấp phép của nó), các tệp .dcm không thể mở được toàn bộ.
Cài đặt gói
dotnet add package Doconut.NET8.DicomLệnh không chỉ định phiên bản sẽ cài đặt bản phát hành ổn định mới nhất. Để cố định plugin ở bản phát hành 26.7.0 hiện tại, hãy truyền phiên bản riêng biệt:
dotnet add package Doconut.NET8.Dicom --version 26.7.0Giữ gói DICOM ở cùng phiên bản với Doconut.NET8. ID gói là Doconut.NET8.Dicom; .26.7.0 chỉ xuất hiện trong tên tệp .nupkg đã tải xuống.
Đăng ký plugin
builder.Services.AddDoconut(options =>
{
options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});Plugin (Name: "Doconut DICOM Viewer") đăng ký các trình xem cho các phần mở rộng .dcm và .ima, được kiểm soát bởi khả năng Dicom. Một quyền không tạm thời bị thiếu hoặc không đủ thường sẽ gây lỗi trong quá trình AddDoconut(). Vì không có trình xem tích hợp nào xử lý các định dạng này, cổng thời gian chạy cũng sẽ thất bại nghiêm trọng nếu khả năng này sau này không còn khả dụng:
LicenseException: This document type requires the 'Dicom' plugin license.Mở tệp DICOM
var token = await viewer.OpenDocumentAsync(path, new DicomConfig
{
DisplayMode = DicomDisplayMode.AnimationAndFrames
});Các chế độ hiển thị
Các tệp DICOM đa khung có thể được trình bày theo ba cách (DicomDisplayMode):
| Chế độ | Trang được tạo | Sử dụng cho |
|---|---|---|
AnimationOnly | Trang 1 = GIF hoạt hình lặp lại tất cả các khung | Đánh giá nhanh kiểu điện ảnh |
FramesOnly | Trang 1..N = một PNG tĩnh cho mỗi khung | Điều hướng chẩn đoán từng khung |
AnimationAndFrames (mặc định) | Trang 1 = GIF hoạt hình, các trang 2..N = các khung tĩnh | Tổng quan + chi tiết trong một tài liệu |
Thời gian hoạt hình được điều khiển bởi AnimationFrameDelayMs (mặc định 100 ms = 10 FPS; độ chi tiết của GIF là đơn vị 10 ms) và LoopCount (0 = lặp vô hạn).
Độ phân giải
DicomConfig hiển thị ở 100 DPI mỗi trục theo mặc định. Các thuộc tính độ phân giải có một chuỗi dự phòng đáng biết: nếu bạn không đặt HorizontalResolution/VerticalResolution một cách rõ ràng, chúng sẽ theo BaseConfig.ImageResolution khi được cấu hình, và chỉ sau đó mới quay lại 100.
// Uniform bump via the base property…
new DicomConfig { ImageResolution = 150 };
// …or per-axis control
new DicomConfig { HorizontalResolution = 200, VerticalResolution = 150 };Đọc siêu dữ liệu DICOM
Đối với các phiên được mở qua plugin này, Viewer cung cấp siêu dữ liệu thẻ:
var metadata = await viewer.GetDicomMetadataAsync(token);
// null when the session isn't a DICOM documentTham chiếu cấu hình đầy đủ
Bảng thuộc tính đầy đủ của DicomConfig nằm trong Tham chiếu API → Cấu hình Định dạng. Một ví dụ thực tế từ chuyển đổi theo phần mở rộng của ứng dụng tham chiếu:
".DCM" or ".IMA" => new DicomConfig { DisplayMode = DicomDisplayMode.AnimationAndFrames },Đánh dấu và hành vi bộ nhớ
Quyết định đánh dấu trang bình thường cũng áp dụng cho đầu ra DICOM. Đối với đầu ra hoạt hình, mỗi khung GIF được dán dấu để dấu vẫn hiển thị suốt quá trình phát. DocOptions.Watermark tùy chỉnh chỉ được sử dụng khi đường cấp phép cho phép đánh dấu tùy chỉnh; nó không thể thay thế dấu đánh giá.
Các nghiên cứu đa khung có thể tạo cả một hoạt hình và một trang tĩnh cho mỗi khung. AnimationAndFrames cung cấp khả năng điều hướng phong phú nhất nhưng cũng có chi phí render và bộ nhớ đệm cao nhất. Đối với các nghiên cứu lớn:
- sử dụng
FramesOnlykhi việc kiểm tra khung quan trọng hơn so với phát lại kiểu điện ảnh; - tránh tăng cả hai trục độ phân giải mà không đo lường bộ nhớ;
- đóng phiên một cách rõ ràng khi nghiên cứu không còn mở;
- giữ
CachePagesbật chỉ khi lợi ích truy cập lặp lại vượt quá chi phí lưu trữ hình ảnh.
Khắc phục sự cố
| Triệu chứng | Kiểm tra |
|---|---|
.dcm được báo là không hỗ trợ | DicomPlugin đăng ký và triển khai gói |
| Khởi động thất bại sau khi thêm plugin | Giấy phép đã tải cho phép Dicom |
| Chỉ một trang hiển thị | Nguồn có thể là một khung duy nhất, hoặc DisplayMode là AnimationOnly |
| Hoạt hình quá nhanh hoặc quá chậm | AnimationFrameDelayMs; thời gian GIF thực tế sử dụng đơn vị 10 ms |
| Bộ nhớ tăng lên trên các tệp đa khung lớn | Chế độ hiển thị, độ phân giải, bộ nhớ đệm trang, và việc đóng phiên một cách rõ ràng |
Siêu dữ liệu là null | Token không được mở qua plugin DICOM hoặc đã hết hạn |
Trang này có hữu ích không?