in src/dicomwrapper.py [0:0]
def transform(self, name, img):
# Full list of keywords https://github.com/pydicom/pydicom/blob/master/pydicom/_dicom_dict.py
log.debug(f'Flattening {name} to dataset')
element = {}
for elem in img:
try:
if elem.keyword and not elem.is_empty:
elem_val = self.eval_vr_value(elem)
element[elem.keyword] = elem_val
log.debug(f'Adding tag {elem.keyword}: "{elem_val}" VR: {elem.VR}')
else:
log.info(f'Ignore Tag: {elem.tag} VR: {elem.VR}')
except Exception as e:
log.error(f'Unable to process {name}, invalid tag keyword')
log.error(f'Dump Invalid Elem tag: "{elem.tag}" VR: "{elem.VR}" name: "{elem.name}" keyword: "{elem.keyword}" value: {elem.repval}')
log.error(e)
raise
element['SOURCE_S3_BUCKET'] = self.source_s3_bucket
element['SOURCE_S3_REGION'] = self.source_s3_bucket_region
element['SOURCE_S3_KEY'] = self.source_s3_key
element['SOURCE_S3_ARCHIVE_PATH'] = name
# Convert snake_case to CamelCase before checking
cc_PARITION_COL = self.convert_cc(PARTITION_COL)
if cc_PARITION_COL not in element:
log.info(f'Missing {PARTITION_COL} adding value')
element[cc_PARITION_COL] = datetime.datetime.fromisoformat('1979-01-01').date()
return element