Kaip konvertuoti DICOM failą į JSON naudojant DicomJsonSerializer

Kaip konvertuoti DICOM failą į JSON naudojant DicomJsonSerializer

Šis mokymas rodo, kaip konvertuoti DICOM failus į JSON formatą, naudodami C#. „JSON“ išeitis yra būtina integruojant DIKOM metaduomenis su šiuolaikinėmis žiniatinklio paslaugomis, REST API ir sveikatos priežiūros informacinėmis sistemomis.

Privalumai konvertuoti DICOM į JSON

  • • Interneto svetainė *:- JSON yra standartinis REST API ir žiniatinklio paslaugų formatas.

  • Duomenų analizė:- Lengvai apdoroti DICOM metaduomenis duomenų analizės vamzdynuose.

  • „Interoperatyvumas“ –- Pasidalinkite metaduomenimis su sistemomis, kurios nepalaiko vietinių DICOM formatų.

Žymos archyvas: paruošti aplinką

  • Įdiegti „Visual Studio“ arba bet kokį suderinamą .NET IDE.
  • Sukurkite naują .NET 8 konsolės programos projektą.
  • Įdiegti Aspose.Medical iš NuGet paketų valdytojo.

Žingsnis po žingsnio vadovas konvertuoti DICOM į JSON

1 žingsnis: įdiegti Aspose.Medical

Pridėti Aspose.Medicinos biblioteką į savo projektą naudojant NuGet.

Install-Package Aspose.Medical

2 žingsnis: įtraukti reikiamus pavadinimų erdves

Įveskite nuorodas į reikalingą vardų erdvę savo kodo.

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

3 žingsnis: atsisiųskite DICOM failą

Atsisiųskite DICOM failą, kurį norite konvertuoti.

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

4 žingsnis: Serializuoti į JSON

Naudokite jį DicomJsonSerializer.Serialize Metodas konvertuoti DICOM failą į JSON.

string json = DicomJsonSerializer.Serialize(dcm);

5 žingsnis: išsaugoti arba naudoti JSON ištrauką

Išsaugokite JSON failą arba naudokite jį tiesiogiai jūsų programoje.

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

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

Išsamus kodo pavyzdys konvertuoti DICOM į JSON

Štai pilnas pavyzdys, parodantis, kaip konvertuoti DICOM failą į 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");

Gera spausdinta JSON išleidimas

Žmogaus skaityti JSON su indentacija, naudokite writeIndented ir parametrų:

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

Konvertuoti Dataset vietoj DicomFile

Taip pat galite konvertuoti tik Dataset dalį:

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

Pavyzdžiui, JSON išleidimo struktūra

JSON išleidimas atitinka DICOM PS3.18 standartą. čia pateikiamas pavyzdys, kaip atrodo išėjimas:

{
  "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"]
  }
}

Stream-Based serializavimas

Dideliems failams ar žiniatinklio programoms naudokite srautą pagrįstą serializavimą:

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

Integracijos pavyzdys: siųsti JSON į Web API

Štai kaip integruoti DICOM į JSON konvertavimą su HTTP klientu:

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

Naudojimo patarimai

„Dicom“ metadata

Naudokite JSON konvertavimą, kad patikrintumėte DICOM ženklinimo vertes:

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

Išsiųsti į internetinį front-end

JSON idealiai tinka matyti DICOM metaduomenis naršyklės žiūrovams:

// 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");
}

Kas yra įtraukta į JSON išleidimą

JSON išleidimas apima:

  • Visi DICOM žymės su savo vertybėmis
  • Vertės atvaizda (VR) kiekvienam žymui
  • Sekencijos elementai, pavyzdžiui, nestuoti JSON objektai
  • Dvejetainiai duomenų nuorodos (BulkData) pikselių duomenims

Papildoma informacija

  • JSON formatas atitinka DICOM PS3.18 žiniatinklio paslaugų specifikaciją.
  • Didelės dvejetainės vertės (pavyzdžiui, pikselių duomenys) paprastai yra nuorodos, o ne įterptos.
  • Įsivaizduokite, kad naudojate pritaikytus serializavimo variantus konkrečioms integracijos reikalavimams.

Conclusion

Šis mokymas parodė jums, kaip konvertuoti DICOM failus į JSON formatą C# naudojant Aspose.Medical.JSON išeitis leidžia nesąmoningai integruotis su šiuolaikinių sveikatos priežiūros API, interneto žiūrovų ir duomenų analizės sistemų.

 Lietuvių