
En nuestra última publicación, te mostramos cómo crear y guardar un DICOM archivo en C# usando Aspose.Medical for .NET. El siguiente paso es leer el archivo DICOM guardado programáticamente en C#. En esta publicación de blog, aprenderás cómo cargar, abrir y leer archivos DICOM usando C#. Puedes utilizar esta guía como punto de partida para crear tu propia aplicación de visualización de archivos DCM.
Este artículo cubre los siguientes temas:
Aspose.Medical—Visor de Archivos DCM
Para cargar, leer y ver archivos DICOM, utilizaremos Aspose.Medical for .NET.Proporciona una API amigable para desarrolladores para leer, analizar y extraer datos DICOM sin esfuerzo. El objeto Dataset dentro de una clase DicomFile de la API facilita el trabajo con metadatos médicos.
Antes de comenzar, asegúrate de lo siguiente:
- Descargue el SDK de las releases o instale el paquete a través del NuGet Package Manager utilizando el siguiente comando:
Install-Package Aspose.Medical
- Ya tienes un archivo DICOM guardado (por ejemplo, sample.dcm) del tutorial anterior.
Cómo leer un archivo DICOM: Guía paso a paso
Cargue el archivo DICOM
Puede cargar el archivo .dcm en un objeto DicomFile y acceder a su conjunto de datos, como se demuestra a continuación:
// Load an existing DICOM file
DicomFile dicomFile = new DicomFile("sample.dcm");
Aspose.Medical.Dicom.Dataset dataset = dicomFile.Dataset;
Leyendo valores de un archivo DICOM
Una vez que el archivo esté cargado, puedes acceder a los metadatos clave utilizando las etiquetas DICOM:
string patientName = dataset.GetSingleValue<string>(Tag.PatientName);
Console.WriteLine($"Patient Name: {patientName}");
Puedes leer cientos de etiquetas DICOM de esta manera dependiendo de la información que necesites.
Acceder a los datos de píxeles
Si deseas recuperar datos de imagen del archivo DICOM, utiliza:
byte[] pixelData = dataset.GetValues<byte>(Tag.PixelData).ToArray(); // Use ToArray() for display
Console.WriteLine($"Pixel Data Length: {pixelData.Length} bytes");
Puedes usar este array de bytes para renderizar la imagen o alimentarlo en algoritmos de procesamiento posteriores.
Recuperando un Valor Predeterminado si Falta una Etiqueta
Cuando las etiquetas son opcionales, es posible que desees proporcionar valores predeterminados. Usa GetSingleValueOrDefault para recuperar datos o devolver un valor predeterminado si la etiqueta está ausente.
string institutionName = dataset.GetSingleValueOrDefault<string>(Tag.InstitutionName, "Unknown");
Console.WriteLine("Institution Name: " + institutionName);
Esto es ideal para escenarios donde la presencia de etiquetas es impredecible.
Recuperar un Valor Específico de una Etiqueta de Múltiples Valores
Si una etiqueta contiene múltiples valores, pero solo necesitas uno, utiliza GetValue con un índice o expresión de rango.
double imagePositionX = dataset.GetValue<double>(Tag.ImagePositionPatient, ^1);
Console.WriteLine("First Image Position X: " + imagePositionX);
Nota: Este método lanzará una excepción si falta la etiqueta.
DCM File Viewer: Código Completo
Aquí hay un código completo de trabajo que muestra cómo cargar un archivo DICOM y leer la información de las etiquetas disponibles:
// Cargue el archivo DICOM guardado
Aspose.Medical.Dicom.DicomFile dicomFile = DicomFile.Open("sample.dcm");
Aspose.Medical.Dicom.Dataset dataset = dicomFile.Dataset;
// Leer información relacionada con el paciente
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);
// Leer información del estudio
string studyDateStr = dataset.GetSingleValue<string>(Tag.StudyDate);
DateTime studyDate = DateTime.ParseExact(studyDateStr, "yyyyMMdd", null);
string studyID = dataset.GetSingleValue<string>(Tag.StudyID);
// Leer los metadatos de la imagen
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
// Mostrar información
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
Inténtalo tú mismo
Puedes usar cualquier archivo .dcm, ya sea generado usando Aspose o recibido de un dispositivo de imágenes. Simplemente carga el archivo y lee las etiquetas, y ya estás listo.
Obtén una licencia gratuita
Puedes obtener una licencia temporal gratuita para explorar la funcionalidad completa de Aspose.Medical for .NET sin ninguna restricción. Es rápido, fácil y solo toma un minuto.
Visor de Archivos DICOM: Recursos Gratuitos
Puedes mejorar tu experiencia de desarrollo con estos recursos valiosos:
Conclusión
En este artículo, hemos visto cómo leer y extraer datos de un archivo DICOM en C#. Como desarrollador, puedes usar Aspose.Medical for .NET para trabajar con archivos DICOM (.dcm) y construir tu propia aplicación de visor de archivos DCM.
Si tienes preguntas o encuentras problemas mientras trabajas con archivos DICOM, no dudes en preguntar en los foros de Aspose.El equipo de soporte siempre está listo para ayudar.