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

AUFIXPT.m

Go to the documentation of this file.
  1. %AUFIXPT ; FIX ALL "PT" NODES [ 07/29/87 9:19 AM ]
  1. ;
  1. ; This routine fixes all "PT" nodes for files 1 through the
  1. ; highest file number in the current UCI.
  1. ;
  1. W !!,"This routine insures the ""PT"" node of each FileMan file is correct.",!
  1. W !!,"Now checking false positives.",!
  1. S U="^"
  1. S AUFFILE=.99999999 F AUFL=0:0 S AUFFILE=$O(^DD(AUFFILE)) Q:AUFFILE'=+AUFFILE I $D(^DD(AUFFILE,0,"PT")) W !,AUFFILE D FPOS
  1. W !!,"Now checking false negatives.",!
  1. D FNEG
  1. K AUFFILE,AUFL
  1. W !!,"DONE",!
  1. Q
  1. ;
  1. FPOS ; CHECK FOR FALSE POSITIVES
  1. S AUFPFILE="" F AUFL=0:0 S AUFPFILE=$O(^DD(AUFFILE,0,"PT",AUFPFILE)) Q:AUFPFILE="" S AUFPFLD="" F AUFL=0:0 S AUFPFLD=$O(^DD(AUFFILE,0,"PT",AUFPFILE,AUFPFLD)) Q:AUFPFLD="" D CHKIT
  1. K AUFPFILE,AUFPFLD,AUFX
  1. Q
  1. ;
  1. CHKIT ;
  1. W "."
  1. I '$D(^DD(AUFPFILE)) W "|" K ^DD(AUFFILE,0,"PT",AUFPFILE) Q
  1. I '$D(^DD(AUFPFILE,AUFPFLD)) W "|" K ^DD(AUFFILE,0,"PT",AUFPFILE,AUFPFLD) Q
  1. S AUFX=$P(^DD(AUFPFILE,AUFPFLD,0),U,2)
  1. I AUFX["P",AUFX[AUFFILE Q
  1. I AUFX["V",$D(^DD(AUFPFILE,AUFPFLD,"V","B",AUFFILE)) Q
  1. W "|" K ^DD(AUFFILE,0,"PT",AUFPFILE,AUFPFLD)
  1. Q
  1. ;
  1. FNEG ; CHECK FOR FALSE NEGATIVES
  1. S AUFFILE=.99999999 F AUFL=0:0 S AUFFILE=$O(^DD(AUFFILE)) Q:AUFFILE'=+AUFFILE W !,AUFFILE S AUFFLD=0 F AUFL=0:0 S AUFFLD=$O(^DD(AUFFILE,AUFFLD)) Q:AUFFLD'=+AUFFLD D:$D(^(AUFFLD,0))#2 PTRCHK
  1. K AUFFILE,AUFFLD,AUFX,AUFI
  1. Q
  1. ;
  1. PTRCHK ;
  1. S AUFX=$P(^(0),U,2)
  1. I AUFX["V" D PTRCHK2 Q
  1. Q:AUFX'["P"
  1. F AUFI=1:1:$L(AUFX)+1 Q:$E(AUFX,AUFI)?1N
  1. Q:AUFI>$L(AUFX)
  1. S AUFX=$E(AUFX,AUFI,999),AUFX=+AUFX
  1. Q:'AUFX
  1. Q:AUFX<1 ;*** DOES NOT MESS WITH FILE NUMBERS < 1 ***
  1. W "."
  1. Q:'$D(^DIC(AUFX))
  1. Q:'$D(^DD(AUFX,0))
  1. I '$D(^DD(AUFX,0,"PT",AUFFILE,AUFFLD)) W "|" S ^(AUFFLD)=""
  1. Q
  1. ;
  1. PTRCHK2 ; VARIABLE POINTER CHECK
  1. S AUFX="" F AUFL=0:0 S AUFX=$O(^DD(AUFFILE,AUFFLD,"V","B",AUFX)) Q:AUFX="" I '$D(^DD(AUFX,0,"PT",AUFFILE,AUFFLD)) W "|" S ^(AUFFLD)=""
  1. Q