Як перетворити файл DICOM на JSON за допомогою DicomJsonSerializer
Цей навчальний заклад показує, як конвертувати файли DICOM у форматі JSON за допомогою C#. ДНЗ є необхідним для інтеграції метадатів 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 Output
Зберегти 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 Output
Для гуманітарно чистих 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!");
}Використання Tips
Завантажити DICOM Metadata
Використовуйте конвертацію JSON для перевірки знаків DICOM:
DicomFile dcm = DicomFile.Open("unknown_scan.dcm");
string json = DicomJsonSerializer.Serialize(dcm, writeIndented: true);
Console.WriteLine(json);Завантажити сайт Front-End
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 Web Services.
- Великі бінарні значення (наприклад, піксельні дані) зазвичай посилаються, а не вбудовані.
- Розглянемо використання персоналізованих варіантів серіалізації для конкретних вимог до інтеграції.
Заключення
Цей навчальний заклад показав вам, як конвертувати файли DICOM в форматі JSON в C# за допомогою Aspose.Medical.JSON-вихід дозволяє безперервну інтеграцію з сучасними АПІ охорони здоров’я, веб-переглядачами та системами аналізу даних.