Aspose.Medical DICOM в текстовый конвертер для .NET

Aspose.Medical DICOM to Text Converter для .NET является мощным API, сосредоточенным на конвертировании данных ДИКОМ в человечески читаемые и машинно распространённые форматы. Он сериализирует серийные серии DICOMO в JSON и XML форматах, позволяя интегрироваться с веб-сервисами, REST APIs и современными системами здравоохранения.

Инсталляция и установка

Поддерживаемые платформы

  • Операционная система: Windows, Linux, macOS
  • Фрагменты: .NET 8.0+
  • Архитектура: x64, ARM64 (macOS)

Быстрый старт

1) ДИКОМ к JSON

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string json = DicomJsonSerializer.Serialize(dcm);

2) DICOM до JSON с Pretty Print

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string formattedJson = DicomJsonSerializer.Serialize(dcm, writeIndented: true);
Console.WriteLine(formattedJson);

3) DICOM Dataset в JSON

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

DicomFile dcm = DicomFile.Open("patient_scan.dcm");
Dataset dataset = dcm.Dataset;
string json = DicomJsonSerializer.Serialize(dataset, writeIndented: true);

4) Многофункциональные файлы DICOM для JSON Array

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

DicomFile dcm1 = DicomFile.Open("scan1.dcm");
DicomFile dcm2 = DicomFile.Open("scan2.dcm");
Dataset[] datasets = [dcm1.Dataset, dcm2.Dataset];
string json = DicomJsonSerializer.Serialize(datasets, writeIndented: true);

Сериализация к потоку (Memory Efficient)

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

DicomFile dcm = DicomFile.Open("patient_scan.dcm");
using MemoryStream stream = new();
DicomJsonSerializer.Serialize(stream, dcm.Dataset);

6) Сохранить как JSON файл

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

DicomFile dcm = DicomFile.Open("patient_scan.dcm");
using FileStream output = File.Create("output.json");
DicomJsonSerializer.Serialize(output, dcm.Dataset, writeIndented: true);

JSON десертизация

Скачать JSON String to Dataset

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

string jsonText = File.ReadAllText("dicom_data.json");
Dataset? dataset = DicomJsonSerializer.Deserialize(jsonText);

Скачать JSON Stream в Dataset

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

using FileStream stream = File.OpenRead("dicom_data.json");
Dataset? dataset = DicomJsonSerializer.Deserialize(stream);

Deserialize JSON to Дикомфиль

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

string jsonText = File.ReadAllText("dicom_file.json");
DicomFile? dicomFile = DicomJsonSerializer.DeserializeFile(jsonText);

Deserialize JSON Array до нескольких сетей данных

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

string jsonText = File.ReadAllText("dicom_array.json");
Dataset[]? datasets = DicomJsonSerializer.DeserializeList(jsonText);

XML Сериализация

DICOM в XML

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string xml = DicomXmlSerializer.Serialize(dcm.Dataset);

XML для DICOM Dataset

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

string xmlText = File.ReadAllText("dicom_data.xml");
Dataset? dataset = DicomXmlSerializer.Deserialize(xmlText);

Ассинк API

Для асинхронных операций в веб-приложениях и услугах:

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

// Async deserialization from stream
using FileStream stream = File.OpenRead("dicom_data.json");
Dataset? dataset = await DicomJsonSerializer.DeserializeAsync(stream);

// Async serialization to stream
using FileStream output = File.Create("output.json");
await DicomJsonSerializer.SerializeAsync(output, dataset);

** Доступные методы Async:**

  • DeserializeAsync Deserialize UTF-8 JSON Stream в Dataset
  • DeserializeFileAsync Deserialize UTF-8 JSON Stream в DicomFile
  • DeserializeListAsync - Deserialize UTF-8 JSON Stream to Dataset array
  • SerializeAsync Сериализируйте Dataset, DicomFile или DataSet на UTF-8 JSON Stream

Особенности и функциональность

DICOM Web Services Соответствие

Конвертер соответствует DICOM PS3.18 (Web Services) стандарту, обеспечивая совместимость с:

  • Оставшиеся DICOM Web APIs
  • Облачные системы PACS
  • Современные платформы взаимодействия здравоохранения
  • Системы FHIR-совместимые

Сериализация опций

Понятие поведения сериализации с DicomJsonSerializerOptions:

DicomJsonSerializerOptions options = new()
{
    UseKeywordsAsJsonKeys = false,  // Use tags instead of keywords
    WriteKeyword = true,            // Include keyword as separate attribute
    WriteName = true,               // Include tag name as separate attribute
    NumberHandling = JsonNumberHandling.AsNumber  // Number format
};

string json = DicomJsonSerializer.Serialize(dataset, options);
Опцияописание
UseKeywordsAsJsonKeysИспользуйте ключевые слова DICOM вместо тегов как ключи JSON (нестандартные)
WriteKeywordНапишите ключевые слова DICOM как отличительный JSON атрибут
WriteNameНапишите имя знака DICOM как отличительный JSON атрибут
NumberHandlingОбработка цифр как AsNumber или AsString
BulkDataLoaderЗагрузчик для данных Blob, упомянутых в элементах BulkData
BulkDataConverterКонвертер для написания данных как BulkData ссылок

Система.Text.Json Интеграция

Используйте конверторы с стандартной сериализацией .NET JSON:

using System.Text.Json;
using Aspose.Medical.Dicom.Serialization;

JsonSerializerOptions options = new();
options.Converters.Add(new DicomFileJsonConverter());
options.Converters.Add(new DatasetJsonConverter());

// Now use with JsonSerializer
string json = JsonSerializer.Serialize(dicomFile, options);

Поддержанные типы

Входный типФормат выхода
DicomFileJSON и XML
DatasetJSON и XML
Dataset[]JSON и XML

сохранение данных

Сериализация тщательно сохраняет:

  • Все знаки DICOM и ценности
  • Репрезентация стоимости (VR)
  • Неожиданные последовательности
  • Частные теги
  • Массовые данные ссылок
  • Специальные плавательные значения (NaN, Infinity)

Общие случаи использования

  • Web Viewers: Сервировать метаданные DICOM для просмотров медицинских изображений на базе браузера.
  • REST APIs: Создайте АПИ здравоохранения, которые обменяются данными DICOM в формате JSON.
  • Анализ данных: Экспорт метаданных DICOM для анализа в трубах обработки данных.
  • Интеграция: соедините наследственный PACS с современными платформами здравоохранения, основанными на облаке.
  • Дебюгирование: Создание человечески читаемых представлений данных DICOM для решения проблем.
  • Архивирование: Сохранение метаданных DICOM в базах данных документов, таких как MongoDB или Elasticsearch.

Лучшие практики

  • Лицензия первая: Инициализуйте мерную лицензию до любой конверсии, чтобы избежать ограничений по оценке.
  • Употребление потоков: Для больших файлов или веб-сервисов используйте методы, основанные на потоке, для эффективности памяти.
  • Асинк операции: Используйте методы асинка в веб-приложениях, чтобы избежать блокировки проводов.
  • Validate round-trips: тестовые циклы сериализации/десериализации для обеспечения целостности данных.
  • Стандартная соответствие: используйте стандартные варианты для соответствия DICOM PS3.18; нестандартные опции могут нарушать сторонние партнеры.
  • УТФ-8 кодирование: методы потока используют UTF-8, идеальный для веб-АПИ и файловых операций.

Операционный резюме

ОперацияInputВыходМетод
SerializeDatasetСтриг / StreamSerialize
SerializeDicomFileСтриг / StreamSerialize
SerializeСбор данных [ ]Стриг / StreamSerialize
DeserializeСтриг / StreamDatasetDeserialize
DeserializeСтриг / StreamDicomFileDeserializeFile
DeserializeСтриг / StreamСбор данных [ ]DeserializeList

FAQ

** Нужны ли библиотеки третьих лиц?**Это самостоятельный API, использующий только встроенную поддержку JSON/XML .NET.

**Соответствует ли выход JSON DICOM Web Services?**Да. Стандартный выход соответствует спецификациям DICOM PS3.18.

**Могу ли я настроить формат ключа JSON?**Да. Использование DicomJsonSerializerOptions Контролировать тег против ключевых слов и дополнительные атрибуты.

  • Существуют ли сохранные сеансы? *Да. Сериализатор поддерживает полную структуру DICOM, в том числе заложенные последовательности.

** Как я справляюсь с большими файлами DICOM?**Использование методов, основанных на потоке (Serialize(stream, ...) и DeserializeAsyncДля эффективной обработки памяти.

** Неужели круглосуточная конверсия без убытков?**Сериализация сохраняет все данные DICOM для точной десертации обратно к объектам Dataset или DicomFile.

 Русский