Hur man konverterar en DICOM-fil till JSON med DicomJsonSerializer

Hur man konverterar en DICOM-fil till JSON med DicomJsonSerializer

Denna tutorial visar hur man konverterar DICOM-filer till JSON-format med hjälp av C#.JSON utgången är nödvändig för att integrera metadata med moderna webbtjänster, REST APIs och hälso- och sjukvårdsinformationssystem.

Fördelar med att konvertera DICOM till JSON

  • • Webbintegration *:- JSON är det standardformat för REST APIs och webbtjänster.

  • Analys av data:- Lätt att bearbeta DICOM metadata i dataanalysrör.

    • Interoperabilitet och driftskompatibilitet:- Dela metadata med system som inte stöder inhemska DICOM-format.

Förutsättningar: Förbereda miljön

  • Installera Visual Studio eller någon kompatibel .NET IDE.
  • Skapa ett nytt .NET 8 konsolprogram.
  • Installera Aspose.Medical från NuGet Package Manager.

Steg för steg guide för att konvertera DICOM till JSON

Steg 1: Installera Aspose.Medical

Lägg till Aspose.Medicinska biblioteket till ditt projekt med NuGet.

Install-Package Aspose.Medical

Steg 2: Inkludera nödvändiga namnutrymmen

Lägg till hänvisningar till de nödvändiga namnutrymmenna i koden.

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

Steg 3: Ladda upp DICOM-filen

Ladda upp DICOM-filen du vill konvertera.

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

Steg 4: Serialisera till JSON

Använd den DicomJsonSerializer.Serialize Metod för att konvertera DICOM-filen till JSON.

string json = DicomJsonSerializer.Serialize(dcm);

Steg 5: Spara eller använda JSON-utgången

Spara JSON till en fil eller använda den direkt i appen.

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

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

Komplett kodexempel för att konvertera DICOM till JSON

Här är ett komplett exempel som visar hur man konverterar en DICOM-fil till 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-printad JSON utgång

För mänskligt läsbar JSON med indentation, använd writeIndented Parametrar är:

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

Konvertera Dataset i stället för DicomFile

Du kan också konvertera endast Dataset-delen:

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

Exempel på JSON utgångsstruktur

JSON-utgången följer DICOM PS3.18-standarden. här är ett exempel på vad produkten ser ut:

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

Streambaserad serialisering

För stora filer eller webbapplikationer, använd strömbaserad serialisering:

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

Integration Exempel: Skicka JSON till Web API

Här är hur man integrerar DICOM till JSON konvertering med en HTTP-klient:

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

Använd Tips

Debugging av DICOM Metadata

Använd JSON-konvertering för att kontrollera DICOM-tagvärden:

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

Skicka till Web Front-End

JSON är idealisk för att visa DICOM-metadata i webbläsarbaserade tittare:

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

Vad ingår i JSON Output

JSON-utgången innehåller följande:

  • Alla DICOM taggar med sina värden
  • Värdepresentationer (VR) för varje tag
  • Sekvensobjekt som nestade JSON objekt
  • Binära data referenser (BulkData) för pixeldata

Ytterligare information

  • JSON-formatet följer DICOM PS3.18 Web Services-specifikationen.
  • Stora binära värden (som pixeldata) refereras vanligtvis snarare än inbäddade.
  • Tänk på att använda anpassade serialiseringsalternativ för specifika integrationskrav.

slutsatser

Denna tutorial har visat dig hur man konverterar DICOM-filer till JSON-format i C# med hjälp av Aspose.Medical.JSON utgången möjliggör trådlös integration med moderna hälso- och sjukvård APIs, webbläsare och dataanalyssystem.

 Svenska