| 1 | VAQREQ07 ;ALB/JFP - PDX, CREATE NOTIFY LIST, REQUEST SCREEN;01MAR93 | 
|---|
| 2 | ;;1.5;PATIENT DATA EXCHANGE;;NOV 17, 1993 | 
|---|
| 3 | EP ; -- Main entry point for the list processor | 
|---|
| 4 | ;    - Called from VAQREQ02 | 
|---|
| 5 | ; | 
|---|
| 6 | REQ ; -- Request users for notify list | 
|---|
| 7 | K ^TMP("VAQNOTI",$J) | 
|---|
| 8 | N POP,NOTIDA,NOTIUSER,DIRUT,DTOUT,DUOUT,D,J,L,N,X,Y | 
|---|
| 9 | ; | 
|---|
| 10 | F J=1:1 D ASKNOTI  I $D(DIRUT) D DBLCHK  Q:$D(DIRUT)!(POP) | 
|---|
| 11 | ; -- Cleanup and quit | 
|---|
| 12 | K POP,NOTIDA,NOTIUSER,DIRUT,DTOUT,DUOUT,D,J,L,N,X,Y | 
|---|
| 13 | K MAILDA,MAILNM | 
|---|
| 14 | QUIT | 
|---|
| 15 | ; | 
|---|
| 16 | DBLCHK ; -- Double check for exit | 
|---|
| 17 | Q:$D(DUOUT) | 
|---|
| 18 | S (VAQNOTI,POP)="0" | 
|---|
| 19 | I $D(^TMP("VAQNOTI",$J)) D DBL1 | 
|---|
| 20 | QUIT | 
|---|
| 21 | ; | 
|---|
| 22 | DBL1 ; | 
|---|
| 23 | W !! | 
|---|
| 24 | S DIR(0)="Y",DIR("B")="NO",DIR("A")="Include Data with Notification(s):" | 
|---|
| 25 | D ^DIR K DIR | 
|---|
| 26 | I Y=1 S VAQNOTI="1" | 
|---|
| 27 | W !! | 
|---|
| 28 | S DIR(0)="Y",DIR("B")="YES",DIR("A")="Exit Notify:" | 
|---|
| 29 | D ^DIR K DIR | 
|---|
| 30 | I Y=1 S POP=1 | 
|---|
| 31 | QUIT | 
|---|
| 32 | ; | 
|---|
| 33 | ASKNOTI ; -- Call to Dir to request notify list | 
|---|
| 34 | D:$D(^TMP("VAQNOTI",$J)) LISTD | 
|---|
| 35 | S POP=0 | 
|---|
| 36 | S DIR("A")="User to notify: " | 
|---|
| 37 | S DIR(0)="FAO^1:30" | 
|---|
| 38 | S DIR("?")="^D HLP1^VAQREQ07" | 
|---|
| 39 | S DIR("??")="^D HLP2^VAQREQ07" | 
|---|
| 40 | W ! D ^DIR K DIR  Q:$D(DIRUT) | 
|---|
| 41 | S X=Y | 
|---|
| 42 | I X="*L" D LISTD  Q:POP | 
|---|
| 43 | I $E(X,1,1)="-" D DELNOTI  Q:POP | 
|---|
| 44 | I $E(X,1,2)'="G." D NOTI Q:POP | 
|---|
| 45 | I $E(X,1,2)="G." D GNOTI  Q:POP | 
|---|
| 46 | QUIT | 
|---|
| 47 | ; | 
|---|
| 48 | NOTI ; -- Dic lookup to verify user in file 200 (new person) | 
|---|
| 49 | S DIC="^VA(200,",DIC(0)="EMQZ" | 
|---|
| 50 | D ^DIC K DIC I $D(DTOUT)!$D(DUOUT)!(Y<0) S POP=1  QUIT | 
|---|
| 51 | S NOTIDA=$P(Y,U,1),NOTIUSER=$P(Y,U,2),^TMP("VAQNOTI",$J,NOTIUSER)=NOTIDA | 
|---|
| 52 | QUIT | 
|---|
| 53 | ; | 
|---|
| 54 | GNOTI ; -- Dic lookup to verify mail group name in file XMB(3.8 | 
|---|
| 55 | S X=$P(X,".",2) ; -- strip off G. | 
|---|
| 56 | S DIC="^XMB(3.8," | 
|---|
| 57 | S DIC(0)="EMQZ" | 
|---|
| 58 | D ^DIC K DIC I $D(DTOUT)!$D(DUOUT)!(Y<0) S POP=1  QUIT | 
|---|
| 59 | S MAILDA=$P(Y,U,1) | 
|---|
| 60 | S MAILNM=$P(Y,U,2) | 
|---|
| 61 | D G1 | 
|---|
| 62 | QUIT | 
|---|
| 63 | ; | 
|---|
| 64 | G1 S NOTIDA="" | 
|---|
| 65 | N XMDUZ,XMCHAN,X,Y | 
|---|
| 66 | S XMDUZ=$G(DUZ),XMCHAN=1 | 
|---|
| 67 | S X="G."_MAILNM | 
|---|
| 68 | D WHO^XMA21 ; -- Mailman call to determine whos in group, sets XMY( | 
|---|
| 69 | F  S NOTIDA=$O(XMY(NOTIDA))  Q:'NOTIDA  D SETG | 
|---|
| 70 | QUIT | 
|---|
| 71 | ; | 
|---|
| 72 | SETG ; -- | 
|---|
| 73 | Q:NOTIDA'?1N.N | 
|---|
| 74 | S NOTIUSER=$P($G(^VA(200,NOTIDA,0)),U,1) | 
|---|
| 75 | S ^TMP("VAQNOTI",$J,NOTIUSER)=NOTIDA | 
|---|
| 76 | QUIT | 
|---|
| 77 | ; | 
|---|
| 78 | DELNOTI ; -- Deletes person from notify list | 
|---|
| 79 | S POP=1,X=$E(X,2,99) | 
|---|
| 80 | I X="" W "     ...No Entries Selected"  QUIT | 
|---|
| 81 | S X=$$PARTIC^VAQUTL94("^TMP(""VAQNOTI"","_$J_")",X) | 
|---|
| 82 | I X=-1 W "     ... Not Selected" QUIT | 
|---|
| 83 | I '$D(^TMP("VAQNOTI",$J,X)) W "     ... ",X," Not Selected"  QUIT | 
|---|
| 84 | K ^TMP("VAQNOTI",$J,X) W "     ... ",X," Deleted" | 
|---|
| 85 | QUIT | 
|---|
| 86 | ; | 
|---|
| 87 | HLP1 ; -- Display options for user to notify prompt | 
|---|
| 88 | W !!!,"Options for User to notify prompt:",! | 
|---|
| 89 | W !,"User to notify: users name        ; select user (new person)" | 
|---|
| 90 | W !,"User to notify: G.mail group      ; select mail group" | 
|---|
| 91 | W !,"User to notify: -users name       ; de-selects a user" | 
|---|
| 92 | W !,"User to notify: *L                ; list selected users" | 
|---|
| 93 | W !,"User to notify: ^                 ; terminates option" | 
|---|
| 94 | W !,"User to notify: return            ; done with option" | 
|---|
| 95 | W !,"User to notify: ?                 ; list of input options" | 
|---|
| 96 | W !,"User to notify: ??                ; displays choices" | 
|---|
| 97 | QUIT | 
|---|
| 98 | ; | 
|---|
| 99 | HLP2 ; -- Display new person file or mail group file | 
|---|
| 100 | W !!,"(1) - New Person",!,"(2) - Mail Group",! | 
|---|
| 101 | R "Select Display Option: ",X:DTIME  Q:X="" | 
|---|
| 102 | I X="^"  QUIT | 
|---|
| 103 | I X=1 D H1  QUIT | 
|---|
| 104 | I X=2 D H2  QUIT | 
|---|
| 105 | W "        ...invalid entry" | 
|---|
| 106 | K X | 
|---|
| 107 | QUIT | 
|---|
| 108 | ; | 
|---|
| 109 | H1 ; -- Displays new person file | 
|---|
| 110 | S DIC="^VA(200,",DIC(0)="C",D="B" | 
|---|
| 111 | D DQ^DICQ | 
|---|
| 112 | K DIC,D | 
|---|
| 113 | QUIT | 
|---|
| 114 | ; | 
|---|
| 115 | H2 ; -- Display mail groups | 
|---|
| 116 | S DIC="^XMB(3.8," | 
|---|
| 117 | S DIC(0)="CM" | 
|---|
| 118 | S D="B",DZ="??" | 
|---|
| 119 | D DQ^DICQ | 
|---|
| 120 | K DIC,D,DZ | 
|---|
| 121 | QUIT | 
|---|
| 122 | ; | 
|---|
| 123 | LISTD ; -- Displays a list of names selected | 
|---|
| 124 | S POP=1 | 
|---|
| 125 | I '$D(^TMP("VAQNOTI",$J))  W "     ...No User(s) Selected"  QUIT | 
|---|
| 126 | W !!,"-------------------------------- User Selected --------------------------------" | 
|---|
| 127 | S N="" F L=0:1 S N=$O(^TMP("VAQNOTI",$J,N))  Q:N=""  W:'(L#8) ! W ?L#8*30 W N | 
|---|
| 128 | W !,"--------------------------------------------------------------------------------" | 
|---|
| 129 | W ! QUIT | 
|---|
| 130 | ; | 
|---|
| 131 | END ; -- End of code | 
|---|
| 132 | QUIT | 
|---|