Jak převést soubor DICOM na JSON pomocí DicomJsonSerializer

Jak převést soubor DICOM na JSON pomocí DicomJsonSerializer

Tento tutoriál ukazuje, jak převést soubory DICOM do formátu JSON pomocí C#. Výstup jSON je nezbytný pro integraci metadata DIKOM s moderními webovými službami, REST API a zdravotnickými informačními systémy.

Výhody konverze DICOM na JSON

  • • Webová integrace:- JSON je standardní formát pro REST API a webové služby.

  • Analýza údaj:- Snadno zpracováváme metadata DICOM v datových analytických potrubích.

  • • interoperabilita *- Sdílejte metadata se systémy, které nepodporují původní formáty DICOM.

Předpoklady: Příprava životního prostředí

  • Nastavení Visual Studio nebo jakéhokoli kompatibilního .NET IDE.
  • Vytvořte nový projekt aplikace .NET 8 konzole.
  • Instalace aplikace Aspose.Medical z programu NuGet Package Manager.

Krok za krokem průvodce pro konverzi DICOM na JSON

Krok 1: Instalace Aspose.Medical

Přidejte do svého projektu knihovnu Aspose.Medicine pomocí aplikace NuGet.

Install-Package Aspose.Medical

Krok 2: Vložte potřebné názevové prostory

Přidejte odkazy na požadované názevové prostory ve vašem kódu.

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

Krok 3: Stáhněte soubor DICOM

Stáhněte si soubor DICOM, který chcete převést.

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

Krok 4: Serializujte se na JSON

Použijte The DicomJsonSerializer.Serialize Metoda pro konverzi souboru DICOM na JSON.

string json = DicomJsonSerializer.Serialize(dcm);

Krok 5: Uložte nebo použijte výstup JSON

Uložte JSON do souboru nebo jej použijte přímo ve vaší aplikaci.

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

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

Kompletní příklad kódu pro konverzi DICOM na JSON

Zde je kompletní příklad, který ukazuje, jak převést soubor DICOM na 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 Výstup

Pro lidsky čitelný JSON s indentací, použijte writeIndented a parametrů :

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

Převod datasetů namísto DicomFile

Můžete také převést pouze část 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);

Výstupní struktura JSON

Výstup JSON je v souladu se standardem DICOM PS3.18. zde je příklad toho, jak vypadá výstup:

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

Streamová serializace

Pro velké soubory nebo webové aplikace použijte stream-based serializace:

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

Příklad integrace: Odesílání JSON na webovou API

Zde je, jak integrovat konverzi DICOM do JSON s HTTP klientem:

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

Použití tipů

Debugging DICOM metadata

Použijte konverzi JSON, abyste zkontrolovali hodnoty tagů DICOM:

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

Odesílání na web Front-End

JSON je ideální pro zobrazení metadata DICOM v prohlížeči založeném:

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

Co je zahrnuto v JSON Output

Výstup JSON zahrnuje:

  • Všechny značky DICOM se svými hodnotami
  • hodnotové prezentace (VR) pro každou značku
  • Sekvenční položky jako nestované JSON objekty
  • Binární data reference (BulkData) pro pixelové údaje

Další informace

  • Formát JSON následuje specifikace DICOM PS3.18 Web Services.
  • Velké binární hodnoty (jako pixelové údaje) jsou obvykle referovány spíše než vestavěné.
  • Zvažte využití možností přizpůsobené serializace pro specifické požadavky na integraci.

závěr

Tento výukový program vám ukázal, jak převést soubory DICOM do formátu JSON v C# pomocí Aspose.Medical.JSON výstup umožňuje bezproblémovou integraci s moderními zdravotnickými API, webovými prohlížeči a systémy analýzy dat.

 Čeština