Aspose.Medical DICOM a Text Converter per a .NET
Aspose.Medical DICOM a Text Converter per .NET és una poderosa API centrada en convertir dades de DICO en formats lleidat per l’home i permesos per màquina. Serialitza set de dades d’DicO a format JSON i XML, permetent la integració amb serveis web, APIs REST i sistemes sanitaris moderns.
Instal·lació i configuració
- Instal·la el paquet NuGet
Aspose.Medical(Core API de potència de conversió). - Aplica la llicència mesurada a la startup per evitar límits d’avaluació: veure Llicència Metrada .
- Realitzar els requisits del marc de la Guia d’instal·lació .
Plataforma de suport
- Operació: Windows, Linux i MacOS
- Frameworks: * .NET 8.0+
- Arquitectures: x64 i ARM64 (macOS)
Inici ràpid
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 amb 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) Multiplis arxius 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);Seria al corrent (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) Emmagatzemar com a fitxer 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);Desertificació JSON
Deserialitzar 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);Deserialitzar 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);Deserialitzar JSON a DicomFile
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string jsonText = File.ReadAllText("dicom_file.json");
DicomFile? dicomFile = DicomJsonSerializer.DeserializeFile(jsonText);Deserialitzar JSON Array a múltiples set de dades
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string jsonText = File.ReadAllText("dicom_array.json");
Dataset[]? datasets = DicomJsonSerializer.DeserializeList(jsonText);Sèrie 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 a DICOM Dataset
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string xmlText = File.ReadAllText("dicom_data.xml");
Dataset? dataset = DicomXmlSerializer.Deserialize(xmlText);Aguació Async
Per a operacions asíncrones en aplicacions i serveis 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);Els mètodes d’Async disponibles:
DeserializeAsync- Deserialitzar el flux UTF-8 JSON a DatasetDeserializeFileAsync- Deserialitzar el flux UTF-8 JSON a DicomFileDeserializeListAsync- Deserialitzar el flux UTF-8 JSON a l’arrel de DatasetSerializeAsync- Serialitzar l’arratge de Dataset, DicomFile o DataSet a UTF-8 JSON
Característiques i funcionalitat
Compatibilitat amb els serveis web de DICOM
El convertidor s’adhereix a DICOM PS3.18 (Serveis Web) estàndard, garantint la compatibilitat amb:
- RESTFUL DICOM Web APIs
- Sistemes PACS basats en núvol
- Plataformes modernes d’interoperabilitat sanitària
- Sistemes compatibles FHIR
Opcions de serialització
El comportament de la serialització amb 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 | Descripció |
|---|---|
UseKeywordsAsJsonKeys | Utilitzar paraules clau DICOM en lloc de etiquetes com a claus JSON (no estàndard) |
WriteKeyword | Escriu la paraula clau DICOM com a atribut distintiu JSON |
WriteName | Escriu el nom de la etiqueta DICOM com a distinció JSON atribut |
NumberHandling | Tractar els números com AsNumber o AsString |
BulkDataLoader | Carregador de dades de blob referits en elements de BulkData |
BulkDataConverter | Convertir per escriure dades com a referències BulkData |
Sistema.Text.Json Integració
Utilitzar convertidors amb serialització .NET JSON estàndard:
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);Tipus recolzats
| Tipus d’entrada | Formats de sortida |
|---|---|
DicomFile | JSON i XML |
Dataset | JSON i XML |
Dataset[] | JSON i XML |
Conservació de dades
La serialització preserva amb exactitud:
- Totes les etiquetes i valors de DICOM
- Presentació de valors (VR)
- Les seqüències
- Etiquetes privades
- Referències de dades en massa
- Valors de float especials (NaN, Infinity)
Casos d’ús comú
- Visuaris web: Serveix metadades DICOM als visitants d’imatges mèdiques basats en el navegador.
- REST APIs: Construeix API sanitaris que intercanvien dades de DICOM en format JSON.
- Data Analytics: Exportació de metadades DICOM per a l’anàlisi en els tubs de tractament de dades.
- Integració: Connecta el PACS amb les plataformes modernes de salut basades en el núvol.
- Debugging: Crear representacions de dades de DICOM que poden ser llegibles per a la resolució de problemes.
- Arxiu: Emmagatzema metadades DICOM en bases de dades de documents com MongoDB o Elasticsearch.
Les millors pràctiques
- Licència primer: Iniciar la llicència mesurada abans de qualsevol conversió per evitar limitacions d’avaluació.
- Use streams: Per a grans fitxers o serveis web, utilitzeu mètodes basats en el flux per a l’eficiència de la memòria.
- Operacions d’Async: Utilitza mètodes de les aplicacions web per evitar bloquejar les cadenes.
- Validacions rodades: Cicles de serialització/deserialització de prova per assegurar la integritat de les dades.
- Conformitat estàndard: Utilitzeu les opcions predefinides per a la conformitat de DICOM PS3.18; l’opció no estàndar pot trencar parsers de tercers.
- Codificació UTF-8: els mètodes de flux utilitzen el codificador UTf-8, ideal per a les API web i les operacions de fitxers.
Resum de l’operació
| Operation | Input | Sortida | Method |
|---|---|---|---|
| Serialize | Dataset | Títol / Stream | Serialize |
| Serialize | DicomFile | Títol / Stream | Serialize |
| Serialize | Les dades[modifica modifica el codi] | Títol / Stream | Serialize |
| Deserialize | Títol / Stream | Dataset | Deserialize |
| Deserialize | Títol / Stream | DicomFile | DeserializeFile |
| Deserialize | Títol / Stream | Les dades[modifica modifica el codi] | DeserializeList |
FAQ
*Es requereixen biblioteques de tercers? *No. És una API independent que només utilitza el suport .NET JSON/XML integrat.
**¿La producció de JSON és compatible amb els Serveis Web DICOM?**La sortida estàndard segueix les especificacions de DICOM PS3.18.
**Puc personalitzar el format de clau JSON?**Sí, utilitzar DicomJsonSerializerOptions per controlar la etiqueta vs. paraules clau i atributs addicionals.
- S’han preservat les seqüències nestades? *El serialitzador manté la estructura completa de DICOM, incloses les seqüències nestades.
**Com puc gestionar els grans arxius DICOM?**Utilitzar mètodes basats en el flux (Serialize(stream, ...) i DeserializeAsyncPer a un processament eficaç de la memòria.
** És la conversió rodona sense pèrdues?**La serialització conserva totes les dades de DICOM per a la deserialització exacta de tornada als objectes Dataset o DicomFile.