Aspose.Medical DICOM в текстовый конвертер для .NET
Aspose.Medical DICOM to Text Converter для .NET является мощным API, сосредоточенным на конвертировании данных ДИКОМ в человечески читаемые и машинно распространённые форматы. Он сериализирует серийные серии DICOMO в JSON и XML форматах, позволяя интегрироваться с веб-сервисами, REST APIs и современными системами здравоохранения.
Инсталляция и установка
- Настройка пакета NuGet
Aspose.Medical(Основная API способствует конвертированию) - Применить мерную лицензию на стартапе, чтобы избежать границ оценки: см Лицензирование с учетом объема потребления .
- Рецензия на рамковые требования в Инсталляционный водитель .
Поддерживаемые платформы
- Операционная система: 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:**
DeserializeAsyncDeserialize UTF-8 JSON Stream в DatasetDeserializeFileAsyncDeserialize UTF-8 JSON Stream в DicomFileDeserializeListAsync- Deserialize UTF-8 JSON Stream to Dataset arraySerializeAsyncСериализируйте 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);Поддержанные типы
| Входный тип | Формат выхода |
|---|---|
DicomFile | JSON и XML |
Dataset | JSON и 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 | Выход | Метод |
|---|---|---|---|
| Serialize | Dataset | Стриг / Stream | Serialize |
| Serialize | DicomFile | Стриг / Stream | Serialize |
| Serialize | Сбор данных [ ] | Стриг / Stream | Serialize |
| Deserialize | Стриг / Stream | Dataset | Deserialize |
| Deserialize | Стриг / Stream | DicomFile | DeserializeFile |
| 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.