Aspose.Medical DICOM para Converter de texto para .NET

Aspose.Medical DICOM a Text Converter para .NET es una poderosa API enfocada en convertir datos de DICO a formatos que se pueden leer por el hombre y por la máquina. Se serializan los conjuntos de datos del DISO en formatas JSON y XML, lo que permite la integración con los servicios web, las APIs REST y los sistemas de salud modernos. Construido para la interoperabilidad, proporciona una serialización conforme a los estándares de los Servicios Web de DOCO (PS3.18)** especificaciones.

Instalación y configuración

  • Instalar el paquete NuGet Aspose.Medical (Cuerpo de conversión de fuentes de API).
  • Aplique una licencia medida en la startup para evitar límites de evaluación: ver Licenciamiento Medido .
  • Revisión de los requisitos de marco en el Guía de instalación .

Las plataformas apoyadas

  • Windows, Linux y MacOS
  • • Frameworks: .NET 8.0+
    • Arquitectura: x64 y ARM64 (macOS)

Inicio rápido

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 con 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) Multiplos archivos 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);

5) Serializar a la corriente (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 como archivo 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);

Deserilización JSON

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

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

Deserializar JSON a DicomFile

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

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

Deserializar JSON Array a múltiples conjuntos de datos

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

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

Serialización 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 para DICOM Dataset

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

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

ASINC API

Para las operaciones asínchronas en aplicaciones y servicios 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);

Métodos de Async disponibles:

  • DeserializeAsync - Deserializar el flujo UTF-8 JSON a Dataset
  • DeserializeFileAsync - Deserializar el flujo UTF-8 JSON a DicomFile
  • DeserializeListAsync - Deserializar el flujo UTF-8 JSON a Array de Dataset
  • SerializeAsync - Serializar Dataset, DicomFile, o Array de dataset a la corriente UTF-8 JSON

Características y Funcionalidad

Compatibilidad con los Servicios Web de DICOM

El convertidor se adhiere al estándar DICOM PS3.18 (Servicios Web), garantizando la compatibilidad con:

  • RESTFUL DICOM Web APIs
  • Sistemas PACS basados en la nube
  • Las plataformas de interoperabilidad sanitaria modernas
  • Sistemas FHIR-compatibles

Opciones de serie

El comportamiento de la serialización con 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);
OpciónDescripción
UseKeywordsAsJsonKeysUtilice palabras clave DICOM en lugar de etiquetas como claves JSON (no estándar)
WriteKeywordEscribe la etiqueta de DICOM como atributo JSON distinto
WriteNameEscribe el nombre de la etiqueta DICOM como atributo JSON distinto
NumberHandlingSe trata de números como AsNumber o AsString
BulkDataLoaderCargador de datos de blob referidos en los elementos de BulkData
BulkDataConverterConverter para escribir datos como referencias de BulkData

Sistema.Text.Json Integración

Utilice convertidores con serialización .NET JSON estándar:

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

Tipos apoyados

Tipo de entradaFormatos de salida
DicomFileJSON y XML
DatasetJSON y XML
Dataset[]JSON y XML

Conservación de datos

La serialización preserva con precisión:

  • Todas las etiquetas y valores de DICOM
  • Representaciones de Valor (VR)
  • SiguienteNested Sequences
  • Etiquetas privadas
  • Múltiples referencias de datos
  • Valores flotantes especiales (NaN, Infinity)

Casos de uso común

  • Visores de la web: Serve los metadatos de DICOM a los visualizadores de imágenes médicas basados en el navegador.
  • REST APIs: Construye API sanitarios que intercambian datos de DICOM en formato JSON.
  • Data Analytics: Exporta metadatos DICOM para análisis en los tubos de procesamiento de datos.
  • Integración: Connect legacy PACS con modernas plataformas de atención médica basadas en la nube.
  • Debugging: Crea representaciones de datos de DICOM que se pueden leer por el hombre para resolver problemas.
  • Arquivando: almacenar los metadatos de DICOM en bases de datos de documentos como MongoDB o Elasticsearch.

Mejores Prácticas

  • Licencia primero: Iniciar la licencia medida antes de cualquier conversión para evitar limitaciones de evaluación.
  • Use Streams: Para grandes archivos o servicios web, utilice métodos basados en el flujo para la eficiencia de la memoria.
  • Async operaciones: Utilice métodos de asimilación en las aplicaciones web para evitar bloquear las filas.
  • VALIDATE ROUND-TRIPS: Ciclos de seriización/deseriización de pruebas para garantizar la integridad de los datos.
  • Compatibilidad estándar: Utilice las opciones predefinidas para la conformidad de DICOM PS3.18; opciones no estándares pueden romper los parsers de terceros.
  • Codificación UTF-8: los métodos de flujo utilizan codificação UTf-8, ideal para las APIs web y las operaciones de archivos.

Resumen de la operación

OperacionesInputsalidaMétodo
SerializeDatasetSíntomas / StreamSerialize
SerializeDicomFileSíntomas / StreamSerialize
SerializeLos datos[editar]Síntomas / StreamSerialize
DeserializeSíntomas / StreamDatasetDeserialize
DeserializeSíntomas / StreamDicomFileDeserializeFile
DeserializeSíntomas / StreamLos datos[editar]DeserializeList

FAQ

**¿Necesita bibliotecas de terceros?**No. Es una API independiente que utiliza sólo el soporte JSON/XML integrado de .NET.

**¿La salida de JSON es compatible con los Servicios Web DICOM?**La salida por defecto sigue las especificaciones de DICOM PS3.18.

**¿Puedo personalizar el formato clave JSON?**Sí, el uso DicomJsonSerializerOptions para controlar las etiquetas vs. palabras clave y los atributos adicionales.

¿Se conservan las secuencias nested?**Sí. El serializador mantiene la estructura completa de DICOM incluyendo secuencias nestas.

**¿Cómo puedo gestionar grandes archivos DICOM?**El uso de métodos basados en el flujo (Serialize(stream, ...) y DeserializeAsyncpara un procesamiento eficiente de la memoria.

**¿Es la conversión redondeada sin pérdida?**Sí. la seriización conserva todos los datos de DICOM para la deseriización exacta de vuelta a los objetos Dataset o DicomFile.

 Español