In our institution, we make very limited use of BULKCOPY, but our experience has been that BULKCOPY indeed honors the field and segment lengths in the outbound HL7 variant, and will truncate the output values if the outbound lengths are less than the inbound ones.
We can easily verify this:
1. Create two HL7 variants, TestInbound (for input) and TestOutbound (for output)
2. In the TestOutbound variant, decrease the length of MSH.13 (Message Sequence Number, NM) and PID.19 (Social Security Number, ST) to 2 characters total each.
3. Create a test Xlate based on these two variants, with “BULKCOPY” as the only action.
4. Run any HL7 message through the Xlate.
Result:
1. The Message Control Number in the output is truncated to 2 chars and Cloverleaf issues the warning message “Insufficient room for integer part of numeric value…”
2. The SSN number in the output is also truncated to 2 chars.
A similar outcome occurs if a segment in the outbound variant has less fields than the corresponding segment in the inbound variant; fields will be dropped in the output.
The documentation is not clear, but people need to be aware of these caveats when using BULKCOPY.