Aspose.Medical DICOM į teksto konverteris .NET
Aspose.Medical DICOM į teksto konvertuotojas .NET yra galingas API, orientuotas į konvertuojant DIKOM duomenis į žmogiškai skaitomus ir mašinai išmatuojamus formatus. Jis serijalizuoja DICO duomenų rinkinius į JSON ir XML formatus, leidžiančius integruotis su žiniatinklio paslaugomis, REST API ir šiuolaikinėmis sveikatos priežiūros sistemomis.
Įdiegimas ir nustatymas
- Įdiegti NuGet paketą
Aspose.Medical(Nukreipta iš puslapio Pagrindinis konvertavimas) - Taikykite matuotą licenciją „Startup“, kad išvengtumėte vertinimo ribų: žiūrėkite Išmatuota licencija .
- Patikrinkite pagrindinius reikalavimus Įdiegimo vadovas .
palaikomos platformos
- Windows“, „Linux“ ir „MacOS
- Rėmuo: .NET 8.0 +
- ** Architektūros: * x64, ARM64 (macOS)
Greitas pradžia
1) DICOM į JSON
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string json = DicomJsonSerializer.Serialize(dcm);2) DICOM į JSON su 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 į 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) Daug DICOM failų į 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) Serializuoti į srovę (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) Išsaugoti kaip JSON failą
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);JSON deserializavimas
Deserializuoti JSON String į duomenų rinkinį
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string jsonText = File.ReadAllText("dicom_data.json");
Dataset? dataset = DicomJsonSerializer.Deserialize(jsonText);Deserializuoti JSON Stream į duomenų rinkinį
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
using FileStream stream = File.OpenRead("dicom_data.json");
Dataset? dataset = DicomJsonSerializer.Deserialize(stream);Deserializuoti JSON į DicomFile
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string jsonText = File.ReadAllText("dicom_file.json");
DicomFile? dicomFile = DicomJsonSerializer.DeserializeFile(jsonText);Deserializuokite JSON Array į daugybę duomenų rinkinių
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string jsonText = File.ReadAllText("dicom_array.json");
Dataset[]? datasets = DicomJsonSerializer.DeserializeList(jsonText);XML serializavimas
DICOM į XML
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string xml = DicomXmlSerializer.Serialize(dcm.Dataset);XML į DICOM Dataset
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string xmlText = File.ReadAllText("dicom_data.xml");
Dataset? dataset = DicomXmlSerializer.Deserialize(xmlText);Async apšvietimas
Dėl asinkroninių operacijų interneto programose ir paslaugose:
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);** Galimi Async metodai:**
DeserializeAsync- Deserializuoti UTF-8 JSON srautą į DatasetDeserializeFileAsync- Deserializuoti UTF-8 JSON srautą į DicomFileDeserializeListAsync- Deserializuoti UTF-8 JSON srautą į Dataset arrijąSerializeAsync- Serializuoti Dataset, DicomFile, arba DataSet ryšį į UTF-8 JSON srautą
Savybės ir funkcionalumas
DICOM interneto paslaugų atitikimas
Konverteris laikosi DICOM PS3.18 (Web Services) standarto, užtikrinant suderinamumą su:
- Kiti DICOM tinklalapiai
- Cloud-based PACS sistemos
- Šiuolaikinės sveikatos priežiūros sąveikumo platformos
- FHIR suderinamos sistemos
Serializavimo galimybės
Serializacijos elgesys su 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 | Description |
|---|---|
UseKeywordsAsJsonKeys | Naudokite DICOM raktinius žodžius vietoj žymenų kaip JSON raktus (ne standartiniai) |
WriteKeyword | Parašykite DICOM žymės raktinius žodžius kaip atskirą JSON atributą |
WriteName | Parašykite DICOM ženklinimo pavadinimą kaip atskirą JSON atributą |
NumberHandling | Skaičiuojami skaičiai kaip AsNumber arba AsString |
BulkDataLoader | Blob duomenų įkroviklis, nurodytas BulkData elementuose |
BulkDataConverter | Konvertuotojas rašyti duomenis kaip BulkData nuorodas |
System.Text.Json integravimas
Naudokite konvertuotojus su standartine .NET JSON serializavimu:
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);Palaikomi tipai
| Įvesties tipas | Išleidimo formatas |
|---|---|
DicomFile | JSON ir XML |
Dataset | JSON ir XML |
Dataset[] | JSON ir XML |
Duomenų saugojimas
Serializavimas tiksliai išsaugo:
- Visi DICOM ženklai ir vertybės
- Vertės atvaizda (VR)
- Nustatytas sekas
- Privatūs žymės
- Bulk duomenų referencijos
- Specialios plovimo vertės (NaN, Infinity)
Dažniausiai naudojami atvejai
- Web žiūrovai: „DICOM“ metaduomenis teikia naršyklės medicinos vaizdo žiūrėjams.
- REST API: Sukurkite sveikatos priežiūros API, kurios keičia DICOM duomenis JSON formatu.
- Data Analytics: Eksportuoti DICOM metaduomenis analizei duomenų tvarkymo vamzdžiuose.
- Integracija: Prisijunkite prie paveldėjimo PACS su šiuolaikinėmis debesijos sveikatos priežiūros platformomis.
- Debugging: sukurkite žmogiškai skaitomą DICOM duomenų atstovavimą problemų sprendimui.
- Archiving: DICOM metadata saugoma dokumentų duomenų bazėse, tokiose kaip MongoDB arba Elasticsearch.
Geriausios praktikos
- License first: Prieš bet kokį konvertavimą pradėkite matuojamą licenciją, kad išvengtumėte vertinimo apribojimų.
- Use streams: Dideliems failams ar žiniatinklio paslaugoms naudokite srauto pagrįstus metodus atminties efektyvumui.
- Async operacijos: Naudokite asynco metodus žiniatinklio programose, kad išvengtumėte blokuojančių juostų.
- Validuokite apvalius maršrutus: bandymų serializavimo / deserializavimo ciklai, kad būtų užtikrintas duomenų vientisumas.
- Standartinės atitikties: Naudokite numatytus variantus DICOM PS3.18 Atitikčiai; ne standartinės galimybės gali sutrikdyti trečiųjų šalių parsers.
- UTF-8 kodavimas: srauto metodai naudoja UTF-8, idealiai tinklas API ir failų operacijas.
Operacijos santrauka
| Operation | Input | Output | Method |
|---|---|---|---|
| Serialize | Dataset | Stringas / Stream | Serialize |
| Serialize | DicomFile | Stringas / Stream | Serialize |
| Serialize | Duomenų rinkimas[redaguoti redaguoti vikitekstą] | Stringas / Stream | Serialize |
| Deserialize | Stringas / Stream | Dataset | Deserialize |
| Deserialize | Stringas / Stream | DicomFile | DeserializeFile |
| Deserialize | Stringas / Stream | Duomenų rinkimas[redaguoti redaguoti vikitekstą] | DeserializeList |
FAQ
** Ar tai reikalauja trečiųjų šalių bibliotekų?**Ne. Tai atskiras API, kuris naudoja tik .NET integruotą JSON/XML palaikymą.
** Ar JSON išleidimas atitinka DICOM Web Services?**Pavyzdžiui, numatytas išleidimas atitinka DICOM PS3.18 specifikacijas.
** Ar galiu pritaikyti JSON raktų formatą?**Naudojimas DicomJsonSerializerOptions valdyti žymes vs. raktinių žodžių raktus ir papildomus atributus.
- Ar išsaugoti sklypai? *Taip. serializatorius palaiko visą DICOM struktūrą, įskaitant nardytas sekas.
**Kaip tvarkyti didelius DICOM failus?**Naudojant metodus, pagrįstus srauto (Serialize(stream, ...) ir DeserializeAsyncAtminties efektyvaus apdorojimo.
** Ar „Round-Trip“ konvertavimas yra be nuostolių?**Serializavimas išsaugo visus DICOM duomenis tiksliam deserializavimui atgal į Dataset arba DicomFile objektus.