ในขณะที่โปรไฟล์ความเป็นส่วนตัว DICOM PS3.15 ที่กําหนดไว้ครอบคลุมกรณีการใช้งานจํานวนมากสถาบันการดูแลสุขภาพมักมีข้อกําหนดความส่วนตัวที่ไม่ซ้ํากัน ในคู่มือนี้คุณจะเรียนรู้วิธีการออกแบบโปรφίλการอ้างอิงของคุณที่กําหนดเองซึ่งตรงกับนโยบายที่เฉพาะเจาะจงขององค์กรของคุณ เราจะปกป้องรูปแบบแท็กการกระทําและให้รูปแบบในรูปแบบ CSV, JSON และ XML

ตารางเนื้อหา

ทําไมโปรไฟล์ที่กําหนดเองเป็นสิ่งจําเป็น

โปรไฟล์ความเป็นส่วนตัวที่กําหนดไว้ให้พื้นฐานที่แข็งแกร่ง แต่พวกเขาอาจไม่ตอบสนองความต้องการทางสถาบันทั้งหมด คุณอาจต้องการโปรไฟล์แบบกําหนดเองเมื่อองค์กรของคุณต้องการการเก็บรวบรวมตัวระบุขององค์กรเฉพาะเพื่อความสามารถในการติดตามภายในในขณะที่ยังคง匿名ข้อมูลผู้ป่วย บางงานวิจัยอาจจําเป็นต้องเก็บข้อมูลประชากรบางอย่างโดยการลบตัวรับรองโดยตรง กระแสการทํางานการรับประกันคุณภาพภายในอาจต้องใช้ข้อมูลของอุปกรณ์ที่รายละเอียดมาตรฐานจะถอดออก นอกจากนี้กฎระเบียบภูมิภาคอาจบังคับให้การจัดการเฉพาะขององค์ประกอบข้อมูล tertentu

โปรไฟล์ที่กําหนดเองช่วยให้คุณมีการควบคุมอย่างแม่นยําว่า DICOM แท็กจะมีการเปลี่ยนแปลงและวิธีการที่ให้การปฏิบัติตามนโยบายการจัดการข้อมูลเฉพาะของคุณ

ความเข้าใจแท็กรูปแบบและกระทํา

แท็ก DICOM ได้รับการระบุโดยกลุ่มและหมายเลของค์ประกอบในรูปแบบ (GGGG,EEEE) ตัวอย่างเช่น ชื่อผู้ป่วยคือ (0010,0010) และ ID ผู้ป่วยเป็น ( 0010.0020) โปรไฟล์ที่กําหนดเองระบุรูปแบบที่ตรงกับแท็กเหล่านี้และกระทําที่ต้องใช้

การดําเนินการที่มีอยู่รวมถึง D (Delete) ซึ่งลบแท็กทั้งหมดจากชุดข้อมูล Z (Zero)** ซึ่งแทนที่ค่าด้วยค่าที่ว่างเปล่าหรือไม่มีความยาว X (Remove)* ซึ่งกําจัดแท็คถ้ามีลักษณะคล้ายกับ Delete **K (Keep) ** ซึ่งรักษาค่าเดิมไม่เปลี่ยนแปลง **C (Clean) *** ซึ่งทําความสะอาดค่าโดยการล้างข้อมูลการระบุแบบ contextually และ **U (Change with UID) * ซึ่งเปลี่ยนด้วยตัวระบุที่ไม่ซ้ํากันที่สร้างใหม่

การเลือกการกระทําที่เหมาะสมขึ้นอยู่กับกรณีที่คุณใช้ ใช้ D หรือ X สําหรับแท็กที่ไม่ควรปรากฏในผลลัพธ์ที่匿名 ใช้ Z เมื่อแท็คต้องมี แต่ควรว่างเปล่า ใช้ K สําหรับ แท็กที่คุณต้องการเก็บไว้อย่างแม่นยํา ใช้ C สําหรับฟิลด์ข้อความที่อาจมีตัวระบุแบบบูรณาการ ใช้ U สําหรับ UIDs ที่ต้องถูกแทนที่ในขณะที่รักษาความเป็นเอกลักษณ์

การสร้างโปรไฟล์ที่กําหนดเอง

โปรไฟล์ที่กําหนดเองสามารถกําหนดไว้ในสามรูปแบบ เลือกหนึ่งที่เหมาะสมที่สุดกับกระบวนการทํางานของคุณ

รูปแบบ 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

โปรไฟล์นี้ zeros ชื่อและ ID ของผู้ป่วย, ลบวันที่เกิด, รักษาเพศของผู้ป่วยและประวัติศาสตร์, เปลี่ยน UID ทั้งหมดลบข้อมูลขององค์กร, และทําความสะอาดคําอธิบาย

รูปแบบ JSON

JSON ให้โครงสร้างที่ดีขึ้นสําหรับโปรไฟล์ที่ซับซ้อนพร้อม metadata:

{
  "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!");

ตัวอย่างสถานการณ์โลกจริง

ฉาก 1: การรับประกันคุณภาพภายใน

เก็บข้อมูลหน่วยงานและอุปกรณ์สําหรับการติดตามภายในในขณะที่ระบุข้อมูลผู้ป่วย:

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

ฉาก 2: การทํางานร่วมในการวิจัยภายนอก

การอัญมณีสูงสุดพร้อมดิจิตอลที่เก็บไว้สําหรับการศึกษาการประชากร:

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

สภาพแวดล้อม 3: การ协调การศึกษาหลายเว็บไซต์

เปลี่ยน 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 และตรวจสอบว่าแท็กที่คาดหวังจะมีการเปลี่ยนแปลงอย่างถูกต้อง แท็คที่เก็บไว้จะถูกเก็บรักษา UIDs จะถูกแทนที่อย่างเหมาะสมและไม่มีข้อมูลที่ละเอียดอ่อนจะยังคงอยู่ในฟิลด์ที่ทําความสะอาด

ข้อสรุป

โปรไฟล์ความเป็นส่วนตัวที่กําหนดเองช่วยให้คุณมีความยืดหยุ่นในการนําไปใช้การระบุชื่อของ DICOM ซึ่งตรงกับนโยบายส่วนบุคคลของหน่วยงานของคุณ ไม่ว่าคุณต้องเก็บตัวระบุเฉพาะสําหรับการใช้งานภายในการรักษาข้อมูลประชากรสําหรับการวิจัยหรือใช้แอนโนมัติสูงสุดสําหรับการแบ่งปันภายนอกโปรไฟล์ที่ปรับแต่งจะทําให้มันเป็นไปได้

คําแนะนําหลักรวมถึงการเอกสารตัวเลือกโปรไฟล์ของคุณเพื่อวัตถุประสงค์การตรวจสอบไฟล์โปรφίλการควบคุมเวอร์ชันเพื่อติดตามการเปลี่ยนแปลงการทดสอบรายละเอียดอย่างละเอียดก่อนการใช้การผลิตและการตรวจสอบรายละเอียดเป็นประจําเมื่อความต้องการพัฒนา

สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการระบุชื่อของ DICOM และ API Aspose.Medical เยี่ยมชม การรับรอง. ตัวอย่างสําหรับสถาปัตยกรรมโปรไฟล์ทั่วไปสามารถใช้ได้ในส่วนตัวอย่าง

More in this category