ملحق 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 (الافتراضي) | الصفحة 1 = GIF متحرك، الصفحات 2..N = إطارات ثابتة | نظرة عامة + تفاصيل في مستند واحد |
يتم التحكم في توقيت الرسوم المتحركة بواسطة AnimationFrameDelayMs (الافتراضي 100 مللي ثانية = 10 إطار في الثانية؛ دقة 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 → إعدادات الصيغ. مثال إنتاجي من تبديل الامتداد في تطبيق المرجع:
".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 أو انتهت صلاحيته |
هل كانت هذه الصفحة مفيدة؟