Kā konvertēt DICOM failu uz JSON, izmantojot DicomJsonSerializer

Kā konvertēt DICOM failu uz JSON, izmantojot DicomJsonSerializer

Šis apmācība parāda, kā konvertēt DICOM failus JSON formātā, izmantojot C#.JSON iznākums ir būtisks, lai integrētu DIKOM metadatus ar mūsdienu tīmekļa pakalpojumiem, REST API un veselības aprūpes informācijas sistēmām.

Priekšrocības, lai konvertētu DICOM uz JSON

  • • Tīmekļa integrācija:- JSON ir standarta formāts REST API un tīmekļa pakalpojumiem.

  • Datu analīze:- DICOM metadatu viegli apstrādā datu analīzes caurulēs.

    • Interoperabilitāte ir:- Metadatu koplietošana ar sistēmām, kas nepalīdz vietējiem DICOM formāta veidiem.

Priekšnoteikumi: Vides sagatavošana

  • Iestatīt Visual Studio vai jebkuru saderīgu .NET IDE.
  • Izveidojiet jaunu .NET 8 konsoles lietojumprogrammu projektu.
  • Instalējiet Aspose.Medical no NuGet Package Manager.

Pakāpeniski ceļvedis, kā pārvērst DICOM uz JSON

1. solis: instalēt Aspose.Medical

Pievienojiet Aspose.Medicīnas bibliotēku savam projektam, izmantojot NuGet.

Install-Package Aspose.Medical

2. solis: Iekļaut nepieciešamos nosaukuma telpas

Pievienojiet atsauces uz pieprasītajiem nosaukuma telpām savā kodā.

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

3. solis: lejupielādēt DICOM failu

Lejupielādēt DICOM failu, kuru vēlaties konvertēt.

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

4. solis: Serializējieties uz JSON

Izmantojiet DicomJsonSerializer.Serialize Metode, lai konvertētu DICOM failu uz JSON.

string json = DicomJsonSerializer.Serialize(dcm);

5. solis: glabāt vai izmantot JSON iznākumu

Saglabājiet JSON failu vai izmantojiet to tieši jūsu lietojumprogrammā.

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

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

Pilns koda piemērs, lai konvertētu DICOM uz JSON

Šeit ir pilns piemērs, kas parāda, kā konvertēt DICOM failu uz 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");

Pretty Printed JSON iznākums

Cilvēki lasāms JSON ar indentāciju, izmantojiet writeIndented Parametrs ir:

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

Konvertēt dataset vietā DicomFile

Jūs varat arī konvertēt tikai Dataset daļu:

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

Piemērs JSON izejas struktūra

JSON iznākums atbilst DICOM PS3.18 standartiem. šeit ir piemērs tam, kā tas izskatās:

{
  "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-bāzes serializācija

Lieliem failiem vai tīmekļa lietojumiem izmantojiet streamu balstītu serializāciju:

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

Integrācijas piemērs: JSON sūtīšana uz Web API

Lūk, kā integrēt DICOM uz JSON konversiju ar 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!");
}

Lietošanas padomi

Debugging DICOM metadati

Izmantojiet JSON konversiju, lai pārbaudītu DICOM etiķetes vērtības:

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

Sūtīt uz web front-end

JSON ir ideāls DICOM metadatu parādīšanai pārlūkprogrammas skatītājiem:

// 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 ir iekļauts JSON iznākumā

JSON iznākums ietver:

  • Visi DICOM tags ar savām vērtībām
  • Valūtas prezentācijas (VR) katram marķierim
  • Sekvences priekšmeti kā nestēti JSON objekti
  • Bināro datu atsauces (BulkData) piksela datiem

Papildu informācija

  • JSON formāts atbilst DICOM PS3.18 Web Services specifikācijai.
  • Lielas bināras vērtības (piemēram, pikseļu dati) parasti tiek atsauces, nevis iebūvēti.
  • Apsveriet pielāgotas serializācijas iespējas konkrētiem integrācijas prasībām.

Conclusion

Šī instrukcija ir parādījusi, kā konvertēt DICOM failus JSON formātā C#, izmantojot Aspose.Medical.JSON iznākums ļauj bezjēdzīgu integrāciju ar mūsdienu veselības aprūpes APIs, tīmekļa skatītājiem un datu analīzes sistēmām.

 Latviski