Aspose.Medical DICOM zum Textkonverter für .NET

Aspose.Medical DICOM to Text Converter für .NET ist eine leistungsstarke API, die sich auf Konvertierung von DICO-Daten in menschlich lesbare und maschinell verbreitbare Formate konzentriert. Es serialisiert DICO-Datensätze in JSON und XML-Formate, ermöglicht die Integration mit Web-Services, REST APIs und modernen Gesundheitssystemen.

Installation und Setup

  • Installieren Sie das NuGet-Paket Aspose.Medical (Kern API Power Conversion)
  • Anwenden Sie eine gemessene Lizenz bei Startups, um Einschätzungsgrenze zu vermeiden: siehe Metered Licensing .
  • Prüfung der Rahmenanforderungen in der Installationsguide .

unterstützte Plattformen

  • OS: Windows, Linux und macOS
    • Frameworks: * .NET 8.0+
  • Architekturen: x64, ARM64 (macOS)

Schneller Start

1) DICOM zu JSON

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string json = DicomJsonSerializer.Serialize(dcm);

2) DICOM zu JSON mit 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 zu 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-Dateien für 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) Serialisierung zum 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. Speichern Sie als JSON-Datei

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 Deserialisierung

Deserialisieren JSON String zum Dataset

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

string jsonText = File.ReadAllText("dicom_data.json");
Dataset? dataset = DicomJsonSerializer.Deserialize(jsonText);

Deserialisieren JSON Stream zum Dataset

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

using FileStream stream = File.OpenRead("dicom_data.json");
Dataset? dataset = DicomJsonSerializer.Deserialize(stream);

Deserialisieren JSON zu DicomFile

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

string jsonText = File.ReadAllText("dicom_file.json");
DicomFile? dicomFile = DicomJsonSerializer.DeserializeFile(jsonText);

Deserialisieren JSON Array zu mehreren Datensätzen

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

string jsonText = File.ReadAllText("dicom_array.json");
Dataset[]? datasets = DicomJsonSerializer.DeserializeList(jsonText);

XML Serialisierung

DICOM zum XML

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string xml = DicomXmlSerializer.Serialize(dcm.Dataset);

XML zum DICOM Dataset

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;

string xmlText = File.ReadAllText("dicom_data.xml");
Dataset? dataset = DicomXmlSerializer.Deserialize(xmlText);

Async Feuer

Für asynchrone Operationen in Web-Anwendungen und -Dienste:

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);

** Verfügbare Async-Methoden:**

  • DeserializeAsync - Deserialisieren UTF-8 JSON Stream auf Dataset
  • DeserializeFileAsync - Deserialisieren UTF-8 JSON Stream auf DicomFile
  • DeserializeListAsync - Deserialisieren UTF-8 JSON Stream in Dataset Array
  • SerializeAsync - Serialisieren Sie Dataset, DicomFile oder dataset auf UTF-8 JSON-Stream

Eigenschaften und Funktionalität

DICOM Web-Dienste Compliance

Der Konverter entspricht dem DICOM PS3.18 (Web Services) Standard und sorgt für Kompatibilität mit:

  • RESTFUL DICOM Web APIs
  • Cloud-basierte PACS-Systeme
  • Moderne Gesundheitsversorgungsplattformen
  • FHIR-kompatible Systeme

Serialisierungsoptionen

Anpassung des Serienverhaltens mit 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);
OptionBeschreibung
UseKeywordsAsJsonKeysVerwenden Sie DICOM Keywords anstelle von Tags als JSON-Schlüssel (nicht Standard)
WriteKeywordSchreiben Sie DICOM Tag Keyword als getrenntes JSON Attribute
WriteNameSchreiben Sie den DICOM Tag Name als getrennte JSON Attribute
NumberHandlingHandeln Sie Zahlen wie AsNumber oder AsString
BulkDataLoaderLoader für Blob-Daten, die in BulkData-Elementen bezogen werden
BulkDataConverterConverter zum Schreiben von Daten als BulkData-Referenzen

System.Text.Json Integration

Verwenden Sie Konverter mit Standard .NET JSON Serienisierung:

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);

Unterstützte Typen

Einträge TypAusgangsformate
DicomFileJSON und XML
DatasetJSON und XML
Dataset[]JSON und XML

Datenerhaltung

Die serialisierung bewahrt genau:

  • Alle DICOM-Tags und Werte
  • Wertreprezentationen (VR)
  • Nested Sequenzen
  • Private Tags
  • Mehrere Datenreferenzen
  • Sonderflotwerte (NaN, Infinity)

Allgemeine Nutzungsfälle

  • Web Viewers: Dienen Sie den DICOM-Metadaten an Browser-basierte medizinische Bild-Zuschauern.
  • REST APIs: Erstellen Sie Gesundheits-APIs, die DICOM-Daten im JSON-Format austauschen.
  • Data Analytics: Exportieren DICOM Metadaten für die Analyse in Datenverarbeitung Pipe.
  • Integration: Verbinden Sie PACS mit modernen Cloud-basierten Gesundheitsplattformen.
  • Debugging: Erstellen von menschlich lesbaren Darstellungen von DICOM-Daten zur Problemlösung.
  • Archiving: Speichern Sie DICOM-Metadaten in Dokumentdatenbanken wie MongoDB oder Elasticsearch.

Beste Praktiken

  • License first: Initialisieren Sie die gemessene Lizenzierung vor jeder Umwandlung, um Einschränkungen der Bewertung zu vermeiden.
  • Use Streams: Für große Dateien oder Webdienste verwenden Sie Stream-basierte Methoden zur Speichereffizienz.
  • Async-Aktivitäten: Verwenden Sie Asynk-Methoden in Web-Anwendungen, um die Blockierung von Strängen zu vermeiden.
  • Validate round-trips: Test serialisierung/deserialisierungszyklen, um die Datenintegrität sicherzustellen.
  • Standardkompetenz: Verwenden Sie die Standard-Optionen für die DICOM PS3.18-Competence; Nicht-Standards können Drittstaatspartners brechen.
  • UTF-8 Verschlüsselung: Streammethoden verwenden UTF-Kodierung, ideal für Web-APIs und Dateioperationen.

Operation Zusammenfassung

OperationInputAusgangMethode
SerializeDatasetString / StreamSerialize
SerializeDicomFileString / StreamSerialize
SerializeDatensatz [ ]String / StreamSerialize
DeserializeString / StreamDatasetDeserialize
DeserializeString / StreamDicomFileDeserializeFile
DeserializeString / StreamDatensatz [ ]DeserializeList

FAQ

  • Bedarf es von Drittanbietern? *No. Es ist eine standalone API, die nur .NET integriert JSON/XML unterstützt.

** Ist der JSON-Ausgang mit DICOM Web Services vereinbar?**Das Standard-Ausgang folgt den DICOM PS3.18 Spezifikationen.

** Kann ich das JSON-Schlüsselformat anpassen?**Ja, benutzen Sie DicomJsonSerializerOptions zu kontrollieren Tag vs. Keyword-Schlüssel und zusätzliche Attribute.

  • Gibt es bewaffnete Sequenzen? *Ja. Der Serialisator hält die vollständige DICOM-Struktur einschließlich Nested-Sektionen.

**Wie kann ich große DICOM-Dateien verwalten?**Verwendung von Stream-basierten Methoden (Serialize(stream, ...) und DeserializeAsyncfür eine memory-efficient verarbeitung.

** Ist die Runde-Trip-Konvertierung ohne Verlust?**Ja. Serialisierung bewahrt alle DICOM-Daten für die genaue Deserialisation zurück zu Dataset oder DicomFile-Objekten.

 Deutsch