Comment convertir un fichier DICOM à JSON en utilisant DicomJsonSerializer
Ce tutoriel démontre comment convertir les fichiers DICOM au format JSON en utilisant C#. la sortie de jSON est essentielle pour l’intégration des métadonnées DIKOM avec les services web modernes, les APIs REST et les systèmes d’information en santé.
Les avantages de la conversion de DICOM à JSON
- L’intégration du Web :- JSON est le format standard pour les APIs REST et les services Web.
Analyse des données:- Traitement facile des métadonnées DICOM dans les pipelines d’analyse de données.
- L’interopérabilité :- Partager les métadonnées avec des systèmes qui ne supportent pas les formats DICOM indigènes.
Étiquette : Préparer l’environnement
- Configurez Visual Studio ou tout IDE .NET compatible.
- Créer un nouveau projet d’application pour la console .NET 8.
- Installez Aspose.Medical à partir du NuGet Package Manager.
Guide d’étape par étape pour convertir DICOM à JSON
Étape 1 : Installer Aspose.Medical
Ajoutez la bibliothèque Aspose.Medical à votre projet en utilisant NuGet.
Install-Package Aspose.MedicalÉtape 2 : Inclure les espaces de nom nécessaires
Ajoutez des références aux espaces de nom requis dans votre code.
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;Étape 3 : Télécharger le fichier DICOM
Téléchargez le fichier DICOM que vous voulez convertir.
DicomFile dcm = DicomFile.Open("patient_scan.dcm");Étape 4 : Sérialiser avec JSON
Utilisez le DicomJsonSerializer.Serialize Convertir le fichier DICOM en JSON.
string json = DicomJsonSerializer.Serialize(dcm);Étape 5: Enregistrer ou utiliser la sortie JSON
Sauver le JSON dans un fichier ou l’utiliser directement dans votre application.
// Save to file
File.WriteAllText("patient_scan.json", json);
// Or use directly
Console.WriteLine(json);Exemple de code complet pour convertir DICOM à JSON
Voici un exemple complet qui montre comment convertir un fichier DICOM à JSON:
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
// Load the DICOM file
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
// Convert to JSON
string json = DicomJsonSerializer.Serialize(dcm);
// Save to file
File.WriteAllText("patient_scan.json", json);
Console.WriteLine("DICOM file converted to JSON successfully!");
Console.WriteLine($"Output saved to: patient_scan.json");Pretty-printé JSON Output
Pour le JSON humain lisible avec indentation, utilisez le writeIndented Paramètres :
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
// Serialize with indentation for readability
string prettyJson = DicomJsonSerializer.Serialize(dcm, writeIndented: true);
File.WriteAllText("patient_scan_pretty.json", prettyJson);
Console.WriteLine("Pretty-printed JSON saved successfully!");Conversion de Dataset au lieu de DicomFile
Vous pouvez également convertir uniquement la portion Dataset :
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
// Serialize only the dataset (without file meta information)
string datasetJson = DicomJsonSerializer.Serialize(dcm.Dataset);
File.WriteAllText("patient_dataset.json", datasetJson);Exemple de la structure de sortie JSON
La sortie JSON est conforme à la norme DICOM PS3.18. Voici un exemple de ce que l’extension ressemble:
{
"00080005": {
"vr": "CS",
"Value": ["ISO_IR 100"]
},
"00080020": {
"vr": "DA",
"Value": ["20240115"]
},
"00080030": {
"vr": "TM",
"Value": ["143022"]
},
"00100010": {
"vr": "PN",
"Value": [
{
"Alphabetic": "DOE^JOHN"
}
]
},
"00100020": {
"vr": "LO",
"Value": ["12345"]
}
}Sérialisation basée sur le courant
Pour les fichiers majeurs ou les applications Web, utilisez la sérialisation basée sur le courant :
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
DicomFile dcm = DicomFile.Open("large_scan.dcm");
// Write directly to a file stream
using (FileStream fs = File.Create("large_scan.json"))
{
DicomJsonSerializer.Serialize(fs, dcm.Dataset);
}
Console.WriteLine("Large DICOM file serialized to JSON stream!");Exemple d’intégration: Envoyer JSON à l’API Web
Voici comment intégrer la conversion DICOM à JSON avec un client HTTP:
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
using System.Net.Http;
using System.Text;
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string json = DicomJsonSerializer.Serialize(dcm);
// Send to web API
using HttpClient client = new();
var content = new StringContent(json, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(
"https://api.example.com/dicom/metadata",
content
);
if (response.IsSuccessStatusCode)
{
Console.WriteLine("DICOM metadata successfully sent to API!");
}Conseils d’utilisation
Déploiement de DICOM Metadata
Utilisez la conversion JSON pour vérifier les valeurs de tag DICOM :
DicomFile dcm = DicomFile.Open("unknown_scan.dcm");
string json = DicomJsonSerializer.Serialize(dcm, writeIndented: true);
Console.WriteLine(json);Envoyer sur le Web Front-End
JSON est idéal pour afficher les métadonnées DICOM dans les téléspectateurs basés sur le navigateur :
// In ASP.NET Core controller
[HttpGet("dicom/{id}/metadata")]
public IActionResult GetMetadata(string id)
{
DicomFile dcm = DicomFile.Open($"storage/{id}.dcm");
string json = DicomJsonSerializer.Serialize(dcm);
return Content(json, "application/json");
}Ce qui est inclus dans JSON Output
La sortie JSON comprend :
- Toutes les étiquettes DICOM avec leurs valeurs
- Représentations de valeur (VR) pour chaque tag
- Articles de séquence tels que les objets JSON
- Les références de données binaires (BulkData) pour les données pixels
Informations supplémentaires
- Le format JSON suit la spécification DICOM PS3.18 Web Services.
- De grandes valeurs binaires (comme les données pixels) sont généralement référencées plutôt que intégrées.
- Considérez l’utilisation de possibilités de sérialisation personnalisées pour des exigences d’intégration spécifiques.
Conclusion
Ce tutoriel vous a montré comment convertir les fichiers DICOM au format JSON en C# en utilisant Aspose.Medical.JSON output permet une intégration sans fil avec les APIs de santé modernes, les navigateurs Web et les systèmes d’analyse de données.