Aspose.Medical DICOM do konwertera tekstu dla .NET

Aspose.Medical DICOM to Text Converter dla .NET jest potężnym API koncentrującym się na konwertowaniu danych DIKOM do ludzko czytelnych i maszynowo rozpuszczalnych formatów. Serijalizuje daty DICO do formatu JSON i XML, umożliwiając integrację z usługami internetowymi, APIs REST i nowoczesnymi systemami opieki zdrowotnej.

Instalacja i ustawienie

wspierane platformy

  • System operacyjny: Windows, Linux, macOS
  • Ramy: .NET 8.0+
  • Archiwum: x64, ARM64 (macOS)

Szybki start

1) DICOM do JSON

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

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

2) DICOM do JSON z 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 do 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) Większość plików DICOM do 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) Serializacja do przepływu (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) Zapisz jako plik 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 Deserializacja

Deserializuj JSON String do zestawu danych

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

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

Deserializuj strumień JSON do zestawu danych

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

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

Deserializuj JSON do DicomFile

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

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

Deserializuj JSON Array do wielu zestawów danych

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

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

XML serializacja

DICOM do XML

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

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

XML do DICOM Dataset

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

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

Async API

W przypadku operacji asynchronnych w aplikacjach i usługach internetowych:

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);

** Dostępne metody Async:**

  • DeserializeAsync - Deserializuj strumień UTF-8 JSON do zestawu danych
  • DeserializeFileAsync - Deserializuj strumień UTF-8 JSON do DicomFile
  • DeserializeListAsync - Deserializuj strumień UTF-8 JSON do array Dataset
  • SerializeAsync - Serializuj dataset, DicomFile lub Dataset array do strumienia UTF-8 JSON

Charakterystyka i funkcjonalność

Zgodność DICOM Web Services

Konwerter jest zgodny ze standardem DICOM PS3.18 (Web Services), zapewniając kompatybilność z:

  • Pozostałe DICOM Web APIs
  • Systemy PACS oparte na chmurze
  • Nowoczesne platformy interoperacyjności w zakresie opieki zdrowotnej
  • Kompatybilne systemy FHIR

Opcje serializacji

Dostosowanie zachowania serializacji do 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);
OpcjaOpis
UseKeywordsAsJsonKeysUżyj słów kluczowych DICOM zamiast etykiet jako kluczy JSON (nie standardowe)
WriteKeywordWpisz słowo kluczowe DICOM jako odrębny atrybut JSON
WriteNameWpisz nazwę tagu DICOM jako odrębny atrybut JSON
NumberHandlingPorozmawiaj z numerami jako AsNumber lub AsString
BulkDataLoaderŁadnik dla blob danych odnoszących się do elementów BulkData
BulkDataConverterKonwerter do pisania danych jako referencji BulkData

System.Text.Json Integracja

Użyj konwerterów z standardową serializacją .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);

Wspierane typy

Typ wejściaFormaty wyjściowe
DicomFileJSON i XML
DatasetJSON i XML
Dataset[]JSON i XML

przechowywanie danych

Serijalizacja dokładnie zachowuje:

  • Wszystkie etykiety i wartości DICOM
  • Reprezentacje wartości (VR)
  • Następne sekwencje
  • Tagi prywatne
  • Referencje danych masowych
  • Specjalne wartości przepływowe (NaN, Infinity)

Często używane przypadki

  • ** Widzowie stron internetowych**: Serwuj metadane DICOM dla widzów obrazów medycznych opartych na przeglądarce.
  • REST APIs: Zbuduj API opieki zdrowotnej, które wymieniają dane DICOM w formacie JSON.
  • Data Analytics: Eksportowanie metadanych DICOM do analizy w rurach przetwarzania danych.
  • Integracja: Połącz dziedzictwo PACS z nowoczesnymi platformami opartymi na chmurze.
  • Debugging: Tworzenie ludzko czytelnych reprezentacji danych DICOM do rozwiązywania problemów.
  • Archiving: Przechowuj metadane DICOM w bazach danych dokumentów, takich jak MongoDB lub Elasticsearch.

Najlepsze praktyki

  • Licencja pierwsza: Zacznij licencję mierzoną przed każdą konwersją, aby uniknąć ograniczeń oceny.
  • Używanie przepływów: W przypadku dużych plików lub usług internetowych używaj metod opartych na strumieniu w celu zwiększenia wydajności pamięci.
  • Działania Async: Użyj metod asynk w aplikacjach internetowych, aby uniknąć blokowania przewód.
  • Validate round-trips: testowe cykle serializacji/deserializacji w celu zapewnienia integralności danych.
  • Zgodność standardową: Użyj opcji domyślnych dla zgodności z DICOM PS3.18; opcje niestandardowe mogą zakłócać stron trzecich.
  • Kodowanie UTF-8: Metody strumieniowe wykorzystują kodowanie utf-8, idealne dla aplikacji internetowych i operacji plików.

Podsumowanie operacji

OperacjaInputWyjścieMetoda
SerializeDatasetString / strumieńSerialize
SerializeDicomFileString / strumieńSerialize
SerializeZestaw danych [ ]String / strumieńSerialize
DeserializeString / strumieńDatasetDeserialize
DeserializeString / strumieńDicomFileDeserializeFile
DeserializeString / strumieńZestaw danych [ ]DeserializeList

FAQ

** Czy wymaga to biblioteki osób trzecich?**Jest to niezależna API, która wykorzystuje tylko wbudowaną obsługę .NET JSON/XML.

** Czy produkcja JSON jest zgodna z DICOM Web Services?**Wydajność domyślna jest zgodna ze specyfikacjami DICOM PS3.18.

** Czy mogę dostosować format klucza JSON?**Tak – użyj DicomJsonSerializerOptions aby kontrolować tag vs. kluczowe słowa i dodatkowe atrybuty.

  • Czy są przechowywane niestowane sekwencje? *Seryalizator utrzymuje pełną strukturę DICOM, w tym niestowane sekwencje.

**Jak obsługiwać duże pliki DICOM?**Wykorzystywanie metod opartych na strumieniu (Serialize(stream, ...) i DeserializeAsyncw celu efektywnego przetwarzania pamięci.

** Czy konwersja okrągła jest bez strat?**Serializacja przechowuje wszystkie dane DICOM dla dokładnej deserializacji z powrotem do obiektów Dataset lub DicomFile.

 Polski