Aspose.Medical DICOM в текстовий конвертер для .NET
Aspose.Medical DICOM to Text Converter для .NET є потужним API, зосередженим на конвертації даних ДІКОМ в гуманітарно чистих і машинно розповсюджених форматах. Це серіалізує дані DICOME до 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);5) Серилізація до потоку (ефективна пам’ять)
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 Deserialization
Створення 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);Створення JSON to DicomFile
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string jsonText = File.ReadAllText("dicom_file.json");
DicomFile? dicomFile = DicomJsonSerializer.DeserializeFile(jsonText);Створення Deserialize JSON Array to Multiple Datasets
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string jsonText = File.ReadAllText("dicom_array.json");
Dataset[]? datasets = DicomJsonSerializer.DeserializeList(jsonText);Серіалізація XML
Створення DICOM to 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);АСІНК АПІ
Для асинхронних операцій у веб-прикладах та послугах:
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- Дезеріалізація UTF-8 JSON потоку до DatasetDeserializeFileAsync- Дезеріалізація потоку UTF-8 JSON до DicomFileDeserializeListAsync- Дезеріалізація потоку UTF-8 JSON до діапазону DatasetSerializeAsyncСеріалізуйте Dataset, DicomFile або DataSet на UTF-8 JSON Stream
Особливості та функціональність
DICOM Web Services відповідність
Конвертер дотримується стандарту DICOM PS3.18 (Веб-сервіси), що забезпечує сумісність з:
- Решта сайтів DICOM
- Облачні системи 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);Підтримувані типи
| Вхідний тип | Формат виходу |
|---|---|
DicomFile | Створення JSON, XML |
Dataset | Створення JSON, XML |
Dataset[] | Створення JSON, XML |
Збереження даних
Серіалізація точно зберігає:
- Всі знаки DICOM та цінності
- Репрезентація цінностей (VR)
- Невідомі послідовності
- Приватні теги
- Масштабні дані
- Особливі значення флоту (NaN, Infinity)
Загальні випадки використання
- Веб-переглядачі: Сервісуйте метадані DICOM для переглядачів медичних зображень, заснованих на браузері.
- REST APIs: Будівництво медичних АПІ, які обмінюються даними DICOM у форматі JSON.
- Аналіз даних: Експорт метаданів DICOM для аналізу в трубопроводах з обробки даних.
- Інтеграція: Зв’яжіть спадщину PACS з сучасними платформами облачного медичного обслуговування.
- Debugging: Створення людсько-чистих представлень даних DICOM для вирішення проблем.
- Archiving: Зберігати метадані DICOM в документах, таких як MongoDB або Elasticsearch.
Найкращі практики
- Ліцензія перша: Ініціалізуйте розмірну ліцензію перед будь-якою конверсією, щоб уникнути обмежень оцінки.
- Використання потоків: Для великих файлів або веб-сервісів використовуйте методи потоку для ефективності пам’яті.
- Async операції: Використовуйте методи асинку в веб-прикладах, щоб уникнути блокування проводів.
- Валідація кругових поїздок: цикли тестування серіалізації/десериалізації для забезпечення цілісності даних.
- Стандартне дотримання: Використовуйте за замовчуванням варіанти відповідності DICOM PS3.18; нестандартні опції можуть порушувати сторонні партнери.
- УТФ-8 кодування: Методи потоку використовують UTF-8, ідеально підходить для веб-АПІ та файлових операцій.
Операційний резюме
| Операція | Input | Вихід | Метод |
|---|---|---|---|
| Serialize | Dataset | Стрий / Stream | Serialize |
| Serialize | DicomFile | Стрий / Stream | Serialize |
| Serialize | Створення Dataset[] | Стрий / Stream | Serialize |
| Deserialize | Стрий / Stream | Dataset | Deserialize |
| Deserialize | Стрий / Stream | DicomFile | DeserializeFile |
| Deserialize | Стрий / Stream | Створення Dataset[] | DeserializeList |
FAQ
** Чи потрібні бібліотеки третьої сторони?**Це самостійний API, який використовує тільки вбудовану підтримку JSON/XML .NET.
** Чи відповідає вихід JSON DICOM Web Services?**Вихід за замовчуванням відповідає специфікаціям DICOM PS3.18.
** Чи можу я налаштувати формат ключа JSON?**І. Використання DicomJsonSerializerOptions Контроль за тегом vs. ключові слова та додаткові атрибути.
«Чи збереглися невідомі речі?»Серіалізтор підтримує повну структуру DICOM, в тому числі знеструмлені послідовності.
** Як я маю справу з великими файлами DICOM?**Використання різноманітних методів (Serialize(stream, ...) і DeserializeAsync) для ефективного обробки пам’яті.
** Чи є круглий перехід без втрат?**Серіалізація зберігає всі дані DICOM для точної дееріалізації назад до об’єктів Dataset або DicomFile.