DICOM-Plugin

Medizinische Bilder mit DicomPlugin anzeigen

Das DICOM-Plugin fügt Doconut die Anzeige medizinischer Bilder hinzu: Mehrframe‑DICOM‑Dateien werden als animierte Übersicht, einzelne Einzelbilder oder beides dargestellt. DICOM ist ein nur‑Plugin‑Format — ohne dieses Plugin (und dessen Lizenzfunktion) können .dcm‑Dateien überhaupt nicht geöffnet werden.

Unter .NET Framework 4.7.2 werden DICOM‑Dateien vollständig gerendert — Seiten, Einzelbilder und Animation —, aber technische Metadaten (die DICOM‑Tags) sind nicht verfügbar. Viewer.GetDicomMetadataAsync gibt immer null zurück, und die Metadaten‑Anfrage des Widgets liefert 501 Not Implemented. Verwenden Sie Doconut.NET8, wenn Ihre Anwendung die Tags benötigt.

Paket installieren

powershell
Install-Package Doconut.NETFramework.Dicom

Halten Sie das DICOM‑Paket in derselben Version wie Doconut.NETFramework.

Plugin registrieren

csharp
Doconut.DoconutHost.Initialize(options =>
{
    options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});

Das Plugin (Name: "Doconut DICOM Viewer") registriert Viewer für die .dcm‑ und .ima‑Erweiterungen, gesteuert durch die Dicom‑Fähigkeit. Wenn die Lizenz dies nicht gewährt, wirft DoconutHost.Initialize aus Application_Start eine Ausnahme und die Site beantwortet jede Anfrage mit einem leeren 500 (der Grund befindet sich im Windows‑Ereignisprotokoll). Da kein integrierter Viewer diese Formate unterstützt, schlägt das Öffnen einer Datei sofort fehl, wenn die Fähigkeit später nicht mehr verfügbar ist:

text
LicenseException: This document type requires the 'Dicom' plugin license.

Öffnen einer DICOM‑Datei

csharp
var token = await viewer.OpenDocumentAsync(path, new DicomConfig
{
    DisplayMode = DicomDisplayMode.AnimationAndFrames
});

Anzeigemodi

Mehrframe‑DICOM‑Dateien können auf drei Arten dargestellt werden (DicomDisplayMode):

ModusErzeugte SeitenVerwendung
AnimationOnlySeite 1 = animiertes GIF, das alle Frames schleiftSchnelle filmische Übersicht
FramesOnlySeiten 1..N = ein statisches PNG pro FrameFrame‑für‑Frame‑Diagnostiknavigation
AnimationAndFrames (default)Seite 1 = animiertes GIF, Seiten 2..N = statische FramesÜbersicht und Detail in einem Dokument

Die Animationsgeschwindigkeit wird durch AnimationFrameDelayMs gesteuert (Standard 100 ms = 10 FPS; GIF‑Timing verwendet 10‑ms‑Einheiten) und LoopCount (0 = endlos wiederholen).

Der Viewer erkennt, dass Seite 1 animiert ist, indem er eine HEAD‑Anfrage dafür sendet. Der DocImage.axd‑Handler muss daher HEAD in Web.config zulassen (verb="GET,HEAD,POST", siehe Installation); ohne diese Einstellung antwortet IIS mit 404, bevor Doconut ausgeführt wird, und die Animationserkennung funktioniert nie.

Auflösung

DicomConfig rendert standardmäßig mit 100 DPI pro Achse. Wenn Sie HorizontalResolution/VerticalResolution nicht explizit setzen, übernehmen sie BaseConfig.ImageResolution, sofern dieser festgelegt ist, und greifen sonst auf 100 zurück.

csharp
// Uniform bump via the base property…
new DicomConfig { ImageResolution = 150 };

// …or per-axis control
new DicomConfig { HorizontalResolution = 200, VerticalResolution = 150 };

DICOM‑Metadaten

csharp
var metadata = await viewer.GetDicomMetadataAsync(token);
// On .NET Framework this is always null: the DICOM metadata reader is not available for this
// target. Pages, frames and animation render normally.

Die Methode existiert in diesem Paket, damit Code, der mit dem .NET 8‑Paket geteilt wird, kompiliert, aber das Auslesen von DICOM‑Tags erfordert eine Komponente, die für .NET Framework nicht bereitgestellt wird. Planen Sie Ihre Benutzeroberfläche ohne diese — zum Beispiel ein Metadaten‑Panel ausblenden, wenn das Ergebnis null ist.

Vollständige Konfigurationsreferenz

Die vollständige Eigenschaftstabelle von DicomConfig finden Sie in Format Configs. Bei einer Auswahl pro Erweiterung sieht der DICOM‑Fall folgendermaßen aus:

csharp
case ".DCM": case ".IMA":
    return new DicomConfig { DisplayMode = DicomDisplayMode.AnimationAndFrames };

Wasserzeichen und Speicherverhalten

Die übliche Entscheidung für Seiten‑Wasserzeichen gilt ebenfalls für DICOM‑Ausgaben. Bei animierten Ausgaben wird jedes GIF‑Frame versehen, sodass das Zeichen während der Wiedergabe sichtbar bleibt. Ein benutzerdefiniertes DocOptions.Watermark wird nur verwendet, wenn die Lizenz benutzerdefinierte Wasserzeichen erlaubt; es kann ein Evaluations‑Wasserzeichen nicht ersetzen.

Mehrframe‑Studien können sowohl eine Animation als auch eine statische Seite pro Frame erzeugen. AnimationAndFrames bietet die umfangreichste Navigation, verursacht jedoch die höchsten Render‑ und Speicherkosten — und auf einem einzelnen Server gehört dieser Speicher zum IIS‑Worker‑Prozess. Für große Studien:

  • Verwenden Sie FramesOnly, wenn die Frame‑Inspektion wichtiger ist als die Wiedergabe;
  • Vermeiden Sie das Erhöhen beider Auflösungsachsen, ohne den Speicher zu messen;
  • Schließen Sie die Sitzung explizit, wenn die Studie nicht mehr geöffnet ist;
  • Aktivieren Sie CachePages nur, wenn wiederholter Zugriff die gespeicherten Bilder rechtfertigt.

Fehlerbehebung

SymptomPrüfung
.dcm wird als nicht unterstützt gemeldetDicomPlugin‑Registrierung und Paketbereitstellung
Jede Anfrage liefert nach dem Hinzufügen des Plugins ein leeres 500Die Lizenz gewährt Dicom — Windows‑Ereignisprotokoll, Quell‑ASP.NET
Es wird nur eine Seite angezeigtDie Quelle ist möglicherweise ein Einzel‑Frame, oder DisplayMode ist AnimationOnly
Seite 1 animiert nichtDer Handler in Web.config akzeptiert HEAD
Animation ist zu schnell oder zu langsamAnimationFrameDelayMs; GIF‑Timing verwendet 10‑ms‑Einheiten
Speicherverbrauch steigt bei großen Mehrframe‑DateienAnzeigemodus, Auflösung, Seiten‑Cache und explizites Schließen der Sitzung
Metadaten sind immer nullErwartet in diesem Paket — siehe Hinweis oben

War diese Seite hilfreich?