Чтение и анализ многих файлов DICOM параллельно с использованием dyplr и oro.dicom
У меня есть датафрейм, содержащий 1065 наблюдений путей к файлам DICOM. Я хочу прочитать каждый из файлов, чтобы иметь возможность анализировать определенные значения из метаданных. Поскольку файлов много, я хочу читать их параллельно. Кажется, у меня есть все компоненты (см. Ниже), но я не могу связать их все в единый конвейер.
Чтобы прочитать отдельный файл DICOM, возьмите его заголовки (prop->value) и извлеките определенное значение (используя oro.dicom
упаковка):
x <- readDICOMFile(path)
x$hdr$value[52]
Чтобы импортировать все заголовки:
parseDICOMHeadersAt <- function(path) { readDICOMFile(path)$hdr$value }
headers <- mclapply(rawdata$path, parseDICOMHeadersAt)
Но я не могу добиться прогресса в том, чтобы собрать все воедино (ниже не работает):
rawdata <- read_csv(DATASET_FILE_FULL) %>%
select(PATH) %>%
rename(path = PATH)
headers <- mclapply(rawdata$path, parseDICOMHeadersAt)
headers_tib <- tibble(headers)
...
Я хотел бы иметь возможность сделать что-то вроде:
rawdata <- read_csv(DATASET_FILE_FULL) %>%
select(PATH) %>%
rename(path = PATH) %>%
mutate(headers = ...,
sex = map(headers[52]),
age = map(headers[53]))