Xử lý DICOM với pydicom
Kỹ năng giúp đọc, ghi, chuyển đổi dữ liệu DICOM cục bộ và kiểm tra trước khi ẩn danh một cách an toàn bằng pydicom 3.0.2.
Lập trìnhNâng cao★ 33,030⑂ 3,248Điểm AI 9/10Cập nhật lần cuối: 9 thg 8, 2026
Kỹ năng này làm gì
- Đọc DICOM an toàn: hướng dẫn dùng
dcmread()vớistop_before_pixels,specific_tags,defer_sizeđể chỉ đọc đúng thẻ cần thiết, và cấm in toàn bộDatasethay xuất JSON đầy đủ vì có thể lộ PHI (thông tin sức khỏe được bảo vệ). - Kiểm tra transfer syntax và codec: giải mã Transfer Syntax UID, ma trận plugin JPEG/JPEG-LS/JPEG 2000/RLE (pylibjpeg, pyjpegls, python-gdcm) kèm khuyến nghị khóa hash, mirror nội bộ để giảm rủi ro chuỗi cung ứng.
- Xử lý pixel data: giải mã theo từng frame với
pydicom.pixels, quy tắc shape mảng, thứ tự áp dụng Modality LUT → VOI LUT, đảo MONOCHROME1, Palette Color. - Nén/giải nén và encapsulation: lưu ý
compress()/decompress()sinh SOP Instance UID mới, cách dùngencapsulate()vàgenerate_frames(). - Quy trình ẩn danh 9 bước theo PS3.15 Annex E: giữ nguyên bản gốc, xử lý đệ quy mọi sequence, thay UID một-đối-một, quản lý khóa/bản đồ UID như bí mật tái định danh.
- 7 script CLI: tổng hợp metadata, kiểm kê kỹ thuật, preflight codec, lập kế hoạch frame/bộ nhớ, render một frame phi chẩn đoán, giả danh + audit, kiểm tra bản đồ UID.
Phù hợp với ai
- Nhà nghiên cứu, data engineer tiền xử lý bộ dữ liệu ảnh y tế bằng Python
- Lập trình viên xây pipeline PACS cần làm rõ phụ thuộc codec và transfer syntax
- Nhân sự bảo mật/IRB thiết kế quy trình giả danh và nhật ký audit trước khi chia sẻ dữ liệu
- Nhóm đang migrate code pydicom 2.x sang 3.0
Ví dụ sử dụng
- Nắm tổng quan dữ liệu: "Hãy thống kê modality, kích thước ảnh và transfer syntax của thư mục authorized/" → chạy
scripts/dicom_inventory.py authorized/ --recursiveđể nhận báo cáo tổng hợp không lộ giá trị cá nhân. - Chuẩn bị giải mã: khi mở chuỗi CT nén JPEG 2000 bị lỗi, dùng
transfer_syntax_inspector.pyđể xem plugin đang cài rồi chỉ cài thêm gói được pin cần thiết. - Giả danh cho nghiên cứu: tạo khóa dự án, chạy
anonymize_dicom.py --uid-key-file project.key --uid-scope export-v1, sau đódeidentification_audit.pyđể soát định danh còn lại rồi nhờ chuyên gia xác nhận.
· · · Hướng dẫn cài đặt · · ·
Cài vào ứng dụng Claude (không cần terminal)
- Tải tệp ZIP bằng nút bên dưới.
- Trong Claude, mở Settings → Capabilities và bật 'Code execution and file creation'. (chỉ một lần)
- Vào Customize → Skills → + → 'Upload a skill' rồi tải tệp ZIP lên.
Cài vào Claude Code
Để Claude làm — dán câu dưới đây vào Claude Code
Hãy cài skill mình tìm thấy trên Claude Skill Mart. Copy thư mục skills/pydicom từ repo GitHub K-Dense-AI/scientific-agent-skills vào ~/.claude/skills/pydicom/ của mình. Sau khi cài xong, cho mình biết skill này làm được gì trong một câu.
Cài bằng lệnh thủ công
git clone https://github.com/K-Dense-AI/scientific-agent-skills.git && mkdir -p ~/.claude/skills && cp -r scientific-agent-skills/skills/pydicom ~/.claude/skills/⚠ Đây là skill do người khác tạo. Hãy kiểm tra repo gốc trước khi cài.
- Mở terminal và clone repo:
git clone https://github.com/K-Dense-AI/scientific-agent-skills.git - Copy thư mục kỹ năng vào Claude Code:
mkdir -p ~/.claude/skills && cp -r scientific-agent-skills/skills/pydicom ~/.claude/skills/ - Tạo và kích hoạt môi trường ảo Python (ví dụ
python3 -m venv .venv && source .venv/bin/activate). Yêu cầu Python 3.10 trở lên. - Cài đúng phiên bản đã kiểm định:
uv pip install "pydicom==3.0.2"(hoặcpip install "pydicom==3.0.2"). - Nếu cần mảng pixel/render ảnh, thêm
numpy==2.5.1vàPillow==12.3.0; với ảnh nén chỉ cài plugin thực sự cần (pylibjpeg, pyjpegls, python-gdcm). - Khởi động lại Claude Code rồi yêu cầu ví dụ: "Dùng pydicom kiểm tra thư mục DICOM này" — kỹ năng sẽ tự được gọi.
- Chỉ dùng trên dữ liệu cục bộ mà bạn được phép truy cập, luôn giữ bản gốc, và tuyệt đối không commit hay chia sẻ file khóa giả danh.
Xem mã nguồn trên GitHub ↗Giấy phép: MIT