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

BSDX25B.m

Go to the documentation of this file.
  1. BSDX25B ; IHS/OIT/HMW/MSC/SAT - WINDOWS SCHEDULING RPCS ;
  1. ;;3.0;IHS WINDOWS SCHEDULING;;DEC 09, 2010
  1. ;
  1. ;cmi/anch/maw 05/01/2009 PATCH 1010 RQMT 34 checkout date/time on visit
  1. Q
  1. ;
  1. CO(SDOE,DFN,SDT,SDCL,SDCODT,BSDXAPTID,SDQUIET,VPRV,APIERR) ;EP; called to ask check-out date/time ;SAT ADDED PARAMETERS SDCODT, BSDXAPTID, & SDQUIET
  1. ; Called by SDCO1
  1. ; SDOE = Oupatient Encounter IEN
  1. ; DFN = Patient IEN
  1. ; SDT = Appointment Date/Time
  1. ; SDCL = Clinic IEN
  1. ; SDCODT = APPOINTMENT CHECKOUT TIME [OPTIONAL - USED WHEN SDQUIET=1] USER ENTERED FORMAT
  1. ; BSDXAPTID = APPOINTMENT ID - POINTER TO ^BSDXAPPT
  1. ; SDQUIET = ALLOW NO TERMINAL INPUT/OUTPUT 0=ALLOW; 1=DO NOT ALLOW
  1. ; VPRV = V Provider IEN - pointer to V PROVIDER file
  1. ; APIERR = Returned Array of errors
  1. ; APIERR = counter
  1. ; APIERR(counter)=message -- <Prog name>: <message>
  1. ;
  1. I '$G(SDOE) D ^%ZTER Q ;lets trap an error here to see what is causing the problem
  1. NEW DIE,DA,DR,SDN,SDV,AUPNVSIT
  1. S DIE="^SC("_SDCL_",""S"","_SDT_",1,"
  1. S DA(2)=SDCL,DA(1)=SDT,(DA,SDN)=$$SCIEN^BSDU2(DFN,SDCL,SDT)
  1. ;S DA(4)=SDCL,DA(3)="S",DA(2)=SDT,DA(1)=1,(DA,SDN)=$$SCIEN^BSDU2(DFN,SDCL,SDT)
  1. ;CHECK THAT APPOINTMENT IS CHECKED IN
  1. I $P($G(^SC(+SDCL,"S",SDT,1,SDN,"C")),U)="" D Q
  1. . S APIERR($I(APIERR))="BSDX25B: Patient not checked in"
  1. . Q
  1. ;
  1. ;IHS/ITSC/WAR 1/20/2005 PATCH #1002 to correctly identify ck-out 'user'
  1. ;S DR="303R//NOW;304///"_DUZ_";306///"_$$NOW^XLFDT
  1. S DR="303///"_$$FMTE^XLFDT(SDCODT)_";304///`"_DUZ_";306///"_$$NOW^XLFDT
  1. D ^DIE
  1. ;
  1. ; if checked out and status not updated, do it now
  1. I $P($G(^SC(+SDCL,"S",SDT,1,DA,"C")),U,3)]"" D
  1. . ;UPDATE APPOINTMENT SCHEDULE GLOBAL ^BSDXAPPT
  1. . I $G(BSDXAPTID) D
  1. . . S PSTAT=$P(^SCE(SDOE,0),U,12)
  1. . . S DIE="^BSDXAPPT("
  1. . . S DA=BSDXAPTID
  1. . . S DR=".14///"_$G(SDCODT)_";.19///"_PSTAT
  1. . . D ^DIE
  1. . . ;possibly update VProvider
  1. . . S BSDXNOD=^BSDXAPPT(BSDXAPTID,0)
  1. . . I $G(VPRV),+$P(BSDXNOD,U,15) D
  1. . . . ;get BSDX appointment schedule
  1. . . . S DIE="^AUPNVPRV("
  1. . . . S DA=$P(BSDXNOD,U,15)
  1. . . . S DR=".01///"_VPRV
  1. . . . D ^DIE
  1. . ;
  1. . Q:$$GET1^DIQ(409.68,SDOE,.12)="CHECKED OUT"
  1. . S DIE=409.68,DA=SDOE,DR=".12///2;.07///"_$$NOW^XLFDT
  1. . D ^DIE
  1. . ;
  1. . ; if visit pointer stored, update visit checkout date/time
  1. . S SDV=$$GET1^DIQ(409.68,SDOE,.05,"I") Q:'SDV
  1. . Q:'$D(^AUPNVSIT(SDV,0)) Q:$$GET1^DIQ(9000010,SDV,.05,"I")'=DFN
  1. . Q:$$GET1^DIQ(9000010,SDV,.11,"I")=1 ;deleted
  1. . ;
  1. . ;cmi/maw 5/1/2009 PATCH 1010 RQMT 34
  1. . S DIE="^AUPNVSIT(",DA=SDV
  1. . S DR=".18///"_$P($G(^SC(+SDCL,"S",SDT,1,SDN,"C")),U,3)
  1. . D ^DIE S AUPNVSIT=SDV D MOD^AUPNVSIT
  1. Q
  1. ;