| 1 | RGUTUSR ;CAIRO/DKM - Parse recipient list;04-Sep-1998 11:26;DKM | 
|---|
| 2 | ;;2.1;RUN TIME LIBRARY;;Mar 22, 1999 | 
|---|
| 3 | ;================================================================= | 
|---|
| 4 | ; Takes a list of recipients (which may be DUZ #'s, names, | 
|---|
| 5 | ; mail groups, or special tokens) as input and produces an | 
|---|
| 6 | ; array of DUZ's as output.  If a list element is found in | 
|---|
| 7 | ; in the token list RGLST, the value of the token entry will | 
|---|
| 8 | ; be substituted. | 
|---|
| 9 | ; Inputs: | 
|---|
| 10 | ;     RGUSR = Semicolon-delimited list of recipients | 
|---|
| 11 | ;     RGLST = Special token list | 
|---|
| 12 | ; Outputs: | 
|---|
| 13 | ;     RGOUT = Local array to receive DUZ list | 
|---|
| 14 | ;================================================================= | 
|---|
| 15 | ENTRY(RGUSR,RGOUT,RGLST) ; | 
|---|
| 16 | N RGZ,RGZ1,RGZ2 | 
|---|
| 17 | K RGOUT | 
|---|
| 18 | F RGZ=1:1:$L(RGUSR,";") S RGZ1=$P(RGUSR,";",RGZ) D:RGZ1'=""  S:RGZ1 RGOUT(+RGZ1)="" | 
|---|
| 19 | .S:$D(RGLST(RGZ1)) RGZ1=RGLST(RGZ1) | 
|---|
| 20 | .Q:RGZ1?.N | 
|---|
| 21 | .I RGZ1?1"-"1.N D MGRP(-RGZ1) S RGZ1=0 Q | 
|---|
| 22 | .S RGZ2=$E(RGZ1,1,2) | 
|---|
| 23 | .I RGZ2="G." D MGRP($E(RGZ1,3,999)) Q | 
|---|
| 24 | .I RGZ2="L." D LIST($E(RGZ1,3,999)) Q | 
|---|
| 25 | .S RGZ1=$$LKP(RGZ1) | 
|---|
| 26 | Q | 
|---|
| 27 | LKP(RGNAME) ; | 
|---|
| 28 | N RGZ,RGZ1 | 
|---|
| 29 | I $D(^VA(200,"B",RGNAME)) S RGZ=RGNAME G L1 | 
|---|
| 30 | S RGZ=$O(^(RGNAME)),RGZ1=$O(^(RGZ)) | 
|---|
| 31 | Q:(RGZ="")!(RGNAME'=$E(RGZ,1,$L(RGNAME))) 0 | 
|---|
| 32 | Q:(RGZ1'="")&(RGNAME=$E(RGZ1,1,$L(RGNAME))) 0 | 
|---|
| 33 | L1 S RGZ1=$O(^(RGZ,0)),RGZ=$O(^(RGZ1)) | 
|---|
| 34 | Q:'RGZ1!RGZ 0 | 
|---|
| 35 | Q RGZ1 | 
|---|
| 36 | LIST(RGLIST) ; | 
|---|
| 37 | Q:RGLIST="" | 
|---|
| 38 | S:RGLIST'=+RGLIST RGLIST=+$O(^RGCDSS(993.6,"B",RGLIST,0)) | 
|---|
| 39 | S @$$TRAP^RGZOSF("LERR^RGUTUSR") | 
|---|
| 40 | X:$D(^RGCDSS(993.6,RGLIST,1)) ^(1) | 
|---|
| 41 | LERR Q | 
|---|
| 42 | MGRP(RGMGRP) ; | 
|---|
| 43 | N RGX | 
|---|
| 44 | S RGX(0)="" | 
|---|
| 45 | D MGRP2(RGMGRP) | 
|---|
| 46 | Q | 
|---|
| 47 | MGRP2(RGMGRP) ; | 
|---|
| 48 | N RGZ,RGZ1 | 
|---|
| 49 | Q:RGMGRP="" | 
|---|
| 50 | S:RGMGRP'=+RGMGRP RGMGRP=+$O(^XMB(3.8,"B",RGMGRP,0)) | 
|---|
| 51 | Q:$D(RGX(RGMGRP)) | 
|---|
| 52 | S RGX(RGMGRP)="" | 
|---|
| 53 | F RGZ=0:0 S RGZ=+$O(^XMB(3.8,RGMGRP,1,RGZ)) Q:'RGZ  S RGOUT(+^(RGZ,0))="" | 
|---|
| 54 | F RGZ=0:0 S RGZ=+$O(^XMB(3.8,RGMGRP,5,RGZ)) Q:'RGZ  D MGRP2(^(RGZ,0)) | 
|---|
| 55 | Q | 
|---|