Aspose.Medical DICOM til Text Converter for .NET
Aspose.Medical DICOM til Text Converter for .NET er en kraftig API fokusert på konvertering av DICO data til menneskelig lesbare og maskin-forbrukbare formater. Det serialiserer DIKO datasett til JSON og XML-formater, muliggjør integrasjon med webtjenester, REST APIs, og moderne helsevesenet systemer.
Installasjon og installasjon
- Installere NuGet-pakken
Aspose.Medical(Core API Power Conversion) - Anvend målt lisens ved startup for å unngå evalueringsgrenser: se målt lisens .
- Oversikt over rammevilkårene i Installeringsguide .
Støttede plattformer
- OS: Windows, Linux og macOS
- Frameworks: .NET 8.0+
- Arkitekter: x64, ARM64 (macOS)
Rask start
1) DICOM til JSON
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string json = DicomJsonSerializer.Serialize(dcm);2) DICOM til 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 til 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) Flere DICOM-filer til 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) Serialisering til 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) Lagre 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
Deserialisere JSON String til Dataset
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string jsonText = File.ReadAllText("dicom_data.json");
Dataset? dataset = DicomJsonSerializer.Deserialize(jsonText);Deserialisere JSON Stream til Dataset
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
using FileStream stream = File.OpenRead("dicom_data.json");
Dataset? dataset = DicomJsonSerializer.Deserialize(stream);Deserialisere JSON til DicomFile
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string jsonText = File.ReadAllText("dicom_file.json");
DicomFile? dicomFile = DicomJsonSerializer.DeserializeFile(jsonText);Deserialisere JSON Array til flere datasett
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string jsonText = File.ReadAllText("dicom_array.json");
Dataset[]? datasets = DicomJsonSerializer.DeserializeList(jsonText);XML serialisering
DICOM til XML
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string xml = DicomXmlSerializer.Serialize(dcm.Dataset);XML til DICOM Dataset
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string xmlText = File.ReadAllText("dicom_data.xml");
Dataset? dataset = DicomXmlSerializer.Deserialize(xmlText);Async brann
For asynkrone operasjoner i webapplikasjoner og tjenester:
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);** Tilgjengelige Async metoder:**
DeserializeAsync- Deserialisere UTF-8 JSON-strøm til DatasetDeserializeFileAsync- Deserialisere UTF-8 JSON-strøm til DicomFileDeserializeListAsync- Deserialisere UTF-8 JSON strøm til Dataset arraySerializeAsync- Serialisere Dataset, DicomFile eller Dataaset til UTF-8 JSON-strømmen
Egenskaper og funksjonalitet
DICOM Web Services overholdelse
Konverteringen overholder DICOM PS3.18 (Web Services) standard, og sikrer kompatibilitet med:
- Resten av DICOM Web APIs
- Cloud-baserte PACS-systemer
- Moderne medisinske interoperabilitetsplattformer
- FHIR-kompatible systemer
Serialisering alternativer
Tilpasse serialiseringsbehandlingen 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 | Description |
|---|---|
UseKeywordsAsJsonKeys | Bruk DICOM nøkkelord i stedet for tags som JSON-nøkler (ikke standard) |
WriteKeyword | Skriv DICOM-tegn som et separat JSON-attribut |
WriteName | Skriv DICOM-tagsnavn som en forskjellig JSON-attribut |
NumberHandling | Behandle tallene som AsNumber eller AsString |
BulkDataLoader | Lader for blob data referert i BulkData elementer |
BulkDataConverter | Converter for å skrive data som BulkData referanser |
System.Text.Json Integrasjon
Bruk konvertere 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øtte typer
| Input type | Utgangsformater |
|---|---|
DicomFile | JSON og XML |
Dataset | JSON og XML |
Dataset[] | JSON og XML |
Data bevaring
Serialiseringen bevarer nøyaktig:
- Alle DICOM tags og verdier
- Verdirepresentasjoner (VR)
- Nestede sekvenser
- Private tags
- Bulk data referanser
- Special Float Values (NaN og Infinity)
Vanlige brukssaker
- Web Viewers: Serve DICOM-metadata til nettleserbaserte medisinske bilder.
- REST APIs: Bygg helseapier som utveksler DICOM-data i JSON-format.
- Data Analytics: Eksport DICOM metadata for analyse i databehandlingsrørene.
- Integrasjon: Koble legacy PACS til moderne, skybaserte helseplattformer.
- Debugging: Skaper menneskelig lesbare representasjoner av DICOM-data for problemløsning.
- Archiving: Lagre DICOM metadata i dokumentdatabaser som MongoDB eller Elasticsearch.
Beste praksis
- License first: Initialisere målt lisens før eventuelle konverteringer for å unngå evalueringsbegrensninger.
- Use streams: For store filer eller webtjenester, bruk strømbaserte metoder for minneeffektivitet.
- Async-operasjoner: Bruk asynkmetoder i nettapplikasjoner for å unngå å blokkere tråder.
- Validerer runde runder: Test serialisering/deserialisering sykluser for å sikre data integritet.
- Standardkompetanse: Bruk standardalternativer for DICOM PS3.18-kompatibilitet; ikke-standard alternativer kan bryte tredjeparts parsers.
- UTF-8 koding: Stream metoder bruker UTF-8, ideell for web APIs og filoperasjoner.
Operasjonens sammendrag
| Operation | Input | Output | Method |
|---|---|---|---|
| Serialize | Dataset | Strøm / Stream | Serialize |
| Serialize | DicomFile | Strøm / Stream | Serialize |
| Serialize | Datasett[rediger rediger kilde] | Strøm / Stream | Serialize |
| Deserialize | Strøm / Stream | Dataset | Deserialize |
| Deserialize | Strøm / Stream | DicomFile | DeserializeFile |
| Deserialize | Strøm / Stream | Datasett[rediger rediger kilde] | DeserializeList |
FAQ
** Er det behov for tredjeparts bibliotek?**No. Det er en uavhengig API som bare bruker .NET innebygd JSON/XML-støtte.
** Er JSON-produksjonen DICOM Web Services kompatibel?**Ja, standardutgaven følger spesifikasjonene til DICOM PS3.18.
** Kan jeg tilpasse JSON-nøkkelformatet?**Ja, bruk av DicomJsonSerializerOptions for å kontrollere tag vs. nøkkelord og ekstra atributter.
** Er nestede sekvenser bevaret?**Ja, serialiseren opprettholder full DICOM-struktur, inkludert nestede sekvenser.
**Hvordan kan jeg håndtere store DICOM-filer?**Bruk av strømbaserte metoder (Serialize(stream, ...) og DeserializeAsyncfor minneeffektiv behandling.
** Er rund-trip konvertering tapsløs?**Serialisering bevarer alle DICOM-data for nøyaktig deserialisering tilbake til Dataset eller DicomFile-objekter.