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

BGUPMR.m

Go to the documentation of this file.
BGUPMR ; IHS/OIT/MJL - PRINT MUMPS ROUTINES ; 
 ;;1.5;BGU;**1**;SEP 26, 2005
EN(BGUARRAY,BGURTN) ;PEP FROM REMOTE PROCEDURE BGU PMR
CTL ;
 S BGUARRAY="^TMP(""BGUPMR"","_$J_")"
 I '$D(BGUSEL) K ^TMP("BGURTNS",$J) Q
 I '$D(^TMP("BGURTNS",$J,0)) D UCI^%ZOSV S ^TMP("BGURTNS",$J,0)=Y_U D NOW^%DTC S Y=% X ^DD("DD") S ^TMP("BGURTNS",$J,0)=^TMP("BGURTNS",$J,0)_$P(Y,"@",1)_U_$P(Y,"@",2)
 S BGURTN=$O(^TMP("BGURTNS",$J,1,0)) I BGURTN="" S BGULCNT=1 D PMRDONE Q
 K ^TMP("BGUPMR",$J)
 S BGULCNT=1,^TMP("BGUPMR",$J,BGULCNT)=BGURTN_U_^TMP("BGURTNS",$J,0)
 F BGULN=1:1 S BGUX=$T(+BGULN^@BGURTN) Q:BGUX=""  S BGULCNT=BGULCNT+1,^TMP("BGUPMR",$J,BGULCNT)=BGUX
 S ^TMP("BGUPMR",$J,0)=BGULCNT
 K ^TMP("BGURTNS",$J,1,BGURTN)
 I $O(^TMP("BGURTNS",$J,1,0))="" S BGULCNT=BGULCNT+1 D PMRDONE
 Q
 ;
SEL(BGUARRAY,BGURTN) ;
 I '$D(BGUSEL) S BGUSEL=1 K ^TMP("BGURTNS",$J)
 S BGUARRAY="^TMP(""BGURTNS"","_$J_",2)",BGUCNT=+$G(^TMP("BGURTNS",$J,1,0))
 S BGUADD=1 S:$E(BGURTN)="-" BGUADD=0,BGURTN=$P(BGURTN,"-",2)
 I BGURTN["*" S BGUR=BGURTN D WILDSCN,SELDONE Q
 S X=BGURTN X ^%ZOSF("TEST") I $T S BGUMRT=BGURTN D MATCH,SELDONE
 Q
 ;
WILDSCN ;
 S BGURTNG=U_$P($P(^%ZOSF("TEST"),U,2),"(")
 I BGUR="*" D  Q
 .S BGUMRT="" F  S BGUMRT=$O(@(BGURTNG_"("""_BGUMRT_""")")) Q:BGUMRT=""  D MATCH
 S BGUPMCK=""  F BGUN=1:1:$L(BGUR,"*") S BGUX=$P(BGUR,"*",BGUN) S:BGUN>1 BGUPMCK=BGUPMCK_".E" S:BGUX'="" BGUPMCK=BGUPMCK_"1"""_BGUX_""""
 I $E(BGUR,1)="*" D  Q
 .S BGUMRT="" F  S BGUMRT=$O(@(BGURTNG_"("""_BGUMRT_""")")) Q:BGUMRT=""  D:BGUMRT?@BGUPMCK MATCH
 S BGUX=$P(BGUR,"*",1),BGULX=$L(BGUX),BGUST=BGUX,$E(BGUST,BGULX)=$C($A($E(BGUX,BGULX))-1)_"~"
 S BGUMRT=BGUST F  S BGUMRT=$O(@(BGURTNG_"("""_BGUMRT_""")")) Q:$E(BGUMRT,1,BGULX)'=BGUX  D:BGUMRT?@BGUPMCK MATCH
 Q
 ;
MATCH ;
 I BGUADD S:'$D(^TMP("BGURTNS",$J,1,BGUMRT)) ^(BGUMRT)=BGUMRT,BGUCNT=BGUCNT+1 Q
 I $D(^TMP("BGURTNS",$J,1,BGUMRT)) K ^(BGUMRT) S BGUCNT=BGUCNT-1
 Q
 ;
PMRDONE ;
 S ^TMP("BGUPMR",$J,0)=BGULCNT,^(BGULCNT)="***DONE***"
 ;K BGULCNT,BGULN,BGUN,BGURTN,BGUX,^TMP("BGURTNS",$J)
 K BGUCNT,BGULCNT,BGULX,BGUMRT,BGUPMCK,BGUR,BGURTN,BGUST,BGUX,^TMP("BGURTNS",$J)
 Q
SELDONE ;
 S ^TMP("BGURTNS",$J,1,0)=BGUCNT
 K ^TMP("BGURTNS",$J,2)
 M ^TMP("BGURTNS",$J,2)=^TMP("BGURTNS",$J,1)
 K BGUCNT,BGULN,BGUN,BGURTN,BGUX
 K BGUADD,BGUCNT,BGULCNT,BGULX,BGUMRT,BGUPMCK,BGUR,BGURTN,BGURTNG,BGUST,BGUX
 Q