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
dotnet add package Doconut.NET6.DicomLa 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 :
dotnet add package Doconut.NET6.Dicom --version 26.7.0Conservez 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
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 :
LicenseException: This document type requires the 'Dicom' plugin license.Ouvrir un fichier DICOM
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) :
| Mode | Pages produites | Utilisation |
|---|---|---|
AnimationOnly | Page 1 = GIF animé bouclant toutes les trames | Revue cinématographique rapide |
FramesOnly | Pages 1..N = un PNG statique par trame | Navigation diagnostique image par image |
AnimationAndFrames (par défaut) | Page 1 = GIF animé, pages 2..N = trames statiques | Aperç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.
// 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 :
".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
FramesOnlylorsque 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
CachePagesactivé uniquement lorsque les avantages d'un accès répété l'emportent sur les images conservées.
Dépannage
| Symptôme | Vérification |
|---|---|
.dcm est signalé comme non pris en charge | Enregistrement du DicomPlugin et déploiement du paquet |
| Le démarrage échoue après l'ajout du plugin | La licence chargée accorde Dicom |
| Une seule page apparaît | La source peut être à trame unique, ou DisplayMode est AnimationOnly |
| L'animation est trop rapide ou trop lente | AnimationFrameDelayMs ; le timing effectif du GIF utilise des unités de 10 ms |
| La mémoire augmente sur les gros fichiers multi‑trames | Mode d'affichage, résolution, cache des pages et fermeture explicite de la session |
Les métadonnées sont null, ou &meta renvoie 501 | Limitation attendue de .NET 6 ; le rendu n'est pas affecté |
Cette page vous a-t-elle été utile ?