Aspose.Medical DICOM în Convertor de text pentru .NET
Aspose.Medical DICOM la Text Converter pentru .NET este o API puternică care se concentrează pe convertirea datelor DIKOM în formate citite de om și percepute de mașină. Se serializează seturile de date DICO la formatele JSON și XML, permițând integrarea cu serviciile web, API-urile REST și sistemele moderne de asistență medicală.
Instalare și setare
- Instalarea pachetului NuGet
Aspose.Medical(Core API de putere de conversie). - Aplicați o licență măsurată la startup pentru a evita limitele de evaluare: vezi Licență măsurată .
- revizuirea cerinţelor de cadru în cadrul Ghid de instalare .
Platforme susținute
- Sistemul de operare: Windows, Linux, macOS
- Cuvânt cheie: .NET 8.0+
- Arhitectură: x64, ARM64 (macOS)
Începe rapid
1) DICOM către JSON
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string json = DicomJsonSerializer.Serialize(dcm);2) DICOM la JSON cu 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 pentru 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) Multiplele fișiere DICOM la 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) Serializarea la flux (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ți ca fișier 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);Deserializare JSON
Deserializarea JSON String către Dataset
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string jsonText = File.ReadAllText("dicom_data.json");
Dataset? dataset = DicomJsonSerializer.Deserialize(jsonText);Deserializarea JSON Stream în Dataset
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
using FileStream stream = File.OpenRead("dicom_data.json");
Dataset? dataset = DicomJsonSerializer.Deserialize(stream);Deserializarea JSON către DicomFile
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string jsonText = File.ReadAllText("dicom_file.json");
DicomFile? dicomFile = DicomJsonSerializer.DeserializeFile(jsonText);Deserializarea JSON Array către mai multe seturi de date
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string jsonText = File.ReadAllText("dicom_array.json");
Dataset[]? datasets = DicomJsonSerializer.DeserializeList(jsonText);XML serializare
DICOM la XML
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string xml = DicomXmlSerializer.Serialize(dcm.Dataset);XML pentru DICOM Dataset
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string xmlText = File.ReadAllText("dicom_data.xml");
Dataset? dataset = DicomXmlSerializer.Deserialize(xmlText);Apă Async
Pentru operațiunile asincrone în aplicațiile și serviciile 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);Metode Async disponibile:
DeserializeAsync- Deserializarea fluxului UTF-8 JSON la DatasetDeserializeFileAsync- Deserializarea fluxului UTF-8 JSON la DicomFileDeserializeListAsyncDeserializarea fluxului UTF-8 JSON în aria DatasetSerializeAsync- Serializeaza Dataset, DicomFile sau DatSet array la UTF-8 JSON stream
Caracteristici și funcționalitate
Complianța Serviciilor Web DICOM
Convertorul se conformează standardului DICOM PS3.18 (Serviciile web), asigurând compatibilitatea cu:
- Restul site-ului DICOM
- Sistemele PACS bazate pe cloud
- Platforme moderne de interoperabilitate în domeniul sănătății
- Sistemele compatibile FHIR
Opțiuni de serializare
Crearea comportamentului de serializare cu 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 | Descriere |
|---|---|
UseKeywordsAsJsonKeys | Utilizați cuvintele cheie DICOM în loc de etichete ca chei JSON (non-standard) |
WriteKeyword | Scrieți cuvântul cheie DICOM ca atribut distinctiv JSON |
WriteName | Scrieți numele etichetei DICOM ca atribut distinctiv JSON |
NumberHandling | Tratează cifrele ca AsNumber sau AsString |
BulkDataLoader | Încărcător pentru datele blob referite în elementele BulkData |
BulkDataConverter | Convertor pentru a scrie date ca referințe BulkData |
Sistem.Text.Integrație Json
Utilizarea convertorilor cu serializarea 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);Tipuri susținute
| Tipul de intrare | Formate de ieșire |
|---|---|
DicomFile | JSON și XML |
Dataset | JSON și XML |
Dataset[] | JSON și XML |
Conservarea datelor
Serializarea păstrează cu precizie:
- Toate etichetele și valorile DICOM
- Reprezentarea valorilor (VR)
- Secvențe neînsemnate
- Etichete private
- Referințe de date în masă
- Valorile floate speciale (NaN, Infinity)
cazuri comune de utilizare
- Vizorii web: Servici metadata DICOM pentru vizualizatorii de imagini medicale bazate pe browser.
- REST APIs: Construiește API-uri de sănătate care schimbă datele DICOM în format JSON.
- Data Analytics: Exportarea de metadate DICOM pentru analiză în tuburile de prelucrare a datelor.
- Integrație: Conectați PACS de moștenire cu platforme moderne de asistență medicală bazate pe cloud.
- Debugging: Creați reprezentări ușor de citit ale datelor DICOM pentru rezolvarea problemelor.
- Arhivare: Stochează metadata DICOM în baze de date de documente, cum ar fi MongoDB sau Elasticsearch.
Cele mai bune practici
- ** Licența întâi**: Inițializați licența măsurată înainte de orice conversie pentru a evita limitările de evaluare.
- Use streams: Pentru fișierele mari sau serviciile web, utilizați metode bazate pe flux pentru eficiența memorii.
- Async operațiuni: Utilizați metode de asinc în aplicațiile web pentru a evita blocarea lanțurilor.
- Validate round-trips: cicluri de serializare/deserializări de testare pentru a asigura integritatea datelor.
- Compatibilitate standardă: Utilizați opțiunile predefinite pentru conformitatea DICOM PS3.18; Opțiuni non-standardă pot perturba părțile terțe.
- Codificare UTF-8: Metodele de streaming folosesc codificarea UTf-8, ideală pentru API-urile web și operațiunile de fișiere.
Rezumatul operațiunii
| Operation | Input | ieşire | Method |
|---|---|---|---|
| Serialize | Dataset | String / Război | Serialize |
| Serialize | DicomFile | String / Război | Serialize |
| Serialize | Sistemul de date [ ] | String / Război | Serialize |
| Deserialize | String / Război | Dataset | Deserialize |
| Deserialize | String / Război | DicomFile | DeserializeFile |
| Deserialize | String / Război | Sistemul de date [ ] | DeserializeList |
FAQ
**Aveți nevoie de biblioteci terțe?**Nu. Este o API independentă care utilizează doar .NET încorporat JSON/XML suport.
** Este rezultatul JSON conform Serviciilor Web DICOM?**Produsul standard urmează specificațiile DICOM PS3.18.
** Pot personaliza formatul cheie JSON?**Da. utilizare DicomJsonSerializerOptions pentru a controla eticheta vs. cuvinte cheie și atributele suplimentare.
- Sunt păstrate secvențele nestate? *Da. serializatorul menține întreaga structură DICOM, inclusiv secvențe nestate.
**Cum pot gestiona fișierele DICOM mari?**Utilizarea metodelor bazate pe flux (Serialize(stream, ...) şi DeserializeAsyncpentru procesarea eficientă a memoriei.
**Este pierderea conversiei rotund-trip?**Da. Serializarea păstrează toate datele DICOM pentru deserializare exactă înapoi la Obiectele Dataset sau DicomFile.