| 1 | GMRCT ; SLC/DLT\JFR - Get DUZ's of users for notification to service ; 11/25/2000
 | 
|---|
| 2 |  ;;3.0;CONSULT/REQUEST TRACKING;**1,5,11,18**;Dec 27, 1997
 | 
|---|
| 3 | EN(GMRCSRV,USER,TEST) ;Get who is to be notified for alert action
 | 
|---|
| 4 |  ; return them in array GMRCADUZ(DUZ)=""
 | 
|---|
| 5 |  N GMRCLIS,GMRCHKD,GMRCNT,GMRCLP,GMRCQUIT
 | 
|---|
| 6 |  D RECIP(GMRCSRV,$G(TEST)) I $D(TEST),$G(USER),$D(GMRCADUZ(USER)) Q
 | 
|---|
| 7 |  I '$P(^GMR(123.5,+GMRCSRV,0),U,8) Q  ; don't check parents
 | 
|---|
| 8 |  S GMRCHKD(GMRCSRV)="",GMRCNT=1
 | 
|---|
| 9 |  D FINDPAR^GMRCAU(GMRCSRV,.GMRCNT) I '$D(GMRCLIS) Q
 | 
|---|
| 10 |  S GMRCLP=0
 | 
|---|
| 11 |  F  S GMRCLP=$O(GMRCLIS(GMRCLP)) Q:'GMRCLP  D  I $D(GMRCQUIT) Q
 | 
|---|
| 12 |  . I +$P(GMRCLIS(GMRCLP),U,2) K GMRCLIS(GMRCLP) Q  ;been checked
 | 
|---|
| 13 |  . I '$D(GMRCHKD(+GMRCLIS(GMRCLP))) D
 | 
|---|
| 14 |  .. ; check parent 
 | 
|---|
| 15 |  .. D RECIP(+GMRCLIS(GMRCLP),$G(TEST)) I $G(USER),$D(GMRCADUZ(USER)) D  Q
 | 
|---|
| 16 |  ... S GMRCQUIT=1
 | 
|---|
| 17 |  .. S GMRCHKD(+GMRCLIS(GMRCLP))=""
 | 
|---|
| 18 |  . S $P(GMRCLIS(GMRCLP),U,2)=1
 | 
|---|
| 19 |  . I $P(^GMR(123.5,+GMRCLIS(GMRCLP),0),U,8) D  ;check parents, fld .08 =1
 | 
|---|
| 20 |  .. D FINDPAR^GMRCAU(+GMRCLIS(GMRCLP),.GMRCNT)
 | 
|---|
| 21 |  . S GMRCLP=0 ;start back at top and don't miss any
 | 
|---|
| 22 |  Q
 | 
|---|
| 23 | RECIP(GMRCSS,NOTNULL) ;gather recipients for GMRCSS
 | 
|---|
| 24 |  N GMRCTM,GMRCTMI,GMRCLST,GMRCER,GMRCHL,GMRCSSI,GMRCU,GMRCWL
 | 
|---|
| 25 |  I $D(^GMR(123.5,GMRCSS,123)),$P(^GMR(123.5,GMRCSS,123),"^",8) S GMRCADUZ($P(^(123),"^",8))=$S($G(NOTNULL):$$NOTSERV($P(^(123),"^",8)),1:"")
 | 
|---|
| 26 |  I $D(^GMR(123.5,GMRCSS,123.1)) D TEAM
 | 
|---|
| 27 |  I $D(^GMR(123.5,GMRCSS,123.2)),+$G(GMRCO) D LOC
 | 
|---|
| 28 |  I $D(^GMR(123.5,GMRCSS,123.33)) D ADMU
 | 
|---|
| 29 |  I $D(^GMR(123.5,GMRCSS,123.34)) D ADMT
 | 
|---|
| 30 |  Q
 | 
|---|
| 31 | LOC ;Find the patients location and match to location assignments
 | 
|---|
| 32 |  S GMRCWL="",GMRCHL=""
 | 
|---|
| 33 |  I +$G(GMRCO) S GMRCHL=$P(^GMR(123,+GMRCO,0),"^",4) I GMRCHL S GMRCWL=$G(^SC(GMRCHL,42)) S:GMRCWL GMRCWL=GMRCWL_";DIC(42," S GMRCHL=GMRCHL_";SC("
 | 
|---|
| 34 |  E  S:+$G(GMRCWLI) GMRCWL=GMRCWLI_";DIC(42," S:+$G(GMRCHLI) GMRCHL=GMRCHLI_";SC("
 | 
|---|
| 35 |  I +GMRCWL S GMRCSSI=$O(^GMR(123.5,GMRCSS,123.2,"B",GMRCWL,"")) I GMRCSSI D LOC1
 | 
|---|
| 36 |  I +GMRCHL S GMRCSSI=$O(^GMR(123.5,GMRCSS,123.2,"B",GMRCHL,"")) I GMRCSSI D LOC1
 | 
|---|
| 37 |  Q
 | 
|---|
| 38 | LOC1 ;Get user and/or team assigned to location
 | 
|---|
| 39 |  I $P(^GMR(123.5,GMRCSS,123.2,GMRCSSI,0),"^",2) S GMRCADUZ($P(^(0),"^",2))=$S($G(NOTNULL):$$NOTSERV($P(^(0),"^",2)),1:"")
 | 
|---|
| 40 |  I $P(^GMR(123.5,GMRCSS,123.2,GMRCSSI,0),"^",3) S GMRCTMI=$P(^(0),"^",3) D TEAM1
 | 
|---|
| 41 |  Q
 | 
|---|
| 42 | ADMU ;Get notification recips from admin users field (123.33)
 | 
|---|
| 43 |  ;Loop "AC" x-ref to get those admin users marked as notif recipients
 | 
|---|
| 44 |  N RECIP
 | 
|---|
| 45 |  S RECIP=0
 | 
|---|
| 46 |  F  S RECIP=$O(^GMR(123.5,GMRCSS,123.33,"AC",1,RECIP)) Q:'RECIP  D
 | 
|---|
| 47 |  . S GMRCADUZ(RECIP)=$S($G(NOTNULL):$$NOTSERV(RECIP),1:"")
 | 
|---|
| 48 |  Q
 | 
|---|
| 49 | ADMT ;Get notification recips from admin teams field (123.34)
 | 
|---|
| 50 |  ;Loop "AC" x-ref to get those admin teams marked as notif recipients
 | 
|---|
| 51 |  ;call TEAM1 to get list of users and add to recip list
 | 
|---|
| 52 |  N GMRCTMI S GMRCTMI=0
 | 
|---|
| 53 |  F  S GMRCTMI=$O(^GMR(123.5,GMRCSS,123.34,"AC",1,GMRCTMI)) Q:'GMRCTMI  D
 | 
|---|
| 54 |  . D TEAM1
 | 
|---|
| 55 | TEAM ;Loop through Teams to send all users notifications
 | 
|---|
| 56 |  S GMRCTM=0 F  S GMRCTM=$O(^GMR(123.5,GMRCSS,123.1,GMRCTM)) Q:'+GMRCTM  S GMRCTMI=$P($G(^GMR(123.5,GMRCSS,123.1,GMRCTM,0)),"^") I GMRCTMI D TEAM1
 | 
|---|
| 57 |  Q
 | 
|---|
| 58 | TEAM1 ;Get user DUZ's from Team pointed to in File
 | 
|---|
| 59 |  S GMRCLST="" D TEAMPROV^ORQPTQ1(.GMRCLST,GMRCTMI)
 | 
|---|
| 60 |  Q:$S('$O(GMRCLST(0)):1,$P(GMRCLST(1),"^",2)="No providers found.":1,1:0)
 | 
|---|
| 61 |  S GMRCU=0 F  S GMRCU=$O(GMRCLST(GMRCU)) Q:GMRCU=""  D
 | 
|---|
| 62 |  . I '$G(NOTNULL) D  Q
 | 
|---|
| 63 |  .. S GMRCADUZ($P(GMRCLST(GMRCU),"^",1)_U_GMRCTMI)=""
 | 
|---|
| 64 |  . S GMRCADUZ($P(GMRCLST(GMRCU),"^",1))=$S($G(NOTNULL):$$NOTSERV(GMRCU),1:"")
 | 
|---|
| 65 |  K GMRCLST
 | 
|---|
| 66 |  Q
 | 
|---|
| 67 | NOTSERV(RECIP) ;set GMRCADUZ(RECIP)=all services they receive for
 | 
|---|
| 68 |  I '$D(GMRCADUZ(RECIP)) Q $P(^GMR(123.5,+GMRCSS,0),U)
 | 
|---|
| 69 |  Q GMRCADUZ(RECIP)_"~"_$P(^GMR(123.5,+GMRCSS,0),U)
 | 
|---|
| 70 | TEST ; called from GMRC NOTIF RECIPIENTS
 | 
|---|
| 71 |  N GMRCSRV,GMRCUSR,GMRCADUZ
 | 
|---|
| 72 |  N DIR,DIROUT,DIRUT,DUOUT,DTOUT,X,Y
 | 
|---|
| 73 |  S DIR(0)="PO^123.5:EM",DIR("A")="Select Consult Service"
 | 
|---|
| 74 |  S DIR("?")="Choose the consult service to check update status of user"
 | 
|---|
| 75 |  S DIR("??")="^D TESTHELP^GMRCAU(""ALL SERVICES"")" D ^DIR
 | 
|---|
| 76 |  I $D(DIRUT) Q
 | 
|---|
| 77 |  S GMRCSRV=+Y
 | 
|---|
| 78 |  N DIR
 | 
|---|
| 79 |  S DIR(0)="PO^200:EM",DIR("A")="Choose notification recipient"
 | 
|---|
| 80 |  D ^DIR I $D(DIRUT) Q
 | 
|---|
| 81 |  S GMRCUSR=+Y
 | 
|---|
| 82 |  D EN(GMRCSRV,GMRCUSR,1)
 | 
|---|
| 83 |  I $D(GMRCADUZ(GMRCUSR)) D
 | 
|---|
| 84 |  . W !!,"This user is a notification recipients for "_GMRCADUZ(GMRCUSR),!
 | 
|---|
| 85 |  . I GMRCADUZ(GMRCUSR)'=$P(^GMR(123.5,GMRCSRV,0),U) D
 | 
|---|
| 86 |  .. D HIER(GMRCADUZ(GMRCUSR))
 | 
|---|
| 87 |  . W !!
 | 
|---|
| 88 |  I '$D(GMRCADUZ(GMRCUSR)) W !!,"This user is not a notification recipient.",!!
 | 
|---|
| 89 |  G TEST
 | 
|---|
| 90 | HIER(SERV) ;ask to see the hierarchy
 | 
|---|
| 91 |  N DIR,DIRUT,DUOUT,DTOUT
 | 
|---|
| 92 |  S DIR(0)="Y"
 | 
|---|
| 93 |  S DIR("A")="View hierarchy from this service to the selected service"
 | 
|---|
| 94 |  S DIR("B")="NO"
 | 
|---|
| 95 |  D ^DIR
 | 
|---|
| 96 |  I Y>0 D TESTHELP^GMRCAU(SERV)
 | 
|---|
| 97 |  Q
 | 
|---|
| 98 | TSTINTRO ; entry action for GMRC USER NOTIFICATION
 | 
|---|
| 99 |  W !,"This option will list how a given user became a notification recipient"
 | 
|---|
| 100 |  W !,"for a selected consult service. If the PROCESS PARENTS FOR NOTIFS field is"
 | 
|---|
| 101 |  W !,"set to YES, all the parents of the service will also be processed to"
 | 
|---|
| 102 |  W !,"determine if the user is a recipient via that service.",!!
 | 
|---|
| 103 |  Q
 | 
|---|