Aspose.Medical DICOM a Text Converter per a .NET

Aspose.Medical DICOM a Text Converter per .NET és una poderosa API centrada en convertir dades de DICO en formats lleidat per l’home i permesos per màquina. Serialitza set de dades d’DicO a format JSON i XML, permetent la integració amb serveis web, APIs REST i sistemes sanitaris moderns.

Instal·lació i configuració

  • Instal·la el paquet NuGet Aspose.Medical (Core API de potència de conversió).
  • Aplica la llicència mesurada a la startup per evitar límits d’avaluació: veure Llicència Metrada .
  • Realitzar els requisits del marc de la Guia d’instal·lació .

Plataforma de suport

  • Operació: Windows, Linux i MacOS
    • Frameworks: * .NET 8.0+
  • Arquitectures: x64 i ARM64 (macOS)

Inici ràpid

DICOM a JSON

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

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

2) DICOM a JSON amb 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 a 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) Multiplis arxius DICOM a 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);

Seria al corrent (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) Emmagatzemar com a fitxer 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);

Desertificació JSON

Deserialitzar JSON String a Dataset

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

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

Deserialitzar JSON Stream a Dataset

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

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

Deserialitzar JSON a DicomFile

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

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

Deserialitzar JSON Array a múltiples set de dades

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

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

Sèrie XML

DICOM a XML

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

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

XML a DICOM Dataset

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

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

Aguació Async

Per a operacions asíncrones en aplicacions i serveis 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);

Els mètodes d’Async disponibles:

  • DeserializeAsync - Deserialitzar el flux UTF-8 JSON a Dataset
  • DeserializeFileAsync - Deserialitzar el flux UTF-8 JSON a DicomFile
  • DeserializeListAsync - Deserialitzar el flux UTF-8 JSON a l’arrel de Dataset
  • SerializeAsync - Serialitzar l’arratge de Dataset, DicomFile o DataSet a UTF-8 JSON

Característiques i funcionalitat

Compatibilitat amb els serveis web de DICOM

El convertidor s’adhereix a DICOM PS3.18 (Serveis Web) estàndard, garantint la compatibilitat amb:

  • RESTFUL DICOM Web APIs
  • Sistemes PACS basats en núvol
  • Plataformes modernes d’interoperabilitat sanitària
  • Sistemes compatibles FHIR

Opcions de serialització

El comportament de la serialització amb 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);
OptionDescripció
UseKeywordsAsJsonKeysUtilitzar paraules clau DICOM en lloc de etiquetes com a claus JSON (no estàndard)
WriteKeywordEscriu la paraula clau DICOM com a atribut distintiu JSON
WriteNameEscriu el nom de la etiqueta DICOM com a distinció JSON atribut
NumberHandlingTractar els números com AsNumber o AsString
BulkDataLoaderCarregador de dades de blob referits en elements de BulkData
BulkDataConverterConvertir per escriure dades com a referències BulkData

Sistema.Text.Json Integració

Utilitzar convertidors amb serialització .NET JSON estàndard:

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

Tipus recolzats

Tipus d’entradaFormats de sortida
DicomFileJSON i XML
DatasetJSON i XML
Dataset[]JSON i XML

Conservació de dades

La serialització preserva amb exactitud:

  • Totes les etiquetes i valors de DICOM
  • Presentació de valors (VR)
  • Les seqüències
  • Etiquetes privades
  • Referències de dades en massa
  • Valors de float especials (NaN, Infinity)

Casos d’ús comú

  • Visuaris web: Serveix metadades DICOM als visitants d’imatges mèdiques basats en el navegador.
  • REST APIs: Construeix API sanitaris que intercanvien dades de DICOM en format JSON.
  • Data Analytics: Exportació de metadades DICOM per a l’anàlisi en els tubs de tractament de dades.
  • Integració: Connecta el PACS amb les plataformes modernes de salut basades en el núvol.
  • Debugging: Crear representacions de dades de DICOM que poden ser llegibles per a la resolució de problemes.
  • Arxiu: Emmagatzema metadades DICOM en bases de dades de documents com MongoDB o Elasticsearch.

Les millors pràctiques

  • Licència primer: Iniciar la llicència mesurada abans de qualsevol conversió per evitar limitacions d’avaluació.
  • Use streams: Per a grans fitxers o serveis web, utilitzeu mètodes basats en el flux per a l’eficiència de la memòria.
  • Operacions d’Async: Utilitza mètodes de les aplicacions web per evitar bloquejar les cadenes.
  • Validacions rodades: Cicles de serialització/deserialització de prova per assegurar la integritat de les dades.
  • Conformitat estàndard: Utilitzeu les opcions predefinides per a la conformitat de DICOM PS3.18; l’opció no estàndar pot trencar parsers de tercers.
  • Codificació UTF-8: els mètodes de flux utilitzen el codificador UTf-8, ideal per a les API web i les operacions de fitxers.

Resum de l’operació

OperationInputSortidaMethod
SerializeDatasetTítol / StreamSerialize
SerializeDicomFileTítol / StreamSerialize
SerializeLes dades[modifica modifica el codi]Títol / StreamSerialize
DeserializeTítol / StreamDatasetDeserialize
DeserializeTítol / StreamDicomFileDeserializeFile
DeserializeTítol / StreamLes dades[modifica modifica el codi]DeserializeList

FAQ

*Es requereixen biblioteques de tercers? *No. És una API independent que només utilitza el suport .NET JSON/XML integrat.

**¿La producció de JSON és compatible amb els Serveis Web DICOM?**La sortida estàndard segueix les especificacions de DICOM PS3.18.

**Puc personalitzar el format de clau JSON?**Sí, utilitzar DicomJsonSerializerOptions per controlar la etiqueta vs. paraules clau i atributs addicionals.

  • S’han preservat les seqüències nestades? *El serialitzador manté la estructura completa de DICOM, incloses les seqüències nestades.

**Com puc gestionar els grans arxius DICOM?**Utilitzar mètodes basats en el flux (Serialize(stream, ...) i DeserializeAsyncPer a un processament eficaç de la memòria.

** És la conversió rodona sense pèrdues?**La serialització conserva totes les dades de DICOM per a la deserialització exacta de tornada als objectes Dataset o DicomFile.

 Català