------------------------------------------------------------------------------
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
        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

MultiValue Tags
------------------------------------------------------------------------------
Some DICOM tags point to multiple values (i.e., MultiValue pydicom class). As of 
DVHA DICOM Editor v0.6, a new DICOM tag value can be interpreted as a list if it begins 
with [, ends with ], and uses ,  (comma-space) as a separator (this is the same 
format as python's str representation of a list). Each item of the list will be converted 
to the type provided by the user in the "Value Type" drop-down. Do not add single of double 
quotes to make an item a string.

------------------------------------------------------------------------------
EXAMPLE
------------------------------------------------------------------------------
The DICOM tag ImageOrientationPatient (0020, 0037) is a list of 6 integers. If you want 
this orientation to be head first-supine (HFS), it's value should be set to [1, 0, 0, 0, 1, 0]. 
The "Value Type" should be set to str since this tag's Value Representation (VR) is 
DecimalString (DS). 