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

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

Этот урок показывает, как конвертировать файлы DICOM в JSON-формат с использованием C#. Выход J SON необходим для интеграции метаданных DIKOM с современными веб-сервисами, APIs REST и информационными системами здравоохранения.

Преимущества превращения 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 Output Structure

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

 Русский