如何在 .NET 中应用预定义的 DICOM 隐私资料

如何在 .NET 中应用预定义的 DICOM 隐私资料

此教程展示了如何在 C# 中应用预定义的 DICOM PS3.15 隐私配置文件以匿名化。

什么是隐私档案?

隐私档案是一组规则,规定如何在匿名化过程中处理不同的 DICOM 标签。Dicom 标准(PS3.15)定义了几个标准的个人资料,以解决不同的隐 私和数据保留要求。

使用预定个人资料的好处

  • 標準化:- 遵循 DICOM PS3.15 中定义的行业标准规则。

    • 符合要求*:- 满足HIPAA、GDPR和其他监管要求的信心。
  • 灵活性:- 选择最适合您的数据共享要求的个人资料。

原标题:准备环境

  • 设置 Visual Studio 或任何兼容的 .NET IDE.
  • 创建一个新的 .NET 8 控制台应用程序项目。
  • 在 NuGet Package Manager 中安装 Aspose.Medical。

可用的隐私档案选项

下表解释了可用的关键预定义个人资料选项:

个人资料选项描述使用案例
BasicProfile标准匿名化删除大多数患者身份证一般识别
RetainSafePrivate保留数据共享安全的私人标签研究数据共享
维持人保存研究、系列和实例 UID保持参考
RetainDeviceIdentKeeps 设备识别信息设备跟踪
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");

最佳实践

  • ** 使用样品数据测试**:在处理生产数据之前,始终在测试数据集上进行匿名化。
  • 文件档案选项:保留记录,其配置文件被用于遵守规则。
  • 验证结果:点击匿名文件以确保预期的标签被修改。
  • 版本控制:随着时间的推移,跟踪个人资料配置的变化。

更多信息

  • 不同的监管框架可能需要不同的匿名化水平。
  • 与您的遵守团队进行咨询,以确定您使用案例的适当个人资料。
  • 可为未经预定义选项覆盖的要求创建个性化个人资料。

结论

此教程已向您展示了如何在C#中应用预定 DICOM 隐私资料,使用 Aspose.Medical. 选择合适的个人资料选项,您可以确保您的匿名化过程符合监管要求,同时保留您特定使用案例所需的数据。

 中文