1 | DICUF ;SEA/TOAD,SF/TKW-FileMan: Lookup Tools, Files ;2/6/98 08:13
|
---|
2 | ;;22.0;VA FileMan;;Mar 30, 1999;
|
---|
3 | ;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | ;
|
---|
6 | FILE(DIFILE,DIFIEN,DIFLAGS) ;
|
---|
7 | ; retrieve and calculate info about indexed file
|
---|
8 | ;
|
---|
9 | F1 ; set and check source file number.
|
---|
10 | ;
|
---|
11 | S DIFILE=+$G(DIFILE) I 'DIFILE D ERR(202,"","","","","file") Q
|
---|
12 | ;
|
---|
13 | F2 ; get the file's .01 definition; quit & error if bad
|
---|
14 | ;
|
---|
15 | N DINODE S DINODE=$G(^DD(DIFILE,.01,0))
|
---|
16 | I DINODE="" D ERR($S('$D(^DD(DIFILE)):401,1:406),DIFILE) Q
|
---|
17 | I $P(DINODE,U,2)["W" D ERR(407,DIFILE) Q
|
---|
18 | ;
|
---|
19 | F3 ; set and check the Lister's IENS parameter
|
---|
20 | ;
|
---|
21 | S DIFIEN=$G(DIFIEN) I DIFIEN="" S DIFIEN=","
|
---|
22 | I '$$IEN^DIDU1(DIFIEN) D Q
|
---|
23 | . I '$$IEN^DIDU1(DIFIEN_",") D ERR(202,"","","","","IENS") Q
|
---|
24 | . E D ERR(304,"",DIFIEN) Q
|
---|
25 | I $P(DIFIEN,",")'="" D ERR(306,"",DIFIEN) Q
|
---|
26 | ;
|
---|
27 | F4 ; calculate the source file's global root (open & closed)
|
---|
28 | ;
|
---|
29 | S DIFILE(DIFILE)=$$ROOT^DIQGU(DIFILE,DIFIEN,1,1) Q:$G(DIERR)
|
---|
30 | I DIFILE(DIFILE)'?1"^"1U.7UN.ANP,DIFILE(DIFILE)'?1"^%".7UN.ANP D Q
|
---|
31 | . D ERR(402,DIFILE,DIFIEN,"",DIFILE(DIFILE))
|
---|
32 | S DIFILE(DIFILE,"O")=$$OREF^DIQGU(DIFILE(DIFILE))
|
---|
33 | Q
|
---|
34 | ;
|
---|
35 | SCREEN(DIFLAGS,DIFILE,DISCREEN) ;
|
---|
36 | ; Set user defined and whole file screen variables.
|
---|
37 | ;
|
---|
38 | I $G(DISCREEN("S"))="" S DISCREEN("S")=$G(DISCREEN)
|
---|
39 | I $G(DISCREEN("V"))]"",$G(DISCREEN("V",1))']"" S DISCREEN("V",1)=DISCREEN("V")
|
---|
40 | S DISCREEN("F")="" I DIFLAGS'["U" D
|
---|
41 | . Q:$P($G(@DIFILE(DIFILE)@(0)),U,2)'["s"
|
---|
42 | . S DISCREEN("F")=$G(^DD(DIFILE,0,"SCR"))
|
---|
43 | . Q
|
---|
44 | Q
|
---|
45 | ;
|
---|
46 | VPDATA(DINDEX,DISCREEN) ; Add variable pointer info to DINDEX array for executing DIC("V") type screen
|
---|
47 | N DISUB,F,I,F1,F2,G,Y
|
---|
48 | F DISUB=1:1:DINDEX("#") I $G(DISCREEN("V",DISUB))]"" D
|
---|
49 | . S F1=DINDEX(DISUB,"FILE"),F2=DINDEX(DISUB,"FIELD") Q:'F1!('F2)
|
---|
50 | . F F=0:0 S F=$O(^DD(F1,F2,"V","B",F)) Q:'F D
|
---|
51 | . . S I=$O(^DD(F1,F2,"V","B",F,0)) Q:'I
|
---|
52 | . . S Y(0)=$G(^DD(F1,F2,"V",I,0)) Q:Y(0)=""
|
---|
53 | . . X DISCREEN("V",DISUB) Q:'$T
|
---|
54 | . . S G=$G(^DIC(F,0,"GL")) Q:G=""
|
---|
55 | . . S DINDEX(DISUB,"VP",G)="" Q
|
---|
56 | . Q
|
---|
57 | Q
|
---|
58 | ;
|
---|
59 | ERR(DIERN,DIFILE,DIIENS,DIFIELD,DIROOT,DI1,DI2,DI3) ;
|
---|
60 | ;
|
---|
61 | ; error logging procedure
|
---|
62 | ;
|
---|
63 | E1 N DIPE,P
|
---|
64 | N DI F DI="FILE","IENS","FIELD","ROOT",1:1:3 D
|
---|
65 | . S P=$G(@("DI"_DI)) Q:P=""
|
---|
66 | . S DIPE(DI)=P
|
---|
67 | D BLD^DIALOG(DIERN,.DIPE,.DIPE)
|
---|
68 | Q
|
---|
69 | ;
|
---|