Rule logic
In an HL7 Business rule I am trying to block ONLY ORM messages that have a PV1:3.4 of 105 or 205 and a OBR:4 value of EP22 or CATH01.
I created the logic below but it appears to be evaluating the two fields independently instead of combined?
Here is what I had.
(((HL7.{MSH:SendingApplication.NamespaceID}="Epic_Cupid")&&(HL7.{ORCgrp(1).ORC:OrderControl} IN "NW,CA")))&&(((HL7.{PIDgrp.PV1grp.PV1:AssignedPatientLocation(1).Facility.NamespaceID} NotIn "105,205")&&(HL7.{ORCgrp(1).OBRuniongrp.OBRunion.OBR:UniversalServiceIdentifier.Identifier} NotIn "CATH01,EP22")))
I ended up getting it to work evaluating PV1:3.4 with OBR4.3: together using a single & instead of the AND (&&) operator. Trying to understand why it works this way.
((HL7.{PIDgrp.PV1grp.PV1:AssignedPatientLocation(1).Facility.NamespaceID} NotIn "105,205")&(HL7.{ORCgrp(1).OBRuniongrp.OBRunion.OBR:UniversalServiceIdentifier.Identifier} NotIn "CATH01,EP22"))&&(HL7.{ORCgrp(1).ORC:OrderControl} IN "NW,CA")
What is the difference between & and the AND operator in Rule Editor?
Hi John the diference between the operators &, && are
https://docs.intersystems.com/iris20231/csp/docbook/DocBook.UI.Page.cls?KEY=GCOS_operators#GCOS_operators_logicalcomp_list
Try to eclousere all expression in parentehsis:
(
(
(
(
HL7.{MSH:SendingApplication.NamespaceID}="Epic_Cupid"
)
&&
(
HL7.{ORCgrp(1).ORC:OrderControl} IN "NW,CA"
)
)
)
&&
(
(
(
HL7.{PIDgrp.PV1grp.PV1:AssignedPatientLocation(1).Facility.NamespaceID} NotIn "105,205"
)
&&
(
HL7.{ORCgrp(1).OBRuniongrp.OBRunion.OBR:UniversalServiceIdentifier.Identifier} NotIn "CATH01,EP22"
)
)
)
)
The operator & in Business Rule e Editor is string concatenation operator. Take care.
https://docs.intersystems.com/iris20231/csp/docbook/DocBook.UI.Page.cls?KEY=EBUS_rule#EBUS_ruleset_editor_expression_operators