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 Dataset
  • DeserializeFileAsync - Deserialisere UTF-8 JSON-strøm til DicomFile
  • DeserializeListAsync - Deserialisere UTF-8 JSON strøm til Dataset array
  • SerializeAsync - 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);
OptionDescription
UseKeywordsAsJsonKeysBruk DICOM nøkkelord i stedet for tags som JSON-nøkler (ikke standard)
WriteKeywordSkriv DICOM-tegn som et separat JSON-attribut
WriteNameSkriv DICOM-tagsnavn som en forskjellig JSON-attribut
NumberHandlingBehandle tallene som AsNumber eller AsString
BulkDataLoaderLader for blob data referert i BulkData elementer
BulkDataConverterConverter 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 typeUtgangsformater
DicomFileJSON og XML
DatasetJSON 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

OperationInputOutputMethod
SerializeDatasetStrøm / StreamSerialize
SerializeDicomFileStrøm / StreamSerialize
SerializeDatasett[rediger rediger kilde]Strøm / StreamSerialize
DeserializeStrøm / StreamDatasetDeserialize
DeserializeStrøm / StreamDicomFileDeserializeFile
DeserializeStrøm / StreamDatasett[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.

 Norsk