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 DatasetDeserializeFileAsync- Deserializzare il flusso UTF-8 JSON a DicomFileDeserializeListAsync- Deserializzare il flusso UTF-8 JSON in array DatasetSerializeAsync- 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);| Option | Descrizione |
|---|---|
UseKeywordsAsJsonKeys | Utilizzare le parole chiave DICOM invece di tag come chiavi JSON (non standard) |
WriteKeyword | Scrivi la parola chiave DICOM come atributo JSON distinto |
WriteName | Inserisci il nome di tag DICOM come atributo JSON distinto |
NumberHandling | Gestire i numeri come AsNumber o AsString |
BulkDataLoader | Caricabatterie per i dati blob riferiti negli elementi BulkData |
BulkDataConverter | Convertitore 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 ingresso | Formati di uscita |
|---|---|
DicomFile | di JSON, XML |
Dataset | di 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
| Operazione | Input | uscita | Metodo |
|---|---|---|---|
| Serialize | Dataset | Strumento / Stream | Serialize |
| Serialize | DicomFile | Strumento / Stream | Serialize |
| Serialize | I dati [ ] | Strumento / Stream | Serialize |
| Deserialize | Strumento / Stream | Dataset | Deserialize |
| Deserialize | Strumento / Stream | DicomFile | DeserializeFile |
| Deserialize | Strumento / Stream | I 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.