Hoe om een DICOM-bestand naar JSON te converteren met behulp van DicomJsonSerializer

Hoe om een DICOM-bestand naar JSON te converteren met behulp van DicomJsonSerializer

Deze tutorial toont aan hoe om DICOM-bestanden in JSON-formaat te converteren met behulp van C#. json-uitgang is essentieel voor het integreren van metadata met moderne webdiensten, REST-API’s en gezondheidszorginformatiesystemen.

De voordelen van het omzetten van DICOM naar JSON

  • • Web integratie *:- JSON is het standaardformaat voor REST APIs en webdiensten.

  • De gegevensanalyse:- Eenvoudig verwerken van DICOM metadata in data analytics pipelines.

  • • Interoperabiliteit *- Metadata delen met systemen die geen inheemse DICOM-formaten ondersteunen.

Voorwaarden: het voorbereiden van het milieu

  • Installeer Visual Studio of een compatibele .NET IDE.
  • Maak een nieuw .NET 8 console-applicatieproject.
  • Installeer Aspose.Medical vanaf de NuGet Package Manager.

Step-by-step gids voor het omzetten van DICOM naar JSON

Stap 1: Installeer Aspose.Medical

Voeg de Aspose.Medische bibliotheek toe aan uw project met behulp van NuGet.

Install-Package Aspose.Medical

Stap 2: Inkluderen van noodzakelijke naamruimten

Voeg verwijzingen toe aan de vereiste naamruimten in uw code.

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

Stap 3: Download de DICOM-bestand

Download het DICOM-bestand dat u wilt converteren.

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

Stap 4: Serialiseren naar JSON

Gebruik de DicomJsonSerializer.Serialize Methode om de DICOM-bestand te converteren naar JSON.

string json = DicomJsonSerializer.Serialize(dcm);

Stap 5: Save of Use de JSON output

Speel de JSON op een bestand of gebruik het rechtstreeks in uw applicatie.

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

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

Volledige code voorbeeld om DICOM naar JSON te converteren

Hier is een complete voorbeeld van hoe je een DICOM-bestand naar JSON kunt converteren:

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 uitgang

Voor menselijk leesbare JSON met indentatie, gebruik de writeIndented Parameters :

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

Dataset converteren in plaats van DicomFile

U kunt ook alleen het gedeelte Dataset converteren:

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

Voorbeeld JSON output structuur

De JSON-uitgang volgt de DICOM PS3.18 standaard. hier is een voorbeeld van hoe de uitgang eruit ziet:

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

Stream-gebaseerde serialisering

Voor grote bestanden of web-toepassingen, gebruik stream-based serialisatie:

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

Integratie voorbeeld: verzenden van JSON naar Web API

Hier is hoe u de conversie van DICOM naar JSON met een HTTP-client kunt integreren:

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

Gebruik tips

Debugging van de metadata

Gebruik JSON conversie om de DICOM tagwaarden te controleren:

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

Stuur naar web front-end

JSON is ideaal voor het weergeven van DICOM metadata in browsergebaseerde kijkers:

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

Wat is opgenomen in JSON Output

De JSON-uitgang omvat:

  • Alle DICOM tags met hun waarden
  • Value Representations (VR) voor elke tag
  • Sequence items als nested JSON objecten
  • Binaire gegevensreferenties (BulkData) voor pixelgegevens

Aanvullende informatie

  • Het JSON-formaat volgt de DICOM PS3.18 Web Services specificatie.
  • Grote binaire waarden (zoals pixelgegevens) worden meestal verwijderd in plaats van ingebouwd.
  • Overweeg het gebruik van aangepaste serialisatieopties voor specifieke integratievereisten.

Conclusie

Deze tutorial heeft je aangetoond hoe je DICOM-bestanden in JSON-formaat in C# kunt converteren met behulp van Aspose.Medical.JSON output maakt onbeperkt integratie mogelijk met moderne gezondheidszorg APIs, web viewers en gegevensanalyse systemen.

 Nederlands