Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: SDEC08A

SDEC08A.m

Go to the documentation of this file.
  1. SDEC08A ;ALB/PWC,BWF - VISTA SCHEDULING RPCS ;Aug 10, 2020@09:30
  1. ;;5.3;Scheduling;**745,756,886**;Aug 13, 1993;Build 13
  1. ;;Per VHA Directive 2004-038, this routine should not be modified
  1. ;
  1. Q
  1. ; called from ^SDEC08 - routine was too big and had to split *745/*756
  1. ;
  1. AVUPDT(SDECSCD,SDECSTART,SDECLEN) ;Update Clinic availability
  1. ;See SDCNP0
  1. N HSI,I,S,SB,SD,SDDIF,SI,SL,SS,ST,STARTDAY,STR,X,Y
  1. S (SD,S)=SDECSTART
  1. S I=SDECSCD
  1. Q:'$D(^SC(I,"ST",SD\1,1))
  1. S SL=^SC(I,"SL"),X=$P(SL,U,3),STARTDAY=$S($L(X):X,1:8),SB=STARTDAY-1/100,X=$P(SL,U,6),HSI=$S(X:X,1:4),SI=$S(X="":4,X<3:4,X:X,1:4),STR="#@!$* XXWVUTSRQPONMLKJIHGFEDCBA0123456789jklmnopqrstuvwxyz",SDDIF=$S(HSI<3:8/HSI,1:2)
  1. S SL=SDECLEN
  1. S S=^SC(I,"ST",SD\1,1),Y=SD#1-SB*100,ST=Y#1*SI\.6+(Y\1*SI),SS=SL*HSI/60
  1. I Y'<1 F I=ST+ST:SDDIF S Y=$E(STR,$F(STR,$E(S,I+1))) Q:Y="" S S=$E(S,1,I)_Y_$E(S,I+2,999),SS=SS-1 Q:SS'>0
  1. S ^SC(SDECSCD,"ST",SD\1,1)=S
  1. Q
  1. ;
  1. APCAN(SDECZ,SDECLOC,SDECDFN,SDECSD,SDECAPTID,SDECLEN) ;
  1. ;Cancel appointment for patient SDECDFN in clinic SDECSC1 at time SDECSD
  1. N SDECC,%H
  1. S SDECC("PAT")=SDECDFN
  1. S SDECC("CLN")=SDECLOC
  1. S SDECC("TYP")=SDECTYP
  1. S SDECC("ADT")=SDECSD
  1. S %H=$H D YMD^%DTC
  1. S SDECC("CDT")=SDECDATE ;X+%
  1. S SDECC("NOT")=SDECNOT
  1. S:+SDECCR SDECC("CR")=SDECCR
  1. S SDECC("USR")=SDUSER
  1. S SDECZ=$$CANCEL^SDEC08(.SDECC) ;PWC - changed to call routine SDEC08, code was previously in that routine before split *745
  1. Q
  1. ;
  1. SDECUCAN(SDECAPTID) ;called internally to update SDEC APPOINTMENT by clearing cancel date/time
  1. N PROVIEN,SDAPTYP,SDCL,SDRES,SDECIENS
  1. S SDECIENS=SDECAPTID_","
  1. S SDECFDA(409.84,SDECIENS,.12)=""
  1. K SDECMSG
  1. D FILE^DIE("","SDECFDA","SDECMSG")
  1. S SDAPTYP=$$GET1^DIQ(409.84,SDECAPTID_",",.22,"I")
  1. I $P(SDAPTYP,";",2)="GMR(123," D
  1. .S SDCL=$$SDCL^SDECUTL(SDECAPTID)
  1. .S PROVIEN=$$GET1^DIQ(44,SDCL_",",16,"I")
  1. .D REQSET^SDEC07A($P(SDAPTYP,";",1),PROVIEN,"",1)
  1. Q
  1. ;
  1. APUCAN(SDECZ,SDECLOC,SDECPATID,SDECSTART,SDECDAM,SDECDEC,SDECLEN,SDECNOTE,SDECRES,SDECWKIN) ;
  1. ;un-Cancel appointment for patient SDECDFN in clinic SDECSC1
  1. ; SDECLOC = pointer to hospital location ^SC file 44
  1. ; SDECPATID = pointer to VA Patient ^DPT file 2
  1. ; SDECSTART = Appointment time
  1. ; SDECDAM = Date appointment made in FM format
  1. ; SDECDEC = Data entry clerk - pointer to NEW PERSON file 200
  1. N SDECC,%H
  1. S SDECC("PAT")=SDECPATID
  1. S SDECC("CLN")=SDECLOC
  1. S SDECC("ADT")=SDECSTART
  1. S SDECC("NOTE")=SDECNOTE ;user note
  1. S SDECC("RES")=SDECRES
  1. S SDECC("USR")=DUZ
  1. S SDECC("LEN")=SDECLEN
  1. S SDECC("WKIN")=SDECWKIN
  1. ;
  1. S SDECZ=$$UNCANCEL(.SDECC)
  1. Q
  1. ;
  1. UNCANCEL(BSDR) ;PEP; called to un-cancel appt
  1. ; Make call using: S ERR=$$UNCANCEL(.ARRAY)
  1. ;
  1. ; Input Array -
  1. ; BSDR("PAT") = ien of patient in file 2
  1. ; BSDR("CLN") = ien of clinic in file 44
  1. ; BSDR("ADT") = appointment date and time
  1. ; BSDR("USR") = user who un-canceled appt
  1. ; BSDR("NOTE") = appointment note from SDEC APPOINTMENT
  1. ; BSDR("LEN") = appt length in minutes (numeric)
  1. ; BSDR("RES") = resource
  1. ; BSDR("WKIN")= walk-in
  1. ;
  1. ;Output: error status and message
  1. ; = 0 or null: everything okay
  1. ; = 1^message: error and reason
  1. ;
  1. N DPTNOD,DPTNODR,SDECERR
  1. I '$D(^DPT(+$G(BSDR("PAT")),0)) Q 1_U_"Patient not on file: "_$G(BSDR("PAT"))
  1. I '$D(^SC(+$G(BSDR("CLN")),0)) Q 1_U_"Clinic not on file: "_$G(BSDR("CLN"))
  1. I $G(BSDR("ADT"))'?7N1"."1N.N Q 1_U_"Appt Date/Time error: "_$G(BSDR("ADT")) ;PWC allow any time combination of numbers #694
  1. I '$D(^VA(200,+$G(BSDR("USR")),0)) Q 1_U_"User Who Canceled Appt Error: "_$G(BSDR("USR"))
  1. ;
  1. S SDECERR=$$APPVISTA^SDEC07B(BSDR("LEN"),BSDR("NOTE"),BSDR("PAT"),BSDR("RES"),BSDR("ADT"),BSDR("WKIN"),BSDR("CLN"),.SDECI) ;alb/sat 665 APPVISTA moved to SDEC07B
  1. Q SDECERR