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 Dataset
  • DeserializeFileAsync - Deserialiseren UTF-8 JSON stroom naar DicomFile
  • DeserializeListAsync - Deserialiseren UTF-8 JSON stroom naar Dataset array
  • SerializeAsync - 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);
OptionBeschrijving
UseKeywordsAsJsonKeysGebruik DICOM keywords in plaats van tags als JSON sleutels (niet standaard)
WriteKeywordSchrijf DICOM tag keyword als onderscheidend JSON attribute
WriteNameSchrijf de DICOM-tagnaam als een onderscheidend JSON-attribuut
NumberHandlingHandelen met cijfers als AsNumber of AsString
BulkDataLoaderLoader voor blob-gegevens vermeld in BulkData-elementen
BulkDataConverterConverter 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 typeUitgangsformaten
DicomFileJSON en XML
DatasetJSON 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

OperationInputUitgangMethod
SerializeDatasetString / StreamSerialize
SerializeDicomFileString / StreamSerialize
SerializeDe gegevens[bewerken]String / StreamSerialize
DeserializeString / StreamDatasetDeserialize
DeserializeString / StreamDicomFileDeserializeFile
DeserializeString / StreamDe 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.

 Nederlands