---
id: gh-dicom-metadata-extract
name: "dicom-metadata-extract"
url: https://skills.yangsir.net/skill/gh-dicom-metadata-extract
author: nvidia
domain: healthcare
tags: ["dicom", "metadata", "phi", "healthcare", "pydicom"]
install_count: 1900
rating: 4.30 (120 reviews)
github: https://github.com/nvidia/skills/tree/main/skills/dicom-metadata-extract
---

# dicom-metadata-extract

> 用于从单个DICOM文件中提取选定元数据，并标记标准标签中是否存在受保护健康信息（PHI），辅助医疗数据合规审查和初步筛查。提供标准化JSON输出，便于下游处理。不可用于匿名化或临床决策。

**Stats**: 1,900 installs · 4.3/5 (120 reviews)

## Before / After 对比

### DICOM元数据PHI审查效率

**Before**:

用户需要手动浏览DICOM文件中的所有标签，识别可能包含PHI的标准标签，通常需要20分钟左右，且容易遗漏关键字段。

**After**:

此技能自动提取元数据并标记PHI标签，将审查时间缩短至1分钟，并减少人为疏漏。

| Metric | Before | After | Change |
|---|---|---|---|
| 单文件审查耗时 | 20分钟 | 1分钟 | -95% |

## Readme

# DICOM Metadata Extract

## Purpose
- Used for extracting selected metadata from one DICOM file and flagging standard-tag PHI presence. Not for anonymization or clinical use.
- Use the wrapper exactly as documented; do not replace the upstream entrypoint with a handwritten implementation.
- Manifest I/O: inputs are `dicom_path`; outputs are `metadata_json`.

## Instructions
- Read `skill_manifest.yaml` before changing arguments, side effects, or validation gates.
- Run `scripts/extract_metadata.py` through the documented command below; keep outputs under a caller-provided run directory.
- If a host agent exposes `run_script`, use `run_script("scripts/extract_metadata.py", args=[...])`; otherwise run the Bash/Python command shown below.
- Check the emitted JSON and run `medagent.verifiers.dicom_metadata_quality_v1` on evidence packs before treating the run as reviewed evidence.

## Available Scripts
| Script | Purpose | Arguments |
|---|---|---|
| `scripts/extract_metadata.py` | Primary entrypoint declared by skill_manifest.yaml. | `PATH_TO_DICOM [--output OUT.json]` |

## Prerequisites
- Runtime requirements: Python packages listed in `runtime.side_effects.pip_packages`.
- Run commands from the repository root unless an existing section below says otherwise.

## Limitations
- Small PS3.15-inspired standard-tag subset only; not a complete Basic Application Confidentiality Profile implementation.
- Private tags not checked
- Burnt-in pixel PHI not detected
- Multi-frame handling minimal
- Not for clinical deployment, regulatory de-identification, autonomous diagnosis, patient-facing use.

## Troubleshooting
| Error | Cause | Fix |
|---|---|---|
| Missing dependency or import error | Runtime package drift from `skill_manifest.yaml`. | Install the packages declared in the manifest or use the documented setup command. |
| Empty or schema-invalid output | Wrong input path, unsupported modality, or upstream failure. | Re-run with a known fixture and inspect the wrapper JSON plus stderr. |
| Validation gate failure | Output violated a declared engineering invariant. | Keep the failed evidence pack and use the gate message to repair inputs or wrapper code. |

Reads one DICOM file with pydicom and emits JSON on stdout.

```bash
python scripts/extract_metadata.py PATH_TO_DICOM
python scripts/extract_metadata.py PATH_TO_DICOM --output result.json
```

Output includes `transfer_syntax`, `modality`, grouped study/series/image
metadata, `phi_present`, and `phi_tags_found`.

Use this as the smallest end-to-end example of a Medical AI Skills skill. Do not use
it for anonymization, private-tag review, pixel PHI detection, or clinical
interpretation.

For second-pass evidence review, generate a trusted run:

```bash
python -m eval_engine.run_trusted skills/dicom-metadata-extract \
  --fixture skills/dicom-metadata-extract/fixtures/sample_ct.dcm \
  --out runs/dicom_metadata_trusted
```


---
*Source: https://skills.yangsir.net/skill/gh-dicom-metadata-extract*
*Markdown mirror: https://skills.yangsir.net/api/skill/gh-dicom-metadata-extract/markdown*