Come convertire un file DICOM a JSON utilizzando DicomJsonSerializer

Come convertire un file DICOM a JSON utilizzando DicomJsonSerializer

Questo tutorial dimostra come convertire i file DICOM in formato JSON utilizzando il C#. La produzione jSON è essenziale per l’integrazione dei metadati DIKOM con i servizi web moderni, le API REST e i sistemi di informazione sanitaria.

I vantaggi della conversione di DICOM in JSON

  • • Integrazione Web:- JSON è il formato standard per REST API e servizi web.

  • Analisi dei dati:- Facile elaborazione dei metadati DICOM nei tubi di analisi dei dati.

  • • Interoperabilità *:- Condividi i metadati con sistemi che non supportano i formati DICOM nativi.

Prerequisiti: preparare l’ambiente

  • Inserisci Visual Studio o qualsiasi compatibile .NET IDE.
  • Creare un nuovo progetto di applicazione .NET 8 console.
  • Installare Aspose.Medical dal NuGet Package Manager.

Guida passo dopo passo per convertire DICOM in JSON

Passo 1: Installare Aspose.Medical

Aggiungi la biblioteca medica Aspose al tuo progetto utilizzando NuGet.

Install-Package Aspose.Medical

Passo 2: Includere gli spazi di nome necessari

Aggiungi riferimenti agli spazi di nome richiesti nel tuo codice.

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

Passo 3: Caricare il file DICOM

Scarica il file DICOM che desideri convertire.

DicomFile dcm = DicomFile.Open("patient_scan.dcm");

Passo 4: Serializzare a JSON

Utilizzare il DicomJsonSerializer.Serialize Metodo per convertire il file DICOM in JSON.

string json = DicomJsonSerializer.Serialize(dcm);

Passo 5: Salva o utilizza l’uscita JSON

Salva il JSON in un file o utilizza direttamente nella tua applicazione.

// Save to file
File.WriteAllText("patient_scan.json", json);

// Or use directly
Console.WriteLine(json);

Esempio di codice completo per convertire DICOM in JSON

Ecco un esempio completo che dimostra come convertire un file DICOM in 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");

Immagini di JSON Printed

Per JSON umano leggibile con indentazione, utilizzare il writeIndented Il Parametri:

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!");

Convertire Dataset invece di DicomFile

Puoi anche convertire solo la porzione 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);

Esempio di JSON Struttura di uscita

La produzione JSON segue lo standard DICOM PS3.18. ecco un esempio di come appare la produzione:

{
  "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"]
  }
}

Serializzazione basata sul Stream

Per grandi file o applicazioni web, utilizzare la serializzazione basata sul flusso:

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!");

Esempio di integrazione: inviare JSON a Web API

Ecco come integrare la conversione DICOM a JSON con 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!");
}

Tipi di utilizzo

Debugging dei metadati

Utilizzare la conversione JSON per controllare i valori di tag DICOM:

DicomFile dcm = DicomFile.Open("unknown_scan.dcm");
string json = DicomJsonSerializer.Serialize(dcm, writeIndented: true);
Console.WriteLine(json);

Inviare al web front-end

JSON è l’ideale per visualizzare i metadati DICOM nei visitatori basati sul browser:

// 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");
}

Quello che è incluso nella JSON Output

Il prodotto JSON comprende:

  • Tutti i tag DICOM con i loro valori
  • Representazioni di valore (VR) per ogni tag
  • Articoli di sequenza come oggetti JSON
  • Referenze dati binari (BulkData) per i dati pixel

Informazioni aggiuntive

  • Il formato JSON segue le specifiche di DICOM PS3.18 Web Services.
  • I grandi valori binari (come i dati dei pixel) sono tipicamente riferiti piuttosto che incorporati.
  • Considerare l’utilizzo di opzioni di serializzazione personalizzate per specifiche esigenze di integrazione.

conclusione

Questo tutorial ti ha mostrato come convertire i file DICOM in formato JSON in C# utilizzando Aspose.Medical. le uscite Json consentono l’integrazione senza sforzo con le moderne API sanitarie, i web viewers e i sistemi di analisi dei dati.

 Italiano