The xlateInVals is going to be a list of the inputs. Each line is a separate list item. Since it’s one line, you’ll need to split it. If you’re confident it will always be two sets of strings with no additional spaces you can make that assumption, however, if they don’t do that (for whatever reason) it could cause problems. The simplest pre-proc is the following:
set xlateOutVals [split [lindex $xlateInVals 0] { }]
Then set your destination as you have above. lindex will remove the {}’s around your input. Split will split it into a list, on spaces. setting it to xlateOutVals will send it out.
This is because it is putting the input in a set of braces {} as there is a space to show it’s together. This creates a lot of potential issues, and this is not assuming any characters (braces, quotes, protected items \$, etc). There are ways to get around this, but if you trust your data that one line will do what you need. Adding additional spaces will throw this off.
For the other data, you should really have a descriptor in OBX-3 you can use to only do this to the specific data you want. OBX-3 should have something like GESTATIONAL_AGE, BIRTH_WEIGHT or some other moniker that you can use to make sure you’re only doing this to the birth weight. If they don’t that really complicates things and makes it a lot harder to do what you need to do (but it can be done).