Changeset 1479 for Scheduling/trunk/m/BSDX07.m
- Timestamp:
- Jul 9, 2012, 7:43:46 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Scheduling/trunk/m/BSDX07.m
r1472 r1479 1 BSDX07 ; VW/UJO/SMH - WINDOWS SCHEDULING RPCS ; 7/ 5/12 12:57pm1 BSDX07 ; VW/UJO/SMH - WINDOWS SCHEDULING RPCS ; 7/9/12 4:02pm 2 2 ;;1.7T1;BSDX;;Jul 06, 2012;Build 18 3 3 ; Licensed under LGPL … … 32 32 Q 33 33 ; 34 APPADD(BSDXY,BSDXSTART,BSDXEND,BSDXPATID,BSDXRES,BSDXLEN,BSDXNOTE,BSDXATID,BSDXRADEXAM) ; EP34 APPADD(BSDXY,BSDXSTART,BSDXEND,BSDXPATID,BSDXRES,BSDXLEN,BSDXNOTE,BSDXATID,BSDXRADEXAM) ;Private EP 35 35 ; 36 36 ;Called by RPC: BSDX ADD NEW APPOINTMENT … … 58 58 ; AppointmentID and ErrorNumber 59 59 ; 60 ; NB: Specifying BSDXLEN and BSDXEND is redundant. For future programmers60 ; TODO: Specifying BSDXLEN and BSDXEND is redundant. For future programmers 61 61 ; to sort out. Needs changes on client. 62 62 ; … … 66 66 ; Deal with optional arguments 67 67 S BSDXRADEXAM=$G(BSDXRADEXAM) 68 68 ; 69 69 ; Return Array; set Return and clear array 70 70 S BSDXY=$NA(^BSDXTMP($J)) 71 71 K ^BSDXTMP($J) 72 72 ; 73 73 ; $ET 74 74 N $ET S $ET="G ETRAP^BSDX07" … … 80 80 ; It's not expected that the error will ever happen as no filing 81 81 ; is supposed to take 5 seconds. 82 L +^BSDX APPT(BSDXPATID):5 I '$T D ERR(BSDXI,"-1~Patient record is locked. Please contact technical support.") Q82 L +^BSDXPAT(BSDXPATID):5 I '$T D ERR(BSDXI,"-1~Patient record is locked. Please contact technical support.") Q 83 83 ; 84 84 ; Header Node … … 92 92 N BSDXERR S BSDXERR=0 93 93 ; 94 ;;;test for error inside transaction. See if %ZTER works95 I $G(BSDXDIE) S X=1/094 ;;;test for error. See if %ZTER works 95 I $G(BSDXDIE) N X S X=1/0 96 96 ;;;test 97 97 ; … … 132 132 ; Now, check if PIMS has any issues with us making the appt using MAKECK 133 133 N BSDXSCD S BSDXSCD=$P(BSDXRNOD,U,4) ; Hosp Location IEN 134 N BSDXERR ; Variable to hold value of $$MAKE and $$MAKECK134 N BSDXERR S BSDXERR=0 ; Variable to hold value of $$MAKE and $$MAKECK 135 135 N BSDXC ; Array to send to MAKE and MAKECK APIs 136 136 ; Only if we have a valid Hosp Location 137 I +BSDXSCD,$D(^SC(BSDXSCD,0)) D I +BSDXERR D ERR(BSDXI,"-10~BSDX07 Error: MAKECK^BSDXAPI returned error code: "_BSDXERR) Q ; no need for roll back137 I +BSDXSCD,$D(^SC(BSDXSCD,0)) D 138 138 . S BSDXC("PAT")=BSDXPATID 139 139 . S BSDXC("CLN")=BSDXSCD … … 147 147 . S BSDXC("USR")=DUZ 148 148 . S BSDXERR=$$MAKECK^BSDXAPI(.BSDXC) 149 I BSDXERR D ERR(BSDXI,"-10~BSDX07 Error: MAKECK^BSDXAPI returned error code: "_BSDXERR) Q ; no need for roll back 149 150 ; 150 151 ; Done with all checks, let's make appointment in BSDX APPOINTMENT … … 160 161 ; Only if we have a valid Hosp Loc can we make an appointment in 2/44 161 162 ; Use BSDXC array from before. 162 ; NB: $$MAKE itself calls $$MAKECK to check again for being okay. 163 I +BSDXSCD,$D(^SC(BSDXSCD,0)) D I +BSDXERR D ERR(BSDXI,"-10~BSDX07 Error: MAKE^BSDXAPI returned error code: "_BSDXERR),ROLLBACK(BSDXAPPTID,.BSDXC) Q 164 . S BSDXERR=$$MAKE^BSDXAPI(.BSDXC) 163 ; FYI: $$MAKE itself calls $$MAKECK to check again for being okay. 164 ; If an error happens here, we roll back both ^BSDXAPPT and 2/44 by deleting 165 N BSDXERR S BSDXERR=0 ; Variable to hold value of $$MAKE and $$MAKECK 166 I +BSDXSCD,$D(^SC(BSDXSCD,0)) S BSDXERR=$$MAKE^BSDXAPI(.BSDXC) 167 I BSDXERR D ERR(BSDXI,"-10~BSDX07 Error: MAKE^BSDXAPI returned error code: "_BSDXERR),ROLLBACK(BSDXAPPTID,.BSDXC) Q 168 ; 169 ; Unlock 170 L -^BSDXPAT(BSDXPATID) 165 171 ; 166 172 ;Return Recordset 167 L -^BSDXAPPT(BSDXPATID)168 173 S BSDXI=BSDXI+1 169 174 S ^BSDXTMP($J,BSDXI)=BSDXAPPTID_"^"_$C(30) … … 179 184 ;Returns ien in BSDXAPPT or 0 if failed 180 185 ;Create entry in BSDX APPOINTMENT 181 N BSDXAPPTID 186 N BSDXAPPTID,BSDXFDA 182 187 S BSDXFDA(9002018.4,"+1,",.01)=BSDXSTART 183 188 S BSDXFDA(9002018.4,"+1,",.02)=BSDXEND … … 208 213 ;BSDXSCDA=IEN for ^SC(BSDXSC,"S",BSDXSTART,1,BSDXSCDA). Use to get Length & Note 209 214 ; 210 N BSDXNOD,BSDXLEN,BSDXAPPTID,BSDXNODP,BSDXWKIN,BSDXRES 215 N BSDXNOD,BSDXLEN,BSDXAPPTID,BSDXNODP,BSDXWKIN,BSDXRES,BSDXNOTE,BSDXEND 211 216 Q:+$G(BSDXNOEV) 212 217 I $D(^BSDXRES("ALOC",BSDXSC)) S BSDXRES=$O(^BSDXRES("ALOC",BSDXSC,0)) … … 243 248 ; Appointment ID to remove from ^BSDXAPPT 244 249 ; BSDXC array (see array format in $$MAKE^BSDXAPI) 245 ; NB: I am not sure whether I want to do $G to protect against undefs? 246 ; I send the variables to this EP from the Symbol Table in ETRAP 250 N % 247 251 D BSDXDEL^BSDX07(BSDXAPPTID) 248 252 S:$D(BSDXC) %=$$UNMAKE^BSDXAPI(.BSDXC) ; rtn value always 0 … … 257 261 ; 258 262 ERR(BSDXI,BSDXERR) ;Error processing - different from error trap. 263 ; Unlock first 264 L -^BSDXPAT(BSDXPATID) 265 ; If last line is $C(31), we are done. No more errors to send to client. 266 I ^BSDXTMP($J,$O(^BSDXTMP($J," "),-1))=$C(31) QUIT 259 267 S BSDXI=BSDXI+1 260 268 S BSDXERR=$TR(BSDXERR,"^","~") … … 262 270 S BSDXI=BSDXI+1 263 271 S ^BSDXTMP($J,BSDXI)=$C(31) 264 L -^BSDXAPPT(BSDXPATID)265 272 Q 266 273 ; … … 268 275 N $ET S $ET="D ^%ZTER HALT" ; Emergency Error Trap 269 276 D ^%ZTER 270 S $EC="" ; Clear Error277 ; 271 278 I +$G(BSDXAPPTID) D ROLLBACK(BSDXAPPTID,.BSDXC) ; Rollback if BSDXAPPTID exists 279 ; 272 280 ; Log error message and send to client 273 281 I '$D(BSDXI) N BSDXI S BSDXI=0
Note:
See TracChangeset
for help on using the changeset viewer.