| 1 | LEXDD1 ; ISL Display Defaults                     ; 09-23-96 | 
|---|
| 2 | ;;2.0;LEXICON UTILITY;;Sep 23, 1996;Build 1 | 
|---|
| 3 | ; | 
|---|
| 4 | SHOW ; Show user defaults | 
|---|
| 5 | W @IOF | 
|---|
| 6 | N LEXMODE,LEXUSER,LEXSERV | 
|---|
| 7 | SELUSR ; Select user/user group | 
|---|
| 8 | K LEXD,LEXMODE | 
|---|
| 9 | W !!,"Show User Defaults for" | 
|---|
| 10 | W !!,"  1:  All users with defaults" | 
|---|
| 11 | W !,"  2:  A Single User" | 
|---|
| 12 | W !,"  3:  Users in a Service",! | 
|---|
| 13 | BYUSR ; Get response to user/user group | 
|---|
| 14 | K ZTSAVE S LEXMODE=$$USR G:LEXMODE[U SHOWQ | 
|---|
| 15 | I LEXMODE=1 D  G SELUSR | 
|---|
| 16 | . S ZTRTN="ALL^LEXDD1" D DEV,HOME^%ZIS | 
|---|
| 17 | I LEXMODE=2 D  G:+($G(LEXDUZ))'<1 SELUSR | 
|---|
| 18 | . W ! S LEXDUZ=$$USER^LEXDM4,LEXDUZ=+LEXDUZ | 
|---|
| 19 | . I +LEXDUZ'<1 D | 
|---|
| 20 | . . S ZTRTN="ONE^LEXDD1" | 
|---|
| 21 | . . S ZTSAVE("LEXDUZ")="" | 
|---|
| 22 | . . D DEV,HOME^%ZIS | 
|---|
| 23 | I LEXMODE=3 D  G SELUSR | 
|---|
| 24 | . W ! S LEXSERV=$$SERV^LEXDM4 | 
|---|
| 25 | . I +LEXSERV>0 D | 
|---|
| 26 | . . S ZTRTN="SERV^LEXDD1" | 
|---|
| 27 | . . S ZTSAVE("LEXSERV")="" | 
|---|
| 28 | . . D DEV,HOME^%ZIS | 
|---|
| 29 | G SHOWQ | 
|---|
| 30 | Q | 
|---|
| 31 | DEV ; Request a device | 
|---|
| 32 | N LEXCNT,LEXLC,LEXC S (LEXCNT,LEXLC)=0,LEXC="" | 
|---|
| 33 | S (ZTSAVE("LEXC"),ZTSAVE("LEXCNT"),ZTSAVE("LEXLC"))="" | 
|---|
| 34 | N %ZIS,IOP S %ZIS="PQ" D ^%ZIS Q:POP  I $D(IO("Q")) D QUE Q | 
|---|
| 35 | NOQUE ; Local display | 
|---|
| 36 | W @IOF D @ZTRTN,^%ZISC K ZTSAVE Q | 
|---|
| 37 | QUE ; Queue task to a selected device | 
|---|
| 38 | N %,ZTDESC,ZTDTH,ZTIO,ZTSK Q:'$D(ZTRTN)  K IO("Q") | 
|---|
| 39 | S ZTDESC="Lexicon Defaults",ZTIO=ION,ZTDTH=$H | 
|---|
| 40 | D ^%ZTLOAD | 
|---|
| 41 | W !,$S($D(ZTSK):"Request Queued",1:"Request Cancelled"),! | 
|---|
| 42 | K ZTSK,ZTDESC,ZTDTH,ZTIO,ZTRTN,ZTSAVE D ^%ZISC | 
|---|
| 43 | Q | 
|---|
| 44 | ALL ; Display for all users | 
|---|
| 45 | N LEXUSR,LEXDUZ,LEXITLE | 
|---|
| 46 | S LEXUSR="" | 
|---|
| 47 | S LEXITLE="Lexicon User Defaults (all users with defaults)" | 
|---|
| 48 | W !,LEXITLE W:IOST["P-" !! S LEXLC=$S(IOST["P-":LEXLC+3,1:LEXLC+1) | 
|---|
| 49 | F  S LEXUSR=$O(^LEXT(757.2,"AUD",LEXUSR)) Q:LEXUSR=""  D | 
|---|
| 50 | . N LEXDUZ S LEXDUZ=0 | 
|---|
| 51 | . F  S LEXDUZ=$O(^LEXT(757.2,"AUD",LEXUSR,LEXDUZ)) Q:+LEXDUZ=0  D | 
|---|
| 52 | . . I +LEXDUZ'<1 D | 
|---|
| 53 | . . . S LEXOK=$$DEF I LEXOK D BUILD^LEXDD2 S LEXCNT=LEXCNT+1 | 
|---|
| 54 | I +LEXCNT=0 D | 
|---|
| 55 | . W !!,"No users found with defaults set." | 
|---|
| 56 | D ^%ZISC I $D(ZTQUEUED) S ZTREQ="@" | 
|---|
| 57 | Q | 
|---|
| 58 | ONE ; Display for one user | 
|---|
| 59 | Q:+($G(LEXDUZ))<1  N LEXITLE,LEXOK | 
|---|
| 60 | S LEXITLE="Lexicon User Defaults (Single User)" | 
|---|
| 61 | W !,LEXITLE W:IOST["P-" !! S LEXLC=$S(IOST["P-":LEXLC+3,1:LEXLC+1) | 
|---|
| 62 | I LEXDUZ'<1,$D(^VA(200,+LEXDUZ)) D | 
|---|
| 63 | . S LEXOK=$$DEF I LEXOK D BUILD^LEXDD2 S LEXCNT=LEXCNT+1 | 
|---|
| 64 | . I 'LEXOK D | 
|---|
| 65 | . . I $P($G(^VA(200,LEXDUZ,0)),"^",1)'="" D | 
|---|
| 66 | . . . N LEXNAME S LEXNAME=$P($G(^VA(200,LEXDUZ,0)),"^",1) | 
|---|
| 67 | . . . S LEXNAME=$$FL^LEXDD4(LEXNAME) | 
|---|
| 68 | . . . W !,LEXNAME," has no defaults set",! | 
|---|
| 69 | . . I $P($G(^VA(200,LEXDUZ,0)),"^",1)="" D | 
|---|
| 70 | . . . W !,"User has no defaults set",! | 
|---|
| 71 | I LEXDUZ'<1,'$D(^VA(200,+LEXDUZ)) D | 
|---|
| 72 | . W !,"User not found",! | 
|---|
| 73 | D ^%ZISC S:$D(ZTQUEUED) ZTREQ="@" Q | 
|---|
| 74 | SERV ; Display for users in a Service | 
|---|
| 75 | Q:'$D(LEXSERV)  N LEXITLE | 
|---|
| 76 | S LEXSERV=+LEXSERV | 
|---|
| 77 | S LEXITLE="Lexicon User Defaults in a Single Service ("_$P(^DIC(49,LEXSERV,0),U,1)_")" | 
|---|
| 78 | W !,LEXITLE W:IOST["P-" !! S LEXLC=$S(IOST["P-":LEXLC+3,1:LEXLC+1) | 
|---|
| 79 | S LEXUSR="" | 
|---|
| 80 | F  S LEXUSR=$O(^LEXT(757.2,"AUD",LEXUSR)) Q:LEXUSR=""  D | 
|---|
| 81 | . N LEXDUZ S LEXDUZ=0 | 
|---|
| 82 | . F  S LEXDUZ=$O(^LEXT(757.2,"AUD",LEXUSR,LEXDUZ)) Q:+LEXDUZ=0  D | 
|---|
| 83 | . . I +LEXDUZ'<1 D | 
|---|
| 84 | . . . I $P($G(^VA(200,LEXDUZ,5)),"^",1)=LEXSERV D | 
|---|
| 85 | . . . . S LEXOK=$$DEF | 
|---|
| 86 | . . . . I LEXOK D BUILD^LEXDD2 S LEXCNT=LEXCNT+1 | 
|---|
| 87 | I +LEXCNT=0 D | 
|---|
| 88 | . W !!,"No users found with defaults set in the ",$P(^DIC(49,LEXSERV,0),U,1)," service." | 
|---|
| 89 | D ^%ZISC S:$D(ZTQUEUED) ZTREQ="@" Q | 
|---|
| 90 | SHOWQ ; Quit SHOW | 
|---|
| 91 | I IOST["P-" D ^%ZISC | 
|---|
| 92 | K ZTSAVE,ZTRTN,ZTDESC,ZTDTH,ZTIO,ZTQUEUED,ZTREQ,ZTSK,X,Y | 
|---|
| 93 | K DIR,DIC,DIC("S"),%,%ZIS,POP,IOP | 
|---|
| 94 | K LEX,LEXA,LEXAP,LEXAPID,LEXC,LEXCNT,LEXCTR,LEXCTX,LEXD | 
|---|
| 95 | K LEXDATA,LEXDICS,LEXDUZ,LEXFIL,LEXFN,LEXI,LEXIEN,LEXITL | 
|---|
| 96 | K LEXITLE,LEXT,LEXLC,LEXLN,LEXMODE,LEXNAME,LEXOK,LEXSERV | 
|---|
| 97 | K LEXSHOW,LEXSPC,LEXSTLN,LEXSTR,LEXSUB,LEXUSER,LEXUSR | 
|---|
| 98 | Q | 
|---|
| 99 | DEF(X) ; Based on DUZ determines if there are defaults defined | 
|---|
| 100 | S X=0 Q:+($G(LEXDUZ))=0 X N LEXAPID,LEXIEN S LEXAPID=0 | 
|---|
| 101 | ; Defaults by Application | 
|---|
| 102 | F  S LEXAPID=$O(^LEXT(757.2,"ADEF",LEXAPID)) Q:+LEXAPID=0!(X)  D  Q:X | 
|---|
| 103 | . S LEXIEN=0 F  S LEXIEN=$O(^LEXT(757.2,"ADEF",LEXAPID,LEXIEN)) Q:+LEXIEN=0!(X)  D  Q:X | 
|---|
| 104 | . . S:$L($G(^LEXT(757.2,LEXIEN,200,LEXDUZ,1))) X=1 Q:X | 
|---|
| 105 | . . S:$L($G(^LEXT(757.2,LEXIEN,200,LEXDUZ,2))) X=1 Q:X | 
|---|
| 106 | . . S:$L($G(^LEXT(757.2,LEXIEN,200,LEXDUZ,3))) X=1 Q:X | 
|---|
| 107 | . . S:$L($G(^LEXT(757.2,LEXIEN,200,LEXDUZ,4))) X=1 Q:X | 
|---|
| 108 | Q X | 
|---|
| 109 | USR(X) ; Get response for user type/group | 
|---|
| 110 | N Y,DTOUT,DUOUT,DIRUT,DIROUT | 
|---|
| 111 | S DIR("A")="Select (1-3):  ",DIR("B")=2 | 
|---|
| 112 | S DIR("?")="Answer must be from 1 to 3" | 
|---|
| 113 | S DIR(0)="NAO^1:3:0" D ^DIR | 
|---|
| 114 | S X=$S($D(DTOUT)!(X[U)!(X=""):U,1:X) K DIR Q X | 
|---|