Aspose.Medical DICOM naar Text Converter voor .NET
Aspose.Medical DICOM naar Text Converter voor .NET is een krachtige API gericht op converting van DICO-gegevens naar menselijk leesbare en machine-verzuimbare formaten. Het serialiseren van dataset naar JSON en XML-formaten, waardoor integratie met webdiensten, REST APIs en moderne gezondheidszorgssystemen mogelijk is.
Installatie en Setup
- Installeer het NuGet-pakket
Aspose.Medical(Core API versterkt conversie) - Aanvragen gemeten licentie bij startups om beoordelingsgrens te vermijden: zie gemeten licentie .
- Herziening van de kadervereisten in de Installatie gids .
Ondersteunde platforms
- OS: Windows, Linux en macOS
- • Frameworks: .NET 8.0+
- Architectuur: x64, ARM64 (macOS)
Snelle start
1) DICOM aan JSON
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string json = DicomJsonSerializer.Serialize(dcm);2) DICOM naar JSON met 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 naar 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-bestanden naar 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) Serialiseren naar Stream (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) Save als JSON-bestand
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 Deserialisatie
Deserialiseren JSON String naar Dataset
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string jsonText = File.ReadAllText("dicom_data.json");
Dataset? dataset = DicomJsonSerializer.Deserialize(jsonText);Deserialiseren van JSON Stream naar Dataset
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
using FileStream stream = File.OpenRead("dicom_data.json");
Dataset? dataset = DicomJsonSerializer.Deserialize(stream);Deserialiseren JSON naar DicomFile
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string jsonText = File.ReadAllText("dicom_file.json");
DicomFile? dicomFile = DicomJsonSerializer.DeserializeFile(jsonText);Deserialiseren JSON Array naar meerdere datasets
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string jsonText = File.ReadAllText("dicom_array.json");
Dataset[]? datasets = DicomJsonSerializer.DeserializeList(jsonText);XML Serialisatie
DICOM naar XML
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string xml = DicomXmlSerializer.Serialize(dcm.Dataset);XML naar DICOM Dataset
using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
string xmlText = File.ReadAllText("dicom_data.xml");
Dataset? dataset = DicomXmlSerializer.Deserialize(xmlText);De Async API
Voor asynchronische activiteiten in webapplicaties en diensten:
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);** Er zijn beschikbare Async-methoden:**
DeserializeAsync- Deserialiseren UTF-8 JSON stroom naar DatasetDeserializeFileAsync- Deserialiseren UTF-8 JSON stroom naar DicomFileDeserializeListAsync- Deserialiseren UTF-8 JSON stroom naar Dataset arraySerializeAsync- Serialiseren dataset, DicomFile of Dataset array naar UTF-8 JSON stream
Features en functionaliteit
Compliance met DICOM Web Services
De converter voldoet aan de DICOM PS3.18 (Web Services) standaard en zorgt voor compatibiliteit met:
- RESTFUL DICOM Web API’s
- Cloudgebaseerde PACS-systemen
- Moderne medische interoperabiliteitsplatforms
- FHIR-compatibele systemen
Serialisatie opties
Serialisatie gedrag aanpassen met 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 | Beschrijving |
|---|---|
UseKeywordsAsJsonKeys | Gebruik DICOM keywords in plaats van tags als JSON sleutels (niet standaard) |
WriteKeyword | Schrijf DICOM tag keyword als onderscheidend JSON attribute |
WriteName | Schrijf de DICOM-tagnaam als een onderscheidend JSON-attribuut |
NumberHandling | Handelen met cijfers als AsNumber of AsString |
BulkDataLoader | Loader voor blob-gegevens vermeld in BulkData-elementen |
BulkDataConverter | Converter voor het schrijven van gegevens als BulkData referenties |
System.Text.Json integratie
Gebruik converters met standaard .NET JSON serialisatie:
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);Ondersteunde typen
| Input type | Uitgangsformaten |
|---|---|
DicomFile | JSON en XML |
Dataset | JSON en XML |
Dataset[] | JSON en XML |
gegevensbehoud
De serialisering behoudt nauwkeurig:
- Alle DICOM tags en waarden
- Vertegenwoordiging van waarde (VR)
- Nosted sequences
- Privé tags
- Grote gegevensreferenties
- Speciale vlootwaarden (NaN, Infinity)
Gemeenschappelijk gebruik Cases
- Webbeoordelaars: DICOM metadata dienen aan browser-gebaseerde medische afbeeldingsprekers.
- REST APIs: bouw gezondheidszorg API’s die DICOM-gegevens in JSON-formaat uitwisselen.
- Data Analytics: Exporteer DICOM metadata voor analyse in data processing pipelines.
- Integratie: Connect legacy PACS met moderne cloudgebaseerde gezondheidszorgplatforms.
- Debugging: Mensen leesbare vertegenwoordigingen van DICOM-gegevens creëren voor probleemoplossing.
- Archiving: DICOM metadata opslaan in documentdatabases zoals MongoDB of Elasticsearch.
Beste praktijken
- License first: Initialiseren van gemeten licentie vóór elke conversie om beoordelingsbeperkingen te voorkomen.
- Use streams: Voor grote bestanden of webdiensten, gebruik stream-gebaseerde methoden voor geheugen efficiëntie.
- Async-operaties: Gebruik asynch-methoden in web-applicaties om te voorkomen dat banden worden geblokkeerd.
- ** Validate round-trips**: Test serialisering/deserialisatie cycli om de integriteit van gegevens te waarborgen.
- Standaardcompliance: Gebruik standaardopties voor DICOM PS3.18 compliance; niet-standard opties kunnen derde partijen verspreiden.
- UTF-8 codering: Streammethoden gebruiken UTF-8, ideaal voor web-API’s en bestandsactiviteiten.
Operatie samenvatting
| Operation | Input | Uitgang | Method |
|---|---|---|---|
| Serialize | Dataset | String / Stream | Serialize |
| Serialize | DicomFile | String / Stream | Serialize |
| Serialize | De gegevens[bewerken] | String / Stream | Serialize |
| Deserialize | String / Stream | Dataset | Deserialize |
| Deserialize | String / Stream | DicomFile | DeserializeFile |
| Deserialize | String / Stream | De gegevens[bewerken] | DeserializeList |
FAQ
** Is het nodig dat derden bibliotheken?**Het is een onafhankelijke API met alleen .NET ingebouwde JSON/XML ondersteuning.
** Is de JSON-uitgang in overeenstemming met DICOM Web Services?**De standaard output volgt de DICOM PS3.18 specificaties.
** Kan ik het JSON sleutelformaat aanpassen?**Ja, gebruik DicomJsonSerializerOptions om te controleren tag vs. keywords en extra attributen.
**Zijn de nested sequences bewaard?**De serialisator behoort tot de volledige DICOM-structuur, met inbegrip van nested sequences.
** Hoe kan ik grote DICOM-bestanden beheren?**Met behulp van bestuursmethoden (Serialize(stream, ...) en DeserializeAsyncVoor een geheugen-efficiënte verwerking.
** Is rond-trip conversie verliesloos?**Serialisering behoudt alle DICOM-gegevens voor nauwkeurige deserialisering terug naar Dataset of DicomFile-objecten.