Comment convertir un fichier DICOM à JSON en utilisant DicomJsonSerializer

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.

 Français