RSNA 2023 Abdominal Trauma¶
Modality: CT | Format: DICOM | Dim: 3D | Labels: 14 injury labels
Overview¶
RSNA 2023 Abdominal Trauma Detection is a Kaggle challenge dataset of 4,711 abdominal CT series from 3,147 patients (mean ~1.5 series per patient). Each series is a DICOM directory loaded as a 3-D volume. Fourteen binary labels cover bowel and extravasation injury (binary) plus kidney, liver, and spleen severity (3-class one-hot per organ) and an overall any_injury flag.
Patient-level labels are replicated across all series belonging to the same patient, matching the challenge framing ("predict patient-level injury from any of the patient's series").
Download¶
Available at Kaggle — RSNA 2023 Abdominal Trauma Detection.
Expected layout¶
rsna-2023-abdominal-trauma-detection/
train_2024.csv
train_series_meta.csv
train_images/
<patient_id>/
<series_id>/
<instance_number>.dcm
...
Label columns¶
| Column | Description |
|---|---|
any_injury |
Any abdominal injury present |
bowel_healthy |
Bowel healthy |
bowel_injury |
Bowel injury |
extravasation_healthy |
No active extravasation |
extravasation_injury |
Active extravasation |
kidney_healthy |
Kidney healthy |
kidney_high |
Kidney high-grade injury |
kidney_low |
Kidney low-grade injury |
liver_healthy |
Liver healthy |
liver_high |
Liver high-grade injury |
liver_low |
Liver low-grade injury |
spleen_healthy |
Spleen healthy |
spleen_high |
Spleen high-grade injury |
spleen_low |
Spleen low-grade injury |
The cls tensor has 14 values in alphabetical order.
Constructor arguments¶
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
base_image_dir |
str |
Yes* | None |
train_images/ (or test_images/ for the test split) — direct parent of <patient_id>/<series_id>/ DICOM dirs (e.g. ~/datasets/external/rsna-2023-abdominal-trauma-detection/train_images/) |
csv_path |
str |
No | auto | train_2024.csv; auto-discovered in parent of base_image_dir |
series_meta_csv_path |
str |
No | auto | train_series_meta.csv; auto-discovered |
hu_window |
tuple or None |
No | (-150, 250) |
HU clipping window (soft-tissue / contrast abdomen) |
Shared arguments (inherited from BaseRadiologicalDataset)¶
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
output_cls |
bool |
No | False |
Include "cls" in data dict |
output_mask |
bool |
No | False |
Not supported in this release; silently ignored |
output_report |
bool |
No | False |
Not supported; silently ignored |
output_bbox |
bool |
No | False |
Not supported in this release; silently ignored |
transform |
MONAI Compose | No | 3D pipeline | Custom MONAI transform |
cache_dir |
str |
No | "./cache" |
MONAI PersistentDataset cache; None disables caching |
dtype |
torch.dtype |
No | torch.bfloat16 |
Output tensor dtype; use torch.float32 on CPU |
harmonized_df |
pd.DataFrame |
No | None |
Pre-built harmonized DataFrame |
harmonizer |
harmonizer | No | None |
Pre-instantiated harmonizer |
harmonizer_path |
str |
No | None |
Path to saved harmonized CSV |
*base_image_dir can be omitted when harmonizer_path, harmonizer, or harmonized_df is provided.
Dataset constructor¶
from radharmony.dataset import RSNAAbdominalTrauma2023Dataset
ds = RSNAAbdominalTrauma2023Dataset(
base_image_dir="/data/rsna-2023-abdominal-trauma-detection/train_images/",
csv_path="/data/rsna-2023-abdominal-trauma-detection/train_2024.csv",
series_meta_csv_path="/data/rsna-2023-abdominal-trauma-detection/train_series_meta.csv",
output_cls=True,
hu_window=(-150, 250),
)
train_ds, val_ds = ds.get_datasets(n_splits=5)
There is no separate test-split dataset class — the competition test images have no public labels. To load test volumes for inference, point base_image_dir at test_images/ and omit csv_path.
Harmonizer¶
from radharmony.harmonizer import RSNAAbdominalTrauma2023Harmonizer
h = RSNAAbdominalTrauma2023Harmonizer(
csv_path="/data/rsna-2023-abdominal-trauma-detection/train_2024.csv",
series_meta_csv_path="/data/rsna-2023-abdominal-trauma-detection/train_series_meta.csv",
base_image_dir="/data/rsna-2023-abdominal-trauma-detection/train_images/",
)
df = h.harmonize()
print(df.columns.tolist())
df.to_csv("rsna_abdominal_trauma_harmonized.csv", index=False)
Load from saved harmonized CSV¶
import pandas as pd
from radharmony.dataset import RSNAAbdominalTrauma2023Dataset
ds = RSNAAbdominalTrauma2023Dataset(
base_image_dir="/data/rsna-2023-abdominal-trauma-detection/train_images/",
harmonized_df=pd.read_csv("rsna_abdominal_trauma_harmonized.csv"),
output_cls=True,
)
Harmonizer notes¶
- One row per series; patient-level labels from
train_2024.csvare joined onto each series bypatient_id - Series-level metadata
aortic_hu(contrast-phase indicator) andincomplete_organare carried through as extra columns in the harmonized DataFrame image_pathis<patient_id>/<series_id>(relative DICOM series directory); MONAI'sITKReaderassembles per-slice.dcmfiles into a 3-D volume- HU window
(-150, 250)covers soft-tissue / contrast-enhanced abdomen bowelandextravasationare binary (healthy vs. injury);kidney,liver,spleenuse 3-class one-hot columns- Organ segmentation masks and per-slice
Active_Extravasationpoint annotations exist in the release but are not wired into this harmonizer
Outputs¶
| Flag | Key | Shape | Notes |
|---|---|---|---|
output_cls=True |
"cls" |
(14,) |
Binary injury labels |
Example paths¶
| Role | Path |
|---|---|
base_image_dir (train) |
/path/to/rsna-2023-abdominal-trauma-detection/train_images/ |
base_image_dir (test) |
/path/to/rsna-2023-abdominal-trauma-detection/test_images/ |
csv_path (train_2024.csv) |
/path/to/rsna-2023-abdominal-trauma-detection/train_2024.csv |
series_meta_csv_path (train_series_meta.csv) |
/path/to/rsna-2023-abdominal-trauma-detection/train_series_meta.csv |
test series meta (test_series_meta.csv) |
/path/to/rsna-2023-abdominal-trauma-detection/test_series_meta.csv |
Only one dataset class: RSNAAbdominalTrauma2023Dataset (no separate Train/Test class).