Miten räätälöidä DICOM JSON Output kanssa DicomJsonSerializerOptions

Miten räätälöidä DICOM JSON Output kanssa DicomJsonSerializerOptions

Tämä opetusohjelma näyttää, miten räätälöidä DICOM JSON serialisointitulokset käyttämällä DicomJsonSerializerOptions C#. Customization avulla voit hallita jSON avainmuotoja, sisällyttää ylimääräisiä metatietoja, ja käsitellä numerisia arvoja mukaan integraatiovaatimuksesi.

Miksi räätälöidä JSON-tuotantoa?

Erilaiset järjestelmät voivat vaatia erilaisia JSON-muotoja. räätälöinti mahdollistaa:

  • Käytä ihmisen luettavissa olevia avainsanoja nimikkeiden sijasta
  • Sisältää merkinnän nimet dokumentaatioon
  • Tarkista, miten numeriset arvot esitetään
  • kolmannen osapuolen järjestelmän erityistarpeiden täyttämistä

Edellytykset: Ympäristön valmistelu

  • Aseta Visual Studio tai yhteensopiva .NET IDE.
  • Luo uusi .NET 8 -konsolin sovellusprojekti.
  • Asenna Aspose.Medical NuGet Package Managerista.

Käytettävissä sarjakuvausvaihtoehtoja

OptionkuvausImpact
UseKeywordsAsJsonKeysKäytä DICOM- avainsanoja merkinnöissä olevien numeroiden sijasta JSON-näppäiminä"PatientName" vs "00100010"
WriteKeywordSisällytä avainsanan kenttä jokaiseen tag-objektiinAdds "keyword": "PatientName"
WriteNameSisällytä nimi kenttä jokaiseen kohteeseenAdds "name": "Patient's Name"
NumberHandlingMääräarvojen valvontaLuvut tai todelliset JSON-numerot

Vaiheittainen opas JSON-tuotteiden räätälöimiseen

Vaihe 1: Asenna Aspose.Medical

Lisää Aspose.Medical -kirjasto projektillesi NuGetin avulla.

Install-Package Aspose.Medical

Vaihe 2: Sisällytä tarvittavat nimet

Lisää viittauksia vaadittuihin nimipaikkoihin koodissasi.

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
using System.Text.Json.Serialization;

Vaihe 3: Luo vaihtoehtoja

Luo a DicomJsonSerializerOptions Esimerkki on asetusten määrittäminen.

DicomJsonSerializerOptions options = new DicomJsonSerializerOptions();

Vaihe 4: Määritä vaihtoehdot

Aseta haluamasi vaihtoehdot JSON-lähteelle.

options.UseKeywordsAsJsonKeys = true;
options.WriteKeyword = true;
options.WriteName = true;
options.NumberHandling = JsonNumberHandling.WriteAsString;

Vaihe 5: Serioi vaihtoehtoja

Siirrä vaihtoehdot Serialize -menetelmään.

DicomFile dcm = DicomFile.Open("patient_scan.dcm");
string json = DicomJsonSerializer.Serialize(dcm, options, writeIndented: true);

Vaihe 6: Tallenna räätälöity tulos

Tallenna tai käytä räätälöityä JSONia.

File.WriteAllText("customized_output.json", json);
Console.WriteLine("Customized JSON output saved!");

Täydellinen koodi esimerkki kaikilla vaihtoehdoilla

Tässä on täydellinen esimerkki, joka näyttää kaikki räätälöinti vaihtoehdot:

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Serialization;
using System.Text.Json.Serialization;

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

// Configure serialization options
DicomJsonSerializerOptions options = new DicomJsonSerializerOptions
{
    UseKeywordsAsJsonKeys = true,
    WriteKeyword = true,
    WriteName = true,
    NumberHandling = JsonNumberHandling.WriteAsString
};

// Serialize with custom options
string json = DicomJsonSerializer.Serialize(dcm, options, writeIndented: true);

// Save output
File.WriteAllText("fully_customized.json", json);

Console.WriteLine("DICOM serialized with all custom options!");
Console.WriteLine(json);

Vertaile lähtömuotoja

Oletusarvoinen lähtö (standardi PS3.18 -muoto)

{
  "00100010": {
    "vr": "PN",
    "Value": [{ "Alphabetic": "DOE^JOHN" }]
  },
  "00100020": {
    "vr": "LO",
    "Value": ["12345"]
  }
}

UseKeywordsAsJsonKeys = totta

{
  "PatientName": {
    "vr": "PN",
    "Value": [{ "Alphabetic": "DOE^JOHN" }]
  },
  "PatientID": {
    "vr": "LO",
    "Value": ["12345"]
  }
}

Kirjoita ja kirjoita = totta

{
  "00100010": {
    "vr": "PN",
    "keyword": "PatientName",
    "name": "Patient's Name",
    "Value": [{ "Alphabetic": "DOE^JOHN" }]
  }
}

Käytössä NumberHandling = WriteAsString

{
  "00280010": {
    "vr": "US",
    "Value": ["512"]
  }
}

Numeron kanssaHandling = AllowReadingFromString♰ WriteAsNumber

{
  "00280010": {
    "vr": "US",
    "Value": [512]
  }
}

Käytä esimerkkejä tapauksista

Henkilökohtaisesti luettavissa oleva dokumentti

DicomJsonSerializerOptions docOptions = new DicomJsonSerializerOptions
{
    UseKeywordsAsJsonKeys = true,
    WriteKeyword = true,
    WriteName = true
};

string documentationJson = DicomJsonSerializer.Serialize(dcm, docOptions, writeIndented: true);

PS3.18 Täydelliset verkkopalvelut

// Use default options for DICOM PS3.18 compliance
DicomJsonSerializerOptions webOptions = new DicomJsonSerializerOptions
{
    UseKeywordsAsJsonKeys = false,  // Use tag numbers
    WriteKeyword = false,
    WriteName = false,
    NumberHandling = JsonNumberHandling.WriteAsString
};

string ps318Json = DicomJsonSerializer.Serialize(dcm, webOptions);

JavaScript Frontend -yhteensopivuus

DicomJsonSerializerOptions jsOptions = new DicomJsonSerializerOptions
{
    UseKeywordsAsJsonKeys = true,  // Easier to work with in JS
    NumberHandling = JsonNumberHandling.AllowReadingFromString  // Native numbers
};

string jsCompatibleJson = DicomJsonSerializer.Serialize(dcm, jsOptions);

Tietokannan tallennus

DicomJsonSerializerOptions dbOptions = new DicomJsonSerializerOptions
{
    UseKeywordsAsJsonKeys = true,  // Better for querying
    WriteKeyword = false,          // Reduce storage size
    WriteName = false
};

string compactJson = DicomJsonSerializer.Serialize(dcm, dbOptions);

Tärkeitä huomioita

Yhteentoimivuuden varoitus

Ei-standardin vaihtoehdot voivat häiritä yhteensopivuutta joidenkin DICOM-sovellusten kanssa:

// WARNING: This format may not be compatible with all DICOM JSON parsers
DicomJsonSerializerOptions nonStandardOptions = new DicomJsonSerializerOptions
{
    UseKeywordsAsJsonKeys = true  // Not PS3.18 compliant
};

// For maximum compatibility, use defaults:
DicomJsonSerializerOptions standardOptions = new DicomJsonSerializerOptions();

Suositus vaatimustenmukaisuudesta

Kun DICOM PS3.18:n vaatimustenmukaisuus vaaditaan, käytä oletusarvoisia asetuksia:

// PS3.18 compliant serialization
string compliantJson = DicomJsonSerializer.Serialize(dcm);  // No custom options

Stream-pohjainen sarjakuva vaihtoehdoilla

Suuriin tiedostoihin käytä virranpohjaista sarjakuvausta:

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

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

DicomJsonSerializerOptions options = new DicomJsonSerializerOptions
{
    UseKeywordsAsJsonKeys = true,
    WriteKeyword = true
};

using (FileStream fs = File.Create("large_customized.json"))
{
    DicomJsonSerializer.Serialize(fs, dcm.Dataset, options, writeIndented: true);
}

Lisätietoja

  • Yksityiskohtaiset vaihtoehdot vaikuttavat sekä serialisointiin että deserialisoinnille - varmistavat johdonmukaiset valinnat pyörivien tietojen aikana.
  • Se on WriteName vaihtoehto lisää ihmisen luettavissa olevia DICOM-merkinnät, jotka lisäävät JSON-kokoa mutta parantavat lukutaitoa.
  • Jotkut kolmannen osapuolen järjestelmät saattavat vaatia erityisiä JSON-muotoja - tutustu niiden asiakirjoihin ennen valinnan vaihtoehtoja.

johtopäätöksiä

Tämä opetusohjelma on osoittanut, miten räätälöidä DICOM JSON sarjakuva tuotto C#: ssä käyttämällä Aspose.Medical. Konfiguroimalla DicomJsonSerializerOptions, voit säätää jSON-muotoja täyttääkseen tiettyjä integrointivaatimuksia tasapainottaen lukuvuutta, koon ja yhteentoimivuuden tarpeita.

 Suomi