Πρόσθετο DICOM
Προβολή ιατρικών εικόνων με DicomPlugin
Το πρόσθετο DICOM προσθέτει προβολή ιατρικών εικόνων στο Doconut: αρχεία DICOM πολλαπλών καρέ αποδίδονται ως μια κινούμενη επισκόπηση, μεμονωμένα καρέ, ή και τα δύο. Το DICOM είναι μορφή μόνο‑πρόσθετου — χωρίς αυτό το πρόσθετο (και τη δυνατότητα άδειας), τα αρχεία .dcm δεν μπορούν να ανοιχτούν καθόλου.
Εγκατάσταση του πακέτου
dotnet add package Doconut.NET6.DicomΗ εντολή χωρίς έκδοση εγκαθιστά την πιο πρόσφατη σταθερή έκδοση. Για να κλειδώσετε το πρόσθετο στην τρέχουσα έκδοση 26.7.0, περάστε την έκδοση ξεχωριστά:
dotnet add package Doconut.NET6.Dicom --version 26.7.0Κρατήστε το πακέτο DICOM στην ίδια έκδοση με το Doconut.NET6. Το αναγνωριστικό πακέτου είναι
Doconut.NET6.Dicom; το .26.7.0 εμφανίζεται μόνο στο όνομα του ληφθέντος αρχείου .nupkg.
Καταχώριση του πρόσθετου
builder.Services.AddDoconut(options =>
{
options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});Το πρόσθετο (Name: "Doconut DICOM Viewer") καταχωρεί προβολείς για τις επεκτάσεις .dcm και .ima, υπό τον έλεγχο της δυνατότητας Dicom. Μια ελλιπής ή μη‑προσωρινή άδεια συνήθως αποτυγχάνει κατά το AddDoconut(). Επειδή κανένας ενσωματωμένος προβολέας δεν διαχειρίζεται αυτές τις μορφές, η πύλη χρόνου εκτέλεσης αποτυγχάνει επίσης σκληρά αν η δυνατότητα γίνει μη διαθέσιμη αργότερα:
LicenseException: This document type requires the 'Dicom' plugin license.Άνοιγμα αρχείου DICOM
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.
// 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. Ένα παραγωγικό παράδειγμα από την εφαρμογή αναφοράς με εναλλαγή ανά επέκταση:
".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· η απόδοση δεν επηρεάζεται |
Ήταν αυτή η σελίδα χρήσιμη;