Bagaimana untuk mengubah file DICOM ke JSON menggunakan DicomJsonSerializer

Bagaimana untuk mengubah file DICOM ke JSON menggunakan DicomJsonSerializer

Tutorial ini menunjukkan bagaimana untuk menukarkan file DICOM ke format JSON menggunakan C#. output jSON adalah penting untuk mengintegrasikan metadata DIKOM dengan layanan web modern, REST APIs, dan sistem informasi kesehatan.

Manfaat Konversi DICOM ke JSON

  • • Integrasi Web:- JSON adalah format standar untuk REST API dan layanan web.

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

  • • Interoperabilitas :- Berkongsi metadata dengan sistem yang tidak mendukung format DICOM asli.

Persyaratan: Persiapan Lingkungan

  • Menginstal Visual Studio atau IDE .NET yang kompatibel.
  • Mencipta aplikasi .NET 8 baru.
  • Instal Aspose.Medical dari NuGet Package Manager.

Panduan Langkah-Langkah untuk Konversi DICOM ke JSON

Langkah 1: Instalasi Aspose.Medical

Tambahkan perpustakaan Aspose.Medical ke proyek Anda menggunakan NuGet.

Install-Package Aspose.Medical

Langkah 2: Menyertakan ruang nama yang diperlukan

Tambahkan referensi ke ruang nama yang diperlukan dalam kode Anda.

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

Langkah 3: Muat turun file DICOM

Download file DICOM yang ingin Anda konversi.

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

Langkah 4: Serialisasi ke JSON

Gunakan The DicomJsonSerializer.Serialize Metode untuk mengubah file DICOM menjadi JSON.

string json = DicomJsonSerializer.Serialize(dcm);

Langkah 5: Simpan atau Gunakan output JSON

Simpan JSON ke file atau gunakan langsung dalam aplikasi Anda.

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

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

Contoh Kod lengkap untuk Konversi DICOM ke JSON

Berikut adalah contoh lengkap yang menunjukkan bagaimana untuk menukar file DICOM ke 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");

Produk JSON Pretty Printed

Untuk JSON yang dapat dibaca oleh manusia dengan indentasi, gunakan writeIndented Untuk Parameter :

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

Konversi Dataset Daripada DicomFile

Anda juga dapat mengkonversi hanya bagian 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

Hasil JSON mengikuti standar DICOM PS3.18. berikut adalah contoh bagaimana hasilnya terlihat:

{
  "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 Berbasis Stream

Untuk file besar atau aplikasi web, gunakan serialisasi berbasis stream:

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: Mengirim JSON ke Web API

Berikut adalah cara 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

Menggunakan Metadata DICOM

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

Mengirim ke Web Front-End

JSON ideal untuk menampilkan metadata DICOM pada penonton berbasis browser:

// 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 Termasuk dalam JSON Output

Hasil JSON termasuk:

  • Semua tag DICOM dengan nilai mereka
  • Representasi nilai (VR) untuk setiap tag
  • Item sekuensi seperti objek JSON
  • Referensi data biner (BulkData) untuk data piksel

Informasi Tambahan

  • Format JSON mengikuti spesifikasi DICOM PS3.18 Web Services.
  • Nilai biner besar (seperti data piksel) biasanya dirujuk bukannya tertanam.
  • Pertimbangkan menggunakan opsi serialisasi tersuai untuk keperluan integrasi spesifik.

Kesimpulan

Tutorial ini telah menunjukkan kepada Anda bagaimana untuk mengkonversi file DICOM ke format JSON dalam C# menggunakan Aspose.Medical. output jSON memungkinkan integrasi tanpa wayar dengan APIs kesehatan modern, web viewers, dan sistem analisis data.

 Indonesia