Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: RGUTUSR

RGUTUSR.m

Go to the documentation of this file.
  1. RGUTUSR ;CAIRO/DKM - Parse recipient list;04-Sep-1998 11:26;DKM
  1. ;;2.1;RUN TIME LIBRARY;;Mar 22, 1999
  1. ;=================================================================
  1. ; Takes a list of recipients (which may be DUZ #'s, names,
  1. ; mail groups, or special tokens) as input and produces an
  1. ; array of DUZ's as output. If a list element is found in
  1. ; in the token list RGLST, the value of the token entry will
  1. ; be substituted.
  1. ; Inputs:
  1. ; RGUSR = Semicolon-delimited list of recipients
  1. ; RGLST = Special token list
  1. ; Outputs:
  1. ; RGOUT = Local array to receive DUZ list
  1. ;=================================================================
  1. ENTRY(RGUSR,RGOUT,RGLST) ;
  1. N RGZ,RGZ1,RGZ2
  1. K RGOUT
  1. F RGZ=1:1:$L(RGUSR,";") S RGZ1=$P(RGUSR,";",RGZ) D:RGZ1'="" S:RGZ1 RGOUT(+RGZ1)=""
  1. .S:$D(RGLST(RGZ1)) RGZ1=RGLST(RGZ1)
  1. .Q:RGZ1?.N
  1. .I RGZ1?1"-"1.N D MGRP(-RGZ1) S RGZ1=0 Q
  1. .S RGZ2=$E(RGZ1,1,2)
  1. .I RGZ2="G." D MGRP($E(RGZ1,3,999)) Q
  1. .I RGZ2="L." D LIST($E(RGZ1,3,999)) Q
  1. .S RGZ1=$$LKP(RGZ1)
  1. Q
  1. LKP(RGNAME) ;
  1. N RGZ,RGZ1
  1. I $D(^VA(200,"B",RGNAME)) S RGZ=RGNAME G L1
  1. S RGZ=$O(^(RGNAME)),RGZ1=$O(^(RGZ))
  1. Q:(RGZ="")!(RGNAME'=$E(RGZ,1,$L(RGNAME))) 0
  1. Q:(RGZ1'="")&(RGNAME=$E(RGZ1,1,$L(RGNAME))) 0
  1. L1 S RGZ1=$O(^(RGZ,0)),RGZ=$O(^(RGZ1))
  1. Q:'RGZ1!RGZ 0
  1. Q RGZ1
  1. LIST(RGLIST) ;
  1. Q:RGLIST=""
  1. S:RGLIST'=+RGLIST RGLIST=+$O(^RGCDSS(993.6,"B",RGLIST,0))
  1. S @$$TRAP^RGZOSF("LERR^RGUTUSR")
  1. X:$D(^RGCDSS(993.6,RGLIST,1)) ^(1)
  1. LERR Q
  1. MGRP(RGMGRP) ;
  1. N RGX
  1. S RGX(0)=""
  1. D MGRP2(RGMGRP)
  1. Q
  1. MGRP2(RGMGRP) ;
  1. N RGZ,RGZ1
  1. Q:RGMGRP=""
  1. S:RGMGRP'=+RGMGRP RGMGRP=+$O(^XMB(3.8,"B",RGMGRP,0))
  1. Q:$D(RGX(RGMGRP))
  1. S RGX(RGMGRP)=""
  1. F RGZ=0:0 S RGZ=+$O(^XMB(3.8,RGMGRP,1,RGZ)) Q:'RGZ S RGOUT(+^(RGZ,0))=""
  1. F RGZ=0:0 S RGZ=+$O(^XMB(3.8,RGMGRP,5,RGZ)) Q:'RGZ D MGRP2(^(RGZ,0))
  1. Q