Aspose.Medical DICOM na textový konvertor pro .NET
Aspose.Medical DICOM to Text Converter pro .NET je výkonný API zaměřený na konverzi dat DICO na lidsky čitelné a strojově rozpustné formáty. Serializuje datové sady DIKO do formátů JSON a XML, což umožňuje integraci s webovými službami, REST APIs a moderními zdravotnickými systémy.
Instalace a nastavení
- Instalace balíčku NuGet
Aspose.Medical(Core API napájecí konverzi) - Aplikujte měřené licence na startupu, abyste se vyhnuli hodnotícímu limitu: viz Licencování na bázi měření .
- Přezkoumání rámcových požadavků na Instalační průvodce .
Podporované platformy
- Systém: Windows, Linux a macOS
- • Rozhraní: .NET 8.0+
- Architektury: x64, ARM64 (macOS)
rychlý start
DICOM k JSONu
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string json = DicomJsonSerializer.Serialize(dcm);2) DICOM na JSON s 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 pro 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) Multiple DICOM soubory do 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) Serializace na proud (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) Uložit jako JSON soubor
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);Deserializace JSON
Deserializace JSON String do datasetů
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string jsonText = File.ReadAllText("dicom_data.json");
Dataset? dataset = DicomJsonSerializer.Deserialize(jsonText);Deserializace JSON Stream do datasetů
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
using FileStream stream = File.OpenRead("dicom_data.json");
Dataset? dataset = DicomJsonSerializer.Deserialize(stream);Deserializujte JSON na DicomFile
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string jsonText = File.ReadAllText("dicom_file.json");
DicomFile? dicomFile = DicomJsonSerializer.DeserializeFile(jsonText);Deserializujte JSON Array na více datových setů
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string jsonText = File.ReadAllText("dicom_array.json");
Dataset[]? datasets = DicomJsonSerializer.DeserializeList(jsonText);XML serializace
DICOM do XML
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string xml = DicomXmlSerializer.Serialize(dcm.Dataset);XML na DICOM Dataset
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string xmlText = File.ReadAllText("dicom_data.xml");
Dataset? dataset = DicomXmlSerializer.Deserialize(xmlText);Async API
Pro asynchronní operace v webových aplikacích a službách:
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);** Dostupné Async metody:**
DeserializeAsync- Deserializujte tok UTF-8 JSON na DatasetDeserializeFileAsync- Deserializujte tok UTF-8 JSON na DicomFileDeserializeListAsync- Deserializovat UTF-8 JSON stream do dataset arraySerializeAsync- Serializujte dataset, DicomFile nebo Dataset array na UTF-8 JSON stream
Funkce a funkčnost
DICOM webové služby v souladu
Konvertor se řídí standardem DICOM PS3.18 (Web Services) a zajišťuje kompatibilitu s:
- Zbývající DICOM web APIs
- Cloud-based PACS systémy
- Moderní platformy pro interoperabilitu zdravotnictví
- FHIR-kompatibilní systémy
Serializace možností
Přizpůsobení serializace chování s 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 | Popis |
|---|---|
UseKeywordsAsJsonKeys | Použijte klíčová slova DICOM namísto tagů jako klávesy JSON (nestandardní) |
WriteKeyword | Napište klíčové slovo DICOM jako odlišný atribut JSON |
WriteName | Napište název značky DICOM jako odlišný atribut JSON |
NumberHandling | Souvisejte se čísly jako AsNumber nebo AsString |
BulkDataLoader | Nabíječ pro blob data uvedená v BulkData prvcích |
BulkDataConverter | Konvertor pro psaní dat jako referencí BulkData |
Systém.Text.Json Integrace
Použijte konvertory se standardní serializací .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);Podporované typy
| Typ vstupu | Výstupní formáty |
|---|---|
DicomFile | JSON a XML |
Dataset | JSON a XML |
Dataset[] | JSON a XML |
Udržování dat
Serializace přesně zachovává:
- Všechny značky DICOM a hodnoty
- hodnotové prezentace (VR)
- Nestlé sekvence
- Osobní tags
- Množství referenčních dat
- Zvláštní flotilní hodnoty (NaN, Infinity)
Případy běžného používání
- Web Viewers: Serve DICOM metadata pro prohlížeče založené na lékařských snímcích.
- REST API: Vytvořte zdravotnické API, které vyměňují data DICOM ve formátu JSON.
- Data Analytics: Export metadata DICOM pro analýzu v potrubích zpracování dat.
- Integrace: Připojte PACS dědictví k moderním platformám zdravotní péče založeným na cloudu.
- Debugging: Vytvořte lidsky čitelné představy dat DICOM pro řešení problémů.
- Archiving: Uložte metadata DICOM v databázích dokumentů, jako je MongoDB nebo Elasticsearch.
Nejlepší postupy
- Licence first: Před každou konverzi iniciujte měřené licence, abyste se vyhnuli omezením hodnocení.
- Užívejte toky: Pro velké soubory nebo webové služby použijte tokové metody pro efektivitu paměti.
- Async operace: V webových aplikacích se používají metody asyncu, aby se zabránilo blokování pruhů.
- Validujte kruhové cesty: Zkušební serializace/deserializací cyklů k zajištění integrity dat.
- Standardní shoda: Použijte výchozí možnosti pro shodu s DICOM PS3.18; nestandartní možnosti mohou narušit partnery třetích stran.
- Utf-8 kódování: Stream metody používají UTF-8 šifrování, ideální pro webové API a souborové operace.
Shrnutí operace
| Operace | Input | Výstup | Metoda |
|---|---|---|---|
| Serialize | Dataset | String / Stream | Serialize |
| Serialize | DicomFile | String / Stream | Serialize |
| Serialize | Databáze[editovat zdroj] | String / Stream | Serialize |
| Deserialize | String / Stream | Dataset | Deserialize |
| Deserialize | String / Stream | DicomFile | DeserializeFile |
| Deserialize | String / Stream | Databáze[editovat zdroj] | DeserializeList |
FAQ
** Potřebuje to třetí strany knihovny?**Jedná se o samostatný API, který používá pouze vestavěnou podporu JSON/XML .NET.
**Je výstup JSON v souladu s webovými službami DICOM?**Standardní výstup následuje specifikace DICOM PS3.18.
**Můžu přizpůsobit klíčový format JSON?**Ano, použijte DicomJsonSerializerOptions ovládat tag vs. klíčové slovo a další atributy.
Jsou zachovány následné sekvence?**Ano. serializátor udržuje plnou strukturu DICOM včetně nestěných sekvencí.
** Jak se chovat s velkými DICOM soubory?**Využijte metody založené na streamování (Serialize(stream, ...) a DeserializeAsyncPro efektivní zpracování paměti.
**Je kolo-trip konverze bez ztráty?**Ano. serializace uchovává všechny údaje DICOM pro přesnou deserializací zpět do Dataset nebo DicomFile objektů.