Ok, thanks for that explanation.  I knew my solution might not address the question; however I was thinking the may be a solution utilizing the Rules Editor making this much less complex?  What about using Contains " [ " instead of " = " and not explicit reference to iterations?  

i.e. If(HL7.{PID:PatientIdentifierList().IDNumber} [ HL7.{MRG:PriorPatientIdentifierList().IDNumber},1,o)

Again, I haven't tested, but it saves ( compiles ? ) without error.  Not sure if empty parenthesis would work here, or if there is another way to indicate all iterations, and then perhaps the first one could be more explicit (1) ... just thought I would take a stab at this and see if it would be feasible... 

I am not sure if this address the question or not; however, I was able to build the following in the Rules Editor and save, have not tested it though.

I tried to do a screen capture of this in the editor... could not display/paste here even after installing two Chrome Plugins... anyways, here's the "code" 

when condition="If(HL7.{PID:PatientIdentifierList(1).IDNumber}=HL7.{MRG:PriorPatientIdentifierList(1).IDNumber},1,o)">
<return></return>
</when>

 

I hope this helps? 

( the last two parameters are "optional" )

Is there anything you could show us, or know of, utilizing other alerting methods of notification? i.e. POST to a URL? Examples? Also I would like to know more about Alert Groups, Managing Alert Groups, the Ens.Alerting.AlertManager and Ens.Alerting.NotificationManager... how to use, and make the best use of? I am following through some of the Demo's / Sample that InterSystems has in their documentation, i.e. "Creating a Complex Message Body Class", and would love to get some training in the development of these types of classes, methods, services, and the underlying configuration(s) necessary.... looking forward to FHIR too! Thanks again for this excellent presentation!