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

AGFULAUD.m

Go to the documentation of this file.
  1. AGFULAUD ;IHS/ASDS/TPF - FULL PATIENT FILE AUDIT USING EDIT CHECK ERRORS/WARNINGS CALLS 6/8/2004 9:49:39 AM
  1. ;;7.1;PATIENT REGISTRATION;**8**;AUG 25,2005
  1. ;
  1. ;#90A IHS/SD/TPF 6/8/2004
  1. ;THIS TASK WAS ADDED FAR INTO PROJECT
  1. ;TASK #90 WAS COMPLETED BUT WAS NOT THE FUNCTION INTENDED BY THE
  1. ;REQUEST
  1. ;
  1. ;AFTER ADDITONAL SPECIFICATIONS WERE OBTAINED FROM IHS. RUN LASTED 11
  1. ;MINUTES FOR SITE WITH 27,000 PATIENT ENTRIES
  1. ;
  1. ;AG*7.1 IHS/SD/TPF 10/26/2004
  1. ENTER ;
  1. S AGOPT("VERSION")=$$VERSION^XPDUTL("AG") ;GET CURRENT VERSION EDIT CHECKS WILL BE PERFORMED DIFFERENTLY ON SOME FIELDS BECAUSE VERSION 7.1 CHANGED THEIR LOCATION
  1. I AGOPT("VERSION")="" W !,"PATIENT REGISTRATION VERSION CANNOT BE DETERMINED PLEASE CALL THE HELP DESK!!" Q
  1. W !!,"WARNING THIS TASK COULD TAKE UP TO 10 HOURS TO COMPLETE!!!"
  1. W !,"THIS TASK SHOULD BE QUEUED VIA TASKMAN TO RUN AFTER HOURS"
  1. W !,"PREFERABLY ON THE WEEKEND!! MAKE SURE BACKUPS DO NOT SHUTDOWN"
  1. W !,"THIS TASK BEFORE IT'S FINISHED."
  1. I AGOPT("VERSION")<7.1 D
  1. .W !,"YOUR CURRENT VERSION OF IHS PATIENT REGISTRATION IS ",AGOPT("VERSION")
  1. .W !,"THEREFORE THE AUDIT WILL BE PERFORMED BASED ON PRE 7.1 FILE STRUCTURES."
  1. K DIR,DTOUT,DUOUT,DIRUT,DIROUT
  1. S DIR(0)="Y"
  1. S DIR("A")="ARE YOU SURE YOU WANT TO CONTINUE"
  1. D ^DIR
  1. I $D(DTOUT)!($D(DUOUT))!($D(DIROUT)) D EXIT Q
  1. I 'Y D EXIT Q
  1. S ERRDT=$O(^AGERRAUD("B",""),-1)
  1. I ERRDT D I 'LASTFIN W !!,"THE AUDIT REPORT IS CURRENTLY COMPILING! TRY AGAIN LATER" H 3 D EXIT Q
  1. .S DTREC=$O(^AGERRAUD("B",ERRDT,""))
  1. .S LASTFIN=$P($G(^AGERRAUD(DTREC,0)),U,4)
  1. I $D(^AGERRAUD(1,0)) D SHODAT($P($G(^AGERRAUD(1,0)),U)) D I $D(DTOUT)!($D(DUOUT))!($D(DIROUT))!('$G(Y)) D EXIT Q
  1. .K DIR,DTOUT,DUOUT,DIRUT,DIROUT
  1. .S DIR(0)="Y"
  1. .S DIR("A")="ARE YOU SURE YOU WANT TO CONTINUE"
  1. .D ^DIR
  1. K DIR,DTOUT,DUOUT,DIRUT,DIROUT
  1. S DIR(0)="S^T:TASK TO TASKMAN;R:RUN IMMEDIATELY"
  1. S DIR("A")="ACTION"
  1. D ^DIR
  1. I $D(DTOUT)!($D(DUOUT))!($D(DIROUT)) D EXIT Q
  1. I Y="R" W !,"STARTING FULL PATIENT FILE AUDIT....." D START Q
  1. S ZTRTN="START^AGFULAUD",ZTDESC="Full Patient File audit by Patient Registration"
  1. S ZTIO=""
  1. S ZTSAVE("AG*")=""
  1. D ^%ZTLOAD
  1. I $D(ZTSK)[0 W !,"Full patient audit canceled!"
  1. E W !!?5,"Full patient audit queued as Task # ",ZTSK,"!"
  1. H 2
  1. D HOME^%ZIS
  1. D EXIT
  1. Q
  1. ;
  1. SHODAT(DATE) ;EP
  1. S Y=DATE X ^DD("DD")
  1. W !!,"THERE IS ALREADY AN AUDIT REPORT FROM ",Y,". IT WILL BE DELETED!"
  1. Q
  1. START ;EP - ENTER BELOW FROM TASKMAN OPTION
  1. ;KILL PREVIOUS ENTRIES IF THEY EXIST. THIS IS A SNAPSHOT ONLY. WE
  1. ;ARE NOT GOING TO ALLOW KEEPING MORE THAN ONE RUN
  1. S STOPFLAG=0
  1. D ^AGVAR ;AG*7.1*8 - Define AGOPT array
  1. ;
  1. D CLEAR ;KILL THE CURRENT ENTRY IN THE AUDIT FILE
  1. ;IF DATE ENTRY NOT THERE CREATE IT
  1. I '$D(^AGERRAUD("B",DT)) S DTREC=$$NEWDT(DT)
  1. I '$G(DTREC) W:'$D(ZTQUEUED) !,"UNABLE TO CREATE DATE ENTRY IN 'ERROR/WARNING AUDIT' FILE!!" H 3 D EXITCAP Q
  1. E S DTREC=$O(^AGERRAUD("B",DT,""))
  1. I 'DTREC W:'$D(ZTQUEUED) !,"TROUBLE CREATING ENTRY IN 'AG ERROR/WARNING AUDIT' FILE CALL HELP DESK!" Q
  1. ;STORE TASK #
  1. S DA=DTREC
  1. S DIE="^AGERRAUD("
  1. S DR=".06////^S X=$G(ZTSK)"
  1. D ^DIE
  1. K MYERRS,MYVARS
  1. D FETCHERR^AGEDERR("ALL",.MYERRS)
  1. S MYVARS("FINDCALL")="",MYVARS("SELECTION")=$G(AGSELECT),MYVARS("SITE")=DUZ(2)
  1. S PDFN=0,SKIP=0,PTTOTAL=0
  1. S TOTALDFN=$P($G(^AUPNPAT(0)),U,4)
  1. F S PDFN=$O(^AUPNPAT(PDFN)) Q:'PDFN D Q:STOPFLAG
  1. .I '$D(ZTQUEUED) W:$P(PDFN/15,".",2)="" "."
  1. .I '$D(ZTQUEUED) W:$P(PDFN/200,".",2)="" !,$J((PDFN/TOTALDFN)*100,3,0)_" % ESTIMATED COMPLETE"
  1. .S STOPFLAG=$$S^%ZTLOAD
  1. .;AG*7.1*8 - Commented out filters - each error already has filters in place and not all errors have the same filters
  1. .;I $$DECEASED^AGEDERR2(PDFN) S SKIP=SKIP+1 Q ;QUIT IF PATIENT DECEASED
  1. .;I '$$CURRUPD^AGEDERR2(PDFN,1095) S SKIP=SKIP+1 Q ;QUIT IF LAST UPDATE>3 YEARS
  1. .;I '$$HASELIG^AGEDERR2(PDFN) S SKIP=SKIP+1 Q ;QUIT IF PATIENT HAS NO ACTIVE INSURANCE ELIGIBILITY PER ADRIAN E-MAIL 2/3/2005
  1. .;I '$$PTACTIVE^AGEDERR2(PDFN) S SKIP=SKIP+1 Q ;QUIT IF PATIENT NOT ACTIVE IN ANY FACILITY
  1. .S PTTOTAL=PTTOTAL+1 ;TOTAL PATIENTS REVIEWED BY ERROR CHECKS
  1. .S (MYVARS("AGPATDFN"),MYVARS("DFN"))=PDFN ;AG*7.1*8 - Added MYVARS("AGPATDFN") set
  1. .D EDITCHEK^AGEDERR(.MYERRS,.MYVARS,0)
  1. .D CAPTURE^AGERRAUD(.MYERRS,PDFN)
  1. I '$D(ZTQUEUED) W !,"100% COMPLETED"
  1. K DIC,DIE
  1. S DIC(0)="EMQ"
  1. S DIC="^AGERRAUD("
  1. S X=DT
  1. D ^DIC
  1. Q:Y<0
  1. S DIE="^AGERRAUD("
  1. S DA=+Y
  1. S DR=".02////^S X=SKIP"
  1. D ^DIE
  1. D NOW^%DTC
  1. S ENDTIME=%
  1. S DIE="^AGERRAUD("
  1. S DR=".04////^S X=ENDTIME"
  1. D ^DIE
  1. S DIE="^AGERRAUD("
  1. S DR=".05////^S X=STOPFLAG"
  1. D ^DIE
  1. S DIE="^AGERRAUD("
  1. S DR=".08////^S X=PTTOTAL"
  1. D ^DIE
  1. S ZTSTOP=STOPFLAG ;PASS STOP FLAG BACK TO TASKMANAGER
  1. Q
  1. EXIT ;EP - CLEAN UP VARIABLES
  1. K DIR,DTOUT,DUOUT,DIRUT,DIROUT,AGOPT("VERSION"),LASTFIN,DTREC,ZTIO,ZTSAVE,Y,ERRDT
  1. Q
  1. CLEAR ;EP - CLEAR THE AUDIT FILE
  1. W:'$D(ZTQUEUED) !,"Clearing audit file for new run."
  1. S DIK="^AGERRAUD("
  1. S ERRDT=""
  1. F S ERRDT=$O(^AGERRAUD("B",ERRDT)) Q:ERRDT="" D
  1. .S DA=$O(^AGERRAUD("B",ERRDT,""))
  1. .D ^DIK
  1. K ^AGERRAUD("D")
  1. K ^AGERRAUD("E")
  1. Q
  1. EXITCAP ;EP
  1. K DTREC,PDFN,PTREC,ERRREC,ERRCODE,AGOPT("VERSION")
  1. Q
  1. NEWDT(DT) ;EP
  1. ;SET STARTIME
  1. N STARTIME
  1. D NOW^%DTC
  1. S STARTIME=%
  1. ;ADD TOP LEVEL
  1. K DIC,DIE,DR,DA
  1. S DIC=9009061.6
  1. S DIC(0)="L"
  1. S X=DT
  1. D ^DIC
  1. Q:Y<0 0
  1. S DTREC=+Y
  1. S DIE="^AGERRAUD("
  1. S DA=+Y
  1. S DR=".03////^S X=STARTIME"
  1. D ^DIE
  1. Q DTREC