| 1 | USRULST ; SLC/JER - List Class Membership by user       ;9/6/01  14:47 | 
|---|
| 2 | ;;1.0;AUTHORIZATION/SUBSCRIPTION;**2,3,4,9,10,16,17,21,22,28**;Jun 20, 1997 | 
|---|
| 3 | ; 30 Jun 00 MA - Added MAIN2 to prevent stack overflow | 
|---|
| 4 | ; 20 Sep 00 MA - Removed MAIN2 and added GETUSER and chg protocol to | 
|---|
| 5 | ; avoid looping through MAIN when doing a "CHANGE VIEW". | 
|---|
| 6 | ;  7 Aug 01 MA - Removed line "S USRDUZ=+Y" from line tag GETUSER() | 
|---|
| 7 | ;  6 Sep 01 MA - Added line "I +Y>0 S USRDUZ=Y" in GETUSER | 
|---|
| 8 | ;  to avoid adding USER Classes to the wrong person. | 
|---|
| 9 | MAIN ; Control Branching | 
|---|
| 10 | N DIC,X,Y,USRDUZ | 
|---|
| 11 | S DIC=200,DIC(0)="AEMQ",DIC("A")="Select USER: " | 
|---|
| 12 | D ^DIC Q:+Y'>0 | 
|---|
| 13 | S USRDUZ=+Y | 
|---|
| 14 | D EN^VALM(USRLTMPL) | 
|---|
| 15 | Q | 
|---|
| 16 | GETUSER() ; Get a new user | 
|---|
| 17 | N DIC,X,Y | 
|---|
| 18 | S DIC=200,DIC(0)="AEMQ",DIC("A")="Select USER: " | 
|---|
| 19 | D ^DIC     ; If Y is not set then will use current USRDUZ | 
|---|
| 20 | I +Y>0 S USRDUZ=+Y | 
|---|
| 21 | Q USRDUZ | 
|---|
| 22 | MAKELIST ; Build review screen list | 
|---|
| 23 | W !,"Searching for the User Classes." | 
|---|
| 24 | D BUILD(USRDUZ) | 
|---|
| 25 | Q | 
|---|
| 26 | BUILD(USRDUZ) ; Build List | 
|---|
| 27 | ; DBIA 872 ^ORD(101) | 
|---|
| 28 | N USRCNT,USRNAME,USRPICK | 
|---|
| 29 | S (USRCNT,VALMCNT)=0 | 
|---|
| 30 | S USRPICK=+$O(^ORD(101,"B","USR ACTION SELECT LIST ELEMENT",0)) | 
|---|
| 31 | K ^TMP("USRUSER",$J),^TMP("USRUSERIDX",$J),^TMP("USRU",$J) | 
|---|
| 32 | D WHATIS^USRLM(USRDUZ,"^TMP(""USRU"",$J)") | 
|---|
| 33 | S USRNAME="" | 
|---|
| 34 | F  S USRNAME=$O(^TMP("USRU",$J,USRNAME),-1) Q:USRNAME=""  Q:USRNAME=0  D | 
|---|
| 35 | . N USRDA,USREFF,USREXP,USRMEM,USRREC,USRCLNM | 
|---|
| 36 | . S USRMEM=$G(^TMP("USRU",$J,USRNAME)) | 
|---|
| 37 | . S USRDA=+$P(USRMEM,U,2) | 
|---|
| 38 | . S USRCLNM=$P(USRMEM,U,3) | 
|---|
| 39 | . S USREFF=$$DATE^USRLS(+$P(USRMEM,U,4),"MM/DD/YY") | 
|---|
| 40 | . S USREXP=$$DATE^USRLS(+$P(USRMEM,U,5),"MM/DD/YY") | 
|---|
| 41 | . S USRCNT=+$G(USRCNT)+1 | 
|---|
| 42 | . S USRREC=$$SETFLD^VALM1(USRCNT,"","NUMBER") | 
|---|
| 43 | . S USRREC=$$SETFLD^VALM1(USRCLNM,USRREC,"CLASS") | 
|---|
| 44 | . S USRREC=$$SETFLD^VALM1(USREFF,USRREC,"EFFECTIVE") | 
|---|
| 45 | . S USRREC=$$SETFLD^VALM1(USREXP,USRREC,"EXPIRES") | 
|---|
| 46 | . S VALMCNT=+$G(VALMCNT)+1 | 
|---|
| 47 | . S ^TMP("USRUSER",$J,VALMCNT,0)=USRREC | 
|---|
| 48 | . S ^TMP("USRUSER",$J,"IDX",VALMCNT,USRCNT)="" | 
|---|
| 49 | . S ^TMP("USRUSERIDX",$J,USRCNT)=VALMCNT_U_USRDA W:VALMCNT#10'>0 "." | 
|---|
| 50 | S ^TMP("USRUSER",$J,0)=+$G(USRCNT)_U_$P(^TMP("USRU",$J,0),U,2) | 
|---|
| 51 | S ^TMP("USRUSER",$J,"#")=USRPICK_"^0:"_+$G(USRCNT) | 
|---|
| 52 | I $D(VALMHDR)>9 D HDR | 
|---|
| 53 | I +$G(USRCNT)'>0 D | 
|---|
| 54 | . S ^TMP("USRUSER",$J,1,0)="",VALMCNT=2 | 
|---|
| 55 | . S ^TMP("USRUSER",$J,2,0)="No Class Memberships found for "_$P(^TMP("USRU",$J,0),U,2) | 
|---|
| 56 | Q | 
|---|
| 57 | HDR ; Initialize header for review screen | 
|---|
| 58 | N BY,USRX,USRCNT,TITLE,USRNAME | 
|---|
| 59 | S USRX=$G(^TMP("USRUSER",$J,0)),USRNAME=$P(USRX,U,2) | 
|---|
| 60 | S TITLE=USRNAME | 
|---|
| 61 | I USRNAME["?SBPN" D | 
|---|
| 62 | . S VALMSG="(?SBPN) missing SIGNATURE BLOCK PRINTED NAME" | 
|---|
| 63 | ;If this user has been terminated change the title to reflect this. | 
|---|
| 64 | I $$ISTERM^USRLM(USRDUZ) S TITLE=TITLE_" (terminated)" | 
|---|
| 65 | S USRCNT=$J(+USRX,4)_" Class"_$S(+USRX=1:"",1:"es") | 
|---|
| 66 | S VALMHDR(1)=$$CENTER^USRLS(TITLE) | 
|---|
| 67 | S VALMHDR(1)=$$SETSTR^VALM1(USRCNT,VALMHDR(1),(IOM-$L(USRCNT)),$L(USRCNT)) | 
|---|
| 68 | Q | 
|---|
| 69 | CLEAN ; "Joel...Clean up your mess!" | 
|---|
| 70 | K ^TMP("USRUSER",$J),^TMP("USRUSERIDX",$J),^TMP("USRU",$J) | 
|---|
| 71 | Q | 
|---|