Aspose.Medical DICOM a Convertitore di testo per .NET

Aspose.Medical DICOM to Text Converter per .NET è un potente API focalizzato su convertire i dati DICO in formati leggibili e macchinari. Si serializza i set dati di DIKO a formatti JSON e XML, consentendo l’integrazione con i servizi web, le API REST e i sistemi sanitari moderni.

Installazione e Setup

  • Installare il pacchetto NuGet Aspose.Medical (Core di potenza di conversione API).
  • Applicare una licenza misurata a startup per evitare limiti di valutazione: vedi Licenza a consumo .
  • La revisione dei requisiti quadro nel Guida di installazione .

Piattaforme supportate

  • Windows, Linux e macOS
  • • Frameworks: .NET 8.0+
  • Architettura: x64, ARM64 (macOS)

Rapido inizio

1) 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 per 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) Multipli file DICOM per 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) Serializzazione al flusso (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 come file 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);

Deserializzazione JSON

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

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

Deserializzare JSON a DicomFile

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

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

Deserializzare JSON Array per molti set di dati

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

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

XML di serializzazione

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 per DICOM Dataset

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

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

Aggiornamento Async

Per le operazioni asincroniche in applicazioni e servizi 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);

Metodi di Async disponibili:

  • DeserializeAsync - Deserializzare il flusso UTF-8 JSON a Dataset
  • DeserializeFileAsync - Deserializzare il flusso UTF-8 JSON a DicomFile
  • DeserializeListAsync - Deserializzare il flusso UTF-8 JSON in array Dataset
  • SerializeAsync - Serializzare Dataset, DicomFile, o Dataaset array a UTF-8 JSON stream

Caratteristiche e funzionalità

Compliance dei Servizi Web di DICOM

Il convertitore aderisce allo standard DICOM PS3.18 (Web Services), garantendo la compatibilità con:

  • Restimenti di DICOM Web API
  • Sistemi PACS basati sul cloud
  • Moderne piattaforme di interoperabilità sanitaria
  • Sistemi FHIR-compatibili

Opzioni di serializzazione

personalizzare il comportamento di serializzazione 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);
OptionDescrizione
UseKeywordsAsJsonKeysUtilizzare le parole chiave DICOM invece di tag come chiavi JSON (non standard)
WriteKeywordScrivi la parola chiave DICOM come atributo JSON distinto
WriteNameInserisci il nome di tag DICOM come atributo JSON distinto
NumberHandlingGestire i numeri come AsNumber o AsString
BulkDataLoaderCaricabatterie per i dati blob riferiti negli elementi BulkData
BulkDataConverterConvertitore per scrivere i dati come riferimento BulkData

System.Text.Json integrazione

Utilizzare convertitori con la serializzazione standard .NET JSON:

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

Tipi supportati

Tipo di ingressoFormati di uscita
DicomFiledi JSON, XML
Datasetdi JSON, XML
Dataset[]di JSON, XML

Conservazione dei dati

La serializzazione preserva accuratamente:

  • Tutti i tag DICOM e i valori
  • Representazioni di valore (VR)
  • Le sequenze nascite
  • Tags privati
  • Riferimenti dati di massa
  • Valori di flotta speciali (NaN, Infinity)

Cassi di utilizzo comuni

  • Visitori Web: Servite i metadati DICOM ai visitatori di immagini mediche basati sul browser.
  • REST API: Costruisci API sanitarie che scambi i dati DICOM in formato JSON.
  • Data Analytics: esporta i metadati DICOM per l’analisi nei tubi di elaborazione dei dati.
  • Integrazione: collegare il legato PACS con le moderne piattaforme di assistenza sanitaria basate sul cloud.
  • Debugging: Crea rappresentazioni di dati DICOM leggibili per risolvere i problemi.
  • Archivare: memorizzare i metadati DICOM in database di documenti come MongoDB o Elasticsearch.

Migliori pratiche

  • Licenza prima: inizializza la licenza misurata prima di qualsiasi conversione per evitare limitazioni di valutazione.
  • Uso dei flussi: per file o servizi web di grandi dimensioni, utilizzare metodi basati sul flusso per l’efficienza della memoria.
  • ** Operazioni Async**: Utilizzare metodi asynci nelle applicazioni web per evitare di bloccare le strisce.
  • Validate round-trips: test cicli di serializzazione/deserializazione per garantire l’integrità dei dati.
  • Compliance standard: Utilizzare le opzioni predefinite per la conformità di DICOM PS3.18; le Opzioni non standard possono interferire con i partner di terze parti.
  • Codifica UTF-8: i metodi di flusso utilizzano il codificazione UTf-8, ideale per le API web e le operazioni di file.

Sottoscrizione operativa

OperazioneInputuscitaMetodo
SerializeDatasetStrumento / StreamSerialize
SerializeDicomFileStrumento / StreamSerialize
SerializeI dati [ ]Strumento / StreamSerialize
DeserializeStrumento / StreamDatasetDeserialize
DeserializeStrumento / StreamDicomFileDeserializeFile
DeserializeStrumento / StreamI dati [ ]DeserializeList

FAQ

**C’è bisogno di biblioteche di terze parti?**No. Si tratta di un’API indipendente che utilizza solo il supporto .NET JSON/XML integrato.

**Il prodotto JSON DICOM Web Services è conforme?**La produzione predefinita segue le specifiche di DICOM PS3.18.

** Posso personalizzare il formato chiave JSON?**Sì, usare DicomJsonSerializerOptions per controllare tag vs. parole chiave e attributi aggiuntivi.

  • Sono state conservate le sequenze nestate? *Il serializzatore mantiene la struttura completa di DICOM, comprese le sequenze nestate.

**Come posso gestire i file DICOM più grandi?**Utilizzare i metodi basati sul flusso (Serialize(stream, ...) e DeserializeAsyncper un’efficacia della memoria.

**La conversione di round-trip è senza perdita?**La serializzazione conserva tutti i dati DICOM per la precisione della deserializzatura indietro agli oggetti Dataset o DicomFile.

 Italiano