Aspose.Medical DICOM în Convertor de text pentru .NET

Aspose.Medical DICOM la Text Converter pentru .NET este o API puternică care se concentrează pe convertirea datelor DIKOM în formate citite de om și percepute de mașină. Se serializează seturile de date DICO la formatele JSON și XML, permițând integrarea cu serviciile web, API-urile REST și sistemele moderne de asistență medicală.

Instalare și setare

  • Instalarea pachetului NuGet Aspose.Medical (Core API de putere de conversie).
  • Aplicați o licență măsurată la startup pentru a evita limitele de evaluare: vezi Licență măsurată .
  • revizuirea cerinţelor de cadru în cadrul Ghid de instalare .

Platforme susținute

  • Sistemul de operare: Windows, Linux, macOS
  • Cuvânt cheie: .NET 8.0+
  • Arhitectură: x64, ARM64 (macOS)

Începe rapid

1) DICOM către JSON

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

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

2) DICOM la JSON cu 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 pentru 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) Multiplele fișiere DICOM la 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) Serializarea la flux (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) Salvați ca fișier 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);

Deserializare JSON

Deserializarea JSON String către Dataset

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

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

Deserializarea JSON Stream în Dataset

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

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

Deserializarea JSON către DicomFile

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

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

Deserializarea JSON Array către mai multe seturi de date

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

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

XML serializare

DICOM la XML

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

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

XML pentru DICOM Dataset

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

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

Apă Async

Pentru operațiunile asincrone în aplicațiile și serviciile web:

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

Metode Async disponibile:

  • DeserializeAsync - Deserializarea fluxului UTF-8 JSON la Dataset
  • DeserializeFileAsync - Deserializarea fluxului UTF-8 JSON la DicomFile
  • DeserializeListAsync Deserializarea fluxului UTF-8 JSON în aria Dataset
  • SerializeAsync - Serializeaza Dataset, DicomFile sau DatSet array la UTF-8 JSON stream

Caracteristici și funcționalitate

Complianța Serviciilor Web DICOM

Convertorul se conformează standardului DICOM PS3.18 (Serviciile web), asigurând compatibilitatea cu:

  • Restul site-ului DICOM
  • Sistemele PACS bazate pe cloud
  • Platforme moderne de interoperabilitate în domeniul sănătății
  • Sistemele compatibile FHIR

Opțiuni de serializare

Crearea comportamentului de serializare cu 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);
OptionDescriere
UseKeywordsAsJsonKeysUtilizați cuvintele cheie DICOM în loc de etichete ca chei JSON (non-standard)
WriteKeywordScrieți cuvântul cheie DICOM ca atribut distinctiv JSON
WriteNameScrieți numele etichetei DICOM ca atribut distinctiv JSON
NumberHandlingTratează cifrele ca AsNumber sau AsString
BulkDataLoaderÎncărcător pentru datele blob referite în elementele BulkData
BulkDataConverterConvertor pentru a scrie date ca referințe BulkData

Sistem.Text.Integrație Json

Utilizarea convertorilor cu serializarea standard .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);

Tipuri susținute

Tipul de intrareFormate de ieșire
DicomFileJSON și XML
DatasetJSON și XML
Dataset[]JSON și XML

Conservarea datelor

Serializarea păstrează cu precizie:

  • Toate etichetele și valorile DICOM
  • Reprezentarea valorilor (VR)
  • Secvențe neînsemnate
  • Etichete private
  • Referințe de date în masă
  • Valorile floate speciale (NaN, Infinity)

cazuri comune de utilizare

  • Vizorii web: Servici metadata DICOM pentru vizualizatorii de imagini medicale bazate pe browser.
  • REST APIs: Construiește API-uri de sănătate care schimbă datele DICOM în format JSON.
  • Data Analytics: Exportarea de metadate DICOM pentru analiză în tuburile de prelucrare a datelor.
  • Integrație: Conectați PACS de moștenire cu platforme moderne de asistență medicală bazate pe cloud.
  • Debugging: Creați reprezentări ușor de citit ale datelor DICOM pentru rezolvarea problemelor.
  • Arhivare: Stochează metadata DICOM în baze de date de documente, cum ar fi MongoDB sau Elasticsearch.

Cele mai bune practici

  • ** Licența întâi**: Inițializați licența măsurată înainte de orice conversie pentru a evita limitările de evaluare.
  • Use streams: Pentru fișierele mari sau serviciile web, utilizați metode bazate pe flux pentru eficiența memorii.
  • Async operațiuni: Utilizați metode de asinc în aplicațiile web pentru a evita blocarea lanțurilor.
  • Validate round-trips: cicluri de serializare/deserializări de testare pentru a asigura integritatea datelor.
  • Compatibilitate standardă: Utilizați opțiunile predefinite pentru conformitatea DICOM PS3.18; Opțiuni non-standardă pot perturba părțile terțe.
  • Codificare UTF-8: Metodele de streaming folosesc codificarea UTf-8, ideală pentru API-urile web și operațiunile de fișiere.

Rezumatul operațiunii

OperationInputieşireMethod
SerializeDatasetString / RăzboiSerialize
SerializeDicomFileString / RăzboiSerialize
SerializeSistemul de date [ ]String / RăzboiSerialize
DeserializeString / RăzboiDatasetDeserialize
DeserializeString / RăzboiDicomFileDeserializeFile
DeserializeString / RăzboiSistemul de date [ ]DeserializeList

FAQ

**Aveți nevoie de biblioteci terțe?**Nu. Este o API independentă care utilizează doar .NET încorporat JSON/XML suport.

** Este rezultatul JSON conform Serviciilor Web DICOM?**Produsul standard urmează specificațiile DICOM PS3.18.

** Pot personaliza formatul cheie JSON?**Da. utilizare DicomJsonSerializerOptions pentru a controla eticheta vs. cuvinte cheie și atributele suplimentare.

  • Sunt păstrate secvențele nestate? *Da. serializatorul menține întreaga structură DICOM, inclusiv secvențe nestate.

**Cum pot gestiona fișierele DICOM mari?**Utilizarea metodelor bazate pe flux (Serialize(stream, ...) şi DeserializeAsyncpentru procesarea eficientă a memoriei.

**Este pierderea conversiei rotund-trip?**Da. Serializarea păstrează toate datele DICOM pentru deserializare exactă înapoi la Obiectele Dataset sau DicomFile.

 Română