| 1 | LEXDMGT ; ISL Defaults - Manager/Update            ; 09-23-96
 | 
|---|
| 2 |  ;;2.0;LEXICON UTILITY;;Sep 23, 1996;Build 1
 | 
|---|
| 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
 | 
|---|