Kā pielāgot DICOM JSON iznākumu ar DicomJsonSerializerOptions

Kā pielāgot DICOM JSON iznākumu ar DicomJsonSerializerOptions

Šis apmācība parāda, kā pielāgot DICOM JSON serializācijas iznākumu, izmantojot DicomJsonSerializerOptions C#. Customization ļauj kontrolēt jSON atslēgvārdu formātus, ietver papildu metadatus un apstrādāt skaitliskās vērtības saskaņā ar jūsu integrācijas prasībām.

Kāpēc pielāgot JSON iznākumu?

Dažādas sistēmas var prasīt dažādus JSON formātus. pielāgošana ļauj:

  • Izmantojiet cilvēka lasītās atslēgvārdus, nevis etiķetes skaitļus
  • Iekļauj etiķetes nosaukumus dokumentācijai
  • Pārbaudiet, kā skaitļu vērtības tiek pārstāvētas
  • Atbilstība konkrētiem trešo pušu sistēmas prasībām

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.

Pieejamas serializācijas iespējas

OptionDescriptionImpact
UseKeywordsAsJsonKeysIzmantojiet DICOM atslēgvārdus, nevis marķējot skaitļus kā JSON atlēcas"PatientName" VS "00100010"
WriteKeywordIevadiet atslēgvārdu lauku katrā tagi objektsAdds "keyword": "PatientName"
WriteNameIevadiet nosaukuma lauku katrā tagi objektsAdds "name": "Patient's Name"
NumberHandlingKontroles skaitliskā vērtības pārstāvībaNumuri kā sloksnes vai faktiskie JSON numuri

Pakāpeniski ceļvedis, kā pielāgot JSON iznākumu

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

3. solis: izveidot opcijas instance

radīt a DicomJsonSerializerOptions Piemēram, lai konfigurētu iestatījumus.

DicomJsonSerializerOptions options = new DicomJsonSerializerOptions();

4. solis: iestatīt opcijas

Iestatīt vēlamos iespējas jūsu JSON iznākumam.

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

5. solis: Serializējieties ar opcijām

Pārsūtīt iespējas uz Serializācijas metodi.

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

6. solis: ietaupīt pielāgotu rezultātu

Saglabājiet vai izmantojiet pielāgotu JSON.

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

Pilns koda piemērs ar visām opcijām

Šeit ir pilns piemērs, kas parāda visas personalizācijas iespējas:

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

Salīdzināt iznākumu formātus

Standarta iznākums (standarta PS3.18 formāta)

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

Ar UseKeywordsAsJsonKeys = patiesība

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

Ar WriteKeyword un WriteName = patiesība

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

Ar NumberHandling = WriteAsString

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

Ar NumberHandling = AllowReadingFromString Ļeņins WriteAsNumber

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

Izmantojiet piemērus

Cilvēku lasāmā dokumentācija

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

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

PS3.18 atbilstīgi tīmekļa pakalpojumi

// 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 integrācija

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

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

Datu bāzes uzglabāšana

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

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

Svarīgi apsvērumi

Sadarbības brīdinājums

Nestandarta opcijas var traucēt saderību ar dažiem DICOM paseriem:

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

Ieteikums atbilstībai

Ja DICOM PS3.18 atbilstība ir nepieciešama, izmantojiet iepriekšējos iestatījumus:

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

Stream-based serializācija ar opcijām

Lieliem failiem izmantojiet streamu balstītu serializāciju:

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

Papildu informācija

  • Atsevišķas iespējas ietekmē gan serializāciju, gan deserializācijas - nodrošina konsekventu opcijas, kad apkārtējos datus.
  • The WriteName Opcija pievieno cilvēka lasāmus DICOM etiķetes nosaukumus, kas palielina JSON izmēru, bet uzlabo lasamību.
  • Dažas trešo pušu sistēmas var prasīt konkrētus JSON formātus - pārbaudiet to dokumentāciju, pirms izvēlaties iespējas.

Conclusion

Šī instrukcija ir parādījusi, kā pielāgot DICOM JSON serializācijas iznākumu C#, izmantojot Aspose.Medical. Konfigurējot DicomJsonSerializerOptions, jūs varat iestatīt jSON formātu, lai atbilstu konkrētām integrācijas prasībām, vienlaikus līdzsvarojot lasamības, izmēra un sadarbspējas vajadzības.

 Latviski