
I vår senaste inlägg visade vi hur man skapar och sparar en DICOM fil i C# med Aspose.Medical för .NET. Nästa steg är att läsa den sparade DICOM-filen programmatiskt i C#. I detta blogginlägg kommer du att lära dig hur man laddar, öppnar och läser DICOM-filer med C#. Du kan använda den här guiden som en utgångspunkt för att skapa din egen DCM filvisningsapplikation.
Denna artikel täcker följande ämnen:
Aspose.Medical—DCM Fil Viewer
För att ladda, läsa och visa DICOM-filer kommer vi att använda Aspose.Medical för .NET.Det erbjuder ett utvecklarvänligt API för att läsa, analysera och extrahera DICOM-data utan ansträngning. Objektet Dataset
inuti en DicomFile
-klass i API:et gör det enkelt att arbeta med medicinsk metadata.
Innan vi börjar, se till att följa följande:
Install-Package Aspose.Medical
- Du har redan en DICOM-fil sparad (t.ex. sample.dcm) från den tidigare handledningen.
Hur man läser en DICOM-fil: Steg-för-steg-guide
Läs in DICOM-filen
Du kan ladda .dcm
-filen i ett DicomFile
-objekt och komma åt dess dataset, som demonstrerat nedan:
// Load an existing DICOM file
DicomFile dicomFile = new DicomFile("sample.dcm");
Aspose.Medical.Dicom.Dataset dataset = dicomFile.Dataset;
Läsa värden från en DICOM-fil
När filen har laddats kan du komma åt nyckelmetadata med hjälp av DICOM-taggar:
string patientName = dataset.GetSingleValue<string>(Tag.PatientName);
Console.WriteLine($"Patient Name: {patientName}");
Du kan läsa hundratals DICOM-taggar på det här sättet beroende på vilken information du behöver.
Åtkomst till pixeldata
Om du vill hämta bilddata från DICOM-filen, använd:
byte[] pixelData = dataset.GetValues<byte>(Tag.PixelData).ToArray(); // Use ToArray() for display
Console.WriteLine($"Pixel Data Length: {pixelData.Length} bytes");
Du kan använda denna byte-array för att återge bilden eller mata in den i vidare bearbetningsalgoritmer.
Hämtar ett standardvärde om en tagg saknas
När taggar är valfria kan du vilja ange fallback-värden. Använd GetSingleValueOrDefault för att hämta data eller returnera ett standardvärde om taggen är frånvarande.
string institutionName = dataset.GetSingleValueOrDefault<string>(Tag.InstitutionName, "Unknown");
Console.WriteLine("Institution Name: " + institutionName);
Detta är idealiskt för scenarier där närvaron av taggar är oförutsägbar.
Hämta ett specifikt värde från en flervärdes-flagga
Om en tagg innehåller flera värden, men du bara behöver ett, använd GetValue med ett index eller en intervallsuttryck.
double imagePositionX = dataset.GetValue<double>(Tag.ImagePositionPatient, ^1);
Console.WriteLine("First Image Position X: " + imagePositionX);
Obs: Denna metod kommer att kasta ett undantag om taggen saknas.
DCM Filvisare: Fullständig kod
Här är en komplett fungerande kod som visar hur man laddar en DICOM-fil och läser informationen om de tillgängliga taggarna:
// Ladda den sparade DICOM-filen
Aspose.Medical.Dicom.DicomFile dicomFile = DicomFile.Open("sample.dcm");
Aspose.Medical.Dicom.Dataset dataset = dicomFile.Dataset;
// Läs patientrelaterad information
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);
// Läs studieinformation
string studyDateStr = dataset.GetSingleValue<string>(Tag.StudyDate);
DateTime studyDate = DateTime.ParseExact(studyDateStr, "yyyyMMdd", null);
string studyID = dataset.GetSingleValue<string>(Tag.StudyID);
// Läs bildmetadata
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
// Visa 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
Försök själv
Du kan använda valfri .dcm
-fil, oavsett om den har genererats med Aspose eller mottagits från en bildbehandlingsenhet. Ladda helt enkelt filen och läs taggarna, så är du redo.
Få en gratis licens
Du kan get a free temporary license för att utforska hela funktionaliteten i Aspose.Medical för .NET utan några begränsningar. Det är snabbt, enkelt och tar bara en minut.
DICOM Filvisare: Gratis Resurser
Du kan förbättra din utvecklingsupplevelse med dessa värdefulla resurser:
Slutsats
I den här artikeln har vi sett hur man läser och extraherar data från en DICOM-fil i C#. Som utvecklare kan du använda Aspose.Medical för .NET för att arbeta med DICOM (.dcm) filer och bygga din egen DCM-filvisningsapplikation.
Om du har frågor eller stöter på problem när du arbetar med DICOM-filer, tveka inte att ask on the Aspose Forums.Supportteamet är alltid redo att hjälpa till.