Bagaimana untuk menukar fail DICOM ke JSON menggunakan DicomJsonSerializer

Bagaimana untuk menukar fail DICOM ke JSON menggunakan DicomJsonSerializer

Tutorial ini menunjukkan bagaimana untuk menukar fail DICOM kepada format JSON menggunakan C#. output json adalah penting untuk mengintegrasikan metadata dicom dengan perkhidmatan web moden, APIs REST, dan sistem maklumat penjagaan kesihatan.

Kelebihan Menukar DICOM kepada JSON

  • • Pengenalan kepada Internet* :- JSON ialah format standard untuk REST API dan perkhidmatan web.

  • Analisis data:- Mudah memproses metadata DICOM dalam paip analisis data.

  • *Keselamatan dan kebolehpercayaan * :- Berkongsi metadata dengan sistem yang tidak menyokong format DICOM asli.

Tag: persiapan persekitaran

  • Menyediakan Visual Studio atau mana-mana .NET IDE yang kompatibel.
  • Mencipta projek aplikasi .NET 8 baru.
  • Instal Aspose.Medical daripada NuGet Package Manager.

Langkah-langkah panduan untuk menukar DICOM kepada JSON

Langkah 1: Instal Aspose.Medical

Tambah perpustakaan Aspose.Medical kepada projek anda menggunakan NuGet.

Install-Package Aspose.Medical

Langkah 2: Masukkan ruang nama yang diperlukan

Tambah rujukan kepada ruang nama yang diperlukan dalam kod anda.

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

Langkah 3: Muat turun fail DICOM

Muat turun fail DICOM yang anda ingin konversi.

DicomFile dcm = DicomFile.Open("patient_scan.dcm");

Langkah 4: Serialisasi kepada JSON

Gunakan yang DicomJsonSerializer.Serialize kaedah untuk menukar fail DICOM kepada JSON.

string json = DicomJsonSerializer.Serialize(dcm);

Langkah 5: Simpan atau gunakan output JSON

Simpan JSON ke dalam fail atau gunakan secara langsung dalam aplikasi anda.

// Save to file
File.WriteAllText("patient_scan.json", json);

// Or use directly
Console.WriteLine(json);

Contoh kod lengkap untuk menukar DICOM kepada JSON

Berikut ialah contoh lengkap yang menunjukkan bagaimana untuk menukar fail DICOM kepada JSON:

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

// Load the DICOM file
DicomFile dcm = DicomFile.Open("patient_scan.dcm");

// Convert to JSON
string json = DicomJsonSerializer.Serialize(dcm);

// Save to file
File.WriteAllText("patient_scan.json", json);

Console.WriteLine("DICOM file converted to JSON successfully!");
Console.WriteLine($"Output saved to: patient_scan.json");

Pengeluaran JSON Pretty Print

Untuk JSON yang boleh dibaca oleh manusia dengan indentasi, gunakan writeIndented parameter yang :

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

DicomFile dcm = DicomFile.Open("patient_scan.dcm");

// Serialize with indentation for readability
string prettyJson = DicomJsonSerializer.Serialize(dcm, writeIndented: true);

File.WriteAllText("patient_scan_pretty.json", prettyJson);

Console.WriteLine("Pretty-printed JSON saved successfully!");

Menukar Dataset Daripada DicomFile

Anda juga boleh menukar hanya bahagian Dataset:

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

DicomFile dcm = DicomFile.Open("patient_scan.dcm");

// Serialize only the dataset (without file meta information)
string datasetJson = DicomJsonSerializer.Serialize(dcm.Dataset);

File.WriteAllText("patient_dataset.json", datasetJson);

Contoh struktur output JSON

Keluaran JSON mengikuti piawaian DICOM PS3.18. berikut adalah contoh bagaimana output kelihatan:

{
  "00080005": {
    "vr": "CS",
    "Value": ["ISO_IR 100"]
  },
  "00080020": {
    "vr": "DA",
    "Value": ["20240115"]
  },
  "00080030": {
    "vr": "TM",
    "Value": ["143022"]
  },
  "00100010": {
    "vr": "PN",
    "Value": [
      {
        "Alphabetic": "DOE^JOHN"
      }
    ]
  },
  "00100020": {
    "vr": "LO",
    "Value": ["12345"]
  }
}

Serialisasi Berasaskan Stream

Untuk fail besar atau aplikasi web, gunakan serialisasi berasaskan aliran:

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

DicomFile dcm = DicomFile.Open("large_scan.dcm");

// Write directly to a file stream
using (FileStream fs = File.Create("large_scan.json"))
{
    DicomJsonSerializer.Serialize(fs, dcm.Dataset);
}

Console.WriteLine("Large DICOM file serialized to JSON stream!");

Contoh Integrasi: Menghantar JSON ke Web API

Berikut adalah cara untuk mengintegrasikan konversi DICOM ke JSON dengan klien HTTP:

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
using System.Net.Http;
using System.Text;

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

// Send to web API
using HttpClient client = new();
var content = new StringContent(json, Encoding.UTF8, "application/json");

HttpResponseMessage response = await client.PostAsync(
    "https://api.example.com/dicom/metadata",
    content
);

if (response.IsSuccessStatusCode)
{
    Console.WriteLine("DICOM metadata successfully sent to API!");
}

Tips Penggunaan

Pengenalan kepada DICOM Metadata

Gunakan konversi JSON untuk memeriksa nilai tag DICOM:

DicomFile dcm = DicomFile.Open("unknown_scan.dcm");
string json = DicomJsonSerializer.Serialize(dcm, writeIndented: true);
Console.WriteLine(json);

Penghantaran ke Web Front-End

JSON sesuai untuk memaparkan metadata DICOM dalam penonton berasaskan pelayar:

// In ASP.NET Core controller
[HttpGet("dicom/{id}/metadata")]
public IActionResult GetMetadata(string id)
{
    DicomFile dcm = DicomFile.Open($"storage/{id}.dcm");
    string json = DicomJsonSerializer.Serialize(dcm);
    return Content(json, "application/json");
}

Apa yang disertakan dalam JSON Output

Keluaran JSON termasuk:

  • Semua tag DICOM dengan nilai mereka
  • Perwakilan nilai (VR) untuk setiap tag
  • Item Sequence sebagai objek JSON yang dihiasi
  • Rujukan data binari (BulkData) untuk data piksel

Maklumat tambahan

  • Format JSON mengikut spesifikasi Perkhidmatan Web DICOM PS3.18.
  • Nilai binari yang besar (seperti data piksel) biasanya dirujuk daripada tertanam.
  • Pertimbangkan penggunaan pilihan serialisasi tersuai untuk keperluan integrasi tertentu.

Conclusion

Tutorial ini telah menunjukkan kepada anda bagaimana untuk menukar fail DICOM kepada format JSON dalam C# menggunakan Aspose.Medical. output jSON membolehkan integrasi tanpa wayar dengan APIs penjagaan kesihatan moden, penonton web, dan sistem analisis data.

 Melayu