.NET で既定の DICOM プライバシー プロファイルを適用する方法

.NET で既定の DICOM プライバシー プロファイルを適用する方法

このチュートリアルでは、既定のDICOM PS3.15 プライバシー プロファイルを C# で匿名化するために適用する方法を示しています。

プライバシープロフィールとは?

プライバシープロファイルは、匿名化中にさまざまな DICOM タグに対処する方法を定義するルールのセットです. デコム スタンダード (PS3.15) では、異なるプローチおよびデータ保管の要件を扱ういくつかの標準プロフィールを設定します。

既定のプロフィールを使用する利点

  • 標準化:- 業界標準規則に従って、DICOM PS3.15 で定義されています。

  • ●「従順」:- HIPAA、GDPR、およびその他の規制要件を自信を持って満たします。

  • 柔軟性:- データ共有の要件に最適なプロフィールを選択します。

原題: Preparing the Environment

  • Visual Studio または 互換性のある .NET IDE を設定します.
  • 新しい .NET 8 コンソールアプリケーションプロジェクトを作成します。
  • NuGet Package Manager から Aspose.Medical をインストールします。

利用可能なプライバシープロフィールオプション

下記の表では、既定のキープロフィールオプションが提供されていることを説明します。

プロフィールオプション説明使用ケース
BasicProfile通常の匿名化は、ほとんどの患者IDを削除します。一般デ・識別
RetainSafePrivateデータ共有に安全なプライベートタグを保持する研究データ共有
レタイン研究、シリーズ、インスタンス UID を保存参照の維持
RetainDeviceIdentKeeps デバイス識別情報機器追跡
RetainPatientChars患者様の特徴(年齢、性別)臨床研究
CleanGraph燃え込んだグラフィックとオーバーレイを削除するイメージクリーニング
CleanDescPHIを含む可能性のある説明フィールドをクリアします。テキスト衛生

プライバシープロフィールを適用するためのステップアップガイド

ステップ1:インストール Aspose.Medical

NuGet を使用してプロジェクトに Aspose.Medical ライブラリを追加します。

Install-Package Aspose.Medical

ステップ2:必要な名称スペースを含む

あなたのコードに必要な名称スペースへの参照を追加します.

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Anonymization;

ステップ3:プライバシープロファイルを作成する

プライバシープロフィールを作成するには、 CreateDefault あなたの望ましい選択肢の方法

// Create profile with CleanGraph option to remove burned-in graphics
ConfidentialityProfile profile = ConfidentialityProfile.CreateDefault(
    ConfidentialityProfileOptions.CleanGraph
);

ステップ4:プロフィールで匿名化を作成する

創造一 Anonymizer 設定されたプロフィールを使用する。

Anonymizer anonymizer = new(profile);

ステップ5:DICOMファイルを匿名化する

設定された匿名化器を使用して DICOM ファイルをダウンロードおよび匿名的化します。

DicomFile dcm = DicomFile.Open("patient_scan.dcm");
DicomFile anonymizedDcm = anonymizer.Anonymize(dcm);
anonymizedDcm.Save("anonymized_scan.dcm");

基本プロフィールを含む完全コードサンプル

以下は、基本プロフィールを使用する完全な例です。

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Anonymization;

// Create a basic confidentiality profile
ConfidentialityProfile profile = ConfidentialityProfile.CreateDefault(
    ConfidentialityProfileOptions.BasicProfile
);

// Create anonymizer with the profile
Anonymizer anonymizer = new(profile);

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

// Anonymize using the profile
DicomFile anonymizedDcm = anonymizer.Anonymize(dcm);

// Save result
anonymizedDcm.Save("anonymized_scan.dcm");

Console.WriteLine("Anonymization completed with Basic Profile!");

複数のプロフィールオプションを組み合わせる

Bitwise OR オペレーターを使用して複数のプロフィールオプションを組み合わせることができます。

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Anonymization;

// Combine multiple options: retain UIDs and clean graphics
ConfidentialityProfile profile = ConfidentialityProfile.CreateDefault(
    ConfidentialityProfileOptions.RetainUIDs | 
    ConfidentialityProfileOptions.CleanGraph |
    ConfidentialityProfileOptions.CleanDesc
);

Anonymizer anonymizer = new(profile);

DicomFile dcm = DicomFile.Open("study.dcm");
DicomFile anonymizedDcm = anonymizer.Anonymize(dcm);
anonymizedDcm.Save("anonymized_study.dcm");

Console.WriteLine("Anonymization completed with combined profile options!");

プロフィール選択ガイド

あなたの使用例に基づいて適切なプロフィールを選択します:

外部データ共有(研究協力)

// Maximum anonymization for sharing with external parties
ConfidentialityProfile profile = ConfidentialityProfile.CreateDefault(
    ConfidentialityProfileOptions.BasicProfile |
    ConfidentialityProfileOptions.CleanGraph |
    ConfidentialityProfileOptions.CleanDesc
);

内部分析(Retain References)

// Retain UIDs for internal tracking while anonymizing patient data
ConfidentialityProfile profile = ConfidentialityProfile.CreateDefault(
    ConfidentialityProfileOptions.RetainUIDs |
    ConfidentialityProfileOptions.RetainDeviceIdent
);

臨床研究(Retain Demographics)

// Keep patient characteristics for demographic analysis
ConfidentialityProfile profile = ConfidentialityProfile.CreateDefault(
    ConfidentialityProfileOptions.BasicProfile |
    ConfidentialityProfileOptions.RetainPatientChars
);

認証:前と後の比較

匿名化の結果を常に確認するには、タグの前と後を比較することによって:

using Aspose.Medical.Dicom;
using Aspose.Medical.Dicom.Anonymization;

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

// Create profile and anonymize
ConfidentialityProfile profile = ConfidentialityProfile.CreateDefault(
    ConfidentialityProfileOptions.BasicProfile
);
Anonymizer anonymizer = new(profile);
DicomFile anonymized = anonymizer.Anonymize(original);

// Compare key tags (example tags - actual tag access depends on your implementation)
Console.WriteLine("Anonymization Validation Report:");
Console.WriteLine("================================");
Console.WriteLine("Patient data has been modified according to Basic Profile.");
Console.WriteLine("Verify results in a DICOM viewer for complete validation.");

// Save for manual inspection
anonymized.Save("anonymized_for_validation.dcm");

ベストプラクティス

  • サンプルデータによるテスト:生産データを処理する前に常に試験データセットで匿名化を実行します。
  • Document Profile Choice: 規制の遵守のために使用されたプロフィールの記録を保持します。
  • 認証結果:予想されるタグが変更されることを確認するために、匿名のファイルをチェックします。
  • バージョンコントロール:時間の経過とともにプロフィール設定の変更を追跡します。

追加情報

  • さまざまな規制枠組みは、異なるレベルの匿名化を必要とする可能性があります。
  • あなたの使用ケースに適切なプロフィールを決定するために、あなたの遵守チームに相談してください。
  • カスタマイズされたプロファイルは、既定のオプションでカバーされていない要件のために作成することができます。

結論

このチュートリアルは、適切なプロフィールオプションを選択することで、匿名化プロセスが規制要件を満たしていることを保証し、特定の使用ケースに必要なデータを保持することができます。

 日本語