If only one of the two fields should ever contain data then you would handle it this way:
On DIAGNOSTIC_ROUTE, use validation by calculation of: IsEmpty ( REFERRAL_SOURCE ). Do the same on the other, referring to DIAGNOSTIC_ROUTE. Decide how strict you must be (whether to allow override) and supply a validation message.
I would prefer validating both fields by =
IsEmpty ( REFERRAL_SOURCE ) or IsEmpty ( DIAGNOSTIC_ROUTE )
Why? Consider a (committed) record with data in REFERRAL_SOURCE. User opens the record, clears the contents of REFERRAL_SOURCE and - without committing - enters something into DIAGNOSTIC_ROUTE.
Result: on committing the record, validation kicks in - because REFERRAL_SOURCE was modified and DIAGNOSTIC_ROUTE is not empty.
Thanks, that is exactly the solution needed!
Comment: Great catch! I totally agree!