Kako pretvoriti DICOM datoteku u JSON pomoću DicomJsonSerializer

Kako pretvoriti DICOM datoteku u JSON pomoću DicomJsonSerializer

Ovaj tutorial pokazuje kako pretvoriti DICOM datoteke u JSON formatu pomoću C#.JSON izlazak je neophodan za integraciju metapodataka DIKOM-a s modernim web uslugama, REST API-ima i zdravstvenim informacijskim sustavima.

Prednosti pretvaranja DICOM-a u JSON

  • • Internetska integracija:- JSON je standardni format za REST API i web usluge.

  • Analiza podataka:- Jednostavno obrađivanje metapodataka DICOM-a u cijevi za analizu podataka.

  • • Interoperabilnost *:- Podijelite metapodatke sa sustavima koji ne podržavaju native DICOM formate.

Predviđanja: Priprema za okoliš

  • Sastavite Visual Studio ili bilo koji kompatibilni .NET IDE.
  • Stvorite novi .NET 8 konzol aplikacijski projekt.
  • Instalirajte Aspose.Medical iz upravitelja paketa NuGet.

Korak po korak vodič za pretvaranje DICOM-a u JSON

Korak 1: Instalirati Aspose.Medical

Dodajte Aspose.Medical knjižnicu u svoj projekt pomoću NuGeta.

Install-Package Aspose.Medical

Korak 2: Uključite potrebne nazivne prostore

Dodajte upute potrebnim nazivnim prostorima u vašem kodu.

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

Korak 3: Preuzmite DICOM datoteku

Preuzmite DICOM datoteku koju želite pretvoriti.

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

Korak 4: Serializirajte se na JSON

Koristite ga DicomJsonSerializer.Serialize Metoda za pretvaranje DICOM datoteke u JSON.

string json = DicomJsonSerializer.Serialize(dcm);

Korak 5: Sačuvajte ili koristite JSON izlaz

Sačuvajte JSON u datoteku ili ga koristite izravno u aplikaciji.

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

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

Kompletni primjer koda za pretvaranje DICOM-a u JSON

Ovdje je potpuni primjer koji pokazuje kako pretvoriti DICOM datoteku u 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");

Prethodni Članak Pretty Print JSON Output

Za ljudski čitljiv JSON s indentacijom, koristite writeIndented Parametri su:

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

Konverzija Dataset umjesto DicomFile

Također možete pretvoriti samo dio 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);

Primjer JSON izlazna struktura

JSON izlazak slijedi standard DICOM PS3.18. evo primjera kako izlaz izgleda:

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

Serializiranje na temelju struje

Za velike datoteke ili web aplikacije, koristite serializiranje na temelju protoka:

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

Primjer integracije: Pošaljite JSON na web API

Evo kako integrirati konverziju DICOM-a u JSON s HTTP klijenta:

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

Korištenje tipova

Debugging metapodataka

Koristite JSON konverziju kako biste provjerili vrijednosti tagova DICOM-a:

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

Pošaljite na web front-end

JSON je idealan za prikazivanje metapodataka DICOM-a u preglednicima koji se temelje na pregledniku:

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

Što je uključeno u JSON izlazak

Izlazak JSON-a uključuje:

  • Svi DICOM oznake sa svojim vrijednostima
  • Vrijednost (VR) za svaku oznaku
  • Sljedeći članakSekvencijski predmeti kao nestani JSON objekti
  • Binarne reference podataka (BulkData) za pixel podatke

Dodatne informacije

  • JSON format slijedi specifikaciju DICOM PS3.18 Web Services.
  • Velike binarne vrijednosti (kao što su pixel podaci) obično se upućuju umjesto ugrađene.
  • Razmislite o korištenju prilagođenih opcija serializiranja za određene zahtjeve integracije.

zaključak

Ovaj tutorial vam je pokazao kako pretvoriti DICOM datoteke u JSON format u C# pomoću Aspose.Medical.JSON izlazak omogućuje bespomoćnu integraciju s modernim zdravstvenim API-ima, web preglednicima i sustavima analize podataka.

 Hrvatski