תוסף DICOM

הצגת תמונות רפואיות עם DicomPlugin

תוסף DICOM מוסיף צפייה בתמונות רפואיות ל‑Doconut: קבצי DICOM מרובי‑פריימים מוצגים כתצוגה מונפשת, פריימים בודדים, או שניהם. DICOM הוא פורמט של תוסף בלבד — ללא תוסף זה (וללא יכולת הרישיון שלו), קבצי .dcm לא ניתנים לפתיחה כלל.

התקנת החבילה

bash
dotnet add package Doconut.NET8.Dicom

הפקודה ללא גרסה מתקינה את הגרסה היציבה האחרונה. כדי לקבע את התוסף לגרסה 26.7.0 הנוכחית, העבר את הגרסה בנפרד:

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

יש לשמור על חבילת DICOM באותה גרסה כמו Doconut.NET8. מזהה החבילה הוא Doconut.NET8.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 = 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.

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

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

קריאת מטא‑נתוני DICOM

להפעלות שנפתחות דרך תוסף זה, Viewer מציג את מטא‑נתוני התגים:

csharp
var metadata = await viewer.GetDicomMetadataAsync(token);
// null when the session isn't a DICOM document

הפנייה המלאה להגדרות

טבלת המאפיינים המלאה של DicomConfig נמצאת ב‑API Reference → Format Configs. דוגמה ייצור מהאפליקציה הרפרנסית עבור מעבר לפי הרחבה:

csharp
".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 או שפג תוקפו

האם דף זה היה מועיל?