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

ATSERCH.m

Go to the documentation of this file.
  1. ATSERCH ;TUCSON/DG;COMPARE TWO SORT TEMPLATES WITH SEARCH RESULTS [ 10/25/91 1:39 PM ]
  1. ;;2.5;SEARCH TEMPLATE COMPARISON;;OCT 25, 1991
  1. START ;
  1. D INIT
  1. F ATSL=0:0 S ATSLOOP=ATSLOOP+1 D LOOP Q:ATSFLAG W !
  1. D EOJ
  1. Q
  1. ;
  1. INIT ;
  1. K ^UTILITY("ATSEARCH",$J),^UTILITY("ATSPECS",$J),^UTILITY("DIQ1",$J)
  1. S U="^",(ATSLOOP,ATSFLAG,ATSLIST,ATSTASK,ATSEINRL)=0
  1. I '$D(DTIME) S DTIME=300
  1. I '$D(DT) S %DT="",X="T" D ^%DT S DT=Y
  1. Q
  1. ;
  1. LOOP ;
  1. I ATSLOOP>1 S ^UTILITY("ATSEARCH",$J,"FILELINK")=ATSEARCH("FILELINK")
  1. I '$D(^UTILITY("ATSEARCH",$J,"MERGED")) S ATSUB=1,ATSWORD="" D TEMP W !
  1. I ATSFLAG Q
  1. I 'ATSEINRL S ATSUB=2,ATSWORD="nother" D TEMP
  1. I ATSFLAG=1 Q
  1. I ATSFLAG=2 S ATSTORE=1 D CALLSORT^ATSERCH5 Q
  1. D ^ATSERCH7
  1. I ATSFLAG=1 Q
  1. I ATSFLAG=2 S ATSTORE=1 D CALLSORT^ATSERCH5 Q
  1. F L=0:0 D CALL I $D(ATSTOP)!(ATSFLAG) K ATSTOP Q
  1. ;
  1. ;PREVIOUS LINE CALLS FLDCHK AND CHKPTRS UNTIL EITHER USER HATS OUT
  1. ;OR RETURNS OUT (SETS ATSFLAG) OR GETS VALID FIELDS (BOTH POINT
  1. ;TO THE SAME FILE OR ONE OF THEM IS THE .01 FIELD OF THE FILE
  1. ;POINTED TO AND THE OTHER FIELD POINTS TO IT - SETS ATSTOP
  1. ;K ATSTOP SO THAT IF COMPARE ANOTHER TEMPLATE, ATSTOP NOT
  1. ;SET WHEN ENTER ATSERCH2 (WILL STOP THE LOOP EVEN FIELD DOESN'T POINT)
  1. ;
  1. I ATSFLAG Q
  1. S ATSENLAG=0 F L=0:0 Q:ATSENLAG D NULL^ATSERCH7
  1. D @$S(ATSENLAG=2:"^ATSERCHB",1:"^ATSERCH9")
  1. I ATSFLAG=1 Q
  1. I ATSFLAG=2 S ATSTORE=1 D CALLSORT^ATSERCH5 Q
  1. D ^ATSERCH6 Q:ATSFLAG=1
  1. I ATSFLAG=2 S ATSTORE=1 D CALLSORT^ATSERCH5 Q
  1. D ^ATSERCH5
  1. Q
  1. ;
  1. TEMP ;ASK FOR TEMPLATE
  1. K ATSENT
  1. S DIC("A")="Select a"_ATSWORD_" TEMPLATE: ",DIC="^DIBT(",DIC(0)="QAEZ" D ^DIC K DIC S:((Y>0)&('$D(^DIBT(+Y,1)))) ATSENT="" W:$D(ATSENT) !,"No entries in this template!",*7 G:$D(ATSENT) TEMP D I ATSFLAG Q
  1. . I Y<0 S ATSFLAG=$S($D(^UTILITY("ATSEARCH",$J,"MERGED")):2,1:1) Q
  1. I $D(^DIBT(+Y,"%D")) S ATSPC=0 F L=0:0 S ATSPC=$O(^DIBT(+Y,"%D",ATSPC)) Q:ATSPC'=+ATSPC W !,^DIBT(+Y,"%D",ATSPC,0)
  1. E I $D(^DIBT(+Y,"O")) S ATSPC=0 F L=0:0 S ATSPC=$O(^DIBT(+Y,"O",ATSPC)) Q:ATSPC'=+ATSPC W !,^DIBT(+Y,"O",ATSPC,0)
  1. I ($D(^DIBT(+Y,"O"))!($D(^DIBT(+Y,"%D")))),'$D(ATSPEC(+Y)),ATSLOOP=1 S ATSEARCH("SEARCHSPECS",ATSLOOP,ATSUB)=$S($D(^DIBT(+Y,"%D")):"^DIBT("_+Y_",""%D"",",1:"^DIBT("_+Y_",""O"","),ATSPEC(+Y)=""
  1. E I ($D(^DIBT(+Y,"O"))!($D(^DIBT(+Y,"%D")))),ATSLOOP'=1 S ATSEARCH("SEARCHSPECS",ATSLOOP,ATSUB)=$S($D(^DIBT(+Y,"%D")):"^DIBT("_+Y_",""%D"",",1:"^DIBT("_+Y_",""O"",")
  1. S ATSEARCH("SRCHTEMPDFN",ATSUB)=Y
  1. S ATSEARCH(ATSUB,"SRCHNAM")=$P(Y,U,2)
  1. S ATSEARCH(ATSUB,"SRCHFILENUM")=$P(^DIBT(+Y,0),U,4)
  1. S ATSEARCH(ATSUB,"SRCHRESLTREF")="^DIBT("_+Y_",1,"
  1. S ATSEARCH(ATSUB,"SRCHFILENAM")=$P(^DIC(ATSEARCH(ATSUB,"SRCHFILENUM"),0),U)
  1. Q
  1. ;
  1. CALL ;CALL TO FLDCHK AND CHKPTRS (NOW CHKPTRS IS IN ATSERCHE)
  1. K ATSAME,ATSYVAL ;IN CASE PREVIOUS TEMPLATES LINKED TO SAME FILE
  1. ;ZT 1
  1. S ATSUB=1 W ! D ^ATSERCH2
  1. I ATSFLAG=1 Q
  1. I ATSFLAG=2 S ATSTORE=1 D CALLSORT^ATSERCH5 Q
  1. S ATSUB=2 D ^ATSERCH2
  1. I $D(ATSEFRST) K ATSEFRST Q
  1. I ATSFLAG=1 Q
  1. I ATSFLAG=2 S ATSTORE=1 D CALLSORT^ATSERCH5 Q
  1. I '$D(ATSEXIT) D ^ATSERCHE
  1. I ATSFLAG=1 Q
  1. I ATSFLAG=2 S ATSTORE=1 D CALLSORT^ATSERCH5 Q
  1. Q
  1. ;
  1. EOJ ; - EP -
  1. K ^UTILITY("ATSEARCH",$J),^UTILITY("ATSPECS",$J)
  1. K ATSFLAG,ATSX,ATSEARCH,ATSI,ATSWORD,ATSASK,ATSL,ATSUB,ATSVAR,ATSPEC,ATSDFN,ATSUM,ATSTORE,ATSMSG,ATSCREEN,ATSMAT,ATSMAT1,ATSLOOP,ATSLIST,ATSRCSTR,ATSETMP
  1. K ATSAME,ATSPC,ATSYVAL,ATSXVAR,ATSEINRL,ATSMTCH,ATSNOT,ATSENLAG,ATSTASK,ATSTMPNM
  1. Q
  1. ;