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

IBY593PR.m

Go to the documentation of this file.
  1. IBY593PR ;EDE/HN - Pre-Installation for IB patch 593 ; 17-APR-2017
  1. ;;2.0;INTEGRATED BILLING;**593**;21-MAR-94;Build 31
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. ;
  1. ; post routine stuff is below
  1. POST ; POST ROUTINE(S)
  1. N IBXPD,IBPRD,XPDIDTOT
  1. S XPDIDTOT=3
  1. ;
  1. ; Determine if we're in a TEST or a PRODUCTION environment.
  1. S IBPRD=$S($$PROD^XUPROD(1)=1:"P",1:"T")
  1. ;
  1. ; Reindex Patient File for fields 2.312,3 and 2.312,8
  1. D REINDEX(1)
  1. D PATIENT(2)
  1. D ADDSOI(3)
  1. D DONE
  1. Q
  1. ;
  1. DONE ; Displays the 'Done' message and finishes the progress bar
  1. D MES^XPDUTL("")
  1. D MES^XPDUTL("POST-Install Completed.")
  1. Q
  1. ;
  1. REINDEX(IBXPD) ; Run new indices. This is needed for entries at site not in file coming across.
  1. D BMES^XPDUTL(" STEP "_IBXPD_" of "_XPDIDTOT)
  1. D MES^XPDUTL("-------------")
  1. D MES^XPDUTL("Building new ACHI index in the background ")
  1. N MSG,ZTDESC,ZTRTN,ZTQUEUED
  1. S ZTQUEUED=""
  1. S ZTDESC="IBCN CREATE ACHI INDEX"
  1. S ZTRTN="XREF^IBCNERTC"
  1. S MSG=$$TASK("NOW",ZTDESC,ZTRTN)
  1. D MES^XPDUTL(MSG)
  1. D UPDATE^XPDID(IBXPD)
  1. Q
  1. ;
  1. PATIENT(IBXPD) ; Kick off Patient file update of Covered by Health Insurance flag (2.3192)
  1. D BMES^XPDUTL(" STEP "_IBXPD_" of "_XPDIDTOT)
  1. D MES^XPDUTL("-------------")
  1. D MES^XPDUTL("Tasking Covered by Health Insurance update ... ")
  1. N MSG,ZTDESC,ZTRTN,ZTQUEUED
  1. S ZTQUEUED=1
  1. S ZTDESC="IBCN COVERED BY HEALTH INSURANCE FLAG UPDATE"
  1. S ZTRTN="UPATF^IBCNERTC"
  1. S MSG=$$TASK("T@2100",ZTDESC,ZTRTN)
  1. D MES^XPDUTL(MSG)
  1. D UPDATE^XPDID(IBXPD)
  1. Q
  1. ;
  1. ADDSOI(IBXPD) ; Add new Source of Information.
  1. N IBLN,IBPCE,IBDATA,IBERR,IBIEN,IBSTR
  1. D BMES^XPDUTL(" STEP "_IBXPD_" of "_XPDIDTOT)
  1. D MES^XPDUTL("-------------")
  1. D MES^XPDUTL("Adding New Source of Information Codes ... ")
  1. F IBLN=2:1 S IBSTR=$P($T(EN35512+IBLN),";;",2) Q:IBSTR="" D
  1. . F IBPCE=1:1:3 S IBDATA(IBPCE/100)=$P(IBSTR,U,IBPCE)
  1. . I $D(^IBE(355.12,"C",IBDATA(.02))) D Q
  1. .. D MES^XPDUTL(" "_IBDATA(.02)_" ALEADY EXISTS IN THE SOURCE OF INFORMATION TABLE (#355.12)") Q
  1. . S IBIEN=$$ADD^IBDFDBS(355.12,,.IBDATA,.IBERR)
  1. . I IBERR D Q
  1. .. D BMES^XPDUTL("*** ERROR ADDING "_IBDATA(.02)_" CODE TO THE SOURCE OF INFORMATION TABLE (#355.12) ***")
  1. . D BMES^XPDUTL(" "_$$GET1^DIQ(355.12,IBIEN_",",.02)_" CODE ADDED TO THE SOURCE OF INFORMATION TABLE (#355.12)")
  1. D MES^XPDUTL("STEP "_IBXPD_" of "_XPDIDTOT_" COMPLETE")
  1. D UPDATE^XPDID(IBXPD)
  1. Q
  1. ;
  1. EN35512 ; Add Source of Information Codes
  1. ;
  1. ;;13^INSURANCE IMPORT^INSPT
  1. ;;14^PURCHASED CARE CHOICE^PCC
  1. ;;15^PURCHASED CARE FEE-BASIS^PCFB
  1. ;;16^PURCHASED CARE OTHER^PCOTR
  1. ;;17^INSURANCE INTAKE^INSIN
  1. ;;18^INSURANCE VERIFICATION^INSVR
  1. ;;19^VETERAN APPT REQUEST^VAR
  1. ;
  1. Q
  1. ;
  1. TASK(X,ZTDESC,ZTRTN) ;bypass for queued task
  1. N Y,IDT,XDT,TSK,MSG,ZTIO,ZTSK
  1. S %DT="FR"
  1. D ^%DT
  1. S IDT=Y D DD^%DT S XDT=Y
  1. ;
  1. ;Check if task already scheduled for date/time
  1. S TSK=$$GETTASK(IDT)
  1. I TSK D G TASKQ
  1. . S Y=$P(TSK,U,2) D DD^%DT
  1. . S MSG=" Task (#"_+TSK_") already scheduled to run on "_Y
  1. ;
  1. ;Schedule the task
  1. S TSK=$$SCHED(IDT)
  1. ;
  1. ;Check for scheduling problem
  1. I '$G(TSK) S MSG=" Task Could Not Be Scheduled" G TASKQ
  1. ;
  1. ;Send successful schedule message
  1. S MSG=" Update Covered by Health Insurance Flag Scheduled for "_XDT
  1. ;
  1. TASKQ ;
  1. Q MSG
  1. ;
  1. GETTASK(IDT) ;
  1. N TASK,TASKNO,TDT,XUSUCI,Y,ZTSK0
  1. ;
  1. ;Retrieve UCI
  1. X ^%ZOSF("UCI") S XUSUCI=Y
  1. ;
  1. S (TASK,TDT)=0,TASKNO=""
  1. F S TASK=$O(^%ZTSK(TASK)) Q:'TASK D Q:TASKNO
  1. .I $G(^%ZTSK(TASK,.03))[ZTDESC D
  1. ..S ZTSK0=$G(^%ZTSK(TASK,0))
  1. ..;
  1. ..;Exclude tasks scheduled by TaskMan
  1. ..Q:ZTSK0["ZTSK^XQ1"
  1. ..;
  1. ..;Exclude tasks in other ucis
  1. ..Q:(($P(ZTSK0,U,11)_","_$P(ZTSK0,U,12))'=XUSUCI)
  1. ..;
  1. ..;Check for correct date and time
  1. ..S TDT=$$HTFM^XLFDT($P(ZTSK0,"^",6))
  1. ..;I TDT=IDT S TASKNO=TASK
  1. Q TASKNO_U_TDT
  1. ;
  1. SCHED(ZTDTH) ;
  1. N XUSUCI,ZTIO,ZTSK
  1. ;Retrieve UCI
  1. X ^%ZOSF("UCI") S XUSUCI=Y
  1. S ZTIO=""
  1. D ^%ZTLOAD
  1. Q ZTSK