dicomtk is a self-contained, tidyverse-compliant R
interface to the OFFIS DICOM Toolkit (DCMTK 3.7.1) with
native C++17 / Rcpp bindings, ggplot2 /
Shiny / 3D volume visualization, PACS networking, and
local/cloud LLM integration (Ollama, OpenAI,
Anthropic Claude).
dcm_file <- system.file("extdata", "example.dcm", package = "dicomtk")
# Long tidy tibble of DICOM elements
hdr <- read_dicom(dcm_file)
hdr |>
filter(group %in% c("0008", "0028")) |>
select(tag, vr, keyword, name, value) |>
head(10)
#> # A tibble: 10 × 5
#> tag vr keyword name value
#> <chr> <chr> <chr> <chr> <chr>
#> 1 (0008,0005) CS SpecificCharacterSet Specific Character Set "ISO_IR 100"
#> 2 (0008,0008) CS ImageType Image Type "ORIGINAL\\PRI…
#> 3 (0008,0012) DA InstanceCreationDate Instance Creation Date "20010101"
#> 4 (0008,0013) TM InstanceCreationTime Instance Creation Time "002816"
#> 5 (0008,0014) UI InstanceCreatorUID Instance Creator UID "1.3.6.1.4.1.5…
#> 6 (0008,0016) UI SOPClassUID SOP Class UID "1.2.840.10008…
#> 7 (0008,0018) UI SOPInstanceUID SOP Instance UID "1.3.6.1.4.1.5…
#> 8 (0008,0020) DA StudyDate Study Date "20010101"
#> 9 (0008,0021) DA SeriesDate Series Date "20010101"
#> 10 (0008,0022) DA AcquisitionDate Acquisition Date "20010101"
# Wide format (1 row per file, columns named by DICOM keyword)
read_dicom(dcm_file, wide = TRUE) |>
select(any_of(c("file", "Modality", "Rows", "Columns", "BitsAllocated")))
#> # A tibble: 1 × 5
#> file Modality Rows Columns BitsAllocated
#> <chr> <chr> <chr> <chr> <chr>
#> 1 /tmp/RtmpsZjcyy/Rinsteb7c77406f/dicomtk/… CT 512 512 16ggplot2, Clinical Windows,
and 3D MPR/MIP)# Configure local Ollama or OpenAI/Anthropic provider
# ollama_llm <- dicom_llm("ollama", model = "llava:13b")
# openai_llm <- dicom_llm("openai", model = "gpt-4o")
# claude_llm <- dicom_llm("anthropic", model = "claude-sonnet-4-20250514")
# Deterministic local mode for offline reproducibility
local_ai <- dicom_llm("offline")
dicom_summarize(dcm_file, llm = local_ai)
#> [1] "DICOM Study Summary: CT imaging study (General Study) acquired on GE MEDICAL SYSTEMS system. Series: SmartScore - Gated 0.5 sec (Body Part: Not specified). Image Matrix: 512 x 512 pixels (16-bit MONOCHROME2)."
dicom_report(dcm_file, llm = local_ai)
#> # A tibble: 4 × 2
#> section content
#> <chr> <chr>
#> 1 EXAMINATION CT - - SmartScore - Gated 0.5 sec
#> 2 TECHNIQUE DICOM Study Summary: CT imaging study (General Study) acquired on…
#> 3 FINDINGS DICOM Image Analysis (CT, 512x512, Photometric: MONOCHROME2): Res…
#> 4 IMPRESSION Automated quantitative and metadata review completed. Correlate c…