Plugin DICOM
Afficher des 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é, de trames individuelles, 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.
Sur .NET Framework 4.7.2, les fichiers DICOM sont rendus complètement — pages, trames et animation — mais les métadonnées techniques (les balises DICOM) ne sont pas disponibles.
Viewer.GetDicomMetadataAsyncrenvoie toujoursnull, et la requête de métadonnées du widget répond501 Not Implemented. UtilisezDoconut.NET8si votre application a besoin des balises.
Installer le package
Install-Package Doconut.NETFramework.DicomConservez le package DICOM à la même version que Doconut.NETFramework.
Enregistrer le plugin
Doconut.DoconutHost.Initialize(options =>
{
options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});Le plugin (Name : "Doconut DICOM Viewer") enregistre des visionneuses pour les extensions .dcm et .ima, conditionnées par la capacité Dicom. Si la licence ne le permet pas, DoconutHost.Initialize lève une exception depuis Application_Start et le site répond à chaque requête avec un 500 vide (la raison se trouve dans le journal d'événements Windows). Comme aucun visualiseur intégré ne gère ces formats, l'ouverture d'un fichier échoue complètement si la capacité devient indisponible par la suite :
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 générées | 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 trame par trame |
AnimationAndFrames (default) | Page 1 = GIF animé, pages 2..N = trames statiques | Vue d'ensemble et détail dans un même document |
Le timing de l'animation est contrôlé par AnimationFrameDelayMs (par défaut 100 ms = 10 IPS ; le timing GIF utilise des unités de 10 ms) et LoopCount (0 = boucle infinie).
Le visualiseur découvre que la page 1 est animée en envoyant une requête HEAD pour celle‑ci. Le gestionnaire DocImage.axd doit donc accepter HEAD dans Web.config (verb="GET,HEAD,POST", voir Installation) ; sans cela, IIS renvoie 404 avant que Doconut ne s'exécute et la détection d'animation ne fonctionne jamais.
Résolution
DicomConfig rend à 100 DPI par axe par défaut. Si vous ne définissez pas explicitement HorizontalResolution/VerticalResolution, ils suivent BaseConfig.ImageResolution lorsqu'il est défini, et ne retombent à 100 que dans le cas contraire.
// Uniform bump via the base property…
new DicomConfig { ImageResolution = 150 };
// …or per-axis control
new DicomConfig { HorizontalResolution = 200, VerticalResolution = 150 };Métadonnées DICOM
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.Cette méthode existe dans ce package afin que le code partagé avec le package .NET 8 compile, mais la lecture des balises DICOM nécessite un composant qui n’a pas de version .NET Framework. Concevez votre interface utilisateur sans elles — par exemple, masquez le panneau de métadonnées lorsque le résultat est null.
Référence complète de la configuration
Le tableau complet des propriétés DicomConfig se trouve dans Format Configs. Dans une sélection par extension, le cas DICOM ressemble à ceci :
case ".DCM": case ".IMA":
return 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 une sortie animée, chaque trame GIF est marquée, de sorte que le filigrane reste visible pendant toute la lecture. Un DocOptions.Watermark personnalisé n’est utilisé que lorsque la licence autorise les filigranes personnalisés ; il ne peut pas remplacer un filigrane d’évaluation.
Les études multi‑trames peuvent produire à la fois une animation et une page statique par trame. AnimationAndFrames offre la navigation la plus riche mais aussi le coût de rendu et de mémoire le plus élevé — et sur un serveur unique cette mémoire appartient au processus de travail IIS. Pour les études volumineuses :
- utilisez
FramesOnlylorsque l’inspection des trames est plus importante que la lecture ; - é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 l’accès répété justifie la conservation des images.
Dépannage
| Symptôme | Vérification |
|---|---|
.dcm est signalé comme non pris en charge | Enregistrement du DicomPlugin et déploiement du package |
Chaque requête répond un 500 vide après l’ajout du plugin | La licence accorde Dicom — journal d’événements Windows, source ASP.NET |
| Une seule page apparaît | La source peut être à trame unique, ou DisplayMode est AnimationOnly |
| La page 1 ne s’anime pas | Le gestionnaire dans Web.config accepte HEAD |
| L’animation est trop rapide ou trop lente | AnimationFrameDelayMs ; le timing GIF utilise des unités de 10 ms |
| La mémoire augmente avec de gros fichiers multi‑trames | Mode d’affichage, résolution, cache de pages et fermeture explicite de la session |
Les métadonnées sont toujours null | Attendu sur ce package — voir la note en haut |
Cette page était-elle utile ?