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

ATSERCH4.m

Go to the documentation of this file.
  1. ATSERCH4 ;TUCSON/DG;GETS STORED RESULTS FOR COMPARISON [ 10/25/91 1:31 PM ]
  1. ;;2.5;SEARCH TEMPLATE COMPARISON;;OCT 25, 1991
  1. ;
  1. ;
  1. D ^ATSERCH3 ;GIVES USER CHANCE TO SAVE RESULTS IN A TEMPLATE
  1. I ATSFLAG D EOJ Q
  1. ;IN CASE OF A LONG SEARCH WHERE USER MAY BE GONE AND A TIMEOUT
  1. ;KILLING THE MERGE RESULTS WOULD OCCUR
  1. D ^ATSERCHD ;CALL TO SEE IF USER WANTS COMPARISON TO BE DONE
  1. ;VIA TASKMAN
  1. I ATSTASK!(ATSFLAG) D EOJ Q
  1. ZTM ;ENTRY POINT FOR TASKMAN
  1. I $D(ZTQEUED) S ZTREQ="@" K ^UTILITY("ATSEARCH",$J)
  1. W:'ATSTASK !!,"Please wait ..."
  1. S ATSUB=1 D GET
  1. S ATSUB=2 D GET
  1. D MERGE
  1. I ATSTASK,'$D(ATSETMP) D WRITE^ATSERCHG
  1. I ATSRCSTR D SEARCH^ATSERCH3
  1. D CHKMTCH^ATSERCHG
  1. D EOJ
  1. D:ATSTASK EOJ^ATSERCH
  1. Q
  1. ;
  1. GET ;GETS STORED RESULTS, PLACE IN ^UTILITY
  1. S (ATSDFN,ATSEDOT,ATSEARCH(ATSUB,"COUNT"),ATSEARCH("MERGE COUNT"))=0
  1. F L=0:0 S ATSDFN=$O(@(ATSEARCH(ATSUB,"SRCHRESLTREF")_ATSDFN_")")) Q:ATSDFN'=+ATSDFN D @$S($D(ATSEARCH(ATSUB,"PTEDTOFILE")):"GET3",1:"GET2")
  1. Q
  1. ;
  1. GET2 ;CONTINUATION OF FOR LOOP IN GET FOR A DATA FILE THAT IS NOT THE PTED
  1. ;TO FILE
  1. S ATSENDPC=ATSEARCH(ATSUB,"DATAGLBLREF")_ATSDFN_","_ATSEARCH(ATSUB,"NODE")_")"
  1. Q:'$D(@(ATSENDPC))&(ATSENLAG'=2)
  1. I $D(@(ATSENDPC)) S ATSENDPC=$P(@(ATSENDPC),U,ATSEARCH(ATSUB,"PIECENUM")),ATSEFLY=""
  1. Q:((ATSENDPC']"")!('$D(ATSEFLY)))&(ATSENLAG'=2)
  1. S:((ATSENDPC']"")!('$D(ATSEFLY)))&(ATSENLAG=2) ATSENDPC="NULL"
  1. S ^UTILITY("ATSEARCH",$J,ATSUB,ATSENDPC,ATSDFN)="",ATSEARCH(ATSUB,"COUNT")=ATSEARCH(ATSUB,"COUNT")+1
  1. S ATSEDOT=ATSEDOT+1 W:'(ATSEDOT#20)&('ATSTASK) "."
  1. Q
  1. ;
  1. GET3 ;CONT. OF FOR LOOP IF FILE WITH SEARCH TEMPLATE LINKED TO
  1. ;IT ALSO THE POINTED TO FILE - FIELD IN FILE POINTED TO FILE MUST
  1. ;BE THE .01 FIELD OF THE FILE
  1. S ^UTILITY("ATSEARCH",$J,ATSUB,ATSDFN,ATSDFN)="",ATSEARCH(ATSUB,"COUNT")=ATSEARCH(ATSUB,"COUNT")+1
  1. S ATSEDOT=ATSEDOT+1 W:'(ATSEDOT#20)&('ATSTASK) "."
  1. Q
  1. ;
  1. MERGE ;FIRST TEMPLATE WITH LESSER COUNT, COMPARE TO TEMPLATE TWO
  1. S (ATSPRIMY,ATSECDY)="^UTILITY(""ATSEARCH"",$J,"
  1. I (ATSMTCH=1!(ATSMTCH="")),ATSEARCH(1,"COUNT")<ATSEARCH(2,"COUNT") S ATSPRIMY=ATSPRIMY_"1,",ATSECDY=ATSECDY_"2,"
  1. E S:ATSMTCH=1!(ATSMTCH="") ATSPRIMY=ATSPRIMY_"2,",ATSECDY=ATSECDY_"1,"
  1. I ATSMTCH'<2 S ATSPRIMY=$S(ATSMTCH=2:ATSPRIMY_"1,",1:ATSPRIMY_"2,"),ATSECDY=$S(ATSMTCH=2:ATSECDY_"2,",1:ATSECDY_"1,")
  1. I $D(^UTILITY("ATSEARCH",$J,"MERGED")) D SETTEMP
  1. K ^UTILITY("ATSEARCH",$J,"MERGED")
  1. S ATSPTVAL=0 F L=0:0 S ATSPTVAL=$O(@(ATSPRIMY_""""_ATSPTVAL_""""_")")) Q:ATSPTVAL'=+ATSPTVAL&(ATSPTVAL'["NULL") D MERGE2
  1. Q
  1. ;
  1. MERGE2 ;CONT OF FOR LOOP
  1. I @(ATSNOT_"$D(@(ATSECDY_""""""""_ATSPTVAL_""""""""_"")""))") D @$S(ATSEARCH("FILELINK")=ATSEARCH("PTRFILENUM"):"LINKPTR",1:"LINKSRCH")
  1. Q
  1. ;
  1. LINKPTR ;LINK COMMON POINTER VALUES OF FIELDS TO POINTER FILE
  1. S ATSEARCH("MERGE COUNT")=ATSEARCH("MERGE COUNT")+1
  1. S ^UTILITY("ATSEARCH",$J,"MERGED",3,ATSPTVAL)=""
  1. Q
  1. ;
  1. LINKSRCH ;COMMON POINTER VALUES OF FIELDS
  1. ;LINK ALL SEARCH RESULTS WITH COMMON POINTER VALUES TO SEARCH FILE
  1. ;REQUESTED BY USER VIA SEARCH FILE DFN
  1. I '(ATSEARCH(1,"SRCHFILENUM")=ATSEARCH(2,"SRCHFILENUM")&(ATSNOT="")) S ATSDFN="" F L=0:0 S ATSDFN=$O(^UTILITY("ATSEARCH",$J,ATSX,ATSPTVAL,ATSDFN)) Q:ATSDFN'=+ATSDFN D CONT
  1. E F ATSI=1:1:2 S ATSDFN=0 F ATSL=0:0 S ATSDFN=$O(^UTILITY("ATSEARCH",$J,ATSI,ATSPTVAL,ATSDFN)) Q:ATSDFN'=+ATSDFN D:'$D(^UTILITY("ATSEARCH",$J,"MERGED",3,ATSDFN)) CONT
  1. Q
  1. ;
  1. CONT ;CONT OF LINKSRCH+3
  1. S ^UTILITY("ATSEARCH",$J,"MERGED",3,ATSDFN)="",ATSEARCH("MERGE COUNT")=ATSEARCH("MERGE COUNT")+1
  1. Q
  1. ;
  1. SETTEMP ;SETS NODES WITH RESULTS OF LAST SEARCH COMPARE
  1. K ^UTILITY("ATSEARCH",$J,"TMP")
  1. S ATSTMPN=0 F ATSL=0:0 S ATSTMPN=$O(^UTILITY("ATSEARCH",$J,"MERGED",3,ATSTMPN)) Q:ATSTMPN'=+ATSTMPN S ^UTILITY("ATSEARCH",$J,"TMP",ATSTMPN)=""
  1. Q
  1. ;
  1. EOJ ;
  1. K ATSECDY,ATSPTVAL,ATSDFN,ATSPRIMY,^UTILITY("ATSEARCH",$J,1),^(2),ATSUB,ATSEDOT,ATSENDPC,ATSENUL,ATSEFLY,ATSETMP,ATSTMPN,ATSL,ATSI
  1. Q
  1. ;