ปลั๊กอิน DICOM
ดูภาพทางการแพทย์ด้วย DicomPlugin
ปลั๊กอิน DICOM เพิ่มความสามารถในการดูภาพทางการแพทย์ให้กับ Doconut: ไฟล์ DICOM แบบหลายเฟรมจะแสดงเป็นภาพเคลื่อนไหวโดยรวม, เฟรมเดี่ยว, หรือทั้งสองอย่างพร้อมกัน. DICOM เป็น รูปแบบที่ต้องใช้ปลั๊กอินเท่านั้น — หากไม่มีปลั๊กอินนี้ (และความสามารถด้านใบอนุญาต), ไฟล์ .dcm จะไม่สามารถเปิดได้เลย.
ติดตั้งแพ็กเกจ
dotnet add package Doconut.NETStandard.Dicomคำสั่งที่ไม่มีเวอร์ชันจะติดตั้งรุ่นเสถียรล่าสุด. หากต้องการตรึงปลั๊กอินให้ตรงกับรุ่น 26.8.0 ปัจจุบัน, ให้ระบุเวอร์ชันแยกต่างหาก:
dotnet add package Doconut.NETStandard.Dicom --version 26.8.0ให้รักษาแพ็กเกจ DICOM ให้มีเวอร์ชันเดียวกับ Doconut.NETStandard. รหัสแพ็กเกจคือ
Doconut.NETStandard.Dicom; .26.8.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 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 Standard
การเรนเดอร์หน้า DICOM, เฟรมเดี่ยว, แอนิเมชัน, การแปลง, และการใส่น้ำลายน้ำได้รับการสนับสนุน. เมตาดาต้าแท็กทางเทคนิคไม่พร้อมใช้งานในแพ็กเกจ .NET Standard เนื่องจากตัวอ่านเมตาดาต้าให้มาเฉพาะรุ่น .NET 8 เท่านั้น.
Viewer.GetDicomMetadataAsync(token) จึงคืนค่า null สำหรับเซสชัน DICOM และบันทึกคำเตือนครั้งเดียว. คำขอ middleware ?token=…&meta จะตอบกลับด้วย HTTP 501 Not Implemented พร้อมรหัสข้อผิดพลาดคงที่
dicom_metadata_unsupported. ให้ใช้แพ็กเกจ .NET 8 เมื่อเมตาดาต้า DICOM ทางเทคนิคเป็นข้อกำหนด.
อ้างอิงการกำหนดค่าครบถ้วน
ตารางคุณสมบัติ 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 ms |
| หน่วยความจำเพิ่มขึ้นกับไฟล์หลายเฟรมขนาดใหญ่ | โหมดการแสดง, ความละเอียด, แคชหน้า, และการปิดเซสชันอย่างชัดเจน |
เมตาดาต้าเป็น null, หรือ &meta คืนค่า 501 | ข้อจำกัดที่คาดหวังของแพ็กเกจนี้; การเรนเดอร์ไม่ได้รับผลกระทบ |
หน้านี้เป็นประโยชน์หรือไม่?