------------------------------------------------------------------------------
Dynamic Value Setting
------------------------------------------------------------------------------
Users can dynamically define new DICOM tag values based on file path or initial DICOM tag values.

------------------------------------------------------------------------------
AVAILABLE FUNCTIONS
------------------------------------------------------------------------------
File path / Tag Value:
        file[n]: the nth component of the file path
        val: DICOM tag value
Enumeration:
        fenum[n]: an iterator based on file[n]
        venum: an iterator based on val 
DICOM UID
        fuid[n] and vuid: same as fenum/venum, except the enumeration value is replaced with a 
        DICOM compliant UID
Random Number (w/ secret.randbelow)
        frand[n] and vrand: same as DICOM UID functions except the value is a random integer

------------------------------------------------------------------------------
EXAMPLES
------------------------------------------------------------------------------
For a directory /some/file/path/ANON0001/ containing files file_1.dcm, file_2.dcm:
Directory:
        NOTE: file extensions are removed
        some_string_*file[-1]*
                some_string_file_1
                some_string_file_2
        *file[-2]*_AnotherString
                ANON0001_AnotherString
                ANON0001_AnotherString
File Enumeration:
        some_string_*fenum[-1]*
                some_string_1
                some_string_2
        *fenum[-2]*_AnotherString
                1_AnotherString
                1_AnotherString
Value Enumeration:
        NOTE: Assume these two files have the same StudyInstanceUID but different SOPInstanceUIDs
        *file[-2]*_*venum* used with SOPInstanceUID tag
                ANON0001_1
                ANON0001_2
        *file[-2]*_*venum* used with StudyInstanceUID tag
                ANON0001_1
                ANON0001_1