Как да конвертирате DICOM файл в JSON с помощта на DicomJsonSerializer

Как да конвертирате 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 изходът позволява безпроблемна интеграция с съвременните здравни АПИ, уеб гледачи и системи за анализ на данни.

 Български