در حالی که پروفایل های محرمانه پیش تعریف شده DICOM PS3.15 بسیاری از موارد استفاده را پوشش می دهد، موسسات بهداشتی اغلب نیازهای منحصر به فرد حفظ حریم خصوصی دارند. در این راهنمای، شما یاد خواهید گرفت که چگونه تصمیم مشخصات ناشناس سازی سفارشی دیکوم که با سیاست های خاص سازمان شما مطابقت دارد. ما الگوهای برچسب، اقدامات و ارائه قالب ها در فرمت های CSV، JSON و XML.

جدول محتوا

چرا پروفایل های سفارشی مورد نیاز است؟

پروفایل های محرمانه پیش تعیین شده یک پایه محکم را فراهم می کنند، اما ممکن است تمام الزامات نهادی را برآورده نکنند. شما نیاز به مشخصات سفارشی دارید، زمانی که سازمان شما نیازمند نگهداری شناسه های نهایی خاص برای ردیابی داخلی است، در حالی که هنوز هم داده های بیمار را ناشناس می کند. برخی از همکاری های تحقیقاتی می توانند نیازهای دموگرافی خاصی داشته باشند که در عین حال از بین بردن شناسنامه های مستقیم حفظ می شود. جریان های کار تضمین کیفیت داخلی می تواند اطلاعات دستگاهی را که نمونه های استاندارد حذف می شوند، مورد نیاز باشد.

پروفایل های سفارشی به شما کنترل دقیق بر چه برچسب های DICOM تغییر می کنند و چگونه، اجازه می دهد تا مطابق با سیاست های خاص مدیریت داده شما باشد.

درک الگوهای برچسب و اقدامات {#تفاهم-نمونه های برچسب-and-actions}

برچسب های DICOM با اعداد گروه و عناصر در فرمت (GGGG،EEEE) شناسایی می شوند.به عنوان مثال، نام بیمار (0010,0010) و شناسه بیماران ( 0010.0020) است. پروفایل های سفارشی الگوهای مربوط به این برچسب ها و اقدامات مورد استفاده را مشخص می کنند.

اقدامات در دسترس عبارتند از D (Delete) که برچسب را به طور کامل از مجموعه داده حذف می کند، Z (Zero)** که ارزش را با یک ارزش خالی یا صفر طول جایگزین می سازد، X (Remove) که علامت را اگر وجود داشته باشد شبیه به حذف حذف، K (Keep) که مقدار اصلی را بدون تغییر حفظ می دهد، و **C (Clean) ** که با حذف اطلاعات شناسایی به صورت زمینه ای، ارزش آن را پاک می شود و *U (Replace with UID)" که به جای یک شناسه منحصر به فرد تازه تولید شده است.

انتخاب عمل صحیح بستگی به مورد استفاده شما دارد.استفاده از D یا X برای برچسب هایی که هرگز نباید در خروجی ناشناس ظاهر شوند.ستفاداری از Z زمانی که برچسب باید وجود داشته باشد اما باید خالی باشد.تصمیم گیری از K برای بایگانی که می خواهید به طور دقیق ذخیره کنید استفاده از C برای زمینه های متنی که ممکن است حاوی شناسه های ساخته شده باشند استفاده کنید U برای UID ها که باید جایگزین شوند در حالی که منحصر به فرد حفظ می شود.

ایجاد پروفایل های سفارشی

پروفایل های سفارشی را می توان در سه فرمت تعریف کرد. انتخاب یکی که بهترین متناسب با جریان کار شما است.

فرمت CSV

CSV ساده ترین فرمت است، ایده آل برای پروفایل های ساده:

TagPattern;Action
(0010,0010);Z
(0010,0020);Z
(0010,0030);X
(0010,0040);K
(0020,000D);U
(0020,000E);U
(0008,0018);U
(0008,0080);D
(0008,0081);D
(0008,1030);C
(0008,103E);C
(0010,1010);K
(0010,1030);K

این پروفایل نام و شناسه بیمار را از بین می برد، تاریخ تولد را حذف می کند، جنسیت و دموگرافی بیماران را نگه می دارد، جایگزین تمام UID ها می شود، اطلاعات موسسه را پاک می سازد و توصیفات را تمیز نمی کند.

فرمت JSON

JSON ساختار بهتر برای پروفایل های پیچیده با متا داده ها را فراهم می کند:

{
  "profileName": "Hospital Research Profile",
  "version": "1.0",
  "description": "Custom profile for research data sharing",
  "actions": [
    { "TagPattern": "(0010,0010)", "Action": "Z", "Comment": "Patient Name" },
    { "TagPattern": "(0010,0020)", "Action": "Z", "Comment": "Patient ID" },
    { "TagPattern": "(0010,0030)", "Action": "X", "Comment": "Birth Date" },
    { "TagPattern": "(0010,0040)", "Action": "K", "Comment": "Patient Sex" },
    { "TagPattern": "(0020,000D)", "Action": "U", "Comment": "Study Instance UID" },
    { "TagPattern": "(0020,000E)", "Action": "U", "Comment": "Series Instance UID" },
    { "TagPattern": "(0008,0018)", "Action": "U", "Comment": "SOP Instance UID" },
    { "TagPattern": "(0008,0080)", "Action": "D", "Comment": "Institution Name" },
    { "TagPattern": "(0008,0081)", "Action": "D", "Comment": "Institution Address" },
    { "TagPattern": "(0008,1030)", "Action": "C", "Comment": "Study Description" }
  ]
}

فرمت XML

XML برای محیط های با ابزارهای XML موجود ترجیح داده می شود:

<?xml version="1.0" encoding="utf-8"?>
<ConfidentialityProfile name="Hospital Research Profile" version="1.0">
  <Description>Custom profile for research data sharing</Description>
  <TagActions>
    <TagAction TagPattern="(0010,0010)" Action="Z">Patient Name</TagAction>
    <TagAction TagPattern="(0010,0020)" Action="Z">Patient ID</TagAction>
    <TagAction TagPattern="(0010,0030)" Action="X">Birth Date</TagAction>
    <TagAction TagPattern="(0010,0040)" Action="K">Patient Sex</TagAction>
    <TagAction TagPattern="(0020,000D)" Action="U">Study Instance UID</TagAction>
    <TagAction TagPattern="(0020,000E)" Action="U">Series Instance UID</TagAction>
    <TagAction TagPattern="(0008,0018)" Action="U">SOP Instance UID</TagAction>
    <TagAction TagPattern="(0008,0080)" Action="D">Institution Name</TagAction>
    <TagAction TagPattern="(0008,0081)" Action="D">Institution Address</TagAction>
    <TagAction TagPattern="(0008,1030)" Action="C">Study Description</TagAction>
  </TagActions>
</ConfidentialityProfile>

دانلود پروفایل های سفارشی در کد

بارگذاری پروفایل های سفارشی در برنامه .NET شما ساده است:

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

// Load from CSV
ConfidentialityProfile csvProfile = ConfidentialityProfile.LoadFromCsvFile(
    "profiles/hospital_research.csv",
    ConfidentialityProfileOptions.All
);

// Load from JSON
ConfidentialityProfile jsonProfile = ConfidentialityProfile.LoadFromJsonFile(
    "profiles/hospital_research.json",
    ConfidentialityProfileOptions.All
);

// Load from XML
ConfidentialityProfile xmlProfile = ConfidentialityProfile.LoadFromXmlFile(
    "profiles/hospital_research.xml",
    ConfidentialityProfileOptions.All
);

// Create anonymizer with custom profile
Anonymizer anonymizer = new(csvProfile);

// Anonymize files
DicomFile dcm = DicomFile.Open("patient_study.dcm");
DicomFile anonymizedDcm = anonymizer.Anonymize(dcm);
anonymizedDcm.Save("anonymized_study.dcm");

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

مثال های دنیای واقعی (#real-world-scenario)

مرحله اول: تضمین کیفیت داخلی

ذخیره اطلاعات موسسه و دستگاه برای ردیابی داخلی در حالی که نامگذاری داده های بیمار:

TagPattern;Action
(0010,0010);Z
(0010,0020);Z
(0010,0030);X
(0008,0080);K
(0008,0081);K
(0008,1010);K
(0008,1090);K
(0018,1000);K

فصل دوم: همکاری های تحقیقاتی خارجی

حداکثر ناشناس شدن با جمعیت حفظ شده برای مطالعات جمعیت:

TagPattern;Action
(0010,0010);X
(0010,0020);X
(0010,0030);X
(0010,0040);K
(0010,1010);K
(0010,1020);K
(0010,1030);K
(0020,000D);U
(0020,000E);U
(0008,0018);U
(0008,0080);X
(0008,0081);X
(0008,1030);X
(0008,103E);X

مرحله سوم: هماهنگی مطالعات چند سایت

جایگزین UID ها در حالی که حفظ روابط مطالعه برای اتصال داده ها:

TagPattern;Action
(0010,0010);Z
(0010,0020);Z
(0020,000D);U
(0020,000E);U
(0008,0018);U
(0008,0016);K
(0020,0010);K
(0020,0011);K
(0020,0013);K

تأیید و آزمایش

همیشه پروفایل های سفارشی را قبل از راه اندازی تولید تأیید کنید:

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

string profilePath = "profiles/custom_profile.csv";
string testDataFolder = "test_samples";
string outputFolder = "validation_output";

// Load custom profile
ConfidentialityProfile profile = ConfidentialityProfile.LoadFromCsvFile(
    profilePath,
    ConfidentialityProfileOptions.All
);

Anonymizer anonymizer = new(profile);
Directory.CreateDirectory(outputFolder);

// Process test files
string[] testFiles = Directory.GetFiles(testDataFolder, "*.dcm");
int successCount = 0;
int failCount = 0;

foreach (string filePath in testFiles)
{
    try
    {
        DicomFile dcm = DicomFile.Open(filePath);
        DicomFile anonymized = anonymizer.Anonymize(dcm);
        
        string outputPath = Path.Combine(outputFolder, Path.GetFileName(filePath));
        anonymized.Save(outputPath);
        
        Console.WriteLine($"✓ {Path.GetFileName(filePath)}");
        successCount++;
    }
    catch (Exception ex)
    {
        Console.WriteLine($"✗ {Path.GetFileName(filePath)}: {ex.Message}");
        failCount++;
    }
}

Console.WriteLine($"\nValidation Summary:");
Console.WriteLine($"  Succeeded: {successCount}");
Console.WriteLine($"  Failed: {failCount}");
Console.WriteLine($"\nReview output files in: {outputFolder}");

پس از اجرای اعتباربخشی، فایل های ناشناس را در یک مرورگر DICOM باز کنید و تأیید کنید که برچسب های پیش بینی شده به درستی تغییر کرده اند، برچسب ها حفظ شده حفظ می شوند، UID ها به خوبی جایگزین شده اند و هیچ داده حساس در زمینه های تمیز باقی نمی ماند.

نتیجه گیری #تصمیم گیری

پروفایل های حفظ حریم خصوصی سفارشی به شما انعطاف پذیری برای پیاده سازی ناشناس سازی DICOM را می دهد که دقیقا مطابق با سیاست های حفاظت از اطلاعات موسسه شما است. آیا شما نیاز به حفظ شناسه های خاص برای استفاده داخلی، حفظ جمعیت شناسی برای تحقیق، و یا استفاده از حداکثر نامگذاری برای به اشتراک گذاری خارجی، مشخصات سفری این امکان را فراهم می کند.

توصیه های کلیدی شامل مستند کردن انتخاب های پروفایل خود را برای اهداف حسابرسی، کنترل نسخه فایل های مشخصات برای ردیابی تغییرات، تست پروفائل به طور کامل قبل از استفاده از تولید، و بازنگری پروفیل ها به صورت دوره ای به عنوان نیازها در حال تکامل است.

برای اطلاعات بیشتر در مورد ناشناس سازی DICOM و API Aspose.Medical، به سایت مراجعه کنید. مستنداتقالب ها برای سناریوهای پروفایل مشترک در بخش نمونه ها در دسترس هستند.

More in this category