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 DatasetDeserializeFileAsync- Deserialisieren UTF-8 JSON Stream auf DicomFileDeserializeListAsync- Deserialisieren UTF-8 JSON Stream in Dataset ArraySerializeAsync- 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);| Option | Beschreibung |
|---|---|
UseKeywordsAsJsonKeys | Verwenden Sie DICOM Keywords anstelle von Tags als JSON-Schlüssel (nicht Standard) |
WriteKeyword | Schreiben Sie DICOM Tag Keyword als getrenntes JSON Attribute |
WriteName | Schreiben Sie den DICOM Tag Name als getrennte JSON Attribute |
NumberHandling | Handeln Sie Zahlen wie AsNumber oder AsString |
BulkDataLoader | Loader für Blob-Daten, die in BulkData-Elementen bezogen werden |
BulkDataConverter | Converter 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 Typ | Ausgangsformate |
|---|---|
DicomFile | JSON und XML |
Dataset | JSON 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
| Operation | Input | Ausgang | Methode |
|---|---|---|---|
| Serialize | Dataset | String / Stream | Serialize |
| Serialize | DicomFile | String / Stream | Serialize |
| Serialize | Datensatz [ ] | String / Stream | Serialize |
| Deserialize | String / Stream | Dataset | Deserialize |
| Deserialize | String / Stream | DicomFile | DeserializeFile |
| Deserialize | String / Stream | Datensatz [ ] | 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.