Com convertir un arxiu DICOM a JSON utilitzant DicomJsonSerializer

Com convertir un arxiu DICOM a JSON utilitzant DicomJsonSerializer

Aquest tutorial demostra com convertir els arxius DICOM en el format JSON utilitzant C#. La sortida de jSON és essencial per a la integració de metadades DIKOM amb serveis web moderns, APIs REST i sistemes d’informació sanitària.

Beneficis de convertir DICOM a JSON

    • Integració web *:- JSON és el format estàndard per a APIs REST i serveis web.
  • Anàlisi de dades:- Processar fàcilment les metadades de DICOM en els tubs d’anàlisi de dades.

  • • Interoperabilitat *:- Compartir metadades amb sistemes que no donen suport als formats DICOM nadius.

Previsió: Preparar el medi ambient

  • Instal·lació de Visual Studio o qualsevol compatible .NET IDE.
  • Crear un nou projecte d’aplicació .NET 8 consola.
  • Instal·la Aspose.Medical des del NuGet Package Manager.

Guia de pas a pas per convertir DICOM a JSON

Pas 1: Instal·lació Aspose.Medical

Afegeix la biblioteca d’Aspose.Medical al teu projecte utilitzant NuGet.

Install-Package Aspose.Medical

Pas 2: Incloure els espais de nom necessaris

Afegeix referències als espais de nom requerits en el teu codi.

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

Pas 3: Carregar el fitxer DICOM

Carregueu el fitxer DICOM que voleu convertir.

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

Pas 4: Serialitzar amb JSON

Utilitza el DicomJsonSerializer.Serialize El mètode per convertir el fitxer DICOM a JSON.

string json = DicomJsonSerializer.Serialize(dcm);

Pas 5: Salvar o utilitzar la sortida JSON

Salvar el JSON a un arxiu o utilitzar-lo directament en la seva aplicació.

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

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

Exemple de codi complet per convertir DICOM a JSON

Aquí teniu un exemple complet que demostra com convertir un arxiu DICOM a 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");

Presentació de JSON Printed Output

Per a la lectura humana JSON amb indentació, utilitzeu el writeIndented Els paràmetres:

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

Convertir Dataset en lloc de DicomFile

També es pot convertir només la porció de 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);

Estructura de sortida JSON

La sortida JSON segueix la norma DICOM PS3.18. Aquí teniu un exemple de com sembla la sortida:

{
  "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èrie basada en el flux

Per a grans fitxers o aplicacions web, utilitzeu serialització basada en el flux:

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’integració: Enviar JSON a la web API

Aquí teniu com integrar la conversió DICOM a JSON amb 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!");
}

Tipus d’ús

Descàrrega de DICOM Metadades

Utilitzeu la conversió JSON per inspeccionar els valors de la etiqueta DICOM:

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

Enviament a la web Front-End

JSON és ideal per a la visualització de metadades DICOM en espectadors basats en navegador:

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

Què s’inclou en la sortida JSON

La sortida JSON inclou:

  • Totes les etiquetes DICOM amb els seus valors
  • Representacions de valor (VR) per a cada etiqueta
  • Objectes de seqüència com objectes JSON
  • Referències de dades binàries (BulkData) per a dades de píxels

Informació addicional

  • El format JSON segueix la especificació DICOM PS3.18 Web Services.
  • Els grans valors binaris (com les dades de píxels) solen referir-se en lloc de ser incorporats.
  • Considera utilitzar opcions de serialització personalitzades per a requisits d’integració específics.

Conclusió

Aquest tutorial t’ha mostrat com convertir els arxius DICOM en el format JSON en C# utilitzant Aspose.Medical. la sortida jSON permet la integració sense segell amb les APIs sanitàries modernes, els visualitzadors web i els sistemes d’anàlisi de dades.

 Català