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