فایل DICOM را در C# بخوانید | بیننده فایل DCM در C#

در آخرین پست ما، به شما نشان دادیم که چگونه یک فایل DICOM را در C# با استفاده از Aspose.Medical برای .NET ایجاد و ذخیره کنید. مرحله بعدی خواندن فایل DICOM ذخیره شده به طور برنامه‌نویسی در C# است. در این پست وبلاگ، شما یاد خواهید گرفت که چگونه فایل‌های DICOM را با استفاده از C# بارگذاری، باز کرده و بخوانید. می‌توانید از این راهنما به عنوان نقطه شروع برای ایجاد برنامه خودتان برای مشاهده فایل DCM استفاده کنید.

این مقاله موضوعات زیر را پوشش می‌دهد:

Aspose.Medical—نمایشگر فایل DCM

برای بارگذاری، خواندن و مشاهده فایل‌های DICOM، ما از Aspose.Medical for .NET استفاده خواهیم کرد. این API سازگار با توسعه‌دهندگان، امکاناتی برای خواندن، تحلیل و استخراج داده‌های DICOM به راحتی فراهم می‌کند. شیء Dataset در کلاس DicomFile این API کار را با متاداده‌های پزشکی آسان می‌کند.

قبل از اینکه شروع کنیم، اطمینان حاصل کنید از موارد زیر:

  • SDK را از releases دانلود کنید یا بسته را از طریق NuGet Package Manager با استفاده از دستور زیر نصب کنید:
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);

// خواندن Metadata تصویر
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

Try it Yourself

شما می‌توانید از هر فایل .dcm استفاده کنید، چه اینکه با استفاده از Aspose تولید شده باشد و چه از یک دستگاه تصویربرداری دریافت شده باشد. به سادگی فایل را بارگذاری کرده و برچسب‌ها را بخوانید، و شما آماده‌اید.

مجوز رایگان بگیرید

شما می‌توانید یک لایسنس موقت رایگان بگیرید تا بدون هیچ محدودیتی به بررسی تمام قابلیت‌های Aspose.Medical برای .NET بپردازید. این کار سریع، آسان و فقط یک دقیقه زمان می‌برد.

نمایشگر فایل DICOM: منابع رایگان

شما می‌توانید تجربه توسعه خود را با این منابع ارزشمند بهبود بخشید:

نتیجه گیری

در این مقاله، ما دیدیم که چگونه داده‌ها را از یک فایل DICOM در C# بخوانیم و استخراج کنیم. به عنوان یک توسعه‌دهنده، می‌توانید از Aspose.Medical برای .NET برای کار با فایل‌های DICOM (.dcm) استفاده کنید و برنامه نمایش‌دهنده فایل DCM خود را بسازید.

اگر سؤال دارید یا در حین کار با فایل‌های DICOM با مشکلی مواجه شدید، دریغ نکنید که در انجمن‌های Aspose بپرسید.تیم پشتیبانی همیشه آماده کمک کردن است.

همچنین ببینید