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:**
DeserializeAsyncDeserialize o UTF-8 JSON para o DatasetDeserializeFileAsyncDeserialize o UTF-8 JSON para DicomFileDeserializeListAsync- Deserializar UTF-8 JSON Stream para Array de DatasetSerializeAsync- 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);| Option | Descrição |
|---|---|
UseKeywordsAsJsonKeys | Use palavras-chave DICOM em vez de tags como chaves JSON (não padrão) |
WriteKeyword | Escreva a palavra-chave DICOM como atributo JSON distinto |
WriteName | Escreva o nome da tag DICOM como atributo JSON distinto |
NumberHandling | Trata-se de números como AsNumber ou AsString |
BulkDataLoader | Carregador para blob dados referidos em BulkData elementos |
BulkDataConverter | Converter 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 entrada | Formatos de saída |
|---|---|
DicomFile | JSON e XML |
Dataset | JSON 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ção | Input | saída | Método |
|---|---|---|---|
| Serialize | Dataset | Título / Stream | Serialize |
| Serialize | DicomFile | Título / Stream | Serialize |
| Serialize | Os dados [ ] | Título / Stream | Serialize |
| Deserialize | Título / Stream | Dataset | Deserialize |
| Deserialize | Título / Stream | DicomFile | DeserializeFile |
| Deserialize | Título / Stream | Os 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.