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

DITMU4.m

Go to the documentation of this file.
  1. DITMU4 ;SFISC/EDE(OHPRD)-FIX ALL "PT" NODES ;Jan 05, 2015
  1. ;;22.2;VA FileMan;;Jan 05, 2016;Build 42
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. ;;Submitted to OSEHRA 5 January 2015 by the VISTA Expertise Network.
  1. ;;Based on Medsphere Systems Corporation's MSC FileMan 1051.
  1. ;;Licensed under the terms of the Apache License, Version 2.0.
  1. ;
  1. ; This routine fixes all "PT" nodes for files 1 through the
  1. ; highest file number in the current UCI.
  1. ;
  1. START ;
  1. W:'$D(DITMU4("NOTALK")) !!,"This routine insures the ""PT"" node of each FileMan file is correct.",!
  1. W:'$D(DITMU4("NOTALK")) !!,"Now checking false positives.",!
  1. S U="^"
  1. S DITMU4FI=.99999999 F DITMU4L=0:0 S DITMU4FI=$O(^DD(DITMU4FI)) Q:DITMU4FI'=+DITMU4FI I $D(^DD(DITMU4FI,0,"PT")) W:'$D(DITMU4("NOTALK")) !,DITMU4FI D FPOS
  1. W:'$D(DITMU4("NOTALK")) !!,"Now checking false negatives.",!
  1. D FNEG
  1. K DITMU4FI,DITMU4L
  1. W:'$D(DITMU4("NOTALK")) !!,"DONE",!
  1. Q
  1. ;
  1. FPOS ; CHECK FOR FALSE POSITIVES
  1. S DITMU4PF="" F DITMU4L=0:0 S DITMU4PF=$O(^DD(DITMU4FI,0,"PT",DITMU4PF)) Q:DITMU4PF="" S DITMU4PD="" F DITMU4L=0:0 S DITMU4PD=$O(^DD(DITMU4FI,0,"PT",DITMU4PF,DITMU4PD)) Q:DITMU4PD="" D CHKIT
  1. K DITMU4PF,DITMU4PD,DITMU4X
  1. Q
  1. ;
  1. CHKIT ;
  1. W:'$D(DITMU4("NOTALK")) "."
  1. I '$D(^DD(DITMU4PF)) W:'$D(DITMU4("NOTALK")) "|" K ^DD(DITMU4FI,0,"PT",DITMU4PF) Q
  1. I '$D(^DD(DITMU4PF,DITMU4PD,0)) W:'$D(DITMU4("NOTALK")) "|" K ^DD(DITMU4FI,0,"PT",DITMU4PF,DITMU4PD) Q
  1. S DITMU4X=$P(^DD(DITMU4PF,DITMU4PD,0),U,2)
  1. I DITMU4X["P",DITMU4X[DITMU4FI Q
  1. I DITMU4X["V",$D(^DD(DITMU4PF,DITMU4PD,"V","B",DITMU4FI)) Q
  1. W:'$D(DITMU4("NOTALK")) "|" K ^DD(DITMU4FI,0,"PT",DITMU4PF,DITMU4PD)
  1. Q
  1. ;
  1. FNEG ; CHECK FOR FALSE NEGATIVES
  1. S DITMU4FI=.99999999 F DITMU4L=0:0 S DITMU4FI=$O(^DD(DITMU4FI)) Q:DITMU4FI'=+DITMU4FI W:'$D(DITMU4("NOTALK")) !,DITMU4FI S DITMU4FD=0 F DITMU4L=0:0 S DITMU4FD=$O(^DD(DITMU4FI,DITMU4FD)) Q:DITMU4FD'=+DITMU4FD D:$D(^(DITMU4FD,0))#2 PTRCHK
  1. K DITMU4FI,DITMU4FD,DITMU4X,DITMU4I
  1. Q
  1. ;
  1. PTRCHK ;
  1. S DITMU4X=$P(^(0),U,2)
  1. I DITMU4X["V" D PTRCHK2 Q
  1. Q:DITMU4X'["P"
  1. F DITMU4I=1:1:$L(DITMU4X)+1 Q:$E(DITMU4X,DITMU4I)?1N
  1. Q:DITMU4I>$L(DITMU4X)
  1. S DITMU4X=$E(DITMU4X,DITMU4I,999),DITMU4X=+DITMU4X
  1. Q:'DITMU4X
  1. Q:DITMU4X<1 ;*** DOES NOT MESS WITH FILE NUMBERS < 1 ***
  1. W:'$D(DITMU4("NOTALK")) "."
  1. Q:'$D(^DIC(DITMU4X))
  1. Q:'$D(^DD(DITMU4X,0))
  1. I '$D(^DD(DITMU4X,0,"PT",DITMU4FI,DITMU4FD)) W "|" S ^(DITMU4FD)=""
  1. Q
  1. ;
  1. PTRCHK2 ; VARIABLE POINTER CHECK
  1. S DITMU4X="" F DITMU4L=0:0 S DITMU4X=$O(^DD(DITMU4FI,DITMU4FD,"V","B",DITMU4X)) Q:DITMU4X="" I '$D(^DD(DITMU4X,0,"PT",DITMU4FI,DITMU4FD)) W:'$D(DITMU4("NOTALK")) "|" S ^(DITMU4FD)=""
  1. Q