Aspose.Medical DICOM till Text Converter för .NET
Aspose.Medical DICOM till Text Converter för .NET är en kraftfull API som fokuserar på konvertering av DICUM-data till mänskligt läsbara och maskinvisbara format. Det serialiserar DIKOM-datasets till JSON och XML-format, möjliggör integration med webbtjänster, REST APIs och moderna hälso- och sjukvårdssystem. Byggd för interoperabilitet, det ger standardöverensstämmande serialisering enligt specifikationerna av *DicOM Web Services (PS3.18).
Installation och installation
- Installera NuGet-paketet
Aspose.Medical(Core API Power Conversion) - Applicera måttlig licens vid startups för att undvika utvärderingsgränser: se Mätlicensiering .
- granskning av ramkrav i Installationsguide .
Stödda plattformar
- OS: Windows, Linux och macOS
- • Frameworks: .NET 8.0+
- Arkitekturer: x64, ARM64 (macOS)
Snabb start
1) DICOM till JSON
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string json = DicomJsonSerializer.Serialize(dcm);2) DICOM till JSON med 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 till 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 filer till 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) Serialisera till ström (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) Spara som JSON-fil
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 Deserialisering
Deserialisera JSON String till Dataset
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string jsonText = File.ReadAllText("dicom_data.json");
Dataset? dataset = DicomJsonSerializer.Deserialize(jsonText);Deserialisera JSON Stream till Dataset
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
using FileStream stream = File.OpenRead("dicom_data.json");
Dataset? dataset = DicomJsonSerializer.Deserialize(stream);Deserialisera JSON till DicomFile
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string jsonText = File.ReadAllText("dicom_file.json");
DicomFile? dicomFile = DicomJsonSerializer.DeserializeFile(jsonText);Deserialisera JSON Array till flera datasets
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string jsonText = File.ReadAllText("dicom_array.json");
Dataset[]? datasets = DicomJsonSerializer.DeserializeList(jsonText);XML serialisering
DICOM till XML
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string xml = DicomXmlSerializer.Serialize(dcm.Dataset);XML till 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
För asynkrona operationer i webbapplikationer och tjänster:
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);** Tillgängliga Async-metoder:**
DeserializeAsync- Deserialisera UTF-8 JSON-ström till DatasetDeserializeFileAsync- Deserialisera UTF-8 JSON-ström till DicomFileDeserializeListAsync- Deserialisera UTF-8 JSON-ström till Dataset arraySerializeAsync- Serialisera dataset, DicomFile eller Dataset array till UTF-8 JSON ström
Funktioner och funktionalitet
DICOM Web Services överensstämmelse
Konverteraren överensstämmer med DICOM PS3.18 (Web Services) standard, vilket säkerställer kompatibilitet med:
- Resterande DICOM Web API
- molnbaserade PACS-system
- Moderna plattformar för interoperabilitet inom hälso- och sjukvård
- FHIR-kompatibla system
Serialiseringsalternativ
Anpassa serialisering beteende med 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 | Beskrivning |
|---|---|
UseKeywordsAsJsonKeys | Använd DICOM nyckelord i stället för taggar som JSON-nycklar (inte standard) |
WriteKeyword | Skriv DICOM tag nyckelord som en särskild JSON-attribut |
WriteName | Skriv DICOM tagnamn som en särskild JSON-attribut |
NumberHandling | Handla siffror som AsNumber eller AsString |
BulkDataLoader | Laddare för blob-data som hänvisas till BulkData-element |
BulkDataConverter | Konverterare för att skriva data som BulkData referenser |
System.Text.Json integration
Använd konverter med standard .NET JSON serialisering:
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);Stödda typer
| Inträde typ | Utgångsformat |
|---|---|
DicomFile | JSON och XML |
Dataset | JSON och XML |
Dataset[] | JSON och XML |
Data bevarande
Serialiseringen bevarar noggrant:
- Alla DICOM taggar och värden
- Värde Representationer (VR)
- Nätade sekvenser
- Privat taggar
- Bulk data referenser
- Särskilda flötvärden (NaN, Infinity)
Vanliga användningsfall
- Web Viewers: Serve DICOM metadata till webbläsarbaserade medicinska bilder tittare.
- REST APIs: Bygg hälso- och sjukvårdsapier som utbyter DICOM-data i JSON-format.
- Data Analytics: Exportera DICOM metadata för analys i databehandlingsrör.
- Integration: Anslut PACS med moderna molnbaserade hälso- och sjukvårdsplattformar.
- Debugging: Skapa mänskligt läsbara representationer av DICOM-data för problemlösning.
- Archiving: Lagra DICOM metadata i dokumentdatabaser som MongoDB eller Elasticsearch.
Bästa praxis
- Licens först: Initialisera måttlig licens före någon omvandling för att undvika utvärderingsbegränsningar.
- Use streams: För stora filer eller webbtjänster, använd strömbaserade metoder för minneseffektivitet.
- Async-operationer: Använd asynkmetoder i webbapplikationer för att undvika att blockera trådar.
- Validera rundturer: Test serialisering/deserialisering cykler för att säkerställa data integritet.
- Standard överensstämmelse: Använd standardalternativ för DICOM PS3.18 överenskommelse; icke-standardalternativen kan bryta tredje parts parsers.
- UTF-8 kodning: Streammetoder använder UTF-8-kodning, idealisk för web-API och filoperationer.
Operationens sammanfattning
| Operation | Input | Utgång | Metod |
|---|---|---|---|
| Serialize | Dataset | String / ström | Serialize |
| Serialize | DicomFile | String / ström | Serialize |
| Serialize | Uppgifterna [ ] | String / ström | Serialize |
| Deserialize | String / ström | Dataset | Deserialize |
| Deserialize | String / ström | DicomFile | DeserializeFile |
| Deserialize | String / ström | Uppgifterna [ ] | DeserializeList |
FAQ
** Behöver det tredjepartsbibliotek?**Det är en unik API som endast använder .NET-inbyggd JSON/XML-support.
** Är JSON-produktionen DICOM Web Services kompatibel?**Ja, standardutgången följer specifikationerna för DICOM PS3.18.
**Kan jag anpassa JSON-nyckelformat?**Ja, använd DicomJsonSerializerOptions kontroll tag vs. nyckelord och ytterligare attribut.
** Är nötade sekvenser bevarade?**Serialiseraren upprätthåller den fullständiga DICOM-strukturen inklusive nestade sekvenser.
**Hur hanterar jag stora DICOM-filer?**Använda strömbaserade metoder (Serialize(stream, ...) och DeserializeAsyncför minnes-effektiv behandling.
** Är rund-trip omvandling förlustlös?**Serialisering sparar alla DICOM-data för exakt deserialisering tillbaka till Dataset eller DicomFile-objekt.