| 1 | TMGDIS2 ;TMG/kst/Custom version of DIS2 ;03/25/06 ; 5/18/10 7:52am
 | 
|---|
| 2 |         ;;1.0;TMG-LIB;**1**;01/01/06
 | 
|---|
| 3 |         ;"---- Prior header below ----------
 | 
|---|
| 4 |         ;SFISC/GFT-SEARCH, TEMPLATES & COMPUTED FIELDS;4JUN2005
 | 
|---|
| 5 |         ;;22.0;VA FileMan;**6,144**;Mar 30, 1999;Build 5
 | 
|---|
| 6 |         ;
 | 
|---|
| 7 | DIS2    ;
 | 
|---|
| 8 |         ;"Purpose:
 | 
|---|
| 9 |         ;"Input:  ...
 | 
|---|
| 10 |         ;"Output:  TMGRESULT is set
 | 
|---|
| 11 |         ;"Results: none
 | 
|---|
| 12 |         KILL DISV 
 | 
|---|
| 13 |         ;"GOTO G:'DUZ
 | 
|---|
| 14 | 0       IF 1=0 D  
 | 
|---|
| 15 |         . N DIS,DIS0,DA,DC,DE,DJ,DL 
 | 
|---|
| 16 |         . D S3^DIBT1 Q
 | 
|---|
| 17 |         IF 1=0 KILL DIRUT,DIROUT 
 | 
|---|
| 18 |         IF 1=0 IF $D(DTOUT)!($D(DUOUT)) GOTO Q
 | 
|---|
| 19 |         ;"Get SORT TEMPLATE to store search into.
 | 
|---|
| 20 |         IF 1=1 SET Y=$$PREPTMPL()
 | 
|---|
| 21 |         IF +TMGRESULT=-1 GOTO TMGDONE  ;"Quit from there
 | 
|---|
| 22 |         SET TMGSORTT=Y 
 | 
|---|
| 23 |         IF X="",'$D(DIAR) GOTO G
 | 
|---|
| 24 |         IF Y<0,X=U GOTO TMGDONE  ;"WAS Q
 | 
|---|
| 25 |         ;"IF Y<0 GOTO 0
 | 
|---|
| 26 |         IF $D(DIARU),DIARU-Y=0 DO  GOTO TMGDONE  ;WAS 0
 | 
|---|
| 27 |         . ;"WRITE $C(7),!,"Archivers must not store results in the default template"
 | 
|---|
| 28 |         . SET TMGRESULT="-1^""Archivers must not store results in the default template"
 | 
|---|
| 29 |         SET (DIARI,DISV)=+Y
 | 
|---|
| 30 |         SET A=$D(^DIBT(DISV,"DL")) 
 | 
|---|
| 31 |         IF $D(DIS0)#2 SET ^("DL")=DIS0 
 | 
|---|
| 32 |         IF $D(DA)#2 SET ^("DA")=DA 
 | 
|---|
| 33 |         IF $D(DJ)#2 SET ^("DJ")=DJ
 | 
|---|
| 34 |         IF $D(DIAR),'$D(DIARU) SET $P(^DIAR(1.11,DIARC,0),U,3)=DISV
 | 
|---|
| 35 |         SET Z=-1
 | 
|---|
| 36 |         SET DIS0="^DIBT(+Y," 
 | 
|---|
| 37 |         FOR P="DIS","DA","DC","DE","DJ","DL" DO
 | 
|---|
| 38 |         . SET %Y=DIS0_""""_P_""","
 | 
|---|
| 39 |         . SET %X=P_"(" 
 | 
|---|
| 40 |         . DO %XY^%RCR
 | 
|---|
| 41 |         SET %X="^UTILITY($J,",%Y="^DIBT(DISV,""O"","
 | 
|---|
| 42 |         SET @(%X_"0)=U") 
 | 
|---|
| 43 |         DO %XY^%RCR
 | 
|---|
| 44 | G       NEW DISTXT 
 | 
|---|
| 45 |         SET %X="^UTILITY($J,"
 | 
|---|
| 46 |         SET %Y="DISTXT(" 
 | 
|---|
| 47 |         DO %XY^%RCR
 | 
|---|
| 48 |         ;"WRITE ! 
 | 
|---|
| 49 |         SET Y=DI 
 | 
|---|
| 50 |         DO Q 
 | 
|---|
| 51 |         SET DIC=Y 
 | 
|---|
| 52 |         ;Just quit.  Important screening code stored in SORT TEMPLATE in 'DIS' node
 | 
|---|
| 53 |         GOTO TMGDONE  ;"//kt added
 | 
|---|
| 54 |         ;
 | 
|---|
| 55 |         IF $D(SF)!$D(L)&'$D(DIAR) GOTO EN1^DIP
 | 
|---|
| 56 |         GOTO EN^DIP
 | 
|---|
| 57 |         ;
 | 
|---|
| 58 |         ;"==========================================
 | 
|---|
| 59 | TEM     GOTO TEMP^TMGDIS  ;"-- MOVED TO TMGDIS
 | 
|---|
| 60 | COMP    GOTO COMP^TMGDIS  ;"-- MOVED TO TMGDIS
 | 
|---|
| 61 | XA      GOTO XA^TMGDIS    ;"-- MOVED TO TMGDIS
 | 
|---|
| 62 | COLON   GOTO COLON^TMGDIS ;"-- MOVED TO TMGDIS
 | 
|---|
| 63 | Q       GOTO Q^TMGDIS     ;"-- MOVED TO TMGDIS
 | 
|---|
| 64 |         ;"==========================================
 | 
|---|
| 65 |         ;
 | 
|---|
| 66 |  ;"X       KILL O(DC) 
 | 
|---|
| 67 |  ;"        GOTO X^TMGDIS
 | 
|---|
| 68 |         ;
 | 
|---|
| 69 | DIS     ;PUT SET LOGIC INTO DIS FOR SUBFILE
 | 
|---|
| 70 |         SET %X="" 
 | 
|---|
| 71 |         FOR %Y=1:1 SET %X=$O(DIS(%X)) Q:'%X  DO
 | 
|---|
| 72 |         . SET %=$S($D(DIAR(DIARF,%X)):DIAR(DIARF,%X),1:DIS(%X)) 
 | 
|---|
| 73 |         . IF %["X DIS(" SET %=$P(%,"X DIS(")_"X DIFG("_DIARF_","_$P(%,"X DIS(",2) 
 | 
|---|
| 74 |         . SET ^DIAR(1.11,DIARC,"S",%Y,0)=%X
 | 
|---|
| 75 |         . SET ^(1)=%
 | 
|---|
| 76 |         IF %Y>1 DO
 | 
|---|
| 77 |         . SET %Y=%Y-1
 | 
|---|
| 78 |         . SET ^DIAR(1.11,DIARC,"S",0)="^1.1132^"_%Y_U_%Y 
 | 
|---|
| 79 |         GOTO DIS2 ;"quit will occur there.
 | 
|---|
| 80 |         ;
 | 
|---|
| 81 | PREPTMPL() ;
 | 
|---|
| 82 |         ;"//kt added
 | 
|---|
| 83 |         ;"Purpose: Return IEN of a SORT TEMPLATE ready for use.
 | 
|---|
| 84 |         ;"Returns -1 if problem, or IEN^NAME.  ALSO, X is set to NAME (or "" if unsuccessful)
 | 
|---|
| 85 |         ;"Get SORT TEMPLATE to store search into.
 | 
|---|
| 86 |         NEW TMGTMPL SET TMGTMPL=-1
 | 
|---|
| 87 |         NEW Y SET Y=+$GET(INFO("SORT IEN"))           
 | 
|---|
| 88 |         IF (Y'>0)!($DATA(^DIBT(Y))=0) DO  ;"Get a new record
 | 
|---|
| 89 |         . NEW DIC,X
 | 
|---|
| 90 |         . SET DIC=.401,DIC(0)="L"
 | 
|---|
| 91 |         . SET X="TMG SRCH "_$J
 | 
|---|
| 92 |         . DO ^DIC ;"Create now, or get pre-existing
 | 
|---|
| 93 |         . IF +Y'>0 DO  QUIT
 | 
|---|
| 94 |         . . SET TMGRESULT="-1^Error getting SORT TEMPLATE for use."
 | 
|---|
| 95 |         IF +Y>0,$DATA(^DIBT(+Y)) DO  ;"Edit existing record
 | 
|---|
| 96 |         . NEW TMGFDA,TMGMSG,TMGIEN,TMGIENS,DA,DIE      
 | 
|---|
| 97 |         . SET TMGTMPL=Y
 | 
|---|
| 98 |         . NEW I SET I=0
 | 
|---|
| 99 |         . ;"Kill all but zero node of record
 | 
|---|
| 100 |         . FOR  SET I=$ORDER(^DIBT(+Y,I)) QUIT:I=""  KILL ^DIBT(+Y,I) 
 | 
|---|
| 101 |         . NEW % DO NOW^%DTC
 | 
|---|
| 102 |         . SET DIE=.401
 | 
|---|
| 103 |         . SET DA=+Y
 | 
|---|
| 104 |         . SET DR="2///"_%_";3///"_DUZ(0)_";4///"_+TMGFILE_";5///"_DUZ_";6///"_DUZ(0)
 | 
|---|
| 105 |         . DO ^DIE
 | 
|---|
| 106 |         . ;"SET IENS=+Y_","
 | 
|---|
| 107 |         . ;"SET TMGFDA(.401,IENS,2)=%
 | 
|---|
| 108 |         . ;"SET TMGFDA(.401,IENS,3)=DUZ(0)
 | 
|---|
| 109 |         . ;"SET TMGFDA(.401,IENS,4)=+TMGFILE        
 | 
|---|
| 110 |         . ;"SET TMGFDA(.401,IENS,5)=DUZ        
 | 
|---|
| 111 |         . ;"SET TMGFDA(.401,IENS,6)=DUZ(0)
 | 
|---|
| 112 |         . ;"Set back new field data
 | 
|---|
| 113 |         . ;"DO FILE^DIE("K","TMGFDA","TMGMSG")
 | 
|---|
| 114 |         . ;"IF $DATA(TMGMSG("DIERROR")) DO  QUIT
 | 
|---|
| 115 |         . ;". SET TMGRESULT="-1^Error editing SORT TEMPLATE: '"_$GET(TMGMSG("DIERR",1,"TEXT",1))_"'"
 | 
|---|
| 116 |         . ;". SET Y=-1
 | 
|---|
| 117 |         SET X=$PIECE(TMGTMPL,U,2)  
 | 
|---|
| 118 |         QUIT TMGTMPL
 | 
|---|
| 119 |         ;
 | 
|---|
| 120 | TMGDONE QUIT
 | 
|---|
| 121 |         ;
 | 
|---|
| 122 | DELTEMPL(TMGIEN) ;
 | 
|---|
| 123 |         ;"Purpose: To delete the SORT TEMPLATE in TMGIEN
 | 
|---|
| 124 |         ;"Input: TMGIEN -- the IEN in file .401 to be deleted
 | 
|---|
| 125 |         ;"Results: 1 if success, -1 if failure
 | 
|---|
| 126 |         NEW DIE,DA,DR
 | 
|---|
| 127 |         SET DIE=.401  ;DIE="^DIBT("  ;"FILE .401
 | 
|---|
| 128 |         SET DA=TMGIEN
 | 
|---|
| 129 |         SET DR=".01///@"
 | 
|---|
| 130 |         DO ^DIE
 | 
|---|
| 131 |         QUIT ($DATA(DA)=0)
 | 
|---|
| 132 |         ;
 | 
|---|