Πρόσθετο DICOM

Προβολή ιατρικών εικόνων με DicomPlugin

Το πρόσθετο DICOM προσθέτει προβολή ιατρικών εικόνων στο Doconut: αρχεία DICOM πολλαπλών καρέ αποδίδονται ως μια κινούμενη επισκόπηση, μεμονωμένα καρέ, ή και τα δύο. Το DICOM είναι μορφή μόνο‑πρόσθετου — χωρίς αυτό το πρόσθετο (και τη δυνατότητα άδειας), τα αρχεία .dcm δεν μπορούν να ανοιχτούν καθόλου.

Εγκατάσταση του πακέτου

bash
dotnet add package Doconut.NET6.Dicom

Η εντολή χωρίς έκδοση εγκαθιστά την πιο πρόσφατη σταθερή έκδοση. Για να κλειδώσετε το πρόσθετο στην τρέχουσα έκδοση 26.7.0, περάστε την έκδοση ξεχωριστά:

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

Κρατήστε το πακέτο DICOM στην ίδια έκδοση με το Doconut.NET6. Το αναγνωριστικό πακέτου είναι Doconut.NET6.Dicom; το .26.7.0 εμφανίζεται μόνο στο όνομα του ληφθέντος αρχείου .nupkg.

Καταχώριση του πρόσθετου

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

Το πρόσθετο (Name: "Doconut DICOM Viewer") καταχωρεί προβολείς για τις επεκτάσεις .dcm και .ima, υπό τον έλεγχο της δυνατότητας Dicom. Μια ελλιπής ή μη‑προσωρινή άδεια συνήθως αποτυγχάνει κατά το AddDoconut(). Επειδή κανένας ενσωματωμένος προβολέας δεν διαχειρίζεται αυτές τις μορφές, η πύλη χρόνου εκτέλεσης αποτυγχάνει επίσης σκληρά αν η δυνατότητα γίνει μη διαθέσιμη αργότερα:

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

Άνοιγμα αρχείου DICOM

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

Τρόποι εμφάνισης

Τα αρχεία DICOM πολλαπλών καρέ μπορούν να παρουσιαστούν τρεις τρόπους (DicomDisplayMode):

ΛειτουργίαΠαραγόμενες σελίδεςΧρήση
AnimationOnlyΣελίδα 1 = animated GIF που επαναλαμβάνει όλα τα καρέΓρήγορη κινηματογραφική επισκόπηση
FramesOnlyΣελίδες 1..N = ένα static PNG ανά καρέΔιαγνωστική πλοήγηση καρέ‑καρέ
AnimationAndFrames (προεπιλογή)Σελίδα 1 = animated GIF, σελίδες 2..N = static καρέΕπισκόπηση + λεπτομέρεια σε ένα έγγραφο

Ο χρόνος animation ελέγχεται από το AnimationFrameDelayMs (προεπιλογή 100 ms = 10 FPS· η ακρίβεια GIF είναι μονάδες των 10 ms) και το LoopCount (0 = αέναος βρόχος).

Ανάλυση

Το DicomConfig αποδίδει με 100 DPI ανά άξονα εξ ορισμού. Οι ιδιότητες ανάλυσης έχουν αλυσίδα εφεδρείας που αξίζει να γνωρίζετε: αν δεν ορίσετε ρητά HorizontalResolution/VerticalResolution, ακολουθούν το BaseConfig.ImageResolution όταν αυτό έχει ρυθμιστεί, και μόνο τότε επιστρέφουν στα 100.

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

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

Διαθεσιμότητα μεταδεδομένων DICOM στο .NET 6

Η απόδοση σελίδων DICOM, μεμονωμένα καρέ, animation, μετασχηματισμοί και υδατογράφημα υποστηρίζονται. Τα τεχνικά μεταδεδομένα ετικετών δεν είναι διαθέσιμα στο πακέτο .NET 6 επειδή ο αναγνώστης μεταδεδομένων δεν έχει έκδοση .NET 6.

Το Viewer.GetDicomMetadataAsync(token) επομένως επιστρέφει null για μια συνεδρία DICOM και καταγράφει μια εφάπαξ προειδοποίηση. Η αντίστοιχη αίτηση middleware ?token=…&meta επιστρέφει HTTP 501 Not Implemented με τον σταθερό κωδικό σφάλματος dicom_metadata_unsupported. Χρησιμοποιήστε το πακέτο .NET 8 όταν τα τεχνικά μεταδεδομένα DICOM είναι απαραίτητα.

Πλήρης αναφορά διαμόρφωσης

Ο πλήρης πίνακας ιδιοτήτων DicomConfig βρίσκεται στην Αναφορά API → Format Configs. Ένα παραγωγικό παράδειγμα από την εφαρμογή αναφοράς με εναλλαγή ανά επέκταση:

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

Υδατογράφημα και συμπεριφορά μνήμης

Η κανονική απόφαση υδατογραφήματος σελίδας ισχύει και για την έξοδο DICOM. Για animation, κάθε καρέ GIF σφραγίζεται ώστε το σήμα να παραμένει ορατό καθ' όλη τη διάρκεια της αναπαραγωγής. Ένα προσαρμοσμένο DocOptions.Watermark χρησιμοποιείται μόνο όταν η διαδρομή άδειας επιτρέπει προσαρμοσμένα υδατογραφήματα· δεν μπορεί να αντικαταστήσει ένα υδατογράφημα αξιολόγησης.

Οι μελέτες πολλαπλών καρέ μπορούν να δημιουργήσουν τόσο animation όσο και μία στατική σελίδα ανά καρέ. Το AnimationAndFrames παρέχει την πιο πλούσια πλοήγηση αλλά έχει το υψηλότερο κόστος απόδοσης και cache. Για μεγάλες μελέτες:

  • χρησιμοποιήστε FramesOnly όταν η επιθεώρηση καρέ είναι πιο σημαντική από την κινηματογραφική αναπαραγωγή·
  • αποφύγετε την αύξηση και των δύο αξόνων ανάλυσης χωρίς μέτρηση μνήμης·
  • κλείστε τη συνεδρία ρητά όταν η μελέτη δεν είναι πλέον ανοιχτή·
  • κρατήστε το CachePages ενεργό μόνο όταν τα οφέλη επαναπρόσβασης υπερτερούν των διατηρημένων εικόνων.

Αντιμετώπιση προβλημάτων

ΣύμπτωμαΈλεγχος
.dcm αναφέρεται ως μη υποστηριζόμενοΚαταχώριση DicomPlugin και ανάπτυξη πακέτου
Η εκκίνηση αποτυγχάνει μετά την προσθήκη του πρόσθετουΗ φορτωμένη άδεια παρέχει Dicom
Εμφανίζεται μόνο μία σελίδαΗ πηγή μπορεί να είναι μονοκαρέ, ή το DisplayMode είναι AnimationOnly
Το animation είναι πολύ γρήγορο ή αργόAnimationFrameDelayMs; ο αποτελεσματικός χρόνος GIF χρησιμοποιεί μονάδες των 10 ms
Η μνήμη αυξάνεται σε μεγάλα αρχεία πολλαπλών καρέΤρόπος εμφάνισης, ανάλυση, cache σελίδων, και ρητό κλείσιμο συνεδρίας
Τα μεταδεδομένα είναι null, ή το &meta επιστρέφει 501Αναμενόμενος περιορισμός .NET 6· η απόδοση δεν επηρεάζεται

Ήταν αυτή η σελίδα χρήσιμη;