| 1 | ORY195 ;SLCOIFO - Pre and Post-init for patch OR*3*195 [10/4/04 7:21am] ; [1/20/05 9:26am]
 | 
|---|
| 2 |  ;;3.0;ORDER ENTRY/RESULTS REPORTING;**195**;Dec 17, 1997
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | PRE ; initiate pre-init processes
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 |  ; Dump previously-installed param templates w/bad "B" x-ref entries:
 | 
|---|
| 7 |  ;
 | 
|---|
| 8 |  N DA,DIK
 | 
|---|
| 9 |  ;
 | 
|---|
| 10 |  S DA=$O(^XTV(8989.52,"B","ORQQ SEARCH RANGE (DIVISION)",0))
 | 
|---|
| 11 |  I +DA>0 S DIK="^XTV(8989.52," D ^DIK
 | 
|---|
| 12 |  ;
 | 
|---|
| 13 |  S DA=$O(^XTV(8989.52,"B","ORQQ SEARCH RANGE (SERVICE)",0))
 | 
|---|
| 14 |  I +DA>0 S DIK="^XTV(8989.52," D ^DIK
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 |  S DA=$O(^XTV(8989.52,"B","ORQQ SEARCH RANGE (SYSTEM)",0))
 | 
|---|
| 17 |  I +DA>0 S DIK="^XTV(8989.52," D ^DIK
 | 
|---|
| 18 |  ;
 | 
|---|
| 19 |  S DA=$O(^XTV(8989.52,"B","ORQQ SEARCH RANGE (USER)",0))
 | 
|---|
| 20 |  I +DA>0 S DIK="^XTV(8989.52," D ^DIK
 | 
|---|
| 21 |  ;
 | 
|---|
| 22 |  Q
 | 
|---|
| 23 |  ;
 | 
|---|
| 24 | POST ; initiate post-init processes
 | 
|---|
| 25 |  ;
 | 
|---|
| 26 |  I +$$PATCH^XPDUTL("TIU*1.0*112") D SURGREG
 | 
|---|
| 27 |  I +$$PATCH^XPDUTL("OR*3.0*222") D GNRPCS
 | 
|---|
| 28 |  I +$$PATCH^XPDUTL("MAG*3.0*7") D MAGRPC1
 | 
|---|
| 29 |  I +$$PATCH^XPDUTL("MAG*3.0*37") D MAGRPC2
 | 
|---|
| 30 |  D SETIMO
 | 
|---|
| 31 |  D PARVAL
 | 
|---|
| 32 |  D STUFDTRG
 | 
|---|
| 33 |  D MAIL
 | 
|---|
| 34 |  D Q^ORY195A ;Queue lab order check routine
 | 
|---|
| 35 |  Q
 | 
|---|
| 36 |  ;
 | 
|---|
| 37 | MAIL ; send bulletin of installation time
 | 
|---|
| 38 |  N COUNT,DIFROM,I,START,TEXT,XMDUZ,XMSUB,XMTEXT,XMY
 | 
|---|
| 39 |  S COUNT=0,XMDUZ="CPRS PACKAGE",XMTEXT="TEXT("
 | 
|---|
| 40 |  S XMSUB="Version "_$P($T(VERSION),";;",2)_" Installed"
 | 
|---|
| 41 |  F I="G.CPRS GUI INSTALL@ISC-SLC.VA.GOV",DUZ S XMY(I)=""
 | 
|---|
| 42 |  ;
 | 
|---|
| 43 |  S X=$P($T(VERSION),";;",2)
 | 
|---|
| 44 |  D LINE("Version "_X_" has been installed.")
 | 
|---|
| 45 |  D LINE(" ")
 | 
|---|
| 46 |  D LINE("Install complete:  "_$$FMTE^XLFDT($$NOW^XLFDT()))
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 |  D ^XMD
 | 
|---|
| 49 |  Q
 | 
|---|
| 50 |  ;
 | 
|---|
| 51 | LINE(DATA) ; set text into array
 | 
|---|
| 52 |  S COUNT=COUNT+1
 | 
|---|
| 53 |  S TEXT(COUNT)=DATA
 | 
|---|
| 54 |  Q
 | 
|---|
| 55 |  ;
 | 
|---|
| 56 | SURGREG ; Register TIU SURGERY RPCs if TIU*1.0*112 present
 | 
|---|
| 57 |  N MENU,RPC
 | 
|---|
| 58 |  S MENU="OR CPRS GUI CHART"
 | 
|---|
| 59 |  F RPC="TIU IS THIS A SURGERY?","TIU IDENTIFY SURGERY CLASS","TIU LONG LIST SURGERY TITLES","TIU GET DOCUMENTS FOR REQUEST" D INSERT(MENU,RPC)
 | 
|---|
| 60 |  Q
 | 
|---|
| 61 |  ;
 | 
|---|
| 62 | INSERT(OPTION,RPC) ; Call FM Updater with each RPC
 | 
|---|
| 63 |  ; Input  -- OPTION   Option file (#19) Name field (#.01)
 | 
|---|
| 64 |  ;           RPC      RPC sub-file (#19.05) RPC field (#.01)
 | 
|---|
| 65 |  ; Output -- None
 | 
|---|
| 66 |  N FDA,FDAIEN,ERR,DIERR
 | 
|---|
| 67 |  S FDA(19,"?1,",.01)=OPTION
 | 
|---|
| 68 |  S FDA(19.05,"?+2,?1,",.01)=RPC
 | 
|---|
| 69 |  D UPDATE^DIE("E","FDA","FDAIEN","ERR")
 | 
|---|
| 70 |  Q
 | 
|---|
| 71 |  ;
 | 
|---|
| 72 | SETIMO ; Create "CLINIC MEDICATIONS" display group
 | 
|---|
| 73 |  N NDATA,DLG,IEN,X
 | 
|---|
| 74 |  S (NDATA,DLG,IEN,X)=""
 | 
|---|
| 75 |  S NDATA="CLINIC MEDICATIONS^Clin. Meds^C RX^"
 | 
|---|
| 76 |  N DIC
 | 
|---|
| 77 |  S DIC="^ORD(100.98,",DIC(0)="BX",X=$P(NDATA,U)
 | 
|---|
| 78 |  D ^DIC
 | 
|---|
| 79 |  I Y'=-1 S ^ORD(100.98,+Y,0)=NDATA Q
 | 
|---|
| 80 |  I Y=-1 S DIC(0)="L" D ^DIC
 | 
|---|
| 81 |  S DIC(0)="BX" D ^DIC
 | 
|---|
| 82 |  S IEN=+Y
 | 
|---|
| 83 |  I 'IEN Q
 | 
|---|
| 84 |  N DIE,DA,DR
 | 
|---|
| 85 |  S DIE="^ORD(100.98,",DA=IEN,DR="2///Clin. Meds;3///C RX"
 | 
|---|
| 86 |  D ^DIE
 | 
|---|
| 87 |  N DLAYGO
 | 
|---|
| 88 |  S DA(1)=$O(^ORD(100.98,"B","PHARMACY",0)) Q:'DA(1)
 | 
|---|
| 89 |  S:'$D(^ORD(100.98,DA(1),1,0)) ^(0)="^100.981P^^"
 | 
|---|
| 90 |  S DIC="^ORD(100.98,"_DA(1)_",1,",DIC(0)="NLX",DLAYGO=100.98
 | 
|---|
| 91 |  S X="CLINIC MEDICATIONS" D ^DIC
 | 
|---|
| 92 |  K Y
 | 
|---|
| 93 |  Q
 | 
|---|
| 94 | PARVAL ;add Clin. Meds display group to SEQUENCE parameter
 | 
|---|
| 95 |  N X
 | 
|---|
| 96 |  Q:'$D(^ORD(100.98,"B","CLINIC MEDICATIONS"))
 | 
|---|
| 97 |  S X=0,X=$O(^ORD(100.98,"B","CLINIC MEDICATIONS",X)) Q:'X  D 
 | 
|---|
| 98 |  . D PUT^XPAR("PKG","ORWOR CATEGORY SEQUENCE",69,X)
 | 
|---|
| 99 |  Q
 | 
|---|
| 100 |  ;
 | 
|---|
| 101 | SCH ; -- Adjust admin schedule Help Msg for Non-Std Schedules
 | 
|---|
| 102 |  N SCH,I,DG,PKG,IPKG,DLG,PRMT,OR0
 | 
|---|
| 103 |  S SCH=+$O(^ORD(101.41,"B","OR GTX SCHEDULE",0)) Q:SCH<1
 | 
|---|
| 104 |  F I="I","UD","O","C" S X=+$O(^ORD(100.98,"B",I_" RX",0)) S:X DG(X)=""
 | 
|---|
| 105 |  F I="RX","SPLY" S X=+$O(^ORD(100.98,"B",I,0)) S:X DG(X)=""
 | 
|---|
| 106 |  F PKG="PSJ","PSO","PSS" D
 | 
|---|
| 107 |  . S IPKG=+$O(^DIC(9.4,"C",PKG,0))
 | 
|---|
| 108 |  . S DLG=0 F  S DLG=+$O(^ORD(101.41,"APKG",IPKG,DLG)) Q:DLG<1  D
 | 
|---|
| 109 |  .. S OR0=$G(^ORD(101.41,DLG,0)) Q:$P(OR0,U,4)'="D"  Q:'$D(DG($P(OR0,U,5)))
 | 
|---|
| 110 |  .. S PRMT=+$O(^ORD(101.41,DLG,10,"D",SCH,0)) Q:PRMT<1
 | 
|---|
| 111 |  .. S ^ORD(101.41,DLG,10,PRMT,1)="Enter a standard administration schedule."
 | 
|---|
| 112 |  Q
 | 
|---|
| 113 |  ;
 | 
|---|
| 114 | STUFDTRG ; Stuff existing date ranges into new parameters for CS and PCE.
 | 
|---|
| 115 |  ;
 | 
|---|
| 116 |  ; Get existing settings, stuff into new parameters.
 | 
|---|
| 117 |  ;
 | 
|---|
| 118 |  ; NOTE: ORQQCSDR params will allow "T, T+, T- settings.
 | 
|---|
| 119 |  ;       ORQQEAPT params allow single value number entries only.
 | 
|---|
| 120 |  ;
 | 
|---|
| 121 |  N ORBE,ORBX,ORBZ,ORDUZ,ORERR,ORLST,ORNEG,ORSTART,ORSTOP,ORVAL
 | 
|---|
| 122 |  ;
 | 
|---|
| 123 |  ; First deal with PKG level settings.
 | 
|---|
| 124 |  ;
 | 
|---|
| 125 |  ; Clean out any existing settings:
 | 
|---|
| 126 |  D NDEL^XPAR("PKG","ORQQEAPT ENC APPT START",.ORERR)
 | 
|---|
| 127 |  D NDEL^XPAR("PKG","ORQQEAPT ENC APPT STOP",.ORERR)
 | 
|---|
| 128 |  D NDEL^XPAR("PKG","ORQQCSDR CS RANGE START",.ORERR)
 | 
|---|
| 129 |  D NDEL^XPAR("PKG","ORQQCSDR CS RANGE STOP",.ORERR)
 | 
|---|
| 130 |  ;
 | 
|---|
| 131 |  ; Get settings of previously-used high level params:
 | 
|---|
| 132 |  S ORSTART=$$GET^XPAR("DIV^SYS^PKG","ORQQVS SEARCH RANGE START",1,"I")
 | 
|---|
| 133 |  I '$L(ORSTART) S ORSTART=90
 | 
|---|
| 134 |  S ORSTOP=$$GET^XPAR("DIV^SYS^PKG","ORQQAP SEARCH RANGE STOP",1,"I")
 | 
|---|
| 135 |  I '$L(ORSTOP) S ORSTOP=90
 | 
|---|
| 136 |  ;
 | 
|---|
| 137 |  ; Stuff retrieved values into PKG level of first set of new params:
 | 
|---|
| 138 |  D EN^XPAR("PKG","ORQQCSDR CS RANGE START",1,ORSTART)
 | 
|---|
| 139 |  D EN^XPAR("PKG","ORQQCSDR CS RANGE STOP",1,ORSTOP)
 | 
|---|
| 140 |  ;
 | 
|---|
| 141 |  ; Treat "start" value and stuff it:
 | 
|---|
| 142 |  S ORVAL=ORSTART,ORNEG=0
 | 
|---|
| 143 |  I ORVAL["T" S ORVAL=$P(ORVAL,"T",2)
 | 
|---|
| 144 |  I ORVAL["t" S ORVAL=$P(ORVAL,"t",2)
 | 
|---|
| 145 |  I ORVAL["-" S ORNEG=1,ORVAL=$P(ORVAL,"-",2)
 | 
|---|
| 146 |  I ORVAL["+" S ORVAL=$P(ORVAL,"+",2)
 | 
|---|
| 147 |  S ORVAL=+ORVAL
 | 
|---|
| 148 |  I 'ORNEG S ORVAL=0 ; Can't have later than "Today" for "start."
 | 
|---|
| 149 |  D EN^XPAR("PKG","ORQQEAPT ENC APPT START",1,ORVAL)
 | 
|---|
| 150 |  ;
 | 
|---|
| 151 |  ; Treat "stop" value and stuff it:
 | 
|---|
| 152 |  S ORVAL=ORSTOP,ORNEG=0
 | 
|---|
| 153 |  I ORVAL["T" S ORVAL=$P(ORVAL,"T",2)
 | 
|---|
| 154 |  I ORVAL["t" S ORVAL=$P(ORVAL,"t",2)
 | 
|---|
| 155 |  I ORVAL["-" S ORNEG=1,ORVAL=$P(ORVAL,"-",2)
 | 
|---|
| 156 |  I ORVAL["+" S ORVAL=$P(ORVAL,"+",2)
 | 
|---|
| 157 |  S ORVAL=+ORVAL
 | 
|---|
| 158 |  I ORNEG S ORVAL=0 ; Won't allow earlier than "Today" for "stop."
 | 
|---|
| 159 |  D EN^XPAR("PKG","ORQQEAPT ENC APPT STOP",1,ORSTOP)
 | 
|---|
| 160 |  ;
 | 
|---|
| 161 |  ; Deal with User level settings.
 | 
|---|
| 162 |  ;
 | 
|---|
| 163 |  S (ORBE,ORBX,ORBZ,ORDUZ,ORERR,ORLST,ORNEG,ORVAL)=""
 | 
|---|
| 164 |  ;
 | 
|---|
| 165 |  ; Begin with the START parameter:
 | 
|---|
| 166 |  D ENVAL^XPAR(.ORLST,"ORQQAP SEARCH RANGE START",1,.ORERR)
 | 
|---|
| 167 |  I 'ORERR,$G(ORLST)>0 D
 | 
|---|
| 168 |  .F ORBX=1:1:ORLST S ORBE=$O(ORLST(ORBE)) D
 | 
|---|
| 169 |  ..S ORBZ=$P(ORBE,";",2)
 | 
|---|
| 170 |  ..I ORBZ="VA(200," S ORDUZ=$P(ORBE,";") I $L($G(ORDUZ)) D
 | 
|---|
| 171 |  ...S ORVAL=ORLST(ORBE,1) ; Current setting.
 | 
|---|
| 172 |  ...;
 | 
|---|
| 173 |  ...; Eliminate any existing entries:
 | 
|---|
| 174 |  ...D NDEL^XPAR("USR.`"_ORDUZ,"ORQQCSDR CS RANGE START",.ORERR)
 | 
|---|
| 175 |  ...;
 | 
|---|
| 176 |  ...; Stuff value:
 | 
|---|
| 177 |  ...D EN^XPAR("USR.`"_ORDUZ,"ORQQCSDR CS RANGE START",1,ORVAL)
 | 
|---|
| 178 |  ...;
 | 
|---|
| 179 |  ...; Treat value:
 | 
|---|
| 180 |  ...S ORNEG=0
 | 
|---|
| 181 |  ...I ORVAL["T" S ORVAL=$P(ORVAL,"T",2)
 | 
|---|
| 182 |  ...I ORVAL["t" S ORVAL=$P(ORVAL,"t",2)
 | 
|---|
| 183 |  ...I ORVAL["-" S ORNEG=1,ORVAL=$P(ORVAL,"-",2)
 | 
|---|
| 184 |  ...I ORVAL["+" S ORVAL=$P(ORVAL,"+",2)
 | 
|---|
| 185 |  ...S ORVAL=+ORVAL
 | 
|---|
| 186 |  ...I 'ORNEG S ORVAL=0 ; Can't have later than "Today" for "start."
 | 
|---|
| 187 |  ...;
 | 
|---|
| 188 |  ...; Eliminate any existing entries:
 | 
|---|
| 189 |  ...D NDEL^XPAR("USR.`"_ORDUZ,"ORQQEAPT ENC APPT START",.ORERR)
 | 
|---|
| 190 |  ...;
 | 
|---|
| 191 |  ...; Stuff value:
 | 
|---|
| 192 |  ...D EN^XPAR("USR.`"_ORDUZ,"ORQQEAPT ENC APPT START",1,ORVAL)
 | 
|---|
| 193 |  ;
 | 
|---|
| 194 |  ; Now do the STOP parameter:
 | 
|---|
| 195 |  S (ORBE,ORBX,ORBZ,ORDUZ,ORERR,ORLST,ORNEG,ORVAL)=""
 | 
|---|
| 196 |  ;
 | 
|---|
| 197 |  D ENVAL^XPAR(.ORLST,"ORQQVS SEARCH RANGE STOP",1,.ORERR)
 | 
|---|
| 198 |  I 'ORERR,$G(ORLST)>0 D
 | 
|---|
| 199 |  .F ORBX=1:1:ORLST S ORBE=$O(ORLST(ORBE)) D
 | 
|---|
| 200 |  ..S ORBZ=$P(ORBE,";",2)
 | 
|---|
| 201 |  ..I ORBZ="VA(200," S ORDUZ=$P(ORBE,";") I $L($G(ORDUZ)) D
 | 
|---|
| 202 |  ...S ORVAL=ORLST(ORBE,1) ; Current setting.
 | 
|---|
| 203 |  ...;
 | 
|---|
| 204 |  ...; Eliminate any existing entries:
 | 
|---|
| 205 |  ...D NDEL^XPAR("USR.`"_ORDUZ,"ORQQCSDR CS RANGE STOP",.ORERR)
 | 
|---|
| 206 |  ...;
 | 
|---|
| 207 |  ...; Stuff value:
 | 
|---|
| 208 |  ...D EN^XPAR("USR.`"_ORDUZ,"ORQQCSDR CS RANGE STOP",1,ORVAL)
 | 
|---|
| 209 |  ...;
 | 
|---|
| 210 |  ...; Treat parameter value:
 | 
|---|
| 211 |  ...S ORNEG=0
 | 
|---|
| 212 |  ...I ORVAL["T" S ORVAL=$P(ORVAL,"T",2)
 | 
|---|
| 213 |  ...I ORVAL["t" S ORVAL=$P(ORVAL,"t",2)
 | 
|---|
| 214 |  ...I ORVAL["-" S ORNEG=1,ORVAL=$P(ORVAL,"-",2)
 | 
|---|
| 215 |  ...I ORVAL["+" S ORVAL=$P(ORVAL,"+",2)
 | 
|---|
| 216 |  ...S ORVAL=+ORVAL
 | 
|---|
| 217 |  ...I ORNEG S ORVAL=0 ; Can't have earlier than "Today" for "stop."
 | 
|---|
| 218 |  ...;
 | 
|---|
| 219 |  ...; Eliminate any existing entries:
 | 
|---|
| 220 |  ...D NDEL^XPAR("USR.`"_ORDUZ,"ORQQEAPT ENC APPT STOP",.ORERR)
 | 
|---|
| 221 |  ...;
 | 
|---|
| 222 |  ...; Stuff value:
 | 
|---|
| 223 |  ...D EN^XPAR("USR.`"_ORDUZ,"ORQQEAPT ENC APPT STOP",1,ORVAL)
 | 
|---|
| 224 |  ;
 | 
|---|
| 225 |  Q
 | 
|---|
| 226 |  ;
 | 
|---|
| 227 | GNRPCS ;
 | 
|---|
| 228 |  N MENU,I
 | 
|---|
| 229 |  S MENU="OR CPRS GUI CHART"
 | 
|---|
| 230 |  F I="ORWGN GNLOC","ORWGN AUTHUSR" D INSERT(MENU,I)
 | 
|---|
| 231 |  Q
 | 
|---|
| 232 |  ;
 | 
|---|
| 233 | MAGRPC1 ;  Register Imaging RPC if MAG*3.0*7 present (DBIA 4526)
 | 
|---|
| 234 |  D INSERT("OR CPRS GUI CHART","MAG4 REMOTE IMPORT")
 | 
|---|
| 235 |  Q
 | 
|---|
| 236 |  ;
 | 
|---|
| 237 | MAGRPC2 ; Register Imaging RPCS if MAG*3.0*37 installed (DBIA 4528/4530)
 | 
|---|
| 238 |  D INSERT("OR CPRS GUI CHART","MAG IMPORT CHECK STATUS")
 | 
|---|
| 239 |  D INSERT("OR CPRS GUI CHART","MAG IMPORT CLEAR STATUS")
 | 
|---|
| 240 |  Q
 | 
|---|
| 241 |  ;
 | 
|---|
| 242 | VERSION ;;25.28
 | 
|---|