Changeset 1080 for Scheduling/trunk/m/BSDXAPI.m
- Timestamp:
- Jan 25, 2011, 5:58:58 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Scheduling/trunk/m/BSDXAPI.m
r1076 r1080 1 BSDXAPI ; IHS/ANMC/LJF - SCHEDULING APIs ; 1 2/6/10 5:50pm1 BSDXAPI ; IHS/ANMC/LJF - SCHEDULING APIs ; 1/25/11 1:00pm 2 2 ;;1.42;BSDX;;Dec 07, 2010;Build 7 3 3 ;Orignal routine is BSDAPI by IHS/LJF, HMW, and MAW … … 5 5 ;Move to BSDX namespace as BSDXAPI from BSDAPI by WV/SMH 6 6 ; Change History: 7 ; 2010-11-5: 7 ; 2010-11-5: (1.42) 8 8 ; - Fixed errors having to do uncanceling patient appointments if it was a patient cancelled appointment. 9 9 ; - Use new style Fileman API for storing appointments in file 44 in $$MAKE due to problems with legacy API. 10 ; 2010-11-12: 10 ; 2010-11-12: (1.42) 11 11 ; - Changed ="C" to ["C" in SCIEN. Cancelled appointments can be "PC" as well. 12 ; 2010-12-5 12 ; 2010-12-5 (1.42) 13 13 ; Added an entry point to update the patient note in file 44. 14 ; 2010-12-6 14 ; 2010-12-6 (1.42) 15 15 ; MAKE1 incorrectly put info field in BSDR("INFO") rather than BSDR("OI") 16 ; 2010-12-8 16 ; 2010-12-8 (1.42) 17 17 ; Removed restriction on max appt length. Even though this restriction 18 18 ; exists in fileman (120 minutes), PIMS ignores it. Therefore, I 19 19 ; will ignore it here too. 20 ; 2011-01-25 (v.1.5) 21 ; Added entry point $$RMCI to remove checked in appointments. 22 ; In $$CANCEL, if the appointment is checked in, delete check-in rather than 23 ; spitting an error message to the user saying 'Delete the check-in' 24 ; Changed all lines that look like this: 25 ; I $G(BSDR("ADT"))'?7N1".".4N Q 1_U_"Appt Date/Time error: "_$G(BSDR("ADT")) 26 ; to: 27 ; I $G(BSDR("ADT"))'?7N.1".".4N Q 1_U_"Appt Date/Time error: "_$G(BSDR("ADT")) 28 ; to allow for date at midnight which does not have a dot at the end. 29 ; 20 30 ; 21 31 MAKE1(DFN,CLIN,TYP,DATE,LEN,INFO) ; Simplified PEP w/ parameters for $$MAKE - making appointment … … 54 64 I ($G(BSDR("TYP"))<3)!($G(BSDR("TYP"))>4) Q 1_U_"Appt Type error: "_$G(BSDR("TYP")) 55 65 I $G(BSDR("ADT")) S BSDR("ADT")=+$E(BSDR("ADT"),1,12) ;remove seconds 56 I $G(BSDR("ADT"))'?7N 1".".4N Q 1_U_"Appt Date/Time error: "_$G(BSDR("ADT"))66 I $G(BSDR("ADT"))'?7N.1".".4N Q 1_U_"Appt Date/Time error: "_$G(BSDR("ADT")) 57 67 ; 58 68 ;I ($G(BSDR("LEN"))<5)!($G(BSDR("LEN"))>240) Q 1_U_"Appt Length error: "_$G(BSDR("LEN")) ; v 1.42 - no check on length is done anymore. see top comments for details. … … 150 160 I '$D(^SC(+$G(BSDR("CLN")),0)) Q 1_U_"Clinic not on file: "_$G(BSDR("CLN")) 151 161 I $G(BSDR("ADT")) S BSDR("ADT")=+$E(BSDR("ADT"),1,12) ;remove seconds 152 I $G(BSDR("ADT"))'?7N 1".".4N Q 1_U_"Appt Date/Time error: "_$G(BSDR("ADT"))162 I $G(BSDR("ADT"))'?7N.1".".4N Q 1_U_"Appt Date/Time error: "_$G(BSDR("ADT")) 153 163 I $G(BSDR("CDT")) S BSDR("CDT")=+$E(BSDR("CDT"),1,12) ;remove seconds 154 I $G(BSDR("CDT"))'?7N 1".".4N Q 1_U_"Checkin Date/Time error: "_$G(BSDR("CDT"))164 I $G(BSDR("CDT"))'?7N.1".".4N Q 1_U_"Checkin Date/Time error: "_$G(BSDR("CDT")) 155 165 I '$D(^VA(200,+$G(BSDR("USR")),0)) Q 1_U_"User Who Made Appt Error: "_$G(BSDR("USR")) 156 166 ; … … 219 229 I ($G(BSDR("TYP"))'="C"),($G(BSDR("TYP"))'="PC") Q 1_U_"Cancel Status error: "_$G(BSDR("TYP")) 220 230 I $G(BSDR("ADT")) S BSDR("ADT")=+$E(BSDR("ADT"),1,12) ;remove seconds 221 I $G(BSDR("ADT"))'?7N 1".".4N Q 1_U_"Appt Date/Time error: "_$G(BSDR("ADT"))231 I $G(BSDR("ADT"))'?7N.1".".4N Q 1_U_"Appt Date/Time error: "_$G(BSDR("ADT")) 222 232 I $G(BSDR("CDT")) S BSDR("CDT")=+$E(BSDR("CDT"),1,12) ;remove seconds 223 I $G(BSDR("CDT"))'?7N 1".".4N Q 1_U_"Cancel Date/Time error: "_$G(BSDR("CDT"))233 I $G(BSDR("CDT"))'?7N.1".".4N Q 1_U_"Cancel Date/Time error: "_$G(BSDR("CDT")) 224 234 I '$D(^VA(200,+$G(BSDR("USR")),0)) Q 1_U_"User Who Canceled Appt Error: "_$G(BSDR("USR")) 225 235 I '$D(^SD(409.2,+$G(BSDR("CR")))) Q 1_U_"Cancel Reason error: "_$G(BSDR("CR")) … … 229 239 I 'IEN Q 1_U_"Error trying to find appointment for cancel: Patient="_BSDR("PAT")_" Clinic="_BSDR("CLN")_" Appt="_BSDR("ADT") 230 240 ; 231 I $$CI(BSDR("PAT"),BSDR("CLN"),BSDR("ADT"),IEN) Q 1_U_"Patient already checked in; cannot cancel until checkin deleted: Patient="_BSDR("PAT")_" Clinic="_BSDR("CLN")_" Appt="_BSDR("ADT") 241 ; BSDX 1.5 3110125 242 ; UJO/SMH - Add ability to remove check-in if the patient is checked in 243 ; I $$CI(BSDR("PAT"),BSDR("CLN"),BSDR("ADT"),IEN) Q 1_U_"Patient already checked in; cannot cancel until checkin deleted: Patient="_BSDR("PAT")_" Clinic="_BSDR("CLN")_" Appt="_BSDR("ADT") 244 ; Remove check-in if the patient is checked in. 245 N BSDXRESULT S BSDXRESULT=0 ; Result; should be zero if success; -1 + message if failure 246 I $$CI(BSDR("PAT"),BSDR("CLN"),BSDR("ADT"),IEN) SET BSDXRESULT=$$RMCI(BSDR("PAT"),BSDR("CLN"),BSDR("ADT")) 247 I BSDXRESULT Q BSDXRESULT 232 248 ; 233 249 ; remember before status … … 276 292 ; -1 if failure 277 293 ; 278 ; remember before status 294 ; Call like this: $$RMCI(233,33,3110102.1130) 295 ; 296 ; Move my variables into the ones used by SDAPIs (just a convenience) 279 297 NEW SDATA,DFN,SDT,SDCL,SDDA,SDCIHDL 280 298 S DFN=PAT,SDT=DATE,SDCL=CLINIC,SDMODE=2,SDDA=$$SCIEN(DFN,SDCL,SDT) … … 282 300 I SDDA<1 QUIT 0 ; Appt cancelled; cancelled appts rm'ed from file 44 283 301 ; 302 ; remember before status 284 303 S SDCIHDL=$$HANDLE^SDAMEVT(1),SDATA=SDDA_U_DFN_U_SDT_U_SDCL 285 304 D BEFORE^SDAMEVT(.SDATA,DFN,SDT,SDCL,SDDA,SDCIHDL) … … 322 341 ; 323 342 UPDATENOTE(PAT,CLINIC,DATE,NOTE) ; PEP; Update Note in ^SC for patient's appointment @ DATE 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 343 ; PAT = DFN 344 ; CLINIC = SC IEN 345 ; DATE = FM Date/Time of Appointment 346 ; 347 ; Returns: 348 ; 0 if okay 349 ; -1 if failure 350 N SCIEN S SCIEN=$$SCIEN(PAT,CLINIC,DATE) ; ien of appt in ^SC 351 I SCIEN<1 QUIT 0 ; Appt cancelled; cancelled appts rm'ed from file 44 352 N BSDXIENS S BSDXIENS=SCIEN_","_DATE_","_CLINIC_"," 353 S BSDXFDA(44.003,BSDXIENS,3)=$E(NOTE,1,150) 354 N BSDXERR 355 D FILE^DIE("","BSDXFDA","BSDXERR") 356 I $D(BSDXERR) QUIT "-1~Can't file for Pat "_PAT_" in Clinic "_CLINIC_" at "_DATE_". Fileman reported an error: "_BSDXERR("DIERR",1,"TEXT",1) 357 QUIT 0
Note:
See TracChangeset
for help on using the changeset viewer.