source: FOIAVistA/trunk/r/REGISTRATION-DGQE-DG-DPT-GRPX-VAD-VAF-VAS-VAT-VAU--VA-VIC--DGBT--DGJ--DGYA--VALM/DGPFLF1.m@ 1607

Last change on this file since 1607 was 628, checked in by George Lilly, 15 years ago

initial load of FOIAVistA 6/30/08 version

File size: 6.0 KB
Line 
1DGPFLF1 ;ALB/KCL - PRF FLAG MANAGEMENT BUILD LIST AREA ; 3/11/03
2 ;;5.3;Registration;**425**;Aug 13, 1993
3 ;
4 ;no direct entry
5 QUIT
6 ;
7EN(DGARY,DGCAT,DGSRTBY,DGCNT) ;Entry point to build list area for PRF Flags.
8 ;
9 ; The following variables are 'system wide variables' in the
10 ; DGPF RECORD FLAG MANAGEMENT List Manager application:
11 ; Input:
12 ; DGARY - global array subscript
13 ; DGCAT - flag category (1=National, 2=Local)
14 ; DGSRTBY - list sort by criteria (N=Flag Name, T=Flage Type)
15 ;
16 ; Output:
17 ; DGCNT - number of lines in the list
18 ;
19 ;display wait msg
20 D WAIT^DICD
21 ;
22 ;retrieve all flags for the category specified
23 D GET(DGARY,DGCAT,DGSRTBY)
24 ;
25 ;build list area for flag screen
26 D BLD(DGSRTBY,.DGCNT)
27 ;
28 ;if no entries in list, display message in list area
29 I 'DGCNT D
30 . D SET^DGPFLMU1(DGARY,1,"",1,,,.DGCNT)
31 . D SET^DGPFLMU1(DGARY,2,"There are currently no flags on file to display.",4,$G(IOINHI),$G(IOINORM),.DGCNT)
32 ;
33 Q
34 ;
35 ;
36GET(DGARY,DGCAT,DGSRTBY) ;Get flag entries for display.
37 ;
38 ; Input:
39 ; DGARY - global array subscript
40 ; DGCAT - flag category (1=National, 2=Local)
41 ; DGSRTBY - list sort by criteria (N=Flag Name, T=Flage Type)
42 ;
43 ; Output: None
44 ;
45 N DGFILE ;file root of LOCAL or NATIONAL flag file
46 N DGFLAG ;local array used to hold flag record
47 N DGIEN ;ien of record in LOCAL or NATIONAL flag file
48 N DGVPTR ;IEN of record in PRF NATIONAL FLAG or PRF LOCAL FLAG file
49 N DGRSULT
50 ;
51 ;determine LOCAL or NATIONAL flag file
52 S DGFILE=$S(DGCAT=1:"^DGPF(26.15)",DGCAT=2:"^DGPF(26.11)",1:0)
53 ;
54 ;loop through each ien of flag file determined by value of DGFILE
55 S DGIEN=0 F S DGIEN=$O(@DGFILE@(DGIEN)) Q:'DGIEN D
56 . K DGFLAG
57 . ;- if national, get flag into DGFLAG array
58 . I DGCAT=1 D Q:'$G(DGRSULT)
59 . . S DGRSULT=$$GETNF^DGPFANF(DGIEN,.DGFLAG)
60 . . S:DGRSULT DGVPTR=DGIEN_";DGPF(26.15,"
61 . ;
62 . ;- if local, get flag into DGFLAG array
63 . I DGCAT=2 D Q:'$G(DGRSULT)
64 . . S DGRSULT=$$GETLF^DGPFALF(DGIEN,.DGFLAG)
65 . . S:DGRSULT DGVPTR=DGIEN_";DGPF(26.11,"
66 . ;
67 . ;- set flag entry into sorted output array
68 . D SORT(DGVPTR,DGSRTBY,DGIEN,.DGFLAG)
69 ;
70 Q
71 ;
72 ;
73SORT(DGVPTR,DGSRTBY,DGIEN,DGFLAG) ;Set flag data into sorted output array based on the sort criteria passed.
74 ;
75 ; Input:
76 ; DGVPTR - IEN of record in PRF NATIONAL FLAG or PRF LOCAL FLAG file
77 ; [ex: "1;DGPF(26.15,"]
78 ; DGSRTBY - list sort by criteria (N=Flag Name, T=Flage Type)
79 ; DGIEN - ien of record in LOCAL or NATIONAL flag file
80 ; DGFLAG - local array containing flag record
81 ;
82 ; Output:
83 ; Temporary global with following structure -
84 ; Flag list sorted by flag name:
85 ; ^TMP("DGPFSORT",$J,<status>,<flag name>,<ien>)=<var pointer>^<flag name>^<flag type>^<flag status>
86 ; OR
87 ; Flag list sorted by flag type:
88 ; ^TMP("DGPFSORT",$J,<status>,<flag type>,<ien>)=<var pointer>^<flag name>^<flag type>^<flag status>
89 ;
90 I DGSRTBY="N" D ;flag name
91 . S ^TMP("DGPFSORT",$J,$P($G(DGFLAG("STAT")),U),$P($G(DGFLAG("FLAG")),U,2),DGIEN)=DGVPTR_U_$P($G(DGFLAG("FLAG")),U,2)_U_$P($G(DGFLAG("TYPE")),U,2)_U_$P($G(DGFLAG("STAT")),U,2)
92 E D ;else flag type
93 . S ^TMP("DGPFSORT",$J,$P($G(DGFLAG("STAT")),U),$P($G(DGFLAG("TYPE")),U,2),DGIEN)=DGVPTR_U_$P($G(DGFLAG("FLAG")),U,2)_U_$P($G(DGFLAG("TYPE")),U,2)_U_$P($G(DGFLAG("STAT")),U,2)
94 ;
95 Q
96 ;
97 ;
98BLD(DGSRTBY,DGCNT) ;Build list area for flag screen.
99 ;
100 ; Input:
101 ; DGSRTBY - list sort by criteria (N=Flag Name, T=Flage Type)
102 ;
103 ; Output:
104 ; DGCNT - number of lines in the list
105 ;
106 N DGFIEN ;^tmp global subscript (flag ien)
107 N DGLINE ;line counter
108 N DGNAME ;flag name
109 N DGNUM ;list selction number
110 N DGSI ;flag status internal value
111 N DGSTAT ;flag status
112 N DGSUB ;^tmp global subscript (flag name or type)
113 N DGTYPE ;flag type
114 N DGVPTR ;IEN of record in PRF NATIONAL FLAG or PRF LOCAL FLAG file
115 ; [ex: "1;DGPF(26.15,"]
116 N DGTEMP ;sort array root
117 ;
118 ;init line counter and selection number
119 S (DGLINE,DGNUM)=0
120 ;- loop through ^TMP global by status, active (1) then inactive (0)
121 F DGSI=1,0 D
122 . ;- loop through sort selection by flag name or flag type
123 . S DGSUB=$S(DGSRTBY="N":"",1:0)
124 . F S DGSUB=$O(^TMP("DGPFSORT",$J,DGSI,DGSUB)) Q:DGSUB="" D
125 . . ;- loop through flag file ien's
126 . . S DGFIEN=0
127 . . F S DGFIEN=$O(^TMP("DGPFSORT",$J,DGSI,DGSUB,DGFIEN)) Q:'DGFIEN D
128 . . . ;-- get flag data fields from entry in ^TMP global
129 . . . S DGTEMP=$NA(^TMP("DGPFSORT",$J))
130 . . . S DGVPTR=$P($G(@DGTEMP@(DGSI,DGSUB,DGFIEN)),U) ;flag IEN
131 . . . S DGNAME=$P($G(@DGTEMP@(DGSI,DGSUB,DGFIEN)),U,2) ;flag name
132 . . . S DGTYPE=$P($G(@DGTEMP@(DGSI,DGSUB,DGFIEN)),U,3) ;flag type
133 . . . S DGSTAT=$P($G(@DGTEMP@(DGSI,DGSUB,DGFIEN)),U,4) ;flag status
134 . . . ;
135 . . . ;-- increment selection number
136 . . . S DGNUM=DGNUM+1
137 . . . ;
138 . . . ;-- increment line counter
139 . . . S DGLINE=DGLINE+1
140 . . . ;
141 . . . ;-- set line into list area
142 . . . D SET(DGARY,DGLINE,DGNUM,1,,,DGVPTR,DGNUM,.DGCNT)
143 . . . D SET(DGARY,DGLINE,DGNAME,6,,,DGVPTR,DGNUM,.DGCNT)
144 . . . D SET(DGARY,DGLINE,DGTYPE,38,,,DGVPTR,DGNUM,.DGCNT)
145 . . . D SET(DGARY,DGLINE,DGSTAT,65,,,DGVPTR,DGNUM,.DGCNT)
146 ;
147 Q
148 ;
149 ;
150SET(DGARY,DGLINE,DGTEXT,DGCOL,DGON,DGOFF,DGVPTR,DGNUM,DGCNT) ;This procedure will set the lines of flag details in the LM display area.
151 ;
152 ; Input:
153 ; DGARY - global array subscript
154 ; DGLINE - line number
155 ; DGTEXT - text
156 ; DGVPTR - (optional) IEN of record in PRF NATIONAL FLAG or PRF LOCAL
157 ; FLAG file [ex: "1;DGPF(26.15,"]
158 ; DGNUM - (optional) selection number
159 ; DGCOL - starting column
160 ; DGON - highlighting on
161 ; DGOFF - highlighting off
162 ;
163 ; Output:
164 ; DGCNT - number of lines in the list, pass by reference
165 ;
166 N DGX
167 S:DGLINE>DGCNT DGCNT=DGLINE
168 S DGX=$S($D(^TMP(DGARY,$J,DGLINE,0)):^(0),1:"")
169 S ^TMP(DGARY,$J,DGLINE,0)=$$SETSTR^VALM1(DGTEXT,DGX,DGCOL,$L(DGTEXT))
170 D:$G(DGON)]""!($G(DGOFF)]"") CNTRL^VALM10(DGLINE,DGCOL,$L(DGTEXT),$G(DGON),$G(DGOFF))
171 ;
172 ;associate flag ien with list item for flag selection
173 S:($G(DGVPTR)]"")&($G(DGNUM)) ^TMP(DGARY,$J,"IDX",DGLINE,DGNUM)=""
174 S:($G(DGVPTR)]"")&($G(DGNUM)) ^TMP(DGARY,$J,"IDX",DGNUM)=DGVPTR
175 Q
Note: See TracBrowser for help on using the repository browser.