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 DatasetDeserializeFileAsync- Deserializar el flujo UTF-8 JSON a DicomFileDeserializeListAsync- Deserializar el flujo UTF-8 JSON a Array de DatasetSerializeAsync- 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ón | Descripción |
|---|---|
UseKeywordsAsJsonKeys | Utilice palabras clave DICOM en lugar de etiquetas como claves JSON (no estándar) |
WriteKeyword | Escribe la etiqueta de DICOM como atributo JSON distinto |
WriteName | Escribe el nombre de la etiqueta DICOM como atributo JSON distinto |
NumberHandling | Se trata de números como AsNumber o AsString |
BulkDataLoader | Cargador de datos de blob referidos en los elementos de BulkData |
BulkDataConverter | Converter 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 entrada | Formatos de salida |
|---|---|
DicomFile | JSON y XML |
Dataset | JSON 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
| Operaciones | Input | salida | Método |
|---|---|---|---|
| Serialize | Dataset | Síntomas / Stream | Serialize |
| Serialize | DicomFile | Síntomas / Stream | Serialize |
| Serialize | Los datos[editar] | Síntomas / Stream | Serialize |
| Deserialize | Síntomas / Stream | Dataset | Deserialize |
| Deserialize | Síntomas / Stream | DicomFile | DeserializeFile |
| Deserialize | Síntomas / Stream | Los 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.