Plugin DICOM

Afficher les images médicales avec DicomPlugin

Le plugin DICOM ajoute la visualisation d'images médicales à Doconut : les fichiers DICOM multi‑cadres sont rendus sous forme d'aperçu animé, de cadres individuels, ou les 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.NETStandard.Dicom

La commande non versionnée installe la dernière version stable. Pour fixer le plugin à la version actuelle 26.8.0, transmettez la version séparément :

bash
dotnet add package Doconut.NETStandard.Dicom --version 26.8.0

Conservez le package DICOM à la même version que Doconut.NETStandard. L'ID du package est Doconut.NETStandard.Dicom ; .26.8.0 apparaît uniquement dans le nom de 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 visionneuses pour les extensions .dcm et .ima, contrôlées par la capacité Dicom. Un droit manquant ou insuffisant non temporaire échoue normalement pendant 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.

Ouverture d'un fichier DICOM

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

Modes d'affichage

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

ModePages produitesUtilisation
AnimationOnlyPage 1 = GIF animé bouclant toutes les imagesRevue cinématographique rapide
FramesOnlyPages 1..N = un PNG statique par imageNavigation diagnostique image par image
AnimationAndFrames (default)Page 1 = GIF animé, pages 2..N = images statiquesVue d'ensemble + 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 ont une chaîne de secours utile à connaître : si vous ne définissez pas explicitement HorizontalResolution/VerticalResolution, elles suivent BaseConfig.ImageResolution lorsque celui‑ci est configuré, et ne retombent sur 100 qu'ensuite.

csharp
// Bosse uniforme via la propriété de base…
new DicomConfig { ImageResolution = 150 };

// …ou contrôle par axe
new DicomConfig { HorizontalResolution = 200, VerticalResolution = 150 };

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

Le rendu des pages DICOM, les cadres individuels, l'animation, les transformations et le filigrane sont pris en charge. Les métadonnées techniques des balises ne sont pas disponibles dans le package .NET Standard car le lecteur de métadonnées n'est fourni qu'avec une version .NET 8.

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 package .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 normale de filigrane de page s'applique également à la sortie DICOM. Pour la sortie animée, chaque cadre GIF est estampillé 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‑cadres peuvent générer à la fois une animation et une page statique par cadre. AnimationAndFrames offre la navigation la plus riche mais aussi le coût de rendu et de cache le plus élevé. Pour les grandes études :

  • utilisez FramesOnly lorsque l'inspection des cadres 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 DicomPlugin et déploiement du package
Le démarrage échoue après l'ajout du pluginLa licence chargée accorde Dicom
Une seule page apparaîtLa source peut être à cadre 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‑cadresMode d'affichage, résolution, cache de pages et fermeture explicite de la session
Les métadonnées sont null, ou &meta renvoie 501Limitation attendue de ce package ; le rendu n'est pas affecté

Cette page était-elle utile ?