Would be good to document findings about how effective study roles are calculated as it is not straightforward (effective role in child is calculated from assigned role in parent and assigned role in child and the maximum role is the effective one). It may be relevant for further refactoring of this part of code base. Document the role enum and role name mapping from term.properties, also the extra if condition that patches the mapping of new role name to internal enum value. Role names in term.properties should not be changed as the application logic depends on those values.
Would be good to document findings about how effective study roles are calculated as it is not straightforward (effective role in child is calculated from assigned role in parent and assigned role in child and the maximum role is the effective one). It may be relevant for further refactoring of this part of code base. Document the role enum and role name mapping from term.properties, also the extra if condition that patches the mapping of new role name to internal enum value. Role names in term.properties should not be changed as the application logic depends on those values.