
Nel nostro ultimo post, ti abbiamo mostrato come creare e salvare un file DICOM in C# utilizzando Aspose.Medical for .NET. Il passo successivo è leggere il file DICOM salvato programmaticamente in C#. In questo post del blog, imparerai come caricare, aprire e leggere file DICOM utilizzando C#. Puoi utilizzare questa guida come punto di partenza per creare la tua applicazione di visualizzazione di file DCM.
Questo articolo tratta i seguenti argomenti:
- Aspose.Medical—Visualizzatore file DCM
- Come leggere un file DICOM utilizzando C#
- Esplora risorse gratuite
Aspose.Medical—Visualizzatore file DCM
Per il caricamento, la lettura e la visualizzazione di file DICOM, utilizzeremo Aspose.Medical for .NET.Fornisce un’API facile da usare per gli sviluppatori per leggere, analizzare ed estrarre dati DICOM senza sforzo. L’oggetto Dataset
all’interno della classe DicomFile
dell’API rende facile lavorare con i metadati medici.
Prima di iniziare, assicurati del seguente:
- Scarica l’SDK dai releases o installa il pacchetto tramite il gestore pacchetti NuGet utilizzando il seguente comando:
Install-Package Aspose.Medical
- Hai già un file DICOM salvato (ad esempio, sample.dcm) dal tutorial precedente.
Come leggere un file DICOM: guida passo dopo passo
Carica il file DICOM
Puoi caricare il file .dcm
in un oggetto DicomFile
e accedere al suo dataset, come dimostrato di seguito:
// Load an existing DICOM file
DicomFile dicomFile = new DicomFile("sample.dcm");
Aspose.Medical.Dicom.Dataset dataset = dicomFile.Dataset;
Leggere valori da un file DICOM
Una volta che il file è caricato, puoi accedere ai metadati chiave utilizzando i tag DICOM:
string patientName = dataset.GetSingleValue<string>(Tag.PatientName);
Console.WriteLine($"Patient Name: {patientName}");
Puoi leggere centinaia di tag DICOM in questo modo a seconda delle informazioni di cui hai bisogno.
Accedi ai dati dei pixel
Se vuoi recuperare i dati delle immagini dal file DICOM, usa:
byte[] pixelData = dataset.GetValues<byte>(Tag.PixelData).ToArray(); // Use ToArray() for display
Console.WriteLine($"Pixel Data Length: {pixelData.Length} bytes");
Puoi utilizzare questo array di byte per rendere l’immagine o alimentarlo in ulteriori algoritmi di elaborazione.
Recuperare un Valore Predefinito se un Tag è Mancante
Quando i tag sono facoltativi, potresti voler fornire valori di fallback. Usa GetSingleValueOrDefault per recuperare i dati o restituire un valore predefinito se il tag è assente.
string institutionName = dataset.GetSingleValueOrDefault<string>(Tag.InstitutionName, "Unknown");
Console.WriteLine("Institution Name: " + institutionName);
Questo è ideale per scenari in cui la presenza dei tag è imprevedibile.
Recupero di un valore specifico da un tag a valori multipli
Se un tag contiene valori multipli, ma ne hai bisogno solo di uno, utilizza GetValue con un’espressione di indice o di intervallo.
double imagePositionX = dataset.GetValue<double>(Tag.ImagePositionPatient, ^1);
Console.WriteLine("First Image Position X: " + imagePositionX);
Nota: Questo metodo genererà un’eccezione se il tag è mancante.
Visualizzatore file DCM: Codice completo
Ecco un codice completo funzionante che mostra come caricare un file DICOM e leggere le informazioni sui tag disponibili:
// Carica il file DICOM salvato
Aspose.Medical.Dicom.DicomFile dicomFile = DicomFile.Open("sample.dcm");
Aspose.Medical.Dicom.Dataset dataset = dicomFile.Dataset;
// Leggi le informazioni relative al paziente
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);
// Leggi le informazioni sullo studio
string studyDateStr = dataset.GetSingleValue<string>(Tag.StudyDate);
DateTime studyDate = DateTime.ParseExact(studyDateStr, "yyyyMMdd", null);
string studyID = dataset.GetSingleValue<string>(Tag.StudyID);
// Leggi i metadati dell'immagine
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
// Visualizza informazioni
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
Provalo tu stesso
Puoi utilizzare qualsiasi file .dcm
, sia esso generato utilizzando Aspose o ricevuto da un dispositivo di imaging. Basta caricare il file e leggere i tag, e sei a posto.
Ottieni una licenza gratuita
Puoi get a free temporary license per esplorare la piena funzionalità di Aspose.Medical for .NET senza alcuna restrizione. È veloce, facile e richiede solo un minuto.
Visualizzatore di file DICOM: Risorse gratuite
Puoi migliorare la tua esperienza di sviluppo con queste risorse preziose:
Conclusione
In questo articolo, abbiamo visto come leggere ed estrarre dati da un file DICOM in C#. Come sviluppatore, puoi utilizzare Aspose.Medical for .NET per lavorare con file DICOM (.dcm) e costruire la tua applicazione visualizzatore di file DCM.
Se hai domande o incontrando problemi mentre lavori con i file DICOM, non esitare a chiedere nei forum di Aspose.Il team di supporto è sempre pronto ad aiutare.