| 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 | 
|---|