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

AZHZCL.m

Go to the documentation of this file.
  1. AZHZCL ;DSD/PDW - CLEAN PATIENT DATA BASE ; AUGUST 14, 1992
  1. ;;1.0;AZHZ;;AUG 14, 1992
  1. ;;
  1. S ;
  1. S:'$D(DUOUT) DUOUT=0 S:'$D(DFOUT) DFOUT=0
  1. Q:(DUOUT!DFOUT) ;----
  1. Q:'$D(^AUTTSITE(1,0)) S AZHZSITE=+^(0),U="^"
  1. I $P(^AUTTLOC(+^AUTTSITE(1,0),0),U,10)]"" S AZHZ("LOC")=$E($P(^(0),U,10),1,4),AZHZ("L")=0
  1. I '$D(AZHZ("LOC")) W !,"Site and Area not specified for facility <Fatal Error>",! S (DUOUT,DFOUT)=1 Q
  1. I $D(^AZHZTEMP("A",1)) W !,*7,"< SCAN has already been Completed >",! G EXIT ;-----
  1. S AZHZHIT=0,AZHZHDR=" IHS/VA DATA BASE PATIENT CLEAN",AZHZRTN="DQSCAN^AZHZCL"
  1. D INIT Q:(DFOUT!DUOUT)
  1. DQSCAN ;ENTRY POINT FOR TASKING
  1. S ^AZHZTEMP="SCAN"
  1. W "Each dot =100 patients:",!,"Running for ",AZHZSITE,":",$P(^AUTTLOC(AZHZSITE,0),"^",2)," Area and Service : ",AZHZ("LOC"),!
  1. S AZHZ("B")="" S:$D(^AZHZTEMP("LDFN")) AZHZ("B")=^("LDFN"),AZHZ("B")=$E(AZHZ("B"),1,($L(AZHZ("B"))-1)) ; pick up at last completed patient
  1. IEN F AZHZZ("I")=1:1 S AZHZ("B")=$O(^DPT("B",AZHZ("B"))) Q:(DFOUT!DUOUT) Q:AZHZ("B")="" S DFN=0 F S DFN=$O(^DPT("B",AZHZ("B"),DFN)) Q:(DFOUT!DUOUT) Q:'DFN D SCDFN S ^AZHZTEMP("LDFN")=AZHZ("B") W:'(AZHZZ("I")#100) "."
  1. ;
  1. BINDEX S DFN=0 K ^AZHZTEMP("B") F AZHZCC=0:1 S DFN=$O(^AZHZTEMP(DFN)) Q:'DFN S ^AZHZTEMP("B",^(DFN),DFN)=""
  1. S ^AZHZTEMP(0)=AZHZCC W !!,AZHZZ("I")," Patient Names Scanned with ",AZHZCC," set for error corrections"
  1. I '(DFOUT!DUOUT) S ^AZHZTEMP="",^AZHZTEMP("A",1,"SCAN COMPLETE")="" K ^AZHZTEMP("LDFN") D SAV^AZHZCLN
  1. G EXIT ;----
  1. ;
  1. ;-------------------------------
  1. SCDFN ;ENTRY POINT scan DFN for data errors, VA and IHS checks
  1. I '$D(^DPT(DFN,0)) K ^DPT("B",AZHZ("B"),DFN) Q
  1. Q:($P(^DPT(DFN,0),U,19)) ;quit if Merge Patient has TO DFN in 19th peice
  1. D ^AZHZCLV ;perform VA DPT edits
  1. I $D(^AUPNPAT(DFN,0)) D ^AZHZCLI ;perform IHS patient edits
  1. S:$D(^AZHZTEMP(DFN)) ^AZHZTEMP(DFN)=$P(^DPT(DFN,0),U)
  1. ESCDFN Q ;-----
  1. ;-------------------------------
  1. SET ; ENTRY POINT: perform sets
  1. S:'$D(DUOUT) DUOUT=0 S:'$D(DFOUT) DFOUT=0
  1. Q:(DFOUT!DUOUT) ;----
  1. Q:'$D(^AUTTSITE(1,0)) S AZHZSITE=+^(0),U="^"
  1. I '$D(^AZHZTEMP) W *7,!,"<NO Compiled Edits Global Present>",! Q
  1. I ^AZHZTEMP]"",^AZHZTEMP'="SET" W !,"SORRY ... ",^AZHZTEMP," NEEDS TO BE COMPLETED FIRST",! G EXIT ;----
  1. I $D(^AZHZTEMP("A",3)) W !,"< EDITS have already been Completed >",!,*7 G EXIT ;-----
  1. W !,"There are only dots printed for this option",!
  1. S AZHZHIT=1,AZHZSET="N",AZHZHDR="IHS/VA PATIENT DATA BASE EDITS",AZHZRTN="DQSET^AZHZCL"
  1. D INIT Q:(DFOUT!DUOUT)
  1. DQSET ;ENTRY POINT FOR TASKING
  1. S ^AZHZTEMP="SET",DFN=0 K ^AZHZTEMP("P")
  1. W !,"EACH DOT =100 PATIENTS SET. THERE ARE ",^AZHZTEMP(0)," PATIENTS TO PROCESS",!,"STARTING AT " D ^%T W ! D DOIT
  1. I '(DFOUT!DUOUT) S ^AZHZTEMP="",^AZHZTEMP("A",3,"EDITS COMPLETED")="" K ^AZHZTEMP("LDFN")
  1. ;K ^AZHZSAV S %X="AZHZTEMP(",%Y="^AZHZSAV(" D %XY^%RCR
  1. G EXIT ;----
  1. ;-------------------------------
  1. PULL ;ENTRY POINT: set data back to previous state
  1. I '$D(^AZHZTEMP) W *7,!,"<NO Compiled Edits Global Present>",! Q
  1. I ^AZHZTEMP]"",^AZHZTEMP'="PULL" W !,"SORRY ... ",^AZHZTEMP," NEEDS TO BE COMPLETED FIRST",! G EXIT ;----
  1. Q W !,"This will put data fields back to their incorrect forms.",!,"Are you sure you want to proceed ? " S %=2 D YN^DICN
  1. I (%=2)!(%=-1) S DUOUT=1 G EXIT ;-----
  1. G:%<1 Q
  1. S AZHZHIT=1,AZHZSET="O",AZHZHDR="IHS/VA PATIENT DATA BASE RESTORE",AZHZRTN="DQPULL^AZHZCL" D INIT Q:(DFOUT!DUOUT)
  1. DQPULL ;ENTRY POINT FOR TASKING
  1. S ^AZHZTEMP="PULL",DFN=0
  1. W !,"EACH DOT =100 PATIENTS SET. THERE ARE ",^AZHZTEMP(0)," PATIENTS TO PROCESS",!,"STARTING AT " D ^%T W ! D DOIT
  1. S ^AZHZTEMP="" K ^AZHZTEMP G EXIT ;----kills old temp global prior to restore
  1. ;-------------------------------
  1. PRT ;ENTRY POINT: print report of edits to be performed
  1. S:'$D(DUOUT) DUOUT=0 S:'$D(DFOUT) DFOUT=0
  1. Q:(DUOUT!DFOUT) ;-----
  1. I '$D(^AZHZTEMP) W *7,!,"<NO Compiled Edits Global Present>",! Q
  1. I ^AZHZTEMP'="" W *7,!,"< Sorry ",^AZHZTEMP," needs to be completed first >",!,*7 G EXIT ;----
  1. I '$D(^AZHZTEMP("A",1)) W !,*7,"< SCAN must be completed First > ",! G EXIT ;-----
  1. S AZHZHIT=0,AZHZSET="O",AZHZHDR="IHS/VA PATIENT DATA BASE EDIT REPORT",AZHZRTN="DQPRT^AZHZCL"
  1. D INIT Q:(DFOUT!DUOUT)
  1. DQPRT ;ENTRY POINT FOR TASKING
  1. S DFN=0
  1. W !,"THERE ARE ",^AZHZTEMP(0)," PATIENTS TO PRINT",!,"STARTING AT " D ^%T W !
  1. W !," Patient Name : DFN",!," Old Data to be Corrected : New Data Corrections ",!!
  1. D DOIT S ^AZHZTEMP("A",2,"PRINTS PERFORMED")=""
  1. EPRT G EXIT ;----
  1. ;-------------------------------
  1. KILL ;ENTRY POINT kill ^AZHZTEMP
  1. I '$D(^AZHZTEMP) W *7,!,"<NO Compiled Edits Global Present>",! Q
  1. I '$D(^AZHZTEMP("A",4)) W !,*7,"<AGPATCH HAS NOT BEEN SET YET>",!,*7 Q
  1. K ^AZHZTEMP ;kill temp global
  1. Q ;----
  1. ;-------------------------------
  1. AZHZPG ;EP
  1. D AZHZPG^AZHZCL1 Q
  1. ;-------------------------------
  1. DOIT D ^AZHZCL1 Q
  1. ;-------------------------------
  1. INIT ;EP
  1. D INIT^AZHZCL1 Q
  1. ;-------------------------------
  1. EXIT ;EP
  1. D EXIT^AZHZCL1 Q
  1. ;-------------------------------