Skapa en DICOM-fil i C# | DCM | DICOM | Aspose.Medical

DICOM är ett standardfilformat för lagring av medicinska bilder. Inom medicinska undersökningar används DICOM-filer i stor utsträckning inom radiologi, kardiologi och andra hälso- och sjukvårdsområden. Om du utvecklar ett medicinskt bildbehandlingssystem eller vill arbeta med medicinska data är det viktigt att lära sig att skapa DICOM-filer programmatisk. I det här inlägget kommer du att lära dig hur man skapar en DICOM-fil med C#. Låt oss börja.

Denna artikel ska täcka följande ämnen:

Aspose.Medical—DICOM-filsgenerator

För att skapa DICOM-filer kommer vi att använda Aspose.Medical för .NET.Det låter utvecklare skapa, redigera och bearbeta DICOM-filer programmässigt inom .NET-applikationer.

Install Aspose.Medical för .NET.

Vänligen ladda ner SDK:n från releases.Du kan också installera den via NuGet Paket hanteraren med följande kommando:

Install-Package Aspose.Medical

Steg-för-steg-guide för att skapa en DICOM-fil

Att skapa DICOM-filer programmässigt är enkelt med Aspose.Medical för .NET. Följ dessa enkla steg för att generera en grundläggande DICOM-fil i C#:

  1. Skapa en instans av DicomFile-klassen.
  2. Lägg till data i den nyss skapade DICOM-filen med hjälp av metoden AddOrUpdate().
  3. Slutligen, anropa Save()-metoden för att spara DCM-filen till en angiven sökväg.

Här är en komplett kodsnutt för att skapa en grundläggande DICOM-fil med lite viktig metadata.

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Tags;

// Skapa en tom DICOM-fil
DicomFile dicomFile = new();

// Lägg till data i den nyss skapade DICOM-filen.
dicomFile.Dataset.AddOrUpdate(Tag.PatientID, "JD123456");
dicomFile.Dataset.AddOrUpdate(Tag.PatientName, "John Doe");
dicomFile.Dataset.AddOrUpdate(Tag.PatientBirthDate, new DateTime(1985, 7, 20));
dicomFile.Dataset.AddOrUpdate(Tag.PatientSex, 0);
dicomFile.Dataset.AddOrUpdate(Tag.StudyDate, DateTime.Now);
dicomFile.Dataset.AddOrUpdate(Tag.StudyID, "Study001");

// Ange bildinformation (dummy pixeldata)
dicomFile.Dataset.AddOrUpdate(Tag.Rows, 256);
dicomFile.Dataset.AddOrUpdate(Tag.Columns, 256);
dicomFile.Dataset.AddOrUpdate(Tag.BitsAllocated, 8);

byte[] pixelData = new byte[256 * 256]; // 256x256 grayscale image
dicomFile.Dataset.AddOrUpdate(Tag.PixelData, pixelData);

// Ställ in modalitet (t.ex. CT, MR, US)
dicomFile.Dataset.AddOrUpdate(Tag.Modality, "OT"); // OT = Other

// Spara DICOM-filen
dicomFile.Save("sample.dcm");

Hur koden fungerar

DicomFile-klassen är den huvudsakliga klassen som representerar en komplett DICOM-fil. Den innehåller all metadata och bilddata som krävs av DICOM-standarden. Följande rad skapar en ny, tom DICOM-fil. Du kan sedan fylla den med metadata och pixeldata.

Aspose.Medical.Dicom.DicomFile dicomFile = new();

Dataset är en samling av DICOM-element. DICOM-elementen lagrar patientinformation, skanningsdetaljer, bilddata och mer i form av taggar. Tag-klassen tillhandahåller en lista över standard DICOM-taggar. Koden nedan lägger till eller uppdaterar ett DICOM-element (i detta fall, förvärvets bildfrekvens) med hjälp av en fördefinierad tagg.

dicomFile.Dataset.AddOrUpdate(Tag.XAAcquisitionFrameRate, 17.95);

När du har lagt till de nödvändiga uppgifterna med hjälp av fördefinierade taggar, använd Save()-metoden för att skriva filen till disken. Följande kodsegment sparar filen i .dcm-format på den angivna sökvägen.

dicomFile.Save("sample.dcm");

Få en gratis licens

Du kan skaffa en gratis tillfällig licens och utforska hela funktionaliteten i Aspose.Medical för .NET utan några begränsningar. Det är snabbt, enkelt och tar bara en minut.

Skapa DICOM DCM-filer: Gratis resurser

Utforska mer med dessa användbara länkar:

Slutsats

Att skapa en DICOM-fil programmässigt är inte längre komplicerat. Med Aspose.Medical för .NET kan du enkelt generera helt överensstämmande DICOM-filer med bara några få kodrader. Tveka inte att återanvända detta exempel genom att lägga till verkliga pixeldata eller koppla det till bildbehandlingsenheter.

Om du har frågor eller behöver hjälp med att arbeta med DICOM-filer, tveka inte att kontakta oss på vårt support forum.Supportteamet och communityn är alltid redo att hjälpa till.

Se även