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.MedicalSchritt 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.