| 1 | LEXDMGT ; ISL Defaults - Manager/Update            ; 09-23-96 | 
|---|
| 2 | ;;2.0;LEXICON UTILITY;;Sep 23, 1996 | 
|---|
| 3 | Q | 
|---|
| 4 | ; LEXDICS     Filter | 
|---|
| 5 | ; LEXDICS(0)  Filter name | 
|---|
| 6 | ; LEXSHOW     Display | 
|---|
| 7 | ; LEXSHOW(0)  Display name | 
|---|
| 8 | ; LEXSUB      Vocabulary | 
|---|
| 9 | ; LEXSUB(0)   Vocabulary name | 
|---|
| 10 | ; LEXCTX      Shortcut Context | 
|---|
| 11 | ; LEXCTX(0)   Shortcut Context name | 
|---|
| 12 | ; | 
|---|
| 13 | ; LEXAP       Application | 
|---|
| 14 | ; LEXAPS      Multiple Applications | 
|---|
| 15 | ; LEXDCUR     Current default value (pre-edit) | 
|---|
| 16 | ; LEXDNAM     Default name | 
|---|
| 17 | ; LEXDVAL     Default value | 
|---|
| 18 | ; LEXFLD      Default field # in 757.201 | 
|---|
| 19 | ; LEXC        Counter | 
|---|
| 20 | ; LEXL        User Location | 
|---|
| 21 | ; LEXS        User Service | 
|---|
| 22 | ; LEXUSER     DUZ of user to update defaults | 
|---|
| 23 | ; | 
|---|
| 24 | ; Needs: | 
|---|
| 25 | ; | 
|---|
| 26 | ; LEXAP       Application | 
|---|
| 27 | ; LEXOVER     Flag - Overwrite user defaults (Y/N) | 
|---|
| 28 | ; LEXLIM      Limits (parameter for LEXMETH) | 
|---|
| 29 | ; LEXMETH     Method, singel user, by service, by location, | 
|---|
| 30 | ;              by both service and location, or all users | 
|---|
| 31 | ; | 
|---|
| 32 | UPDATE ; Update user defaults | 
|---|
| 33 | Q:'$L($G(LEXAP))  Q:'$L($G(LEXOVER))  Q:'$L($G(LEXMETH))  Q:'$L($G(LEXLIM)) | 
|---|
| 34 | N ZTSAVE,ZTRTN,ZTDESC,ZTIO,ZTDTH,ZTSK,Y | 
|---|
| 35 | S (ZTSAVE("LEXOVER"),ZTSAVE("LEXAP"),ZTSAVE("LEXMETH"),ZTSAVE("LEXLIM"))="" | 
|---|
| 36 | S (ZTSAVE("LEXDICS"),ZTSAVE("LEXDICS(0)"),ZTSAVE("LEXSHOW"),ZTSAVE("LEXSHOW(0)"))="" | 
|---|
| 37 | S (ZTSAVE("LEXSUB"),ZTSAVE("LEXSUB(0)"),ZTSAVE("LEXCTX"),ZTSAVE("LEXCTX(0)"))="" | 
|---|
| 38 | S ZTRTN="UPDT^LEXDMGT",ZTDESC="Up-dating User Defaults" | 
|---|
| 39 | S ZTDTH=$H,ZTIO="" D ^%ZTLOAD | 
|---|
| 40 | W:$D(ZTSK) !!,"Task has been created to update user defaults" | 
|---|
| 41 | W:'$D(ZTSK) !!,"Unable to create a task to update user defaults" | 
|---|
| 42 | D HOME^%ZIS Q | 
|---|
| 43 | UPDT ; TaskManager entry point to Update Defaults (tasked) | 
|---|
| 44 | N LEXUSER,LEXDVAL,LEXDNAM,LEXFLD | 
|---|
| 45 | S LEXMETH=$P(LEXMETH,U,1) Q:LEXMETH="" | 
|---|
| 46 | ONE ; Single user | 
|---|
| 47 | I LEXMETH="ONE" S LEXUSER=+LEXLIM D  G UPDTQ | 
|---|
| 48 | . Q:$P(^VA(200,LEXUSER,0),U,1)=""  D BYAPPS | 
|---|
| 49 | MULTI ; Multiple users | 
|---|
| 50 | S LEXUSER=+($O(^VA(200,1),-1)) | 
|---|
| 51 | F  S LEXUSER=$O(^VA(200,LEXUSER)) Q:+LEXUSER=0  D | 
|---|
| 52 | . Q:$P($G(^VA(200,LEXUSER,0)),U,1)=""  D BYAPPS | 
|---|
| 53 | G UPDTQ | 
|---|
| 54 | BYAPPS ; Process defaults by application | 
|---|
| 55 | I LEXAP'[";" S LEXAP=+LEXAP D:+LEXAP>0 BYUSR Q | 
|---|
| 56 | I LEXAP[";" D  Q | 
|---|
| 57 | . N LEXC,LEXAPS S LEXAPS=LEXAP | 
|---|
| 58 | . F LEXC=1:1:$L(LEXAPS,";") S LEXAP=$P(LEXAPS,";",LEXC) D BYUSR | 
|---|
| 59 | . S LEXAP=LEXAPS | 
|---|
| 60 | BYUSR ; Process defaults by user | 
|---|
| 61 | N LEXS,LEXL | 
|---|
| 62 | S LEXS=$P($G(^VA(200,LEXUSER,5)),"^",1) S:LEXS="" LEXS=-1 | 
|---|
| 63 | S LEXL=$P($G(^VA(200,LEXUSER,100.1)),"^",7) S:LEXL="" LEXL=-1 | 
|---|
| 64 | D:LEXMETH="ALL"!(LEXMETH="ONE") UPUSR | 
|---|
| 65 | D:LEXMETH="SEV"&(+LEXLIM=+LEXS) UPUSR | 
|---|
| 66 | D:LEXMETH="LOC"&(+LEXLIM=+LEXL) UPUSR | 
|---|
| 67 | I LEXMETH="SAL" D | 
|---|
| 68 | . I +($P(LEXLIM,U,1))>0,+($P(LEXLIM,U,1))=+LEXS D | 
|---|
| 69 | . . I +($P(LEXLIM,U,2))>0,+($P(LEXLIM,U,2))=+LEXL D UPUSR | 
|---|
| 70 | Q | 
|---|
| 71 | UPUSR ; Update user defaults for user LEXUSER | 
|---|
| 72 | N LEXDCUR,LEXDVAL,LEXDNAM,LEXFLD | 
|---|
| 73 | UPDIC ; Filter LEXDICS | 
|---|
| 74 | S LEXFLD=1,LEXDCUR=$G(^LEXT(757.2,LEXAP,200,LEXUSER,LEXFLD)) | 
|---|
| 75 | S LEXDVAL=$G(LEXDICS),LEXDNAM=$G(LEXDICS(0)) | 
|---|
| 76 | G:LEXDCUR'=""&('LEXOVER) UPSHOW D:LEXDVAL'="" SAVE | 
|---|
| 77 | ; | 
|---|
| 78 | UPSHOW ; Display LEXSHOW | 
|---|
| 79 | S LEXFLD=2,LEXDCUR=$G(^LEXT(757.2,LEXAP,200,LEXUSER,LEXFLD)) | 
|---|
| 80 | S LEXDVAL=$G(LEXSHOW),LEXDNAM=$G(LEXSHOW(0)) | 
|---|
| 81 | G:LEXDCUR'=""&('LEXOVER) UPSUB D:LEXDVAL'="" SAVE | 
|---|
| 82 | ; | 
|---|
| 83 | UPSUB ; Vocabulary LEXSUB | 
|---|
| 84 | S LEXFLD=3,LEXDCUR=$G(^LEXT(757.2,LEXAP,200,LEXUSER,LEXFLD)) | 
|---|
| 85 | S LEXDVAL=$G(LEXSUB),LEXDNAM=$G(LEXSUB(0)) | 
|---|
| 86 | G:LEXDCUR'=""&('LEXOVER) UPCON D:LEXDVAL'="" SAVE | 
|---|
| 87 | ; | 
|---|
| 88 | UPCON ; Shortcut Context LEXCTX | 
|---|
| 89 | S LEXFLD=4,LEXDCUR=$G(^LEXT(757.2,LEXAP,200,LEXUSER,LEXFLD)) | 
|---|
| 90 | S LEXDVAL=$G(LEXCTX),LEXDNAM=$G(LEXCTX(0)) | 
|---|
| 91 | G:LEXDCUR'=""&('LEXOVER) UPQ D:LEXDVAL'="" SAVE | 
|---|
| 92 | ; | 
|---|
| 93 | UPQ ; Quit update | 
|---|
| 94 | Q | 
|---|
| 95 | UPDTQ ; Quit update (tasked) | 
|---|
| 96 | S:$D(ZTQUEUED) ZTREQ="@" Q | 
|---|
| 97 | Q | 
|---|
| 98 | SAVE ; Save default - SET^LEXDSV(DUZ,APPLICATION,VALUE,NAME,FIELD) | 
|---|
| 99 | I LEXDVAL'["@" D  Q | 
|---|
| 100 | . D SET^LEXDSV(LEXUSER,LEXAP,LEXDVAL,LEXDNAM,LEXFLD) Q | 
|---|
| 101 | ; Kill default - SET^LEXDSV(DUZ,APPLICATION,"@","",FIELD) | 
|---|
| 102 | D SET^LEXDSV(LEXUSER,LEXAP,"@","",LEXFLD) Q | 
|---|