.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 を保存 | 参照の維持 |
| RetainDeviceIdent | Keeps デバイス識別情報 | 機器追跡 |
| RetainPatientChars | 患者様の特徴(年齢、性別) | 臨床研究 |
| CleanGraph | 燃え込んだグラフィックとオーバーレイを削除する | イメージクリーニング |
| CleanDesc | PHIを含む可能性のある説明フィールドをクリアします。 | テキスト衛生 |
プライバシープロフィールを適用するためのステップアップガイド
ステップ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: 規制の遵守のために使用されたプロフィールの記録を保持します。
- 認証結果:予想されるタグが変更されることを確認するために、匿名のファイルをチェックします。
- バージョンコントロール:時間の経過とともにプロフィール設定の変更を追跡します。
追加情報
- さまざまな規制枠組みは、異なるレベルの匿名化を必要とする可能性があります。
- あなたの使用ケースに適切なプロフィールを決定するために、あなたの遵守チームに相談してください。
- カスタマイズされたプロファイルは、既定のオプションでカバーされていない要件のために作成することができます。
結論
このチュートリアルは、適切なプロフィールオプションを選択することで、匿名化プロセスが規制要件を満たしていることを保証し、特定の使用ケースに必要なデータを保持することができます。