วิธีการสร้างโปรไฟล์ DICOM ที่กําหนดเองจาก CSV, JSON หรือ XML

วิธีการสร้างโปรไฟล์ DICOM ที่กําหนดเองจาก CSV, JSON หรือ XML

การสอนนี้แสดงให้เห็นถึงวิธีการสร้างโปรไฟล์การ匿名 DICOM ที่กําหนดเองโดยใช้ไฟล์ CSV, JSON หรือ XML ใน C# โปรไฟล์ที่กําหนดไว้ช่วยให้คุณสามารถกําหนดอย่างแม่นยําแท็กที่ควรถูกลบหรือเก็บไว้ตามนโยบายความเป็นส่วนตัวเฉพาะขององค์กรของคุณ

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

โปรไฟล์ DICOM PS3.15 ที่กําหนดเองอาจไม่ตอบสนองความต้องการทางสถาบันทั้งหมดโปรไฟล์ที่กําหนดค่าช่วยให้คุณสามารถ:

  • การเก็บรวบรวมตัวระบุทางสถาบันเฉพาะสําหรับการติดตามภายใน
  • ใช้กฎระเบียบความเป็นส่วนตัวเฉพาะองค์กร
  • สอดคล้องกับข้อกําหนดการควบคุมเฉพาะในเขตอํานาจของคุณ

Tag การกระทําที่อธิบาย

การดําเนินการต่อไปนี้สามารถนําไปใช้กับแท็ก DICOM:

การกระทํารหัสคําอธิบาย
ลบDลบแท็กทั้งหมดจากชุดข้อมูล
0 0 0Zเปลี่ยนค่าด้วยค่าที่ว่างเปล่าหรือศูนย์
การกําจัดXลบถ้ามี (คล้ายกับลบ)
KeepKรักษาค่าเริ่มต้นที่ไม่มีการเปลี่ยนแปลง
CleanCทําความสะอาดค่าโดยการลบข้อมูลระบุ
เปลี่ยน UIDUเปลี่ยนด้วย UID ที่สร้างใหม่

ข้อกําหนด: การเตรียมสิ่งแวดล้อม

  • ติดตั้ง Visual Studio หรือ IDE .NET ที่เข้ากันได้ใด ๆ.
  • สร้างโครงการการใช้งาน .NET 8 ใหม่
  • ติดตั้ง Aspose.Medical จาก NuGet Package Manager
  • ปรับแต่งไฟล์กําหนดเองของคุณ

คู่มือขั้นตอนเพื่อสร้างโปรไฟล์ที่กําหนดเอง

ขั้นตอน 1: ติดตั้ง Aspose.Medical

เพิ่มห้องสมุด Aspose.Medical ไปยังโครงการของคุณโดยใช้ NuGet

Install-Package Aspose.Medical

ขั้นตอน 2: สร้างการกําหนดค่าโปรไฟล์ CSV

สร้างไฟล์ 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

<button class=“hextra-code-copy-btn hx-group/copybtn hx-transition-all active:hx-opacity-50 hx-bg-primary-700/5 hx-border hx-border-black/5 hx-text-gray-600 hover:hx-text-gray-900 hx-rounded-md hx-p-1.5 dark:hx-bg-primary-300/10 dark:hx-border-white/10 dark:hx-text-gray-400 dark:hover:hx-text-gray-50” title=“คูปองรหัส”

<div class="copy-icon group-[.copied]/copybtn:hx-hidden hx-pointer-events-none hx-h-4 hx-w-4"></div>
<div class="success-icon hx-hidden group-[.copied]/copybtn:hx-block hx-pointer-events-none hx-h-4 hx-w-4"></div>

โปรไฟล์นี้:

  • ชื่อผู้ป่วย Zeros และ ID
  • ลบวันที่เกิด
  • Keeps เซ็กส์ผู้ป่วย
  • แทนการศึกษาชุดและ SOP Instance UIDs
  • ลบข้อมูลของหน่วยงาน
  • ลักษณะการศึกษา Cleans

ขั้นตอนที่ 3: สร้างการกําหนดค่าโปรไฟล์ JSON (ทางเลือก)

สร้างไฟล์ JSON ที่มีการกําหนดค่าแท็กเดียวกัน

โปรไฟล์.json :

[
  { "TagPattern": "(0010,0010)", "Action": "Z" },
  { "TagPattern": "(0010,0020)", "Action": "Z" },
  { "TagPattern": "(0010,0030)", "Action": "X" },
  { "TagPattern": "(0010,0040)", "Action": "K" },
  { "TagPattern": "(0020,000D)", "Action": "U" },
  { "TagPattern": "(0020,000E)", "Action": "U" },
  { "TagPattern": "(0008,0018)", "Action": "U" },
  { "TagPattern": "(0008,0080)", "Action": "D" },
  { "TagPattern": "(0008,0081)", "Action": "D" },
  { "TagPattern": "(0008,1030)", "Action": "C" }
]

ขั้นตอน 4: สร้างการกําหนดค่าโปรไฟล์ XML (ทางเลือก)

สร้างไฟล์ XML ที่มีการกําหนดค่าแท็กเดียวกัน

โปรไฟล์.xml :

<?xml version="1.0" encoding="utf-8"?>
<ConfidentialityProfile>
  <TagAction TagPattern="(0010,0010)" Action="Z" />
  <TagAction TagPattern="(0010,0020)" Action="Z" />
  <TagAction TagPattern="(0010,0030)" Action="X" />
  <TagAction TagPattern="(0010,0040)" Action="K" />
  <TagAction TagPattern="(0020,000D)" Action="U" />
  <TagAction TagPattern="(0020,000E)" Action="U" />
  <TagAction TagPattern="(0008,0018)" Action="U" />
  <TagAction TagPattern="(0008,0080)" Action="D" />
  <TagAction TagPattern="(0008,0081)" Action="D" />
  <TagAction TagPattern="(0008,1030)" Action="C" />
</ConfidentialityProfile>

ขั้นตอน 5: ดาวน์โหลดโปรไฟล์ที่กําหนดเอง

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

using Aspose.Medical.Dicom.Anonymization;

// Load from CSV
ConfidentialityProfile profileFromCsv = ConfidentialityProfile.LoadFromCsvFile(
    "profile.csv", 
    ConfidentialityProfileOptions.All
);

// Or load from JSON
ConfidentialityProfile profileFromJson = ConfidentialityProfile.LoadFromJsonFile(
    "profile.json", 
    ConfidentialityProfileOptions.All
);

// Or load from XML
ConfidentialityProfile profileFromXml = ConfidentialityProfile.LoadFromXmlFile(
    "profile.xml", 
    ConfidentialityProfileOptions.All
);

ขั้นตอน 6: ใช้โปรไฟล์ที่กําหนดเอง

สร้าง Anonymizer กับโปรไฟล์ที่โหลดและใช้กับไฟล์ DICOM

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

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

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

// Load and anonymize DICOM file
DicomFile dcm = DicomFile.Open("patient_study.dcm");
DicomFile anonymizedDcm = anonymizer.Anonymize(dcm);
anonymizedDcm.Save("anonymized_study.dcm");

ตัวอย่างรหัสสมบูรณ์พร้อมโปรไฟล์ CSV

นี่คือตัวอย่างที่สมบูรณ์โดยใช้โปรไฟล์ที่กําหนดเองตาม CSV:

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

// Load custom confidentiality profile from CSV
ConfidentialityProfile profile = ConfidentialityProfile.LoadFromCsvFile(
    "hospital_privacy_profile.csv",
    ConfidentialityProfileOptions.All
);

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

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

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

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

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

ตัวอย่างสถานการณ์ปฏิบัติ

สภาพแวดล้อม 1: Retain Institution ID สําหรับการติดตามภายใน

TagPattern;Action
(0010,0010);Z
(0010,0020);Z
(0008,0080);K
(0008,0081);K

ฉาก 2: เปลี่ยน UID ทั้งหมด ในขณะที่รักษาความสัมพันธ์

TagPattern;Action
(0020,000D);U
(0020,000E);U
(0008,0018);U
(0008,0016);K

ฉาก 3: ความลับสูงสุดสําหรับการแบ่งปันภายนอก

TagPattern;Action
(0010,0010);X
(0010,0020);X
(0010,0030);X
(0010,0040);X
(0008,0080);X
(0008,0081);X
(0008,1030);X
(0008,103E);X

การรับรอง: การทดสอบโปรไฟล์ของคุณเอง

โปรดยืนยันโปรไฟล์ที่กําหนดเองก่อนการผลิต:

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

// Load custom profile
ConfidentialityProfile profile = ConfidentialityProfile.LoadFromCsvFile(
    "test_profile.csv",
    ConfidentialityProfileOptions.All
);

Anonymizer anonymizer = new(profile);

// Test with sample files
string[] testFiles = Directory.GetFiles("test_samples", "*.dcm");

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

Console.WriteLine("\nValidation complete. Review output files in DICOM viewer.");

Troubleshooting

เส้นทางไฟล์ที่ผิดพลาด

หากไฟล์โปรไฟล์ไม่สามารถพบได้:

string profilePath = "profile.csv";
if (!File.Exists(profilePath))
{
    Console.WriteLine($"Profile file not found: {profilePath}");
    return;
}

ปลั๊กแท็ก Invalid หรือกระทํา

ปรับประกันแท็กรูปแบบปฏิบัติตามรูปแบบ (GGGG,EEEE) ที่ GGGG เป็นกลุ่มและ EEEE เป็นองค์ประกอบใน hexadecimal การกระทําที่ถูกต้องคือ: D, Z, X, K, C, U

การปฏิบัติที่ดีที่สุดสําหรับโปรไฟล์ที่กําหนดเอง

  • การควบคุมรุ่น: บันทึกไฟล์โปรไฟล์ในตัวควบคุมเวอร์ชันเพื่อติดตามการเปลี่ยนแปลงตลอดเวลา
  • เอกสาร: เพิ่มความคิดเห็นเพื่ออธิบายเหตุผลว่าทําไมกระทําที่เฉพาะเจาะจงถูกเลือกสําหรับแต่ละแท็ก
  • การทดสอบ: ตรวจสอบโปรไฟล์ที่มีข้อมูลทดลองก่อนที่จะใช้ในการผลิตไฟล์ DICOM
  • ** Backup**: เก็บ backup ของไฟล์โปรไฟล์เดิมเสมอ
  • รีวิว: ตรวจสอบโปรไฟล์เป็นประจําเพื่อให้แน่ใจว่าพวกเขายังตอบสนองความต้องการทางกฎหมาย

ข้อมูลเพิ่มเติม

  • โปรดพิจารณาการสร้างโปรไฟล์หลายแบบสําหรับกรณีการใช้งานที่แตกต่างกัน (การแบ่งปันภายในการวิจัยภายนอก ฯลฯ )
  • เอกสารที่โปรไฟล์ถูกใช้ในการ匿名ไฟล์เพื่อวัตถุประสงค์การตรวจสอบ
  • รูปแบบ JSON และ XML ให้โครงสร้างที่ดีขึ้นสําหรับโปรไฟล์ที่ซับซ้อนที่มีการกําหนดค่าที่กําหนดเอง

ข้อสรุป

การฝึกอบรมนี้ได้แสดงให้เห็นว่าวิธีการสร้างโปรไฟล์ที่กําหนดเองของ DICOM โดยใช้ไฟล์ CSV, JSON หรือ XML ใน C# ด้วย Aspose.Medical โพลิเคชันที่ปรับแต่งให้มีความยืดหยุ่นในการดําเนินการนโยบายความเป็นส่วนตัวที่เฉพาะเจาะจงในขณะที่ยังคงปฏิบัติตามกฎระเบียบการดูแลสุขภาพ

 แบบไทย