find + bash solution:
find . -type f -regextype posix-egrep \
-regex ".*EN(ACT|CD)_[0-9]+_E(-|_)DM_CCA_.+[0-9]\.(txt|csv)$" -exec bash -c \
'fn=${0##*/}; dir_n="${0%/*}/";
[[ "$fn" =~ .*_(ID[^_]+)_.*\.(txt|csv)$ ]];
mv "$0" "$dir_n${BASH_REMATCH[1],,}.${BASH_REMATCH[2]}"; ' {} \;