Could you add a second load to get the result you want?
First load up everything, including the ApplyMap on your first load (skip the Mid portion for now). Rename the field with the ApplyMap() to StrUnstr or something like that.
if(mid(Opics,6,2)<>'AL','Unstructured',StrUnstr) as [Structured or Unstructured]
DROP FIELD StrUnstr;
In place of Dimensions, add any fields that are necessary to define the key in the main table. Doing it this way, you first load the appropriate ApplyMap values and then on the second run, you choose whether or not to use that value. Since the table is already in memory, it shouldn't slow you down too much.