Aspose.Medical DICOM para Converter de texto para .NET

Aspose.Medical DICOM to Text Converter para .NET é uma poderosa API focada na conversão de dados DICOME em formatos de leitura humana e máquina-perdível. Ele serializará dados de DicOME para JSON e XML, permitindo a integração com serviços da web, APIs REST e sistemas de saúde modernos. Construído para interoperabilidade, ele fornece serializar padrões de acordo com as especificações de Services da Web DIKOME (PS3.18) .

Instalação e Setup

  • Instale o pacote NuGet Aspose.Medical (Core API Power conversão)
  • Aplique uma licença medida na startup para evitar limites de avaliação: ver Licenciamento Ponderado .
  • Revisão dos requisitos estruturais na Guia de instalação .

Plataformas suportadas

  • OS: Windows, Linux e MacOS
    • Frameworks: * .NET 8.0 +
  • Arquitetura: x64 e ARM64 (macOS)

Início rápido

1) DICOM para JSON

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

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

2) DICOM para JSON com 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 para 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 arquivos DICOM para 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) Serialize para Stream (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) Salve como um arquivo 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);

Desertificação JSON

Deserializar JSON String para 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 para 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 para 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 para múltiplos conjuntos de dados

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

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

XML Serialização

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

Água Async

Para operações não sincronas em aplicativos e serviços da 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 disponíveis:**

  • DeserializeAsync Deserialize o UTF-8 JSON para o Dataset
  • DeserializeFileAsync Deserialize o UTF-8 JSON para DicomFile
  • DeserializeListAsync - Deserializar UTF-8 JSON Stream para Array de Dataset
  • SerializeAsync - Serialize Dataset, DicomFile, ou DataSet array para UTF-8 JSON stream

Características e Funcionalidade

DICOM Serviços Web Compliance

O converter adere ao padrão DICOM PS3.18 (Serviços Web), garantindo compatibilidade com:

  • RESTFUL DICOM Web APIs
  • Sistemas PACS baseados na nuvem
  • Plataformas modernas de interoperabilidade da saúde
  • Sistemas FHIR-compatíveis

Opções de Serialização

Comportamento de Serialização com 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);
OptionDescrição
UseKeywordsAsJsonKeysUse palavras-chave DICOM em vez de tags como chaves JSON (não padrão)
WriteKeywordEscreva a palavra-chave DICOM como atributo JSON distinto
WriteNameEscreva o nome da tag DICOM como atributo JSON distinto
NumberHandlingTrata-se de números como AsNumber ou AsString
BulkDataLoaderCarregador para blob dados referidos em BulkData elementos
BulkDataConverterConverter para escrever dados como referências BulkData

Sistema.Text.Json Integração

Utilize convertidores com serialização .NET JSON padrão:

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 apoiados

Tipo de entradaFormatos de saída
DicomFileJSON e XML
DatasetJSON e XML
Dataset[]JSON e XML

Conservação de dados

A serialização preserva com precisão:

  • Todos os DICOM tags e valores
  • Representações de Valor (VR)
  • Seqüências de Nested
  • Etiquetas privadas
  • Referências de dados em massa
  • Valores especiais de fluxo (NaN, Infinity)

Casos comuns de uso

  • Visores da Web: Servir metadados da DICOM para visitantes de imagem médica baseados no navegador.
  • REST APIs: Construa APIS de saúde que trocam dados DICOM em formato JSON.
  • Data Analytics: Exporta metadados DICOM para análise em tubos de processamento de dados.
  • Integração: Connect heritage PACS with modern cloud-based healthcare platforms.
  • Debugging: Crie representações pessoais de dados DICOM para resolução de problemas.
  • Arquivando: armazenar metadados DICOM em bases de dados de documentos como MongoDB ou Elasticsearch.

Melhores Práticas

  • Licença primeiro: Iniciar a licença medida antes de qualquer conversão para evitar limitações de avaliação.
  • Use Streams: Para grandes arquivos ou serviços web, use métodos baseados no fluxo para eficiência da memória.
  • Async operações: Use métodos de asynk em aplicativos da web para evitar bloquear filas.
  • Validação de trilhos redondos: Ciclos de serialização de teste/deserilização para garantir a integridade dos dados.
  • Conformidade padrão: Use as opções predefinidas para a conformidade com o DICOM PS3.18; Opções não padrões podem quebrar os parceiros de terceiros.
  • Utf-8 codificação: os métodos de streaming usam UTF-8 encodificar, ideal para APIs web e operações de arquivos.

Resumo da Operação

OperaçãoInputsaídaMétodo
SerializeDatasetTítulo / StreamSerialize
SerializeDicomFileTítulo / StreamSerialize
SerializeOs dados [ ]Título / StreamSerialize
DeserializeTítulo / StreamDatasetDeserialize
DeserializeTítulo / StreamDicomFileDeserializeFile
DeserializeTítulo / StreamOs dados [ ]DeserializeList

FAQ

**Precisamos de bibliotecas de terceiros?**Não. É uma API independente usando apenas o suporte JSON/XML .NET integrado.

**O produto JSON é compatível com os Serviços Web DICOM?**A saída padrão segue as especificações do DICOM PS3.18.

** Posso personalizar o formato chave JSON?**Sim – Use DicomJsonSerializerOptions para controlar tags vs. palavras-chave e atributos adicionais.

  • As seqüências nestas são preservadas? *Sim. O serializador mantém a estrutura DICOM completa, incluindo sequências nestas.

**Como posso lidar com grandes arquivos DICOM?**Usar métodos baseados em fluxo (Serialize(stream, ...) e DeserializeAsyncpara processamento eficiente da memória.

** É a conversão round-trip sem perda?**Sim. Serialization conserva todos os dados da DICOM para deserializar exatamente de volta aos Objetos Dataset ou DicomFile.

 Português