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

ZIBFIND.m

Go to the documentation of this file.
  1. ZIBFIND ; IHS/ADC/GTH - FIND MSM BLOCKS WITH CONTAIN SPECIFIC GLOBAL ; [ 10/29/2002 7:42 AM ]
  1. ;;3.0;IHS/VA UTILITIES;**9**;FEB 07, 1997
  1. ;
  1. ; Thanks to Ross Leatham, AAO, and Mark Delaney, DSM, for the
  1. ; original routine.
  1. ;
  1. ; MSM-specific utility for finding blocks which contain a
  1. ; specific GBL.
  1. ;
  1. ; ZIBCC=common count, ZIBUC=unique count
  1. ; ZIBCHAR=string of characters
  1. ;
  1. ;S X="ERR^ZIBFIND",@^%ZOSF("TRAP") K X
  1. ;
  1. I '(^%ZOSF("OS")["MSM") D OSNO^XB Q ; IHS/SET/GTH XB*3*9 10/29/2002
  1. S ZIBOSET=-1
  1. GETINFO ;
  1. KILL ZIBVN,ZIBGREF,ZIBTYPE
  1. D GETVOL^%VGUTIL
  1. S:VGVOL=1 ZIBVN=0
  1. I VGVOL>1 R !,"What Volume Number are you looking in? ",ZIBVN:30
  1. G END:"^"[ZIBVN
  1. S ZIBLBLK=$P(VGVOL(ZIBVN),"^",4)
  1. ASK1 ;
  1. S ZIBN=1
  1. F R !,"Enter GLOBAL to search for: ^",ZIBGREF:30 Q:"^"[ZIBGREF S ZIBGREF(ZIBN)=ZIBGREF,ZIBN=ZIBN+1
  1. G END:ZIBGREF="^"
  1. S ZIBTYPE="234"
  1. O 63::0
  1. I '$T W !,"VIEW BUFFER IN USE- SORRY" Q
  1. KILL ^TMP("ZIBFIND",$J)
  1. V 0:"DB/"_ZIBVN ;get the actual block number at start of volume
  1. S ZIBBBLK=$V(1016,0,4),ZIBEBLK=ZIBBBLK+ZIBLBLK-1
  1. ASK2 ;
  1. W !,"Enter beginning actual block to search from <",ZIBBBLK,"> "
  1. R X:30
  1. G ASK2:X'?.N,END:X["^"!(X>ZIBLBLK)
  1. S:X]"" ZIBBBLK=X
  1. S ZIBOSET=ZIBBBLK-1
  1. ASK3 ;
  1. W !,"Enter last actual block to search to <",ZIBEBLK,"> "
  1. R X:30
  1. G ASK3:X'?.N,END:X["^"!(X<ZIBBBLK)
  1. S:X]"" ZIBEBLK=X
  1. W !,"Start Block=",ZIBBBLK," End Block=",ZIBEBLK,!
  1. W !!,"This could take a while, hold on... ",!
  1. F ZIBI=ZIBBBLK:1:ZIBEBLK V ZIBI S ZIBCC=$V(0,0,1),ZIBUC=$V(1,0,1),ZIBCHAR=$V(2,0,ZIBUC,1),ZIBBTYPE=$V(1020,0,1),ZIBOSET=ZIBOSET+1 I ZIBCHAR]"",ZIBTYPE[ZIBBTYPE D LOOP
  1. C 63
  1. W !,"DONE!",*7,$S($D(^TMP("ZIBFIND",$J)):" The blocks are listed in ^TMP(""ZIBFIND"","_$J_"), in this UCI",1:" no blocks were found with this data")
  1. Q
  1. ;
  1. LOOP ;
  1. S ZIBN=0
  1. F S ZIBN=$O(ZIBGREF(ZIBN)) Q:ZIBN="" I ZIBCHAR[ZIBGREF(ZIBN) S ^TMP("ZIBFIND",$J,ZIBGREF(ZIBN),ZIBI)=ZIBVN_":"_ZIBOSET W *13,ZIBI
  1. Q
  1. ;
  1. END ;
  1. C 63
  1. KILL ZIBBBLK,ZIBBTYPE,ZIBCC,ZIBCHAR,ZIBEBLK,ZIBLBLK,ZIBN,ZIBOSET,ZIBUC,ZIBZR
  1. Q
  1. ;
  1. ERR ;
  1. C 63
  1. S ZIBZR=$ZR
  1. D @^%ZOSF("ERRTN")
  1. Q
  1. ;