| 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
 | 
|---|