ASPOSE.MEDICAL DICOM към конвертор на текст за .NET
Aspose.Medical DICOM to Text Converter за .NET е мощна API, фокусирана върху конвертиране на DICUM данни в човешки и машински пропускаеми формати. Тя серийлизира DIKOM данните на JSON и XML формите, което позволява интеграция с уеб услуги, REST APIs и съвременни здравни системи.
Инсталация и инсталиране
- Инсталиране на пакета NuGet
Aspose.Medical(Основният API Power Conversion) - Използване на мерни лицензии при стартиране, за да се избегнат границите на оценката: виж Размер на лицензията .
- Преглед на рамковите изисквания в Инсталационен ръководство .
Поддържани платформи
- Операционна система: 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 поток към DatasetDeserializeFileAsync- Десериализиране на UTF-8 JSON поток към DicomFileDeserializeListAsync- Десериализиране на UTF-8 JSON поток към Dataset arraySerializeAsync- Сериализиране на 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);Подкрепени типове
| Входни типове | Изходни формати |
|---|---|
DicomFile | JSON и XML |
Dataset | JSON и 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, идеален за уеб АПИ и файлови операции.
Операционно резюме
| Operation | Input | Изход | Method |
|---|---|---|---|
| Serialize | Dataset | Стрий / Stream | Serialize |
| Serialize | DicomFile | Стрий / Stream | Serialize |
| Serialize | Създаване на данни [ ] | Стрий / Stream | Serialize |
| Deserialize | Стрий / Stream | Dataset | Deserialize |
| Deserialize | Стрий / Stream | DicomFile | DeserializeFile |
| 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 обекти.