Lire un fichier DICOM en C# | Visionneuse de fichiers DCM en C#

Dans notre dernier post, nous vous avons montré comment créer et enregistrer un DICOM fichier en C# utilisant Aspose.Medical for .NET. La prochaine étape est de lire le fichier DICOM enregistré programmatique en C#. Dans cet article de blog, vous apprendrez comment charger, ouvrir et lire des fichiers DICOM en C#. Vous pouvez utiliser ce guide comme point de départ pour créer votre propre application de visualisation de fichiers DCM.

Cet article couvre les sujets suivants :

Aspose.Medical—DCM File Viewer

Pour charger, lire et visualiser des fichiers DICOM, nous utiliserons Aspose.Medical for .NET.Il fournit une API conviviale pour les développeurs afin de lire, analyser et extraire des données DICOM sans effort. L’objet Dataset à l’intérieur d’une classe DicomFile de l’API facilite le travail avec les métadonnées médicales.

Avant de commencer, assurez-vous de ce qui suit :

  • Téléchargez le SDK à partir des releases ou installez le package via le gestionnaire de packages NuGet en utilisant la commande suivante :
Install-Package Aspose.Medical
  • Vous avez déjà un fichier DICOM enregistré (par exemple, sample.dcm) à partir du tutoriel précédent.

Comment lire un fichier DICOM : guide étape par étape

Charger le fichier DICOM

Vous pouvez charger le fichier .dcm dans un objet DicomFile et accéder à son ensemble de données, comme démontré ci-dessous :

// Load an existing DICOM file
DicomFile dicomFile = new DicomFile("sample.dcm");
Aspose.Medical.Dicom.Dataset dataset = dicomFile.Dataset;

Lecture des valeurs à partir d’un fichier DICOM

Une fois le fichier chargé, vous pouvez accéder aux métadonnées clés en utilisant les balises DICOM :

string patientName = dataset.GetSingleValue<string>(Tag.PatientName);
Console.WriteLine($"Patient Name: {patientName}");

Vous pouvez lire des centaines de tags DICOM de cette manière en fonction des informations dont vous avez besoin.

Accéder aux données de pixel

Si vous voulez récupérer des données d’image du fichier DICOM, utilisez :

byte[] pixelData = dataset.GetValues<byte>(Tag.PixelData).ToArray(); // Use ToArray() for display
Console.WriteLine($"Pixel Data Length: {pixelData.Length} bytes");

Vous pouvez utiliser ce tableau d’octets pour rendre l’image ou l’alimenter dans des algorithmes de traitement supplémentaires.

Récupération d’une valeur par défaut si une étiquette est manquante

Lorsque les balises sont optionnelles, vous voudrez peut-être fournir des valeurs par défaut. Utilisez GetSingleValueOrDefault pour récupérer des données ou renvoyer une valeur par défaut si la balise est absente.

string institutionName = dataset.GetSingleValueOrDefault<string>(Tag.InstitutionName, "Unknown");

Console.WriteLine("Institution Name: " + institutionName);

C’est idéal pour des scénarios où la présence de balises est imprévisible.

Récupérer une valeur spécifique d’une balise à valeurs multiples

Si une balise contient plusieurs valeurs, mais que vous n’en avez besoin que d’une seule, utilisez GetValue avec une expression d’index ou de plage.

double imagePositionX = dataset.GetValue<double>(Tag.ImagePositionPatient, ^1);

Console.WriteLine("First Image Position X: " + imagePositionX);

Note : Cette méthode lancera une exception si l’étiquette est manquante.

DCM File Viewer: Code complet

Voici un code complet qui montre comment charger un fichier DICOM et lire les informations des tags disponibles :

// Charger le fichier DICOM enregistré
Aspose.Medical.Dicom.DicomFile dicomFile = DicomFile.Open("sample.dcm");
Aspose.Medical.Dicom.Dataset dataset = dicomFile.Dataset;

// Lire les informations liées au patient
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);

// Lire les informations d'étude
string studyDateStr = dataset.GetSingleValue<string>(Tag.StudyDate);
DateTime studyDate = DateTime.ParseExact(studyDateStr, "yyyyMMdd", null);
string studyID = dataset.GetSingleValue<string>(Tag.StudyID);

// Lire les métadonnées de l'image
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

Essayez-le vous-même

Vous pouvez utiliser n’importe quel fichier .dcm, qu’il soit généré à l’aide d’Aspose ou reçu d’un appareil d’imagerie. Il vous suffit de charger le fichier et de lire les balises, et vous êtes prêt.

Obtenez une licence gratuite

Vous pouvez get a free temporary license pour explorer l’ensemble des fonctionnalités d’Aspose.Medical for .NET sans aucune restriction. C’est rapide, facile, et cela prend juste une minute.

Visionneuse de fichiers DICOM : ressources gratuites

Vous pouvez améliorer votre expérience de développement avec ces ressources précieuses :

Conclusion

Dans cet article, nous avons vu comment lire et extraire des données d’un fichier DICOM en C#. En tant que développeur, vous pouvez utiliser Aspose.Medical for .NET pour travailler avec des fichiers DICOM (.dcm) et créer votre propre application de visualiseur de fichiers DCM.

Si vous avez des questions ou rencontrez des problèmes lors de l’utilisation des fichiers DICOM, n’hésitez pas à demander sur les forums Aspose.L’équipe de support est toujours prête à aider.

Voir aussi