תוסף DICOM
הצגת תמונות רפואיות עם DicomPlugin
תוסף DICOM מוסיף צפייה בתמונות רפואיות ל‑Doconut: קבצי DICOM מרובי‑פריימים מוצגים כתצוגה מונפשת, פריימים בודדים, או שניהם. DICOM הוא פורמט של תוסף בלבד — ללא תוסף זה (וללא יכולת הרישיון שלו), קבצי .dcm לא ניתנים לפתיחה כלל.
התקנת החבילה
dotnet add package Doconut.NET8.Dicomהפקודה ללא גרסה מתקינה את הגרסה היציבה האחרונה. כדי לקבע את התוסף לגרסה 26.7.0 הנוכחית, העבר את הגרסה בנפרד:
dotnet add package Doconut.NET8.Dicom --version 26.7.0יש לשמור על חבילת DICOM באותה גרסה כמו Doconut.NET8. מזהה החבילה הוא Doconut.NET8.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 = GIF מונפש שמולול לכל הפריימים | סקירה קולנועית מהירה |
FramesOnly | דפים 1..N = PNG סטטי אחד לכל פריים | ניווט דיאגנוסטי פריים‑אחר‑פריים |
AnimationAndFrames (default) | דף 1 = GIF מונפש, דפים 2..N = פריימים סטטיים | תצוגה כללית + פרטים במסמך אחד |
זמן האנימציה נשלט על ידי AnimationFrameDelayMs (ברירת מחדל 100 מ״ש = 10 FPS; גרנולריות ה‑GIF היא יחידות של 10 מ״ש) ו‑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
להפעלות שנפתחות דרך תוסף זה, Viewer מציג את מטא‑נתוני התגים:
var metadata = await viewer.GetDicomMetadataAsync(token);
// null when the session isn't a DICOM documentהפנייה המלאה להגדרות
טבלת המאפיינים המלאה של DicomConfig נמצאת ב‑API Reference → Format Configs. דוגמה ייצור מהאפליקציה הרפרנסית עבור מעבר לפי הרחבה:
".DCM" or ".IMA" => new DicomConfig { DisplayMode = DicomDisplayMode.AnimationAndFrames },סימן מים והתנהגות זיכרון
החלטת סימן המים הרגילה לדף חלה גם על פלט DICOM. עבור פלט מונפש, כל פריים של GIF מסומן כך שהסימן נשאר גלוי לאורך כל ההפעלה. DocOptions.Watermark מותאם אישית משמש רק כאשר נתיב הרישיון מאפשר סימני מים מותאמים; הוא אינו יכול להחליף סימן מים של הערכה.
מחקרים מרובי‑פריימים יכולים לייצר גם אנימציה וגם דף סטטי לכל פריים. AnimationAndFrames מספק את הניווט העשיר ביותר אך גם בעל עלות הרינדור והמטמון הגבוהה ביותר. עבור מחקרים גדולים:
- השתמשו ב‑
FramesOnlyכאשר בדיקת פריימים חשובה יותר מהפעלה קולנועית; - הימנעו מהגדלת שני צירי הרזולוציה ללא מדידת זיכרון;
- סגרו את ההפעלה במפורש כאשר המחקר אינו פתוח יותר;
- השאירו את
CachePagesמופעל רק כאשר היתרונות של גישה חוזרת עולים על שמירת התמונות.
פתרון בעיות
| תסמין | בדיקה |
|---|---|
.dcm מדווח כלא נתמך | רישום DicomPlugin והפצת החבילה |
| האתחול נכשל לאחר הוספת התוסף | הרישיון הטעון מעניק Dicom |
| מופיע רק דף אחד | המקור עשוי להיות פריים יחיד, או ש‑DisplayMode הוא AnimationOnly |
| האנימציה מהירה מדי או איטית | AnimationFrameDelayMs; תזמון GIF אפקטיבי משתמש ביחידות של 10 מ״ש |
| הזיכרון גדל בקבצים מרובי‑פריימים גדולים | מצב תצוגה, רזולוציה, מטמון דפים, וסגירת הפעלה מפורשת |
מטא‑נתונים הם null | הטוקן לא נפתח דרך תוסף DICOM או שפג תוקפו |
האם דף זה היה מועיל?