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.GetDicomMetadataAsyncgibt immernullzurück, und die Metadaten‑Anfrage des Widgets liefert501 Not Implemented. Verwenden SieDoconut.NET8, wenn Ihre Anwendung die Tags benötigt.
Paket installieren
Install-Package Doconut.NETFramework.DicomHalten Sie das DICOM‑Paket in derselben Version wie Doconut.NETFramework.
Plugin registrieren
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:
LicenseException: This document type requires the 'Dicom' plugin license.Öffnen einer DICOM‑Datei
var token = await viewer.OpenDocumentAsync(path, new DicomConfig
{
DisplayMode = DicomDisplayMode.AnimationAndFrames
});Anzeigemodi
Mehrframe‑DICOM‑Dateien können auf drei Arten dargestellt werden (DicomDisplayMode):
| Modus | Erzeugte Seiten | Verwendung |
|---|---|---|
AnimationOnly | Seite 1 = animiertes GIF, das alle Frames schleift | Schnelle filmische Übersicht |
FramesOnly | Seiten 1..N = ein statisches PNG pro Frame | Frame‑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.
// Uniform bump via the base property…
new DicomConfig { ImageResolution = 150 };
// …or per-axis control
new DicomConfig { HorizontalResolution = 200, VerticalResolution = 150 };DICOM‑Metadaten
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:
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
CachePagesnur, wenn wiederholter Zugriff die gespeicherten Bilder rechtfertigt.
Fehlerbehebung
| Symptom | Prüfung |
|---|---|
.dcm wird als nicht unterstützt gemeldet | DicomPlugin‑Registrierung und Paketbereitstellung |
Jede Anfrage liefert nach dem Hinzufügen des Plugins ein leeres 500 | Die Lizenz gewährt Dicom — Windows‑Ereignisprotokoll, Quell‑ASP.NET |
| Es wird nur eine Seite angezeigt | Die Quelle ist möglicherweise ein Einzel‑Frame, oder DisplayMode ist AnimationOnly |
| Seite 1 animiert nicht | Der Handler in Web.config akzeptiert HEAD |
| Animation ist zu schnell oder zu langsam | AnimationFrameDelayMs; GIF‑Timing verwendet 10‑ms‑Einheiten |
| Speicherverbrauch steigt bei großen Mehrframe‑Dateien | Anzeigemodus, Auflösung, Seiten‑Cache und explizites Schließen der Sitzung |
Metadaten sind immer null | Erwartet in diesem Paket — siehe Hinweis oben |
War diese Seite hilfreich?