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
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 DatasetDeserializeFileAsync- Deserialize UTF-8 JSON aliran ke DicomFileDeserializeListAsync- Deserialize UTF-8 JSON aliran ke Dataset arraySerializeAsync- 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
- 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);| Option | Description |
|---|---|
UseKeywordsAsJsonKeys | Gunakan kata kunci DICOM daripada tag sebagai kunci JSON (tidak standard) |
WriteKeyword | Tulis kata kunci tag DICOM sebagai atribut JSON yang berbeza |
WriteName | Tulis nama tag DICOM sebagai atribut JSON yang berbeza |
NumberHandling | Menguruskan nombor sebagai AsNumber atau AsString |
BulkDataLoader | Pengecas untuk data blob yang dirujuk dalam elemen BulkData |
BulkDataConverter | Penukar 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 input | Format output |
|---|---|
DicomFile | JSON dan XML |
Dataset | JSON 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
| Operation | Input | Output | Method |
|---|---|---|---|
| Serialize | Dataset | Perbezaan / Stream | Serialize |
| Serialize | DicomFile | Perbezaan / Stream | Serialize |
| Serialize | Kumpulan Data[sunting sumber] | Perbezaan / Stream | Serialize |
| Deserialize | Perbezaan / Stream | Dataset | Deserialize |
| Deserialize | Perbezaan / Stream | DicomFile | DeserializeFile |
| Deserialize | Perbezaan / Stream | Kumpulan 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.