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 | ;
|
---|