Aspose.Medical DICOM untuk Konversi teks untuk .NET

Aspose.Medical DICOM to Text Converter untuk .NET adalah API yang berkuasa yang memberi tumpuan kepada mengubah data DIKOM kepada format yang boleh dibaca oleh manusia dan boleh dipadamkan oleh mesin.Ia menyejukkan dataset DIM ke format JSON dan XML, membolehkan integrasi dengan perkhidmatan web, APIs REST, dan sistem penjagaan kesihatan moden.Dibina untuk interoperabiliti, ia menyediakan serialisasi yang mematuhi piawaian mengikut spesifikasi Perkh Web DIGOM (PS3.18).

Pemasangan dan Setup

  • Pemasangan Pakej NuGet Aspose.Medical (Bahasa Inggeris kepada Melayu conversion)
  • Permohonan lesen yang diukur di startup untuk mengelakkan had penilaian: lihat Lisensi Pengukuran .
  • Mengkaji keperluan rangka kerja dalam Panduan pemasangan .

Platform yang disokong

  • Sistem operasi : Windows, Linux dan MacOS
  • Rangka kerja : .NET 8.0+
    • Arsitektur : x64 dan ARM64 (macOS)

Permulaan Cepat

1) Bercakap kepada JSON

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

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

2) DICOM kepada JSON dengan 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 kepada 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) Berbilang fail DICOM untuk 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) Serialisasi kepada 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) Simpan sebagai fail JSON

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

Penyelesaian JSON

Deserialisasi JSON String ke Dataset

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

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

Mengalihkan JSON Stream ke Dataset

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

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

Mengalihkan JSON ke DicomFile

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

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

Deserialisasi JSON Array kepada pelbagai set data

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

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

Pengenalan XML

Perbezaan dalam XML

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

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

XML untuk DICOM Dataset

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

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

Tag: async api

Untuk operasi asinkron dalam aplikasi dan perkhidmatan web:

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

Metode Async yang tersedia:

  • DeserializeAsync - Deserialisasi UTF-8 JSON aliran ke Dataset
  • DeserializeFileAsync - Deserialize UTF-8 JSON aliran ke DicomFile
  • DeserializeListAsync - Deserialize UTF-8 JSON aliran ke Dataset array
  • SerializeAsync - Serialize Dataset, DicomFile, atau Dataaset array kepada UTF-8 JSON aliran

Ciri-ciri dan fungsi

Kepatuhan Perkhidmatan Web DICOM

Konverter ini mematuhi DICOM PS3.18 (Perkh Web) standard, memastikan keserasian dengan:

  • Laman sesawang DICOM Web APIs
  • Sistem PACS berasaskan awan
  • Platform interoperabiliti penjagaan kesihatan moden
  • Sistem yang kompatibel FHIR

Pilihan Serialisasi

Menyesuaikan tingkah laku serialisasi dengan 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
UseKeywordsAsJsonKeysGunakan kata kunci DICOM daripada tag sebagai kunci JSON (tidak standard)
WriteKeywordTulis kata kunci tag DICOM sebagai atribut JSON yang berbeza
WriteNameTulis nama tag DICOM sebagai atribut JSON yang berbeza
NumberHandlingMenguruskan nombor sebagai AsNumber atau AsString
BulkDataLoaderPengecas untuk data blob yang dirujuk dalam elemen BulkData
BulkDataConverterPenukar untuk menulis data sebagai rujukan BulkData

Sistem.Text.Json Integrasi

Gunakan penukar dengan siri standard .NET JSON:

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

Jenis yang disokong

Jenis inputFormat output
DicomFileJSON dan XML
DatasetJSON dan XML
Dataset[]JSON dan XML

Penyimpanan Data

Serialisasi dengan tepat mengekalkan:

  • Semua tag dan nilai DICOM
  • Perwakilan Nilai (VR )
  • SeterusnyaNested Sequences
  • Tag Peribadi
  • Rujukan Data Bulk
  • Nilai-nilai float khas (NaN dan Infinity)

Kasus Penggunaan Umum

  • Penglihatan Web: Menyediakan metadata DICOM kepada penonton imej perubatan berasaskan pelayar.
  • REST API: Membina API penjagaan kesihatan yang bertukar-tukar data DICOM dalam format JSON.
  • Data Analytics: Mengeksport metadata DICOM untuk analisis dalam paip pemprosesan data.
  • Integrasi: Sambungkan PACS warisan dengan platform penjagaan kesihatan berasaskan awan moden.
  • Debugging: Mencipta persembahan data DICOM yang boleh dibaca oleh manusia untuk penyelesaian masalah.
  • Archiving: Simpan metadata DICOM dalam pangkalan data dokumen seperti MongoDB atau Elasticsearch.

amalan terbaik

  • Lisensi pertama: Memulakan lesen yang diukur sebelum sebarang penukaran untuk mengelakkan sekatan penilaian.
  • Use Streams: Untuk fail besar atau perkhidmatan web, gunakan kaedah berasaskan aliran untuk kecekapan memori.
  • Operasi Async: Gunakan kaedah asynk dalam aplikasi web untuk mengelakkan memblokir tali.
  • Mengesahkan laluan bulat: kitaran serialisasi ujian/deserialisasi untuk memastikan integriti data.
  • Kesesuaian Standard: Gunakan pilihan lalai untuk pematuhan DICOM PS3.18; pilihan bukan standard boleh merosakkan pembekal pihak ketiga.
  • Utf-8 pengekodan: kaedah aliran menggunakan penyulitan UTF-8, sesuai untuk web APIs dan operasi fail.

Operasi ringkasan

OperationInputOutputMethod
SerializeDatasetPerbezaan / StreamSerialize
SerializeDicomFilePerbezaan / StreamSerialize
SerializeKumpulan Data[sunting sumber]Perbezaan / StreamSerialize
DeserializePerbezaan / StreamDatasetDeserialize
DeserializePerbezaan / StreamDicomFileDeserializeFile
DeserializePerbezaan / StreamKumpulan Data[sunting sumber]DeserializeList

FAQ

** Adakah ia memerlukan perpustakaan pihak ketiga?**Ia adalah API berasingan yang hanya menggunakan .NET yang dibina dalam sokongan JSON/XML.

**Adakah output JSON mematuhi Perkhidmatan Web DICOM?**Ya. output lalai mengikuti spesifikasi DICOM PS3.18.

** Bolehkah saya menyesuaikan format kunci JSON?**Ya, gunakan DicomJsonSerializerOptions untuk mengawal tag vs. kata kunci dan atribut tambahan.

** Adakah sekejap yang dibiarkan disimpan?**Ya. serialiser mengekalkan struktur DICOM penuh termasuk urutan yang dihiasi.

**Bagaimana saya boleh mengendalikan fail DICOM yang besar?**Menggunakan kaedah-kaedah berasaskan stream (Serialize(stream, ...) dan DeserializeAsyncuntuk pemprosesan memori yang cekap.

** Adakah pertukaran round-trip tanpa kerugian?**Serialisasi menyimpan semua data DICOM untuk deserialisasi yang tepat kembali ke objek Dataset atau DicomFile.

 Melayu