Wtyczka DICOM
Wyświetlaj obrazy medyczne za pomocą DicomPlugin
Wtyczka DICOM dodaje możliwość przeglądania obrazów medycznych do Doconut: pliki DICOM wieloklatkowe są renderowane jako animowany przegląd, poszczególne klatki lub oba jednocześnie. DICOM jest formatem wyłącznie wtyczkowym — bez tej wtyczki (i jej możliwości licencyjnej) pliki .dcm nie mogą być otwarte w ogóle.
Zainstaluj pakiet
dotnet add package Doconut.NETStandard.DicomPolecenie bez wersji instaluję najnowsze stabilne wydanie. Aby przypiąć wtyczkę do bieżącego wydania 26.8.0, przekaż wersję osobno:
dotnet add package Doconut.NETStandard.Dicom --version 26.8.0Utrzymuj pakiet DICOM w tej samej wersji co Doconut.NETStandard. Identyfikator pakietu to Doconut.NETStandard.Dicom; .26.8.0 pojawia się tylko w nazwie pobranego pliku .nupkg.
Zarejestruj wtyczkę
builder.Services.AddDoconut(options =>
{
options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});Wtyczka (Name: "Doconut DICOM Viewer") rejestruje przeglądarki dla rozszerzeń .dcm i .ima, zabezpieczone możliwością Dicom. Brak lub niewystarczające, nietrwałe uprawnienie zazwyczaj powoduje błąd podczas AddDoconut(). Ponieważ żaden wbudowany podgląd nie obsługuje tych formatów, bramka w czasie wykonywania również twardo zawiedzie, jeśli możliwość później stanie się niedostępna:
LicenseException: This document type requires the 'Dicom' plugin license.Otwieranie pliku DICOM
var token = await viewer.OpenDocumentAsync(path, new DicomConfig
{
DisplayMode = DicomDisplayMode.AnimationAndFrames
});Tryby wyświetlania
Pliki DICOM wieloklatkowe mogą być prezentowane na trzy sposoby (DicomDisplayMode):
| Tryb | Generowane strony | Zastosowanie |
|---|---|---|
AnimationOnly | Strona 1 = animowany GIF odtwarzający wszystkie klatki | Szybki przegląd filmowy |
FramesOnly | Strony 1..N = jeden statyczny PNG na klatkę | Diagnostyczna nawigacja klatka po klatce |
AnimationAndFrames (default) | Strona 1 = animowany GIF, strony 2..N = statyczne klatki | Przegląd + szczegóły w jednym dokumencie |
Czas trwania animacji jest kontrolowany przez AnimationFrameDelayMs (domyślnie 100 ms = 10 FPS; granularność GIF to jednostki 10 ms) oraz LoopCount (0 = nieskończona pętla).
Rozdzielczość
DicomConfig renderuje domyślnie z rozdzielczością 100 DPI na oś. Właściwości rozdzielczości mają łańcuch domyślnych wartości, który warto znać: jeśli nie ustawisz explicite HorizontalResolution/VerticalResolution, będą one dziedziczyć BaseConfig.ImageResolution, gdy jest skonfigurowane, a dopiero potem wracają do 100.
// Uniform bump via the base property…
new DicomConfig { ImageResolution = 150 };
// …or per-axis control
new DicomConfig { HorizontalResolution = 200, VerticalResolution = 150 };Dostępność metadanych DICOM w .NET Standard
Renderowanie stron DICOM, poszczególnych klatek, animacji, transformacji i znaków wodnych jest obsługiwane. Metadane techniczne tagów nie są dostępne w pakiecie .NET Standard, ponieważ czytnik metadanych jest dostarczany wyłącznie w wersji .NET 8.
Viewer.GetDicomMetadataAsync(token) zwraca więc null dla sesji DICOM i loguje jednorazowe ostrzeżenie. Odpowiednie żądanie middleware ?token=…&meta zwraca HTTP 501 Not Implemented z trwałym kodem błędu dicom_metadata_unsupported. Użyj pakietu .NET 8, gdy techniczne metadane DICOM są wymagane.
Pełna referencja konfiguracji
Pełna tabela właściwości DicomConfig znajduje się w Dokumentacji API → Konfiguracje formatów. Przykład produkcyjny z przełącznika aplikacji referencyjnej dla poszczególnych rozszerzeń:
".DCM" or ".IMA" => new DicomConfig { DisplayMode = DicomDisplayMode.AnimationAndFrames },Znak wodny i zachowanie pamięci
Standardowa decyzja o znaku wodnym na stronie ma również zastosowanie do wyjścia DICOM. Dla wyjścia animowanego każda klatka GIF jest znakowana, aby znak pozostawał widoczny przez cały odtwarzanie. Niestandardowy DocOptions.Watermark jest używany tylko wtedy, gdy ścieżka licencyjna zezwala na własne znaki wodne; nie może zastąpić znaku wodnego wersji ewaluacyjnej.
Badania wieloklatkowe mogą generować zarówno animację, jak i jedną statyczną stronę na klatkę. AnimationAndFrames zapewnia najbogatszą nawigację, ale ma też najwyższy koszt renderowania i pamięci podręcznej. Dla dużych badań:
- użyj
FramesOnly, gdy inspekcja klatek jest ważniejsza niż odtwarzanie filmowe; - unikaj zwiększania obu osi rozdzielczości bez pomiaru zużycia pamięci;
- zamknij sesję explicite, gdy badanie nie jest już otwarte;
- pozostaw
CachePageswłączone tylko wtedy, gdy korzyści z powtarzalnego dostępu przewyższają koszt przechowywanych obrazów.
Rozwiązywanie problemów
| Objaw | Sprawdź |
|---|---|
.dcm jest zgłaszany jako nieobsługiwany | Rejestracja DicomPlugin i wdrożenie pakietu |
| Uruchomienie nie powodzi się po dodaniu wtyczki | Załadowana licencja przyznaje Dicom |
| Wyświetla się tylko jedna strona | Źródło może być jednoklatkowe, lub DisplayMode jest ustawiony na AnimationOnly |
| Animacja jest zbyt szybka lub zbyt wolna | AnimationFrameDelayMs; efektywne taktowanie GIF używa jednostek 10 ms |
| Pamięć rośnie przy dużych plikach wieloklatkowych | Tryb wyświetlania, rozdzielczość, pamięć podręczna stron oraz explicite zamknięcie sesji |
Metadane są null, lub &meta zwraca 501 | Oczekiwane ograniczenie tego pakietu; renderowanie nie jest dotknięte |
Czy ta strona była pomocna?