ASPOSE.MEDICAL DICOM към конвертор на текст за .NET

Aspose.Medical DICOM to Text Converter за .NET е мощна API, фокусирана върху конвертиране на DICUM данни в човешки и машински пропускаеми формати. Тя серийлизира DIKOM данните на 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);

Сериализиране към потока (ефективна памет)

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 към 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);

Десертиране на JSON към DicomFile

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

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

Детериализиране на JSON Array към множество файлове

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

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

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

ДИКОМ към 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);

** Достъпни методи за асинк:**

  • DeserializeAsync - Десериализиране на UTF-8 JSON поток към Dataset
  • DeserializeFileAsync - Десериализиране на UTF-8 JSON поток към DicomFile
  • DeserializeListAsync - Десериализиране на UTF-8 JSON поток към Dataset array
  • SerializeAsync - Сериализиране на Dataset, DicomFile, или DataSet на UTF-8 JSON поток

Характеристики и функционалност

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

Конверторът се придържа към DICOM PS3.18 (Web Services) стандарт, осигурявайки съвместимост с:

  • Останалата част на DICOM Web API
  • Системи 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);
Optionописание
UseKeywordsAsJsonKeysИзползвайте ключови думи DICOM вместо етикети като JSON (нестандартни)
WriteKeywordНапишете ключовата дума DICOM като отличителен JSON атрибут
WriteNameНапишете името на етикета DICOM като отличителен JSON атрибут
NumberHandlingИзползвайте числата като AsNumber или AsString
BulkDataLoaderИзтегляне на данни за Blob, посочени в BulkData елементи
BulkDataConverterКонвертор за писане на данни като BulkData референции

System.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 формат.
  • Data Analytics: Износ на DICOM метаданни за анализ в тръбите за обработка на данни.
  • ** Интеграция**: Свържете наследствените PACS с модерните платформи за здравеопазване, базирани в облака.
  • Дебъгване: Създаване на човешки читаеми изображения на DICOM данни за решаването на проблеми.
  • Архивиране: Съхранявайте метаданните на DICOM в бази данни на документи като MongoDB или Elasticsearch.

Най-добрите практики

  • License first: Иницијализирайте измерваното лицензиране преди всяка конверсия, за да избегнете ограниченията на оценката.
  • Use Streams: За големи файлове или уеб услуги, използвайте методи, базирани на потока за ефективност на паметта.
  • Async операции: Използвайте методите на асинк в уеб приложения, за да избегнете блокиране на ленти.
  • Validate round-trips: Тестови цикли за сериализация/десеризация, за да се гарантира целостта на данните.
  • Стандартна съвместимост: Използвайте опциите по подразбиране за съответствие с DICOM PS3.18; нестандартните опции могат да нарушат партньорите на трети страни.
  • УТФ-8 кодиране: Методите на потока използват UTF-8, идеален за уеб АПИ и файлови операции.

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

OperationInputИзходMethod
SerializeDatasetСтрий / StreamSerialize
SerializeDicomFileСтрий / StreamSerialize
SerializeСъздаване на данни [ ]Стрий / StreamSerialize
DeserializeСтрий / StreamDatasetDeserialize
DeserializeСтрий / StreamDicomFileDeserializeFile
DeserializeСтрий / StreamСъздаване на данни [ ]DeserializeList

FAQ

**Има ли нужда от библиотеки от трети страни?**Не. Това е самостоятелна API, която използва само .NET вградена JSON/XML поддръжка.

**Възходът на JSON DICOM Web Services съответства ли?**Да. Изходът по подразбиране следва спецификациите на DICOM PS3.18.

**Мога ли да персонализирам JSON ключовия формат?**Да, използвайте DicomJsonSerializerOptions да контролирате етикета vs. ключови думи и допълнителни атрибути.

  • Съхраняват ли се следобедните секции? *Да. Сериализаторът поддържа пълна структура на DICOM, включително нестени последователности.

**Как да се справя с големи DICOM файлове?**Използване на методите, базирани на потока (Serialize(stream, ...) и DeserializeAsyncЗа ефективна обработка на паметта.

** Има ли губеща конверсия на кръг-трип?**Сериализацията съхранява всички данни на DICOM за точна детериализация обратно към Dataset или DicomFile обекти.

 Български