Kaip pritaikyti DICOM JSON išleidimą su DicomJsonSerializerOptions

Kaip pritaikyti DICOM JSON išleidimą su DicomJsonSerializerOptions

Šis mokymas rodo, kaip pritaikyti DICOM JSON serializavimo išleidimą naudojant DicomJsonSerializerOptions C#. Pritaikymas leidžia jums kontroliuoti J SON raktinius formatus, įtraukti papildomus metaduomenis ir tvarkyti skaitmenines vertybes pagal jūsų integracijos reikalavimus.

Kodėl reikia pritaikyti JSON išėjimą?

Skirtingos sistemos gali reikalauti skirtingų JSON formatų. pritaikymas leidžia:

  • Žmogaus skaitomų raktinių žodžių naudojimas vietoj ženklų skaičių
  • Įtraukti etiketės pavadinimus dokumentams
  • Patikrinkite, kaip numeriškos vertės yra atstovaujamos
  • Atitinka konkrečius trečiųjų šalių sistemos reikalavimus

Ž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.

Galimi serializavimo būdai

OptionDescriptionImpact
UseKeywordsAsJsonKeysNaudokite DICOM raktinius žodžius vietoj pažymėjimo skaičių kaip JSON raktus"PatientName" VS "00100010"
WriteKeywordĮtraukti raktinių žodžių lauką į kiekvieną žymės objektąAdds "keyword": "PatientName"
WriteNameĮtraukti pavadinimo lauką į kiekvieną žymės objektąAdds "name": "Patient's Name"
NumberHandlingNumerinės vertės kontrolėSkaičiai kaip juostos arba faktiniai JSON skaičiai

Žingsnis po žingsnio vadovas, kaip pritaikyti JSON išleidimą

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;
using System.Text.Json.Serialization;

3 žingsnis: Sukurkite parinkčių instancą

Sukurkite A DicomJsonSerializerOptions Pavyzdžiui, norėdami nustatyti nustatymus.

DicomJsonSerializerOptions options = new DicomJsonSerializerOptions();

4 žingsnis: nustatyti parinktis

Nustatykite pageidaujamas jūsų JSON išleidimo parinktis.

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

5 žingsnis: Serializuoti su parinktimis

Perkelkite galimybes į Serializavimo metodą.

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

6 žingsnis: išsaugokite pritaikytą produkciją

Išsaugokite arba naudokite pritaikytą JSON.

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

Išsamus kodo pavyzdys su visomis galimybėmis

Štai pilnas pavyzdys, kuriame pateikiamos visos pritaikymo galimybės:

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

Išleidimo formatų palyginimas

Išmanusis išleidimas (standartinis PS3.18 formatas)

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

NaudojantKeywordsAsJsonKeys = tiesa

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

Rašyti žodį ir rašyti vardą = tiesa

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

Žymės: WriteAsString

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

Su numeriuSkaityti = leistiReadingFromStringAš rašauNumeris

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

Naudokite atvejų pavyzdžius

Žmogaus skaitymo dokumentacija

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

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

PS3.18 suderinamos žiniatinklio paslaugos

// 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“ integracija

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

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

Duomenų bazės saugojimas

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

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

Svarbūs apsvarstymai

Interoperatyvumo įspėjimas

Ne standartinės parinktys gali sutrikdyti suderinamumą su kai kuriais DICOM parserijais:

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

Rekomendacija dėl atitikties

Kai reikalingas DICOM PS3.18 atitikimas, naudokite numatytus nustatymus:

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

Stream-based serializavimas su parinktimis

Dideliems failams naudokite srautą pagrįstą serializavimą:

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

Papildoma informacija

  • Pritaikytos galimybės turi įtakos tiek serializavimui, tiek deserializacijai - užtikrinant nuoseklų pasirinkimą, kai apvalios informacijos.
  • The WriteName Galimybė prideda žmogui skaityti DICOM ženklų pavadinimus, kurie padidina JSON dydį, bet pagerina skaitytinumą.
  • Kai kurioms trečiųjų šalių sistemoms gali prireikti konkrečių JSON formatų - prieš pasirinkdami parinktis, patikrinkite jų dokumentaciją.

Conclusion

Šis mokymas parodė, kaip pritaikyti DICOM JSON serijalizavimo išleidimą C# naudojant Aspose.Medical. Konfiguruojant DicomJsonSerializerOptions, galite pritarti “JSON” formatui, kad atitiktų konkrečius integracijos reikalavimus, tuo pačiu subalansavus skaityti, dydį ir sąveikumo poreikius.

 Lietuvių