Aspose.Medical DICOM na textový konvertor pro .NET

Aspose.Medical DICOM to Text Converter pro .NET je výkonný API zaměřený na konverzi dat DICO na lidsky čitelné a strojově rozpustné formáty. Serializuje datové sady DIKO do formátů JSON a XML, což umožňuje integraci s webovými službami, REST APIs a moderními zdravotnickými systémy.

Instalace a nastavení

Podporované platformy

  • Systém: Windows, Linux a macOS
  • • Rozhraní: .NET 8.0+
  • Architektury: x64, ARM64 (macOS)

rychlý start

DICOM k JSONu

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

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

2) DICOM na JSON s 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 pro 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) Multiple DICOM soubory 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) Serializace na proud (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) Uložit jako JSON soubor

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

Deserializace JSON

Deserializace JSON String do datasetů

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

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

Deserializace JSON Stream do datasetů

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

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

Deserializujte JSON na DicomFile

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

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

Deserializujte JSON Array na více datových setů

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

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

XML serializace

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 na 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

Pro asynchronní operace v webových aplikacích a službách:

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

** Dostupné Async metody:**

  • DeserializeAsync - Deserializujte tok UTF-8 JSON na Dataset
  • DeserializeFileAsync - Deserializujte tok UTF-8 JSON na DicomFile
  • DeserializeListAsync - Deserializovat UTF-8 JSON stream do dataset array
  • SerializeAsync - Serializujte dataset, DicomFile nebo Dataset array na UTF-8 JSON stream

Funkce a funkčnost

DICOM webové služby v souladu

Konvertor se řídí standardem DICOM PS3.18 (Web Services) a zajišťuje kompatibilitu s:

  • Zbývající DICOM web APIs
  • Cloud-based PACS systémy
  • Moderní platformy pro interoperabilitu zdravotnictví
  • FHIR-kompatibilní systémy

Serializace možností

Přizpůsobení serializace chování s 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);
OptionPopis
UseKeywordsAsJsonKeysPoužijte klíčová slova DICOM namísto tagů jako klávesy JSON (nestandardní)
WriteKeywordNapište klíčové slovo DICOM jako odlišný atribut JSON
WriteNameNapište název značky DICOM jako odlišný atribut JSON
NumberHandlingSouvisejte se čísly jako AsNumber nebo AsString
BulkDataLoaderNabíječ pro blob data uvedená v BulkData prvcích
BulkDataConverterKonvertor pro psaní dat jako referencí BulkData

Systém.Text.Json Integrace

Použijte konvertory se standardní serializací .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);

Podporované typy

Typ vstupuVýstupní formáty
DicomFileJSON a XML
DatasetJSON a XML
Dataset[]JSON a XML

Udržování dat

Serializace přesně zachovává:

  • Všechny značky DICOM a hodnoty
  • hodnotové prezentace (VR)
  • Nestlé sekvence
  • Osobní tags
  • Množství referenčních dat
  • Zvláštní flotilní hodnoty (NaN, Infinity)

Případy běžného používání

  • Web Viewers: Serve DICOM metadata pro prohlížeče založené na lékařských snímcích.
  • REST API: Vytvořte zdravotnické API, které vyměňují data DICOM ve formátu JSON.
  • Data Analytics: Export metadata DICOM pro analýzu v potrubích zpracování dat.
  • Integrace: Připojte PACS dědictví k moderním platformám zdravotní péče založeným na cloudu.
  • Debugging: Vytvořte lidsky čitelné představy dat DICOM pro řešení problémů.
  • Archiving: Uložte metadata DICOM v databázích dokumentů, jako je MongoDB nebo Elasticsearch.

Nejlepší postupy

  • Licence first: Před každou konverzi iniciujte měřené licence, abyste se vyhnuli omezením hodnocení.
  • Užívejte toky: Pro velké soubory nebo webové služby použijte tokové metody pro efektivitu paměti.
  • Async operace: V webových aplikacích se používají metody asyncu, aby se zabránilo blokování pruhů.
  • Validujte kruhové cesty: Zkušební serializace/deserializací cyklů k zajištění integrity dat.
  • Standardní shoda: Použijte výchozí možnosti pro shodu s DICOM PS3.18; nestandartní možnosti mohou narušit partnery třetích stran.
  • Utf-8 kódování: Stream metody používají UTF-8 šifrování, ideální pro webové API a souborové operace.

Shrnutí operace

OperaceInputVýstupMetoda
SerializeDatasetString / StreamSerialize
SerializeDicomFileString / StreamSerialize
SerializeDatabáze[editovat zdroj]String / StreamSerialize
DeserializeString / StreamDatasetDeserialize
DeserializeString / StreamDicomFileDeserializeFile
DeserializeString / StreamDatabáze[editovat zdroj]DeserializeList

FAQ

** Potřebuje to třetí strany knihovny?**Jedná se o samostatný API, který používá pouze vestavěnou podporu JSON/XML .NET.

**Je výstup JSON v souladu s webovými službami DICOM?**Standardní výstup následuje specifikace DICOM PS3.18.

**Můžu přizpůsobit klíčový format JSON?**Ano, použijte DicomJsonSerializerOptions ovládat tag vs. klíčové slovo a další atributy.

Jsou zachovány následné sekvence?**Ano. serializátor udržuje plnou strukturu DICOM včetně nestěných sekvencí.

** Jak se chovat s velkými DICOM soubory?**Využijte metody založené na streamování (Serialize(stream, ...) a DeserializeAsyncPro efektivní zpracování paměti.

**Je kolo-trip konverze bez ztráty?**Ano. serializace uchovává všechny údaje DICOM pro přesnou deserializací zpět do Dataset nebo DicomFile objektů.

 Čeština