pydicom / deid

best effort anonymization for medical images using python
https://pydicom.github.io/deid/
MIT License
140 stars 43 forks source link

fixing bug with argument specification for function #133

Closed vsoch closed 4 years ago

vsoch commented 4 years ago

Signed-off-by: vsoch vsochat@stanford.edu

Description

Fixes an issue that arguments for custom functions are not provided as kwargs. This will close #132.

vsoch commented 4 years ago

okay here is the updated example

from deid.config import DeidRecipe 
from deid.dicom import get_files 
from deid.data import get_dataset 
from pathlib import Path 

def pusheenize(item, value, field, dicom): 
    field = field.element.keyword 
    value = dicom.get(field, '') 
    if "Name" in field: 
        value = "Pusheena" + str(value).replace(' ', '') 
    return value 

 recipe = DeidRecipe('deid.dicom') 
 dicom_files = list(get_files(get_dataset('dicom-cookies'))) 

from deid.dicom import get_identifiers 
items = get_identifiers(dicom_files) 
updated_items = dict() 
for key, item in items.items(): 
    updated_items[key] = item 
    updated_items[key]['pusheenize'] = pusheenize 

from deid.dicom import replace_identifiers 
cleaned_files = replace_identifiers(dicom_files=dicom_files, deid=recipe, ids=updated_items) 

where deid.dicom is

FORMAT dicom

%header

REPLACE all func:pusheenize