Как да конвертирате DICOM файл в JSON с помощта на DicomJsonSerializer
Този урок показва как да се конвертират DICOM файлове в JSON формат с помощта на C#. Изходът на jSON е от съществено значение за интегриране на метаданните на DIKOM с съвременни уеб услуги, REST APIs и здравни информационни системи.
Предимства на превръщането на DICOM в JSON
• Интеграция на уебсайта:- JSON е стандартният формат за REST APIs и уеб услуги.
Анализ на данните:- Лесно обработваме метаданните на DICOM в тръбите за анализ на данни.
- Интерактивна съвместимост *- Споделете метаданни с системи, които не поддържат коренни DICOM формати.
Предимства: Подготвяне на околната среда
- Visual Studio или всяка съвместима .NET IDE.
- Създаване на нов проект за .NET 8 конзола.
- Инсталирайте Aspose.Medical от NuGet Package Manager.
Стъпка по стъпка ръководство за превръщането на DICOM в JSON
Стъпка 1: Инсталирайте Aspose.Medical
Добавете библиотеката Aspose.Medical към вашия проект с помощта на NuGet.
Install-Package Aspose.MedicalСтъпка 2: Включете необходимите имена
Добавете препратки към необходимите имена в кода си.
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;Стъпка 3: Изтеглете файла DICOM
Изтеглете файла DICOM, който искате да конвертирате.
DicomFile dcm = DicomFile.Open("patient_scan.dcm");Стъпка 4: Сериализиране на JSON
Използвайте DicomJsonSerializer.Serialize Метод за конвертиране на DICOM файла в JSON.
string json = DicomJsonSerializer.Serialize(dcm);Стъпка 5: Запазете или използвайте JSON изхода
Съхранявайте JSON на файл или го използвайте директно в приложението си.
// Save to file
File.WriteAllText("patient_scan.json", json);
// Or use directly
Console.WriteLine(json);Допълнителен код пример за конвертиране на DICOM в JSON
Ето един пълен пример, който показва как да конвертирате DICOM файл в 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");Прекрасен JSON изход
За човешко-читаеми JSON с индентация, използвайте writeIndented Параметърът е:
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 вместо DicomFile
Можете също така да конвертирате само частта на 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);Изходната структура на JSON
Изходът на JSON следва стандарта DICOM PS3.18. Ето пример за това как изглежда изхода:
{
"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"]
}
}Сериализация на базата на потока
За големи файлове или уеб приложения, използвайте поток-базирана сериализация:
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!");Пример за интегриране: Изпращане на JSON към Web API
Ето как да се интегрира DICOM в JSON конверсия с HTTP клиент:
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!");
}Използване на съвети
Изтегляне на DICOM метаданни
Използвайте JSON конверсия, за да проверите стойностите на етикета DICOM:
DicomFile dcm = DicomFile.Open("unknown_scan.dcm");
string json = DicomJsonSerializer.Serialize(dcm, writeIndented: true);
Console.WriteLine(json);Изпращане към уеб фронт-енд
JSON е идеален за показване на DICOM метаданни в браузъра базирани зрители:
// 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");
}Какво е включено в JSON Output
Изходът на JSON включва:
- Всички знаци на DICOM с техните стойности
- Представяне на стойност (VR) за всеки етикет
- Следваща публикацияСеквиентни обекти като нистени JSON предмети
- Бинарни данни (BulkData) за пикселни данни
Допълнителна информация
- Форматът JSON следва спецификацията за уеб услуги на DICOM PS3.18.
- Големите бинарни стойности (като пикселните данни) обикновено се отнасят, а не се вграждат.
- Помислете за използването на персонализирани опции за сериализация за специфични изисквания за интеграция.
заключение
Този урок ви е показал как да конвертирате DICOM файлове в JSON формат в C# с помощта на Aspose.Medical.JSON изходът позволява безпроблемна интеграция с съвременните здравни АПИ, уеб гледачи и системи за анализ на данни.