קרא קובץ 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 של מנהל החב packages באמצעות הפקודה הבאה:
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

// Display information
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 עבור .NET ללא שום מגבלות. זה מהיר, קל, ולוקח רק דקה.

DICOM File Viewer: משאבים חינמיים

אתה יכול לשפר את חווית הפיתוח שלך עם המשאבים היקרים האלה:

סיכום

במאמר הזה, ראינו כיצד לקרוא ולהפיק נתונים מקובץ DICOM בשפת C#. כמפתח, אתה יכול להשתמש ב-Aspose.Medical עבור .NET כדי לעבוד עם קבצי DICOM (.dcm) ולבנות את יישום הצגת קובצי DCM שלך.

אם יש לך שאלות או נתקלת בבעיות בעת עבודה עם קבצי DICOM, אל תהסס ל שאל בפורומים של Aspose.צוות התמיכה תמיד מוכן לעזור.

ראה גם