Hogyan kell alkalmazkodni a DICOM JSON kimenetel a DicomJsonSerializerOptions

Hogyan kell alkalmazkodni a DICOM JSON kimenetel a DicomJsonSerializerOptions

Ez a kézikönyv megmutatja, hogyan kell személyre szabni a DICOM JSON serializáció kimenetelét a DicomJsonSerializerOptions használatával a C#. Az alkalmazkodás lehetővé teszi, hogy ellenőrizze a jSON kulcsformátumokat, tartalmazza a további metadatait, és kezeli a numerikus értékeket az integrációs követelményeknek megfelelően.

Miért alkalmazkodik a JSON kimenetelhez?

Különböző rendszerek különböző JSON formátumokat igényelhetnek.A személyre szabás lehetővé teszi:

  • Az emberi olvasható kulcsszavak használata a tagszámok helyett
  • Tartalmazza a címkék nevét a dokumentációhoz
  • Ellenőrizze, hogy mennyiségi értékeket képviselnek
  • A harmadik fél rendszerére vonatkozó specifikus követelmények teljesítése

Előfeltételek: a környezet előkészítése

  • A Visual Studio vagy bármely kompatibilis .NET IDE beállítása.
  • Hozzon létre egy új .NET 8 konzol alkalmazási projektet.
  • Telepítse az Aspose.Medical-t a NuGet csomagkezelőből.

Rendelkezésre álló serializációs lehetőségek

OptionleírásaImpact
UseKeywordsAsJsonKeysHasználja a DICOM kulcsszavakat a tagszámok helyett, mint JSON kulcsokat"PatientName" Az vs "00100010"
WriteKeywordTartalmazza a kulcsszavak mezőjét minden tag objektumbanAdds "keyword": "PatientName"
WriteNameTartalmazza a név mezőt minden tag objektumbanAdds "name": "Patient's Name"
NumberHandlingSzámjegyű értékek ellenőrzéseSzámok, mint szalagok vagy valós JSON számok

Lépésről lépésre útmutató a JSON kimenetelének személyre szabására

1. lépés: Install Aspose.Medical

Add hozzá az Aspose.Medical könyvtárat a projekthez a NuGet használatával.

Install-Package Aspose.Medical

2. lépés: Tartalmazza a szükséges névterületeket

Hozzáadjon hivatkozásokat a szükséges névterületekhez a kódjában.

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

3. lépés: Hozzon létre lehetőségeket

Hozzon létre a DicomJsonSerializerOptions Például a beállítások konfigurálása.

DicomJsonSerializerOptions options = new DicomJsonSerializerOptions();

4. lépés: Az opciók beállítása

Állítsa be a kívánt lehetőségeket a JSON kimeneteléhez.

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

5. lépés: Serializáld az opciókkal

Válassza az opciókat a Serialize módszerre.

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

6. lépés: Mentse meg a személyre szabott kimenetet

Mentse vagy használja a személyre szabott JSON.

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

Tökéletes kód példája az összes lehetőséggel

Íme egy teljes példa, amely bemutatja az összes személyre szabási lehetőséget:

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

A kimeneti formátumok összehasonlítása

Alapértelmezett kimenetel (standard PS3.18 formátum)

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

HasználatKeywordsAsJsonKeys = igaz

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

A WriteKeyword és a WriteName = igaz

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

Számlázás = WriteAsString

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

A számmalHandling = AllowReadingFromStringḳ WriteAsNumber

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

Használja a példákat

Emberi és olvasható dokumentáció

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

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

A PS3.18 kompatibilis webes szolgáltatásokhoz

// 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áció

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

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

Adatbázis tárolása

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

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

Fontos megfontolások

Interoperabilitási figyelmeztetés

A nem szabványos opciók megszakíthatják a kompatibilitást néhány DICOM parsérrel:

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

Megfelelőségi ajánlás

Ha a DICOM PS3.18 megfelelőségre van szükség, használja az alapértelmezett beállításokat:

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

Stream-alapú serializáció opciókkal

A nagy fájlokhoz használja a stream-alapú szerializációt:

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

További információk

  • A személyre szabott opciók mind a serializálást, mind az deserializációt érintik - biztosítják a konzisztenciát az adatok körforgása során.
  • A WriteName Az opció hozzáadja az emberi olvasható DICOM címkével kapcsolatos neveket, amelyek növelik a JSON méretét, de javítják az olvashatóságot.
  • Néhány harmadik fél rendszerek megkövetelhetik a specifikus JSON formátumokat - olvassa el a dokumentációt, mielőtt kiválasztja a lehetőségeket.

következtetések

Ez a kézikönyv megmutatta, hogyan kell személyre szabni a DICOM JSON serializáció kimenetelét a C# használatával Aspose.Medical.A DicomJsonSerializerOptions konfigurálásával a jSON formátumot az egyes integrációs követelményeknek való megfeleléshez igazíthatja, miközben kiegyensúlyozza az olvashatóság, a méret és az interoperabilitás igényeit.

 Magyar