
Structuring Radiology Reports
Converts free-text radiology narratives into structured findings and impression, with...
Install
npx skills add maziyarpanahi/openmed --skill structuring-radiology-reports -g -a claude-code -y- Repository
- maziyarpanahi/openmed5.8k
- Category
- Engineering
- Updated
- 4d ago
- License
- Apache-2.0
- Context cost
- Mediumabout 1,935 tokens
- Runs scripts
- No, instructions only
What it does
Converts free-text radiology narratives into structured findings and impression, with measurements, laterality, anatomy, and follow-up recommendations, after OpenMed NER. Use when the user has a CT/MRI/X-ray/ultrasound/mammography report and needs the sections split (technique, comparison, findings, impression), lesion measurements and laterality captured, BI-RADS / Lung-RADS assessment categories pulled, or incidental findings and recommended follow-up tracked. Trigger keywords: radiology report, findings, impression, RadLex, DICOM-SR, BI-RADS, Lung-RADS, ACR, laterality, measurement, nodule, incidental finding, follow-up, structured reporting. Pairs after OpenMed: run openmed.analyze_text on the report (Anatomy/Disease/measurement entities), then assemble structured findings. De-identify the report first. Decision-support only, not a diagnostic medical device.
Structuring radiology reports
A radiology report is prose, but its meaning is structured: a technique, a comparison, a list of findings (each with anatomy, laterality, and a measurement), and an impression that may carry an assessment category (BI-RADS, Lung-RADS) and a follow-up recommendation. This skill turns the narrative into that structure so findings are trackable, especially incidental findings that need downstream follow-up.
OpenMed extracts the anatomy, disease/finding, and measurement spans on-device; this skill organizes them into sectioned, coded findings. It is decision-support, not a diagnostic device, every structured finding must be attributable back to its source sentence for radiologist review.
When to use
- You have a CT/MRI/X-ray/US/mammography report and need
{technique, comparison, findings[], impression}with measurements and laterality. - You must capture BI-RADS (breast) or Lung-RADS (lung screening) assessment categories and the recommended action.
- You need to track incidental findings and the follow-up interval/modality the report recommends.
- You are mapping findings toward RadLex terms or a DICOM-SR structured report.
Quick start
import openmed
report = (
"TECHNIQUE: CT chest without contrast.\n"
"COMPARISON: CT 2023-11-02.\n"
"FINDINGS: A 8 mm solid nodule is noted in the right upper lobe, "
"unchanged. No pleural effusion.\n"
"IMPRESSION: 8 mm right upper lobe nodule, stable. Lung-RADS 2. "
"Recommend annual low-dose CT screening."
)
# 1) De-identify the report on-device first (synthetic example shown).
deid = openmed.deidentify(report, policy="hipaa_safe_harbor")
text = deid.deidentified_text
# 2) Run NER for anatomy / finding / measurement spans.
ents = openmed.analyze_text(
text,
model_name="anatomy_detection_superclinical", # Anatomy category
output_format="dict",
)["entities"]
