Cum să convertiți un fișier DICOM în JSON folosind DicomJsonSerializer

Cum să convertiți un fișier DICOM în JSON folosind DicomJsonSerializer

Acest tutorial demonstrează modul de a converti fișierele DICOM în format JSON folosind C#. rezultatul J SON este esențial pentru integrarea metadatelor DIKOM cu serviciile web moderne, APIs REST și sistemele de informații privind sănătatea.

Beneficiile transformării DICOM în JSON

  • • Integrație web *:- JSON este formatul standard pentru REST API și servicii web.

  • Analiza datelor:- Procesarea ușoară a metadatelor DICOM în tuburile de analiză a datelor.

  • • interoperabilitate *:- Partajați metadata cu sisteme care nu susțin formatele native DICOM.

Etichetă: pregătirea mediului

  • Instalați Visual Studio sau orice IDE compatibil .NET.
  • Creați un nou proiect de aplicații .NET 8 console.
  • Instalați Aspose.Medical de la NuGet Package Manager.

Ghidul pas cu pas pentru a transforma DICOM în JSON

Pasul 1: Instalați Aspose.Medical

Adăugați biblioteca Aspose.Medical la proiectul dvs. folosind NuGet.

Install-Package Aspose.Medical

Pasul 2: Includeți spațiile de nume necesare

Adăugați referințe la spațiile de nume necesare în codul dvs.

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

Pasul 3: Încărcați fișierul DICOM

Încărcați fișierul DICOM pe care doriți să-l convertiți.

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

Pasul 4: Serializarea la JSON

Foloseşte-l pe DicomJsonSerializer.Serialize Metoda de convertire a fișierului DICOM în JSON.

string json = DicomJsonSerializer.Serialize(dcm);

Pasul 5: Salvați sau utilizați ieșirea JSON

Salvați JSON într-un fișier sau utilizați-l direct în aplicația dvs.

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

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

Exemplu complet de cod pentru a transforma DICOM în JSON

Iată un exemplu complet care arată cum să convertiți un fișier DICOM în 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");

Rezultatele JSON imprimate

Pentru JSON citibil cu indentație, utilizați writeIndented Parametrii sunt:

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

Conversia Dataset în loc de DicomFile

De asemenea, puteți converti doar porția 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);

Exemplul structurii de ieșire JSON

Rezultatul JSON urmează standardul DICOM PS3.18. Aici este un exemplu de cum arată rezultatul:

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

Serializare bazată pe flux

Pentru fișierele mari sau aplicațiile web, utilizați serializarea bazată pe 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!");

Exemplu de integrare: Trimiterea JSON la Web API

Iată cum să integrați conversia DICOM la JSON cu 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!");
}

Tipuri de utilizare

Descărcare de metadate

Utilizați conversia JSON pentru a verifica valorile etichetei DICOM:

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

Întoarce-te la Front-End

JSON este ideal pentru afișarea metadatelor DICOM în vizualizatorii bazate pe 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");
}

Ce este inclus în JSON Output

Rezultatele JSON includ:

  • Toate etichetele DICOM cu valorile lor
  • Prezentări de valoare (VR) pentru fiecare etichetă
  • Articole de secvență ca obiecte JSON nestate
  • Referințe de date binare (BulkData) pentru datele cu pixel

Informații suplimentare

  • Formatul JSON urmează specificația DICOM PS3.18 Web Services.
  • Valorile binare mari (cum ar fi datele pe pixel) sunt de obicei referite mai degrabă decât încorporate.
  • Considerați utilizarea opțiunilor de serializare personalizate pentru cerințele specifice de integrare.

concluziile

Acest tutorial v-a arătat cum să convertiți fișierele DICOM în format JSON în C# folosind Aspose.Medical. rezultatul J SON permite integrarea fără întârziere cu APIs de sănătate moderne, vizualizatori web și sisteme de analiză a datelor.

 Română