
No nosso último post, mostramos como criar e salvar um DICOM arquivo em C# usando Aspose.Medical for .NET. O próximo passo é ler o arquivo DICOM salvo programaticamente em C#. Neste post do blog, você aprenderá como carregar, abrir e ler arquivos DICOM usando C#. Você pode usar este guia como um ponto de partida para criar seu próprio aplicativo visualizador de arquivos DCM.
Este artigo aborda os seguintes tópicos:
- Aspose.Medical—Visualizador de Arquivos DCM
- Como Ler um Arquivo DICOM usando C#
- Explore Free Resources
Aspose.Medical—Visualizador de arquivos DCM
Para carregar, ler e visualizar arquivos DICOM, usaremos Aspose.Medical for .NET.Ele fornece uma API amigável para desenvolvedores para ler, analisar e extrair dados DICOM sem esforço. O objeto Dataset dentro da classe DicomFile da API facilita o trabalho com metadados médicos.
Antes de começarmos, assegure-se do seguinte:
- Baixe o SDK a partir dos releases ou instale o pacote via NuGet Package Manager usando o seguinte comando:
Install-Package Aspose.Medical
- Você já tem um arquivo DICOM salvo (por exemplo, sample.dcm) do tutorial anterior.
Como Ler um Arquivo DICOM: Guia Passo a Passo
Carregue o arquivo DICOM
Você pode carregar o arquivo .dcm em um objeto DicomFile e acessar seu conjunto de dados, conforme demonstrado abaixo:
// Load an existing DICOM file
DicomFile dicomFile = new DicomFile("sample.dcm");
Aspose.Medical.Dicom.Dataset dataset = dicomFile.Dataset;
Lendo Valores de um Arquivo DICOM
Uma vez que o arquivo é carregado, você pode acessar os metadados principais usando tags DICOM:
string patientName = dataset.GetSingleValue<string>(Tag.PatientName);
Console.WriteLine($"Patient Name: {patientName}");
Você pode ler centenas de tags DICOM dessa forma, dependendo das informações que você precisa.
Acessar Dados de Pixel
Se você quiser recuperar dados de imagem do arquivo DICOM, use:
byte[] pixelData = dataset.GetValues<byte>(Tag.PixelData).ToArray(); // Use ToArray() for display
Console.WriteLine($"Pixel Data Length: {pixelData.Length} bytes");
Você pode usar esse array de bytes para renderizar a imagem ou alimentá-lo em algoritmos de processamento adicional.
Recuperando um Valor Padrão se uma Tag estiver Ausente
Quando as tags são opcionais, você pode querer fornecer valores padrão. Use GetSingleValueOrDefault para recuperar dados ou retornar um padrão se a tag estiver ausente.
string institutionName = dataset.GetSingleValueOrDefault<string>(Tag.InstitutionName, "Unknown");
Console.WriteLine("Institution Name: " + institutionName);
Isso é ideal para cenários onde a presença da etiqueta é imprevisível.
Recuperando um Valor Específico de uma Tag de Múltiplos Valores
Se uma tag contém múltiplos valores, mas você só precisa de um, use GetValue com uma expressão de índice ou intervalo.
double imagePositionX = dataset.GetValue<double>(Tag.ImagePositionPatient, ^1);
Console.WriteLine("First Image Position X: " + imagePositionX);
Atenção: Este método lançará uma exceção se a tag estiver faltando.
DCM File Viewer: Código Completo
Aqui está um código completo que mostra como carregar um arquivo DICOM e ler as informações dos tags disponíveis:
// Carregue o arquivo DICOM salvo
Aspose.Medical.Dicom.DicomFile dicomFile = DicomFile.Open("sample.dcm");
Aspose.Medical.Dicom.Dataset dataset = dicomFile.Dataset;
// Leia informações relacionadas ao 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);
// Leia as informações do estudo
string studyDateStr = dataset.GetSingleValue<string>(Tag.StudyDate);
DateTime studyDate = DateTime.ParseExact(studyDateStr, "yyyyMMdd", null);
string studyID = dataset.GetSingleValue<string>(Tag.StudyID);
// Leia os metadados da imagem
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
Tente você mesmo
Você pode usar qualquer arquivo .dcm, seja gerado usando Aspose ou recebido de um dispositivo de imagem. Basta carregar o arquivo e ler as tags, e você está pronto.
Obtenha uma Licença Gratuita
Você pode obter uma licença temporária gratuita para explorar toda a funcionalidade do Aspose.Medical for .NET sem quaisquer restrições. É rápido, fácil e leva apenas um minuto.
Visualizador de Arquivos DICOM: Recursos Gratuitos
Você pode aprimorar sua experiência de desenvolvimento com estes recursos valiosos:
Conclusão
Neste artigo, nós vimos como ler e extrair dados de um arquivo DICOM em C#. Como desenvolvedor, você pode usar Aspose.Medical for .NET para trabalhar com arquivos DICOM (.dcm) e construir sua própria aplicação visualizadora de arquivos DCM.
Se você tiver dúvidas ou encontrar problemas ao trabalhar com arquivos DICOM, não hesite em perguntar nos Fóruns da Aspose.A equipe de suporte está sempre pronta para ajudar.