Wie man ein DICOM-Datei zu JSON mit DicomJsonSerializer umwandelt

Wie man ein DICOM-Datei zu JSON mit DicomJsonSerializer umwandelt

Dieses Tutorial zeigt, wie man DICOM-Dateien in JSON-Format mit C# konvertiert.JSON Output ist unerlässlich für die Integration von Metadaten mit modernen Web-Services, REST APIs und Gesundheitsinformationssystemen.

Vorteile der Konvertierung von DICOM zu JSON

  • • Web-Integration und Integration:- JSON ist das Standardformat für REST APIs und Web-Diensten.

  • Datenanalyse:- Einfacher Verarbeitung von DICOM-Metadaten in Datenanalyse-Pipelinen.

    • Interoperabilität *- Teilen Sie Metadaten mit Systemen, die native DICOM-Formate nicht unterstützen.

Voraussetzungen: Umwelt vorbereiten

  • Installieren Sie Visual Studio oder eine kompatible .NET IDE.
  • Erstellen Sie ein neues .NET 8-Konsole-Anwendungsprojekt.
  • Installieren Sie Aspose.Medical vom NuGet Package Manager.

Schritt für Schritt Guide zum Umwandeln von DICOM in JSON

Schritt 1: Installieren Aspose.Medical

Fügen Sie die Aspose.Medical Bibliothek zu Ihrem Projekt mit NuGet hinzu.

Install-Package Aspose.Medical

Schritt 2: Inkludieren Sie notwendige Namenräume

Fügen Sie Referenzen zu den erforderlichen Namenräumen in Ihrem Code hinzu.

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

Schritt 3: Laden Sie die DICOM-Datei herunter

Laden Sie die DICOM-Datei herunter, die Sie konvertieren möchten.

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

Schritt 4: Serialisieren zu JSON

Verwenden Sie die DicomJsonSerializer.Serialize Methode, um die DICOM-Datei in JSON zu konvertieren.

string json = DicomJsonSerializer.Serialize(dcm);

Schritt 5: Speichern oder verwenden Sie den JSON-Ausgang

Speichern Sie die JSON in eine Datei oder verwenden Sie sie direkt in Ihrer Anwendung.

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

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

Vollständige Code-Example zum Umwandeln von DICOM in JSON

Hier ist ein vollständiges Beispiel, das zeigt, wie man eine DICOM-Datei in JSON konvertiert:

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 Ausgabe

Für menschlich lesbare JSON mit Indentation, verwenden Sie die writeIndented Die Parameter:

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 anstelle von DicomFile konvertieren

Sie können auch nur die Dataset-Partei konvertieren:

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

Beispiel JSON Ausgangsstruktur

Der JSON-Ausgang folgt dem DICOM PS3.18 Standard. Hier ist ein Beispiel dafür, wie der Ausgang aussieht:

{
  "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-basierte Serialisierung

Für große Dateien oder Web-Anwendungen verwenden Sie Stream-basierte Serialisierung:

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

Integration Beispiel: Senden von JSON zu Web API

Hier ist, wie man die DICOM-to-JSON-Konvertierung mit einem HTTP-Client integriert:

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

Gebrauchstips

Debugging von DICOM Metadata

Verwenden Sie JSON-Konvertierung, um die DICOM-Tagwerte zu überprüfen:

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

Übertragung zum Web Front-End

JSON ist ideal für die Anzeige von DICOM-Metadaten in Browser-basierten Zuschauern:

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

Was ist in JSON Output enthalten

Die JSON-Ausgabe umfasst:

  • Alle DICOM-Tags mit ihren Werten
  • Wertreprezentationen (VR) für jeden Tag
  • Sequenzobjekte wie Nested JSON Objekte
  • Binäre Datenreferenzen (BulkData) für Pixel-Daten

Zusätzliche Informationen

  • Das JSON-Format folgt der DICOM PS3.18 Web Services Spezifikation.
  • Große binäre Werte (wie Pixel-Daten) werden in der Regel eher bezogen als eingebettet.
  • Betrachten Sie die Anwendung von benutzerdefinierten Serialisierungsoptionen für spezifische Integrationsanforderungen.

Schlussfolgerungen

Dieses Tutorial hat Ihnen gezeigt, wie Sie DICOM-Dateien in JSON-Format in C# mithilfe von Aspose.Medical konvertieren.JSON Output ermöglicht unbequeme Integration mit modernen Gesundheits-APIs, Web-Speakers und Datenanalytikensystemen.

 Deutsch