Plugin DICOM

Afficher les images médicales avec DicomPlugin

Le plugin DICOM ajoute la visualisation d'images médicales à Doconut : les fichiers DICOM multi‑trames sont rendus sous forme d'aperçu animé, d'images individuelles ou des deux. DICOM est un format uniquement plugin — sans ce plugin (et sa capacité de licence), les fichiers .dcm ne peuvent pas être ouverts du tout.

Installer le paquet

bash
dotnet add package Doconut.NET6.Dicom

La commande sans version installe la dernière version stable. Pour fixer le plugin à la version actuelle 26.7.0, transmettez la version séparément :

bash
dotnet add package Doconut.NET6.Dicom --version 26.7.0

Conservez le paquet DICOM à la même version que Doconut.NET6. L'ID du paquet est Doconut.NET6.Dicom ; .26.7.0 apparaît uniquement dans le nom du fichier .nupkg téléchargé.

Enregistrer le plugin

csharp
builder.Services.AddDoconut(options =>
{
    options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});

Le plugin (Name : "Doconut DICOM Viewer") enregistre des visionneurs pour les extensions .dcm et .ima, contrôlés par la capacité Dicom. Un droit manquant ou insuffisant non temporaire échoue normalement lors de AddDoconut(). Comme aucun visionneur intégré ne gère ces formats, la porte d'exécution échoue également de manière critique si la capacité devient indisponible ultérieurement :

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

Ouvrir un fichier DICOM

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

Modes d'affichage

Les fichiers DICOM multi‑trames peuvent être présentés de trois manières (DicomDisplayMode) :

ModePages produitesUtilisation
AnimationOnlyPage 1 = GIF animé bouclant toutes les tramesRevue cinématographique rapide
FramesOnlyPages 1..N = un PNG statique par trameNavigation diagnostique image par image
AnimationAndFrames (par défaut)Page 1 = GIF animé, pages 2..N = trames statiquesAperçu + détail dans un seul document

Le timing de l'animation est contrôlé par AnimationFrameDelayMs (par défaut 100 ms = 10 IPS ; la granularité du GIF est de 10 ms) et LoopCount (0 = boucle infinie).

Résolution

DicomConfig rend à 100 DPI par axe par défaut. Les propriétés de résolution possèdent une chaîne de secours utile à connaître : si vous ne définissez pas explicitement HorizontalResolution/VerticalResolution, elles suivent BaseConfig.ImageResolution lorsqu'elle est configurée, et ne reviennent à 100 qu'ensuite.

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

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

Disponibilité des métadonnées DICOM sur .NET 6

Le rendu des pages DICOM, les trames individuelles, l'animation, les transformations et le filigrane sont pris en charge. Les métadonnées techniques des balises ne sont pas disponibles dans le paquet .NET 6 car le lecteur de métadonnées n'a pas de version .NET 6.

Viewer.GetDicomMetadataAsync(token) renvoie donc null pour une session DICOM et consigne un avertissement unique. La requête middleware correspondante ?token=…&meta renvoie HTTP 501 Not Implemented avec le code d'erreur stable dicom_metadata_unsupported. Utilisez le paquet .NET 8 lorsque les métadonnées techniques DICOM sont requises.

Référence complète de configuration

Le tableau complet des propriétés DicomConfig se trouve dans Référence API → Configurations de format. Un exemple de production provenant du commutateur par extension de l'application de référence :

csharp
".DCM" or ".IMA" => new DicomConfig { DisplayMode = DicomDisplayMode.AnimationAndFrames },

Filigrane et comportement mémoire

La décision habituelle de filigrane des pages s'applique également à la sortie DICOM. Pour une sortie animée, chaque trame GIF est marquée afin que le filigrane reste visible pendant toute la lecture. Un DocOptions.Watermark personnalisé n'est utilisé que lorsque le chemin de licence autorise les filigranes personnalisés ; il ne peut pas remplacer un filigrane d'évaluation.

Les études multi‑trames peuvent générer à la fois une animation et une page statique par trame. AnimationAndFrames offre la navigation la plus riche mais entraîne également le coût le plus élevé en rendu et en cache. Pour les grandes études :

  • utilisez FramesOnly lorsque l'inspection des trames est plus importante que la lecture cinématographique ;
  • évitez d'augmenter les deux axes de résolution sans mesurer la mémoire ;
  • fermez explicitement la session lorsque l'étude n'est plus ouverte ;
  • conservez CachePages activé uniquement lorsque les avantages d'un accès répété l'emportent sur les images conservées.

Dépannage

SymptômeVérification
.dcm est signalé comme non pris en chargeEnregistrement du DicomPlugin et déploiement du paquet
Le démarrage échoue après l'ajout du pluginLa licence chargée accorde Dicom
Une seule page apparaîtLa source peut être à trame unique, ou DisplayMode est AnimationOnly
L'animation est trop rapide ou trop lenteAnimationFrameDelayMs ; le timing effectif du GIF utilise des unités de 10 ms
La mémoire augmente sur les gros fichiers multi‑tramesMode d'affichage, résolution, cache des pages et fermeture explicite de la session
Les métadonnées sont null, ou &meta renvoie 501Limitation attendue de .NET 6 ; le rendu n'est pas affecté

Cette page vous a-t-elle été utile ?