Changeset 1172 for Scheduling
- Timestamp:
- May 8, 2011, 4:11:34 AM (14 years ago)
- Location:
- Scheduling/trunk/m
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
Scheduling/trunk/m
-
Property svn:mergeinfo
set to
/Scheduling/branches/Radiology-Support/m merged eligible
-
Property svn:mergeinfo
set to
-
Scheduling/trunk/m/BSDX01.m
r1161 r1172 319 319 I $$INDIV2(27)'=1 W "ERROR",! 320 320 QUIT 321 ; 322 GETRADEX(BSDXY,DFN,SCIEN) ; Get All Pending and On Hold Radiology Exams for Patient; RPC EP; UJO/SMH new in v 1.6 323 ; RPC: BSDX GET RAD EXAM FOR PT; Return: Global Array 324 ; 325 ; Input: DFN - you should know; SCIEN - IEN of Hospital Location 326 ; Output: ADO Datatable with the following columns: 327 ; - BMXIEN: Radiology Exam IEN in file 75.1 (RAD/NUC MED ORDERS) 328 ; - STATUS: Pending Or Hold Status 329 ; - PROCEDURE: Text Procedure Name 330 ; - REQUEST_DATE: Date Procedure was requested 331 ; 332 ; Error Processing: Silent failure. 333 ; 334 S BSDXY=$NA(^BMXTEMP($J)) 335 K @BSDXY 336 ; 337 N BSDXI S BSDXI=0 338 S @BSDXY@(BSDXI)="I00015BMXIEN^T00015STATUS^T00100PROCEDURE^D00030REQUEST_DATE"_$C(30) 339 ; 340 N BSDXRLIEN S BSDXRLIEN=$ORDER(^RA(79.1,"B",SCIEN,"")) ; IEN of HL in file 79.1, to get Radiology Imaging IEN 341 I 'BSDXRLIEN GOTO END 342 ; 343 N BSDXOUT,BSDXERR ; Out, Error 344 ; 345 ; File 75.1 = RAD/NUC MED ORDERS 346 ; Fields 5 = Request Status; 2 = Procedure; 16 = Requested Entered Date Time 347 ; Filter Field: First piece is DFN, 5th piece is 3 or 5 (Status of Pending Or Hold); 20th piece is Radiology Location requested 348 D LIST^DIC(75.1,"","@;5;2;16","P","","","","B","I $P(^(0),U)=DFN&(35[$P(^(0),U,5))&($P(^(0),U,20)=BSDXRLIEN)","","BSDXOUT","BSDXERR") 349 ; 350 IF $DATA(BSDXERR) GOTO END 351 ; 352 I +BSDXOUT("DILIST",0)>0 FOR BSDXI=1:1:+BSDXOUT("DILIST",0) DO ; if we have data, fetch the data in each row and store it in the return variable 353 . N BMXIEN,BMXSTAUS,BMXPROC,BMXDATE ; Proc IEN, Proc Status, Proc Name 354 . S BMXIEN=$P(BSDXOUT("DILIST",BSDXI,0),U) ; IEN 355 . S BMXSTATUS=$P(BSDXOUT("DILIST",BSDXI,0),U,2) ; Status 356 . S BMXPROC=$P(BSDXOUT("DILIST",BSDXI,0),U,3) ; Procedure Name 357 . S BMXDATE=$TR($P(BSDXOUT("DILIST",BSDXI,0),U,4),"@"," ") ; Request Entered Date Time 358 . S @BSDXY@(BSDXI)=BMXIEN_U_BMXSTATUS_U_BMXPROC_U_BMXDATE_$C(30) 359 END ; Errors Jump Here... 360 S @BSDXY@(BSDXI+1)=$C(31) 361 QUIT 362 ; 363 SCHRAEX(BSDXY,RADFN,RAOIFN,RAOSCH) ; Schedule a Radiology Exam; RPC EP; UJO/SMH new in v 1.6 364 ; RPC: BSDX SCHEDULE RAD EXAM; Return: Single Value 365 ; 366 ; Input: 367 ; - RADFN -> DFN 368 ; - RAOIFN -> Radiology Order IEN in file 75.1 369 ; - RAOSCH -> Scheduled Time for Exam 370 ; Output: Always "1" 371 ; 372 S RAOSCH=+RAOSCH ; Strip the trailing zeros from the Fileman Date produced by C# 373 N RAOSTS S RAOSTS=8 ; Status of Scheduled 374 D ^RAORDU ; API in Rad expects RADFN, RAOIFN, RAOSCH, and RAOSTS 375 S BSDXY=1 ; Success 376 QUIT 377 ; 378 HOLDRAEX(BSDXY,RADFN,RAOIFN) ; Hold a Radiology Exam; RPC EP; UJO/SMH new in v 1.6 379 ; RPC: BSDX HOLD RAD EXAM; Return: Single Vale 380 ; 381 ; Input: 382 ; - RADFN -> DFN 383 ; - RAOIFN -> Radiology Order IEN in file 75.1 384 ; Output: Always "1" 385 N RAOSTS S RAOSTS=3 ; Status of Hold 386 N RAOREA S RAOREA=20 ; Reason: Exam Cancelled 387 D ^RAORDU 388 S BSDXY=1 ; Success 389 QUIT -
Scheduling/trunk/m/BSDX02.m
r1161 r1172 5 5 ; July 15 2010: UJO/SMH - Pass FM dates in instead of US dates for i18n 6 6 ; March 21 2011: UJO/SMH (v 1.5) - Return new fields: Patient SEX, PID, and DOB 7 ; April 11 2011: UJO/SMH (v 1.6) - Added Radiology Exam Field, to retrieve Radiology Exam associated with appt 7 8 ; 8 9 ; … … 29 30 S BSDXERR="" 30 31 S BSDXY="^BSDXTMP("_$J_")" 31 S ^BSDXTMP($J,0)="I00020APPOINTMENTID^D00030START_TIME^D00030END_TIME^D00030CHECKIN^D00030AUXTIME^I00020PATIENTID^T00030PATIENTNAME^T00030RESOURCENAME^I00005NOSHOW^T00020HRN^I00005ACCESSTYPEID^I00005WALKIN^T00250NOTE^T00006SEX^T00040PID^D00030DOB "_$C(30)32 S ^BSDXTMP($J,0)="I00020APPOINTMENTID^D00030START_TIME^D00030END_TIME^D00030CHECKIN^D00030AUXTIME^I00020PATIENTID^T00030PATIENTNAME^T00030RESOURCENAME^I00005NOSHOW^T00020HRN^I00005ACCESSTYPEID^I00005WALKIN^T00250NOTE^T00006SEX^T00040PID^D00030DOB^I00020RADIOLOGY_EXAM"_$C(30) 32 33 D ^XBKVAR S X="ETRAP^BSDX02",@^%ZOSF("TRAP") 33 34 ; … … 99 100 ; Outputs it in MM/DD/YYYY format, which is ambigous for C#. 100 101 N DOB S DOB=$$FMTE^XLFDT($$GET1^DIQ(2,BSDXPATD,.03,"I")) ; DOB 101 S ^BSDXTMP($J,BSDXI)=SEX_U_PID_U_DOB_$C(30) 102 N RADEX S RADEX=$P(BSDXNOD,U,14) 103 S ^BSDXTMP($J,BSDXI)=SEX_U_PID_U_DOB_U_RADEX_$C(30) 102 104 ; end new code 103 105 Q -
Scheduling/trunk/m/BSDX07.m
r1161 r1172 11 11 ; v1.5 Mar 15 2011 - End time does not have to have time anymore. 12 12 ; It could be midnight of the next day 13 ; v1.6 Apr 11 2011 - Support for Scheduling Radiology Exams... 13 14 ; 14 15 ; Error Reference: … … 79 80 QUIT 80 81 ; 81 APPADD(BSDXY,BSDXSTART,BSDXEND,BSDXPATID,BSDXRES,BSDXLEN,BSDXNOTE,BSDXATID) ;EP 82 APPADD(BSDXY,BSDXSTART,BSDXEND,BSDXPATID,BSDXRES,BSDXLEN,BSDXNOTE,BSDXATID,BSDXRADEXAM) ;EP 83 ; 82 84 ;Called by RPC: BSDX ADD NEW APPOINTMENT 83 85 ; … … 98 100 ; if BSDXATID = "WALKIN" then BSDAPI is called to create a walkin appt. 99 101 ; if BSDXATID = a number, then it is the access type id (used for rebooking) 102 ;BSDXRADEXAM is used to store the Radiology Exam to which this appointment is tied to (optional) 100 103 ; 101 104 ;Return: … … 106 109 ;BSDX ADD NEW APPOINTMENT^3091122.0930^3091122.1000^370^Dr Office^30^EXAM^WALKIN 107 110 ; 111 ; Deal with optional arguments 112 S BSDXRADEXAM=$G(BSDXRADEXAM) 108 113 ; Return Array; set Return and clear array 109 114 S BSDXY=$NA(^BSDXTMP($J)) … … 173 178 ; Done with all checks, let's make appointment in BSDX APPOINTMENT 174 179 N BSDXAPPTID 175 S BSDXAPPTID=$$BSDXADD(BSDXSTART,BSDXEND,BSDXPATID,BSDXRESD,BSDXATID )180 S BSDXAPPTID=$$BSDXADD(BSDXSTART,BSDXEND,BSDXPATID,BSDXRESD,BSDXATID,BSDXRADEXAM) 176 181 I 'BSDXAPPTID D ERR(BSDXI,"-9~BSDX07 Error: Unable to add appointment to BSDX APPOINTMENT file.") Q 177 182 I BSDXNOTE]"" D BSDXWP(BSDXAPPTID,BSDXNOTE) … … 217 222 Q BSDXZ 218 223 ; 219 BSDXADD(BSDXSTART,BSDXEND,BSDXPATID,BSDXRESD,BSDXATID ) ;ADD BSDX APPOINTMENT ENTRY224 BSDXADD(BSDXSTART,BSDXEND,BSDXPATID,BSDXRESD,BSDXATID,BSDXRADEXAM) ;ADD BSDX APPOINTMENT ENTRY 220 225 ;Returns ien in BSDXAPPT or 0 if failed 221 226 ;Create entry in BSDX APPOINTMENT … … 229 234 S:BSDXATID="WALKIN" BSDXFDA(9002018.4,"+1,",.13)="y" 230 235 S:BSDXATID?.N BSDXFDA(9002018.4,"+1,",.06)=BSDXATID 236 S BSDXFDA(9002018.4,"+1,",.14)=BSDXRADEXAM 231 237 N BSDXIEN,BSDXMSG 232 238 D UPDATE^DIE("","BSDXFDA","BSDXIEN","BSDXMSG") -
Scheduling/trunk/m/BSDX28.m
r1161 r1172 28 28 I '+$G(DUZ) S BSDXY=BSDXRET_$C(31) Q 29 29 I '$D(DUZ(2)) S BSDXY=BSDXRET_$C(31) Q 30 30 DFN ;If DFN is passed as `nnnn, just return that patient 31 I $E(BSDXP)="`" DO SET BSDXY=BSDXRET_$C(31) QUIT 32 . N BSDXIEN S BSDXIEN=$E(BSDXP,2,99) 33 . I BSDXIEN'=+BSDXIEN QUIT ; BSDXIEN must be numeric 34 . N NAME S NAME=$P(^DPT(BSDXIEN,0),U) 35 . N HRN S HRN=$P($G(^AUPNPAT(BSDXIEN,41,DUZ(2),0)),U,2) 36 . N PID S PID=$P(^DPT(BSDXIEN,.36),U,3) 37 . N DOB S DOB=$$FMTE^XLFDT($P(^DPT(BSDXIEN,0),U,3)) 38 . S BSDXRET=BSDXRET_NAME_U_HRN_U_PID_U_DOB_U_BSDXIEN_$C(30) 31 39 PID ;PID Lookup 32 40 ; If this ID exists, go get it. If "UJOPID" index doesn't exist, -
Scheduling/trunk/m/BSDX32.m
r1161 r1172 29 29 S BSDXI=0 30 30 ;"SELECT BSDXIEN 'HOSPITAL_LOCATION_ID', NAME 'HOSPITAL_LOCATION', DEFAULT_PROVIDER, STOP_CODE_NUMBER, INACTIVATE_DATE, REACTIVATE_DATE FROM HOSPITAL_LOCATION"; 31 S ^BSDXTMP($J,BSDXI)="I00020HOSPITAL_LOCATION_ID^T00040HOSPITAL_LOCATION^T00030DEFAULT_PROVIDER^T00030STOP_CODE_NUMBER^D00020INACTIVATE_DATE^D00020REACTIVATE_DATE "_$C(30)31 S ^BSDXTMP($J,BSDXI)="I00020HOSPITAL_LOCATION_ID^T00040HOSPITAL_LOCATION^T00030DEFAULT_PROVIDER^T00030STOP_CODE_NUMBER^D00020INACTIVATE_DATE^D00020REACTIVATE_DATE^T00001IS_RADIOLOGY_LOCATION"_$C(30) 32 32 ; 33 33 S BSDXNAM="" F S BSDXNAM=$O(^SC("B",BSDXNAM)) Q:BSDXNAM="" D … … 50 50 . . . Q 51 51 . . Q 52 . ; Decide if this is a radiology location - Check "B" index of ^RA(79.1 global to see if HL is there 53 . N BSDXISRAD S BSDXISRAD=''$DATA(^RA(79.1,"B",BSDXIEN)) 52 54 . S BSDXI=BSDXI+1 53 . S ^BSDXTMP($J,BSDXI)=BSDXIEN_U_BSDXNAM_U_BSDXPRV_U_BSDXSCOD_U_BSDXINA_U_BSDXREA_ $C(30)55 . S ^BSDXTMP($J,BSDXI)=BSDXIEN_U_BSDXNAM_U_BSDXPRV_U_BSDXSCOD_U_BSDXINA_U_BSDXREA_U_BSDXISRAD_$C(30) 54 56 . Q 55 57 S BSDXI=BSDXI+1
Note:
See TracChangeset
for help on using the changeset viewer.