| 1 | TIUSRVT2 ; SLC/JM - Server functions for templates ;1/19/2001
 | 
|---|
| 2 |  ;;1.0;TEXT INTEGRATION UTILITIES;**80,105**;Jun 20, 1997
 | 
|---|
| 3 | TACCESS(TIUY,ROOT,USER,LOC) ;Returns Template Access level of User
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 |  ;Return Values:
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 |  ; 0 = FULL ACCESS
 | 
|---|
| 8 |  ; 1 = READ ONLY
 | 
|---|
| 9 |  ; 2 = NO ACCESS
 | 
|---|
| 10 |  ; 3 = SHARED TEMPLATES EDITOR - ACCESS PARAMETERS DO NOT APPLY
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 |  I +ROOT D  Q:+TIUY
 | 
|---|
| 13 |  .D ISEDITOR^TIUSRVT(.TIUY,ROOT,USER)
 | 
|---|
| 14 |  .I +TIUY S TIUY=3
 | 
|---|
| 15 |  .E  S TIUY=0
 | 
|---|
| 16 |  S TIUY=$$GET^XPAR(USER_";VA(200,","TIU PERSONAL TEMPLATE ACCESS",1,"I")
 | 
|---|
| 17 |  I TIUY="" D
 | 
|---|
| 18 |  .N TIUCLLST,TIUERR,IDX,TMP
 | 
|---|
| 19 |  .D GETLST^XPAR(.TIUCLLST,"SYS","TIU TEMPLATE ACCESS BY CLASS","Q",.TIUERR)
 | 
|---|
| 20 |  .I TIUERR>0 Q
 | 
|---|
| 21 |  .S IDX=0
 | 
|---|
| 22 |  .F  S IDX=$O(TIUCLLST(IDX)) Q:'IDX  D
 | 
|---|
| 23 |  ..I $$ISA^USRLM(USER,$P(TIUCLLST(IDX),U),.TIUERR) D
 | 
|---|
| 24 |  ...S TMP=+$P(TIUCLLST(IDX),U,2)
 | 
|---|
| 25 |  ...I +TIUY'>TMP S TIUY=TMP
 | 
|---|
| 26 |  I TIUY="" D
 | 
|---|
| 27 |  .N XPARSRCH,SERVICE
 | 
|---|
| 28 |  .I +$G(LOC) S XPARSRCH=LOC_";SC("_U
 | 
|---|
| 29 |  .E  S XPARSRCH=""
 | 
|---|
| 30 |  .S SERVICE=$P($G(^VA(200,USER,5)),U)
 | 
|---|
| 31 |  .I +SERVICE>0 S XPARSRCH=XPARSRCH_SERVICE_";DIC(49,"_U
 | 
|---|
| 32 |  .S XPARSRCH=XPARSRCH_"DIV^SYS"
 | 
|---|
| 33 |  .S TIUY=$$GET^XPAR(XPARSRCH,"TIU PERSONAL TEMPLATE ACCESS")
 | 
|---|
| 34 |  I TIUY="" S TIUY=0
 | 
|---|
| 35 |  Q
 | 
|---|
| 36 | GETDFLT(TIUY) ;Returns Default Templates for the current user
 | 
|---|
| 37 |  N TIUTMP,TIUERR
 | 
|---|
| 38 |  D GETLST^XPAR(.TIUTMP,"USR","TIU DEFAULT TEMPLATES","Q",.TIUERR)
 | 
|---|
| 39 |  S TIUY=$P($G(TIUTMP(1)),U,2)
 | 
|---|
| 40 |  Q
 | 
|---|
| 41 | SETDFLT(TIUY,SETTINGS) ;Saves Default Templates for the user
 | 
|---|
| 42 |  N TIUERR
 | 
|---|
| 43 |  D EN^XPAR(DUZ_";VA(200,","TIU DEFAULT TEMPLATES",1,SETTINGS,.TIUERR)
 | 
|---|
| 44 |  S TIUY=1
 | 
|---|
| 45 |  Q
 | 
|---|
| 46 | LSTACCUM(TIUY,TIULVL,TYP,PARAM) ; Accumulates TIUTMP into TIUY
 | 
|---|
| 47 |  N IDX,I,J,FOUND,TIUERR,TIUTMP
 | 
|---|
| 48 |  D GETLST^XPAR(.TIUTMP,TIULVL,PARAM,TYP,.TIUERR)
 | 
|---|
| 49 |  S I=0,IDX=$O(TIUY(999999),-1)+1
 | 
|---|
| 50 |  F  S I=$O(TIUTMP(I)) Q:'I  D
 | 
|---|
| 51 |  .S (FOUND,J)=0
 | 
|---|
| 52 |  .F  S J=$O(TIUY(J)) Q:'J  D  Q:FOUND
 | 
|---|
| 53 |  ..I TIUY(J)=TIUTMP(I) S FOUND=1
 | 
|---|
| 54 |  .I 'FOUND D
 | 
|---|
| 55 |  ..S TIUY(IDX)=TIUTMP(I)
 | 
|---|
| 56 |  ..S IDX=IDX+1
 | 
|---|
| 57 |  Q
 | 
|---|
| 58 | RDACCUM(TIUY,TIULVL,TYP) ; Accumulates Reminder Dialog List
 | 
|---|
| 59 |  D LSTACCUM(.TIUY,TIULVL,TYP,"TIU TEMPLATE REMINDER DIALOGS")
 | 
|---|
| 60 |  Q
 | 
|---|
| 61 | REMDLGS(TIUY) ;Returns a list of all reminder dialogs usable in templates
 | 
|---|
| 62 |  N SRV
 | 
|---|
| 63 |  K TIUY
 | 
|---|
| 64 |  D RDACCUM(.TIUY,"USR","N")
 | 
|---|
| 65 |  S SRV=$P($G(^VA(200,DUZ,5)),U)
 | 
|---|
| 66 |  D RDACCUM(.TIUY,"SRV.`"_+$G(SRV),"N")
 | 
|---|
| 67 |  D RDACCUM(.TIUY,"DIV","N")
 | 
|---|
| 68 |  D RDACCUM(.TIUY,"SYS","N")
 | 
|---|
| 69 |  Q
 | 
|---|
| 70 | RDINLST(TIULST,TIUIEN) ; Searches TIULST for TIUIEN
 | 
|---|
| 71 |  N IDX,RES
 | 
|---|
| 72 |  S (IDX,RES)=0
 | 
|---|
| 73 |  F  S IDX=$O(TIULST(IDX)) Q:'IDX  D  Q:+RES
 | 
|---|
| 74 |  . I $P(TIULST(IDX),U,2)=TIUIEN S RES=1
 | 
|---|
| 75 |  K TIUIEN
 | 
|---|
| 76 |  Q RES
 | 
|---|
| 77 | REMDLGOK(TIUY,TIUIEN) ;Returns TRUE if the passed in Reminder Dialog IEN is
 | 
|---|
| 78 |  ;                Allowed to be used as a TIU Template
 | 
|---|
| 79 |  N TIULST,SRV
 | 
|---|
| 80 |  S TIUY=-1
 | 
|---|
| 81 |  I '$D(^PXRMD(801.41,+$G(TIUIEN))) Q
 | 
|---|
| 82 |  I $P(^PXRMD(801.41,+$G(TIUIEN),0),U,3)'="" Q
 | 
|---|
| 83 |  S TIUY=1
 | 
|---|
| 84 |  D RDACCUM(.TIULST,"USR","Q")
 | 
|---|
| 85 |  I $$RDINLST(.TIULST,TIUIEN) Q
 | 
|---|
| 86 |  S SRV=$P($G(^VA(200,DUZ,5)),U)
 | 
|---|
| 87 |  D RDACCUM(.TIULST,"SRV.`"_+$G(SRV),"Q")
 | 
|---|
| 88 |  I $$RDINLST(.TIULST,TIUIEN) Q
 | 
|---|
| 89 |  D RDACCUM(.TIULST,"DIV","Q")
 | 
|---|
| 90 |  I $$RDINLST(.TIULST,TIUIEN) Q
 | 
|---|
| 91 |  D RDACCUM(.TIULST,"SYS","Q")
 | 
|---|
| 92 |  I $$RDINLST(.TIULST,TIUIEN) Q
 | 
|---|
| 93 |  S TIUY=0
 | 
|---|
| 94 |  Q
 | 
|---|
| 95 | OBJACCUM(TIUY,TIULVL) ; Accumulates Reminder Dialog List
 | 
|---|
| 96 |  D LSTACCUM(.TIUY,TIULVL,"N","TIU TEMPLATE PERSONAL OBJECTS")
 | 
|---|
| 97 |  Q
 | 
|---|
| 98 | PERSOBJS(TIUY) ; Returns the list of Patient Data Objects that are
 | 
|---|
| 99 |  ;         allowed to be used in Personal Templates
 | 
|---|
| 100 |  N SRV
 | 
|---|
| 101 |  K TIUY
 | 
|---|
| 102 |  D OBJACCUM(.TIUY,"USR")
 | 
|---|
| 103 |  S SRV=$P($G(^VA(200,DUZ,5)),U)
 | 
|---|
| 104 |  I +SRV D OBJACCUM(.TIUY,"SRV.`"_+$G(SRV))
 | 
|---|
| 105 |  D OBJACCUM(.TIUY,"DIV")
 | 
|---|
| 106 |  D OBJACCUM(.TIUY,"SYS")
 | 
|---|
| 107 |  Q
 | 
|---|
| 108 | LOCK(TIUY,TIUDA) ; Lock Template
 | 
|---|
| 109 |  L +^TIU(8927,TIUDA,0):1
 | 
|---|
| 110 |  S TIUY=$T
 | 
|---|
| 111 |  Q
 | 
|---|
| 112 | UNLOCK(TIUY,TIUDA) ; Unlock Template
 | 
|---|
| 113 |  L -^TIU(8927,TIUDA,0):1
 | 
|---|
| 114 |  S TIUY=1
 | 
|---|
| 115 |  Q
 | 
|---|