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

XBDINUM.m

Go to the documentation of this file.
  1. XBDINUM ; IHS/ADC/GTH - CONVERTS NON-DINUM FILE TO DINUM FILE ; [ 02/07/97 3:02 PM ]
  1. ;;3.0;IHS/VA UTILITIES;;FEB 07, 1997
  1. ;
  1. START ;
  1. S U="^"
  1. W !!,"This program sets the DFNs of a DINUM file appropriately.",!
  1. S DIC="^DIC(",DIC(0)="QAZEM"
  1. D ^DIC
  1. Q:Y<0
  1. S DIC=+Y
  1. I '$D(^DIC(DIC,0,"GL")) W !!,"Corrupted ^DIC!",!,"No ""GL"" node in zeroth node of file ",DIC,"." Q
  1. S XBDIGBL=^DIC(DIC,0,"GL")
  1. X "S XBDIX=$D("_XBDIGBL_"0))"
  1. I 'XBDIX W !!,XBDIGBL,"0) does not exist." Q
  1. I '$P(@(XBDIGBL_"0)"),U,4) W !!,"File ",DIC," has no entries." Q
  1. I '$D(^DD(DIC,.01,0)) W !!,"Corrupted ^DD!" Q
  1. I ^DD(DIC,.01,0)'["DINUM=X" W !!,"File ",DIC," is not a DINUM file." Q
  1. KILL ^UTILITY("XBDINUM",$J),^UTILITY("XBDIDUP",$J)
  1. S (XBDI3,XBDI4,XBDIDFN)=0
  1. X "S ^UTILITY(""XBDINUM"",$J,0)="_XBDIGBL_"0)"
  1. F XBDIL=0:0 X "S XBDIDFN=$O("_XBDIGBL_XBDIDFN_"))" Q:XBDIDFN'=+XBDIDFN D X1
  1. S XBDIX=^UTILITY("XBDINUM",$J,0),$P(XBDIX,U,3)=XBDI3,$P(XBDIX,U,4)=XBDI4,^(0)=XBDIX
  1. W !!,"Global ",$E(XBDIGBL,1,$L(XBDIGBL)-1)," now renumbered and stored in ^UTILITY(""XBDINUM"",",$J,!," High DFN=",XBDI3," Number of entries=",XBDI4
  1. I $D(^UTILITY("XBDIDUP",$J)) W !!,"Duplicate entries found. Stored in ^UTILITY(""XBDIDUP"",",$J,!," Eliminate duplicates and rerun this job!" G EOJ
  1. S XBDIX=$S($E(XBDIGBL,$L(XBDIGBL))="(":$E(XBDIGBL,1,$L(XBDIGBL)-1),1:$E(XBDIGBL,1,$L(XBDIGBL)-1)_")")
  1. KILL @(XBDIX)
  1. W !!,XBDIX," has been killed! Now being recreated."
  1. S TO=XBDIGBL,FROM="^UTILITY(""XBDINUM"",$J,",TALK=1
  1. D ^XBGXFR
  1. W !!,"File now being RE-INDEXED!",!
  1. S DIK=XBDIGBL,XBDIX=0
  1. F XBDIL=0:0 X "S XBDIX=$O("_XBDIGBL_XBDIX_"))" Q:XBDIX'=+XBDIX W "." S DA=XBDIX D IX1^DIK
  1. D EOJ
  1. Q
  1. ;
  1. X1 ;
  1. S FROM=XBDIGBL_XBDIDFN_","
  1. X "S TO=+"_XBDIGBL_XBDIDFN_",0)"
  1. S:TO>XBDI3 XBDI3=TO
  1. S TO=$S('$D(^UTILITY("XBDINUM",$J,TO)):"^UTILITY(""XBDINUM"",$J,"_TO_",",1:"^UTILITY(""XBDIDUP"",$J,"_TO_",")
  1. S:TO'["XBDIDUP" XBDI4=XBDI4+1
  1. S TALK=1
  1. D ^XBGXFR
  1. Q
  1. ;
  1. EOJ ;
  1. KILL ^UTILITY("XBDINUM",$J),XBDIGBL,XBDIX,XBDI3,XBDI4,XBDIDFN,XBDIL
  1. Q
  1. ;