
ใน โพสต์สุดท้าย เราได้แสดงให้คุณเห็นวิธีการสร้างและบันทึกไฟล์ DICOM ใน C# โดยใช้ Aspose.Medical for .NET ขั้นตอนถัดไปคือการอ่านไฟล์ DICOM ที่บันทึกไว้ในโปรแกรม C# ในโพสต์บล็อกนี้คุณจะได้เรียนรู้วิธีการโหลด เปิด และอ่านไฟล์ DICOM โดยใช้ C# คุณสามารถใช้คู่มือนี้เป็นจุดเริ่มต้นในการสร้างโปรแกรมดูไฟล์ DCM ของคุณเอง
บทความนี้ครอบคลุมหัวข้อดังต่อไปนี้:
Aspose.Medical—DCM ไฟล์ผู้ดูแล
สำหรับการโหลด การอ่าน และการดูไฟล์ DICOM เราจะใช้ Aspose.Medical for .NET。มันมี API ที่เป็นมิตรกับนักพัฒนาสำหรับอ่าน วิเคราะห์ และสกัดข้อมูล DICOM ได้อย่างง่ายดาย วัตถุ Dataset
ภายในคลาส DicomFile
ของ API ทำให้การทำงานกับข้อมูลเมตาทางการแพทย์เป็นเรื่องง่าย
ก่อนที่เราจะเริ่ม ให้ตรวจสอบสิ่งต่อไปนี้:
Install-Package Aspose.Medical
- คุณมีไฟล์ DICOM ที่บันทึกไว้แล้ว (เช่น sample.dcm) จากบทแนะนำก่อนหน้านี้
วิธีการอ่านไฟล์ DICOM: คู่มือทีละขั้นตอน
โหลดไฟล์ DICOM
คุณสามารถโหลดไฟล์ .dcm
ลงในวัตถุ DicomFile
และเข้าถึงชุดข้อมูลของมันได้ ตามที่แสดงด้านล่าง:
// Load an existing DICOM file
DicomFile dicomFile = new DicomFile("sample.dcm");
Aspose.Medical.Dicom.Dataset dataset = dicomFile.Dataset;
การอ่านค่าจากไฟล์ DICOM
เมื่อตัวไฟล์ถูกโหลดแล้ว คุณสามารถเข้าถึงข้อมูลเมตาที่สำคัญโดยใช้แท็ก DICOM:
string patientName = dataset.GetSingleValue<string>(Tag.PatientName);
Console.WriteLine($"Patient Name: {patientName}");
คุณสามารถอ่าน DICOM แท็กได้หลายร้อยแท็กในลักษณะนี้ขึ้นอยู่กับว่าคุณต้องการข้อมูลอะไร
เข้าถึงข้อมูลพิกเซล
หากคุณต้องการดึงข้อมูลภาพจากไฟล์ DICOM ให้ใช้:
byte[] pixelData = dataset.GetValues<byte>(Tag.PixelData).ToArray(); // Use ToArray() for display
Console.WriteLine($"Pixel Data Length: {pixelData.Length} bytes");
คุณสามารถใช้อาร์เรย์ไบต์นี้เพื่อเรนเดอร์ภาพหรือส่งไปยังอัลกอริธึมการประมวลผลเพิ่มเติมได้
การเรียกค่าพื้นฐานหากไม่มีแท็ก
เมื่อแท็กเป็นอ็อพชัน คุณอาจต้องการให้ค่าตั้งต้น ใช้ GetSingleValueOrDefault เพื่อดึงข้อมูลหรือคืนค่าเริ่มต้นหากแท็กไม่มีอยู่
string institutionName = dataset.GetSingleValueOrDefault<string>(Tag.InstitutionName, "Unknown");
Console.WriteLine("Institution Name: " + institutionName);
นี่เหมาะสำหรับสถานการณ์ที่การมีอยู่ของแท็กไม่สามารถคาดเดาได้
การดึงค่าที่เฉพาะเจาะจงจากแท็กหลายค่า
หากแท็กมีหลายค่า แต่คุณต้องการเพียงหนึ่งค่า ให้ใช้ GetValue กับดัชนีหรือลักษณะช่วง
double imagePositionX = dataset.GetValue<double>(Tag.ImagePositionPatient, ^1);
Console.WriteLine("First Image Position X: " + imagePositionX);
หมายเหตุ: วิธีนี้จะโยนข้อยกเว้นหากแท็กหายไป
DCM File Viewer: Complete Code
นี่คือโค้ดที่ทำงานอย่างสมบูรณ์ซึ่งแสดงวิธีการโหลดไฟล์ DICOM และอ่านข้อมูลแท็กที่มีอยู่:
// โหลดไฟล์ DICOM ที่บันทึกไว้
Aspose.Medical.Dicom.DicomFile dicomFile = DicomFile.Open("sample.dcm");
Aspose.Medical.Dicom.Dataset dataset = dicomFile.Dataset;
// อ่านข้อมูลที่เกี่ยวข้องกับผู้ป่วย
string patientID = dataset.GetSingleValue<string>(Tag.PatientID);
string patientName = dataset.GetSingleValue<string>(Tag.PatientName);
string birthDateStr = dataset.GetSingleValue<string>(Tag.PatientBirthDate);
DateTime birthDate = DateTime.ParseExact(birthDateStr, "yyyyMMdd", null);
// อ่านข้อมูลการศึกษา
string studyDateStr = dataset.GetSingleValue<string>(Tag.StudyDate);
DateTime studyDate = DateTime.ParseExact(studyDateStr, "yyyyMMdd", null);
string studyID = dataset.GetSingleValue<string>(Tag.StudyID);
// อ่านข้อมูลเมทาดาตาของรูปภาพ
int rows = dataset.GetSingleValue<int>(Tag.Rows);
int columns = dataset.GetSingleValue<int>(Tag.Columns);
int bitsAllocated = dataset.GetSingleValue<int>(Tag.BitsAllocated);
string modality = dataset.GetSingleValue<string>(Tag.Modality);
byte[] pixelData = dataset.GetValues<byte>(Tag.PixelData).ToArray(); // Use ToArray() for display
// แสดงข้อมูล
Console.WriteLine($"Patient ID: {patientID}");
Console.WriteLine($"Patient Name: {patientName}");
Console.WriteLine($"Birth Date: {birthDate:yyyy-MM-dd}");
Console.WriteLine($"Study Date: {studyDate:yyyy-MM-dd}");
Console.WriteLine($"Study ID: {studyID}");
Console.WriteLine($"Image Rows: {rows}");
Console.WriteLine($"Image Columns: {columns}");
Console.WriteLine($"Bits Allocated: {bitsAllocated}");
Console.WriteLine($"Modality: {modality}");
Console.WriteLine($"Pixel Data Length: {pixelData.Length} bytes");
Output
Patient ID: JD123456
Patient Name: John Doe
Birth Date: 1985-07-20
Study Date: 2025-07-07
Study ID: Study001
Image Rows: 256
Image Columns: 256
Bits Allocated: 8
Modality: OT
Pixel Data Length: 65536 bytes
ลองทำด้วยตัวเอง
คุณสามารถใช้ไฟล์ใด ๆ ที่มีนามสกุล .dcm
ไม่ว่าจะแก้ไขโดย Aspose หรือได้รับจากอุปกรณ์ถ่ายภาพ เพียงแค่โหลดไฟล์และอ่านแท็กต่าง ๆ ก็พร้อมใช้งานแล้ว
ขอรับใบอนุญาตฟรี
คุณสามารถ get a free temporary license เพื่อสำรวจฟังก์ชันการทำงานทั้งหมดของ Aspose.Medical for .NET โดยไม่มีข้อจำกัด มันรวดเร็ว ง่ายดาย และใช้เวลาเพียงหนึ่งนาที
DICOM File Viewer: ฟรีทรัพยากร
คุณสามารถเพิ่มประสบการณ์การพัฒนาของคุณด้วยทรัพยากรที่มีค่าเหล่านี้:
สรุป
ในบทความนี้ เราได้เห็นวิธีการอ่านและดึงข้อมูลจากไฟล์ DICOM ใน C# ในฐานะที่เป็นนักพัฒนา คุณสามารถใช้ Aspose.Medical for .NET เพื่อทำงานกับไฟล์ DICOM (.dcm) และสร้างแอปพลิเคชันตัวดูไฟล์ DCM ของคุณเอง
หากคุณมีคำถามหรือต้องพบปัญหาในขณะที่ทำงานกับไฟล์ DICOM อย่าลังเลที่จะ ถามใน Aspose Forums ทีมสนับสนุนพร้อมที่จะช่วยเสมอ