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

AGACXREF.m

Go to the documentation of this file.
  1. AGACXREF ; IHS/ASDS/EFG - DELETE AND REBUILD THE AC (CURRENT COMMUNITY) X-REF, STUFF CUR COMM FIELD ;
  1. ;;7.1;PATIENT REGISTRATION;;AUG 25,2005
  1. ;
  1. W $$S^AGVDF("IOF"),!
  1. W ?30,"*** AGACXREF ***",!
  1. W ?5,"=== CURRENT COMMUNITY (AC) and TRIBE OF MEMBERSHIP indices ==="
  1. W *7,!!,"Because of a bug in IHS REGISTRATION v 4.22, the 'AC' cross-reference",!
  1. W "of the Patient file was set only when a patient was edited, not when the",!
  1. W "patient was first entered."
  1. W !!,"This routine will kill and rebuild the 'AC' (Current Community) and 'AE'",!
  1. W "(Tribe of Membership) cross-references on the PATIENT File (^AUPNPAT).",!!
  1. W "It will also reset the Current Community field from LAST(PREVIOUS COMMUNITY)."
  1. W !!,"It should take approximately ",$J(1244/36277*+$P(^AUPNPAT(0),U,4)/60,3,1)," minutes to complete",!
  1. W "on your ",+$P(^AUPNPAT(0),U,4)," patients.",!!
  1. W "Q'ing to TaskMan is possible."
  1. ;
  1. K DIR,DTOUT,DUOUT,DFOUT,DQOUT,DIRUT,DIROUT,DLOUT
  1. S DIR(0)="Y"
  1. S DIR("A")="Do you want to continue? (Y/N) "
  1. W !!
  1. D ^DIR
  1. I Y=0 W *7,!!,"Please 'D ^AGACXREF' at your convenience." Q
  1. QUE ;
  1. K DIR,DTOUT,DUOUT,DFOUT,DQOUT,DIRUT,DIROUT,DLOUT
  1. S DIR(0)="Y"
  1. W !!
  1. S DIR("A")="Do you want to q this process? "
  1. S DIR("B")="YES"
  1. D ^DIR
  1. G END:$D(DTOUT)!(Y["^") ; EXIT IF TIME OUT OR ^
  1. G ENTRY:Y=0 ; RUN THE XREF NOW
  1. DEV ;
  1. X ^%ZOSF("UCI")
  1. S ZTRTN="ENTRY^AGACXREF"
  1. S ZTUCI=Y
  1. S ZTIO=""
  1. S ZTDESC="Rebuild PATIENT AC index, for "_$P(^AUTTLOC(DUZ(2),0),U,2)_"."
  1. S ZTSAVE=""
  1. D ^%ZTLOAD G:'$D(ZTSK) QUE W !!,"Task Number = ",ZTSK,!!,"Press RETURN..." R Y:DTIME K AG,AGIO,AGQIO,G,ZTDESC,ZTIO,ZTRTN,ZTSAVE,ZTSK,ZTUCI D ^%ZISC Q
  1. ENTRY ;EP - TaskMan.
  1. I '$D(ZTQUEUED) W ! S IOP=ION D ^%ZIS,WAIT^DICD W !,+$P(^AUPNPAT(0),U,4)," patients.",! S DX=$X,DY=$Y+1
  1. K ^AUPNPAT("AC"),^("AE") F DFN=0:0 S DFN=$O(^AUPNPAT(DFN)) Q:DFN'=+DFN D C1,AE
  1. END K AGCC,AGCCSV,AGCCPTR,AGCCNAME,DFN,DX,DY,X,XY,Y
  1. D:$D(ZTQUEUED) KILL^%ZTLOAD
  1. Q
  1. C1 ;
  1. F AGCC=0:0 S AGCC=$O(^AUPNPAT(DFN,51,AGCC)) Q:AGCC'=+AGCC S AGCCSV=AGCC
  1. Q:'$D(^AUPNPAT(DFN,51,AGCCSV,0))
  1. S AGCCPTR=$P($G(^AUPNPAT(DFN,51,AGCC,0)),U,3) Q:AGCCPTR=""
  1. Q:'$D(^AUTTCOM(AGCCPTR,0))
  1. S AGCCNAME=$P($G(^AUTTCOM(AGCCPTR,0)),U) Q:AGCCNAME=""
  1. S $P(^AUPNPAT(DFN,11),U,18)=AGCCNAME,^AUPNPAT("AC",AGCCNAME,DFN)=""
  1. Q
  1. AE I $D(^AUPNPAT(DFN,11)),$P(^(11),U,8)]"" S ^AUPNPAT("AE",$P(^AUPNPAT(DFN,11),U,8),DFN)=""
  1. Q