We do indeed have this in the Expression Language:
- attached predicate (null checking)
- defined predicate - check if tracked subject variable has any data from retrieval
(Still messing around with the syntax of these, but they are both in the meta-model).
For the syntax, I think it is better to be able to use ‘=’ to mean equality checking as in mathematics - this is more domain friendly. Programmer stuff like ‘==’ and ‘===’, ‘~=’ etc won’t make sense to domain experts. So writing a = b + c is an assertion, so it really should be something like assert a = b + c. To actually write the value b+c into the field a would require an assignment for which I used the common symbol :=. Other symbols like <- (F#, a few other languages) are nicer mathematically, but possibly too obscure for domain experts.
I have not looked at any FHIR profile rules - got a link to an example?