Yes, this is pretty straightforward. When you configure the translation, if you use the same or identical HL7 variants for source and target that really simplifies things.
First do a BULKCOPY to move the entire message from source to target, then using and IF to correct the address.
We’ll have an IF to test if PID-11(0) eq @null. If this is the case you’ll need a field level ITERATE to COPY GT1-5(%f1) to PID-11(%f1). %f1 is the iteration variable that will count through the subcomponents.
There may be other methods, but if this is your first translate, this should be simple enough to get up and running.