1 | VAFCMG01 ;ALB/JRP,LTL-DEMOGRAPHIC MERGE SCREEN ;18-OCT-1996
|
---|
2 | ;;5.3;Registration;**149**;Aug 13, 1993
|
---|
3 | ;
|
---|
4 | ;NOTE: This routine contains line tags used to implement a
|
---|
5 | ; List Manager user interface
|
---|
6 | ;
|
---|
7 | EN(VAFCDFN,VAFCARR,VAFCFROM,VAFCEVDT) ;Main entry point
|
---|
8 | ; - calls List Manager interface
|
---|
9 | ;
|
---|
10 | ;Input : VAFCDFN - Pointer to entry in PATIENT file (#2) to merge
|
---|
11 | ; data into
|
---|
12 | ; VAFCARR - Array contain data to merge (full global reference)
|
---|
13 | ; Defaults to ^TMP("VAFC-MERGE-FROM",$J)
|
---|
14 | ; VAFCARR() should be set as follows:
|
---|
15 | ; VAFCARR(File,Field) = Value
|
---|
16 | ; Where File = File number Value is from
|
---|
17 | ; Field = Field number Value is from
|
---|
18 | ; Value = Info to merge
|
---|
19 | ; Notes: Dates must be in FileMan format
|
---|
20 | ; : Special considerations for Value
|
---|
21 | ; "@" - Displays <DELETE> and deletes
|
---|
22 | ; local value if merged
|
---|
23 | ; "^text" - Displays text and ignores
|
---|
24 | ; field if merged
|
---|
25 | ; NULL - Displays <UNSPECIFIED> and
|
---|
26 | ; ignores field if merged
|
---|
27 | ; Doesn't exist - Displays <UNSPECIFIED>
|
---|
28 | ; and ignores field
|
---|
29 | ; if merged
|
---|
30 | ; VAFCFROM - Text denoting where merge data came from (1-35)
|
---|
31 | ; Example: ALBANY VAMC
|
---|
32 | ; Example: CIRN
|
---|
33 | ; Defaults to local facility name
|
---|
34 | ; VAFCEVDT - Date/time merge data was instantiated (FileMan)
|
---|
35 | ; Example: Date/time data changed at remote site
|
---|
36 | ; Defaults to current date/time
|
---|
37 | ;Output : -21 - User exited via '^^' and differences exits
|
---|
38 | ; -20 - User exited via '^^' and no differences
|
---|
39 | ; -11 - User exited via '^' and differences exits
|
---|
40 | ; -10 - User exited via '^' and no differences
|
---|
41 | ; -1 - Error occurred / bad input
|
---|
42 | ; 0 - User quit and no differences
|
---|
43 | ; 1 - User quit and differences exist
|
---|
44 | ; 10 - User done and no differences
|
---|
45 | ; 11 - User done and differences exist
|
---|
46 | ; 20 - User rejected data and no differences
|
---|
47 | ; 21 - User rejected data and differences exist
|
---|
48 | ;
|
---|
49 | ;Notes : File 2 is the only file currently supported (i.e. multiples
|
---|
50 | ; are not supported)
|
---|
51 | ; : The following fields are the only fields currently supported
|
---|
52 | ; .01, .02, .03, .05, .08, .09, .111, .1112, .112, .113
|
---|
53 | ; .114, .115, .117, .131, .132, .211, .219, .2403, .301
|
---|
54 | ; .302, .31115, .323, .351, 391, 1901
|
---|
55 | ;
|
---|
56 | ;Check input
|
---|
57 | S VAFCDFN=+$G(VAFCDFN)
|
---|
58 | Q:('VAFCDFN) -1
|
---|
59 | Q:('$D(^DPT(VAFCDFN))) -1
|
---|
60 | S VAFCARR=$G(VAFCARR)
|
---|
61 | S:(VAFCARR="") VAFCARR="^TMP(""VAFC-MERGE-FROM"","_$J_")"
|
---|
62 | Q:('$O(@VAFCARR@(2,0))) -1
|
---|
63 | S VAFCEVDT=+$G(VAFCEVDT)
|
---|
64 | S:('VAFCEVDT) VAFCEVDT=$$NOW^VAFCMGU0(1)
|
---|
65 | S VAFCFROM=$G(VAFCFROM)
|
---|
66 | S:(VAFCFROM="") VAFCFROM=$P($$SITE^VASITE(),"^",2)
|
---|
67 | S VAFCFROM=$E(VAFCFROM,1,35)
|
---|
68 | ;Declare variables
|
---|
69 | N VAFCDONE,VAFCDIFF,VAFCRJCT,VAFCEXIT,FRSTDGT,LASTDGT,OUTPUT
|
---|
70 | ;Initialize 'Done' flag
|
---|
71 | S VAFCDONE=0
|
---|
72 | ;Initialize 'Differences' flag
|
---|
73 | S VAFCDIFF=0
|
---|
74 | ;Initialize 'Reject' flag
|
---|
75 | S VAFCRJCT=0
|
---|
76 | ;Initialize 'Exit' flag
|
---|
77 | S VAFCEXIT=0
|
---|
78 | ;Call List Manager interface
|
---|
79 | D EN^VALM("VAFC EXCPT MERGE SCREEN")
|
---|
80 | ;Determine last digit of output
|
---|
81 | ;No differences
|
---|
82 | S LASTDGT=0
|
---|
83 | ;Differences exist
|
---|
84 | S:(VAFCDIFF) LASTDGT=1
|
---|
85 | ;Determine first digit of output
|
---|
86 | ;User quit
|
---|
87 | S FRSTDGT=0
|
---|
88 | ;User done
|
---|
89 | S:(VAFCDONE) FRSTDGT=1
|
---|
90 | ;User rejected data
|
---|
91 | S:(VAFCRJCT) FRSTDGT=2
|
---|
92 | ;User aborted via up arrow
|
---|
93 | S:(VAFCEXIT) FRSTDGT=0-VAFCEXIT
|
---|
94 | ;Combine digits of output
|
---|
95 | S OUTPUT=FRSTDGT_LASTDGT
|
---|
96 | ;Done
|
---|
97 | Q OUTPUT
|
---|
98 | ;
|
---|
99 | HEADER ;Entry point to build header
|
---|
100 | ;
|
---|
101 | ;Input : VAFCDFN - Pointer to entry in PATIENT file (#2) data is
|
---|
102 | ; being merged into
|
---|
103 | ; VAFCFROM - Text denoting where merge data came from
|
---|
104 | ; VAFCEVDT - Date/time merge data was instantiated (FileMan)
|
---|
105 | ; All variables set by List Manager interface
|
---|
106 | ;Output : Header to use for List Manager interface
|
---|
107 | ;Notes : Existance/validity of input variables is assumed
|
---|
108 | ;
|
---|
109 | ;Declare variables
|
---|
110 | N DATA,LINE,IENS,PATDATA,ERRDATA
|
---|
111 | ;Get patient info needed to build header
|
---|
112 | D GETDATA^VAFCMGU0(VAFCDFN,1,"PATDATA","ERRDATA")
|
---|
113 | ;Build patient portion of header
|
---|
114 | S IENS=VAFCDFN_","
|
---|
115 | ;Add name
|
---|
116 | S DATA=$G(PATDATA(2,IENS,.01))
|
---|
117 | S:(DATA="") DATA="PATIENT NAME NOT ON FILE"
|
---|
118 | S LINE=DATA
|
---|
119 | ;Add last four of SSN
|
---|
120 | S DATA=$E($G(PATDATA(2,IENS,.09)),6,10)
|
---|
121 | S:(DATA="") DATA="????"
|
---|
122 | S DATA=" ("_DATA_")"
|
---|
123 | S LINE=LINE_DATA
|
---|
124 | ;Add date of birth
|
---|
125 | S DATA=$G(PATDATA(2,IENS,.03))
|
---|
126 | I (DATA'="") D
|
---|
127 | .S DATA=$$EX2INDT^VAFCMGU0(DATA)
|
---|
128 | .S DATA=$$IN2EXDT^VAFCMGU0($P(DATA,".",1))
|
---|
129 | S:(DATA="") DATA="UNKNOWN"
|
---|
130 | S DATA="DOB: "_DATA
|
---|
131 | S LINE=$$INSERT^VAFCMGU0(DATA,LINE,44)
|
---|
132 | ;Add date of death
|
---|
133 | S DATA=$G(PATDATA(2,IENS,.351))
|
---|
134 | I (DATA'="") D
|
---|
135 | .S DATA=$$EX2INDT^VAFCMGU0(DATA)
|
---|
136 | .S DATA=$$IN2EXDT^VAFCMGU0($P(DATA,".",1))
|
---|
137 | S:(DATA="") DATA="N/A"
|
---|
138 | S DATA="DOD: "_DATA
|
---|
139 | S LINE=$$INSERT^VAFCMGU0(DATA,LINE,63)
|
---|
140 | S VALMHDR(1)=LINE
|
---|
141 | ;Build remote portion of header
|
---|
142 | ;Add where data came from
|
---|
143 | ;S LINE="Data From: "_VAFCFROM
|
---|
144 | ;Last local edit, check for audit
|
---|
145 | S (DATA,LINE)="" D:$O(^DIA(2,"B",VAFCDFN,0))
|
---|
146 | .S DATA=$P($G(^DIA(2,0)),U,3)+1
|
---|
147 | .S DATA=$O(^DIA(2,"B",VAFCDFN,DATA),-1)
|
---|
148 | .S DATA=$$FMTE^XLFDT($P($G(^DIA(2,DATA,0)),U,2),"2P")
|
---|
149 | ;if no audit, check pivot file
|
---|
150 | D:DATA']""&($O(^VAT(391.71,"C",VAFCDFN,0)))
|
---|
151 | .S DATA=$P($G(^VAT(391.71,0)),U,3)+1
|
---|
152 | .S DATA=$O(^VAT(391.71,"C",VAFCDFN,DATA),-1)
|
---|
153 | .S DATA=$$FMTE^XLFDT($P($G(^VAT(391.71,DATA,0)),U),"2P")
|
---|
154 | S DATA="Last Local Edit: "_$S(DATA]"":DATA,1:"Unknown")
|
---|
155 | S LINE=$$INSERT^VAFCMGU0(DATA,LINE,0)
|
---|
156 | ;Add event date/time
|
---|
157 | S DATA=$E(VAFCFROM,1,28)_" Event Date: "_$$IN2EXDT^VAFCMGU0($P(VAFCEVDT,".",1))
|
---|
158 | S LINE=$$INSERT^VAFCMGU0(DATA,LINE,40)
|
---|
159 | S VALMHDR(2)=LINE
|
---|
160 | ;Done
|
---|
161 | Q
|
---|
162 | ;
|
---|
163 | INITSCRN ;Entry point to build screen
|
---|
164 | ;
|
---|
165 | ;Input : VAFCDFN - Pointer to entry in PATIENT file (#2) to merge
|
---|
166 | ; data into
|
---|
167 | ; VAFCARR - Array contain data to merge (full global reference)
|
---|
168 | ; VAFCARR() should be set as follows:
|
---|
169 | ; VAFCARR(File,Field) = Value
|
---|
170 | ; Where File = File number Value is from
|
---|
171 | ; Field = Field number Value is from
|
---|
172 | ; Value = Info to merge
|
---|
173 | ; Notes: Dates must be in FileMan format
|
---|
174 | ; : Special considerations for Value
|
---|
175 | ; "@" - Displays <DELETE> and deletes
|
---|
176 | ; local value if merged
|
---|
177 | ; "^text" - Displays text and ignores
|
---|
178 | ; field if merged
|
---|
179 | ; NULL - Displays <UNSPECIFIED> and
|
---|
180 | ; ignores field if merged
|
---|
181 | ; Doesn't exist - Displays <UNSPECIFIED>
|
---|
182 | ; and ignores field
|
---|
183 | ; if merged
|
---|
184 | ; VAFCFROM - Text denoting where merge data came from (1-35)
|
---|
185 | ; VAFCEVDT - Date/time merge data was instantiated (FileMan)
|
---|
186 | ; All variables set by List Manager Interface
|
---|
187 | ;Output : Display area and variables required List Manager interface
|
---|
188 | ; Display
|
---|
189 | ; VALMAR(Line,0) = Line of text in display
|
---|
190 | ; Indexes
|
---|
191 | ; VALMAR("IDX",Line,Entry) = ""
|
---|
192 | ; VALMAR("E2F",Entry,N) = File^Field
|
---|
193 | ; N => Allows for multiple fields per entry (starts with 1)
|
---|
194 | ; VALMAR("E2G",Entry) = Group entry is contained in
|
---|
195 | ; VALMAR("GRP",Group) = First line of group in display
|
---|
196 | ; Note: The E2F and E2G indexes are only set if the data
|
---|
197 | ; to merge does not match the local data
|
---|
198 | ;Notes : Existance/validity of input variables is assumed
|
---|
199 | ;
|
---|
200 | ;Declare variables
|
---|
201 | D CHGCAP^VALM("VAFLOCAL",$P($$SITE^VASITE(),U,2))
|
---|
202 | D CHGCAP^VALM("REMOTE",$G(VAFCFROM))
|
---|
203 | N VAFCDOTS
|
---|
204 | S VAFCDOTS=1
|
---|
205 | ;Initialize global locations
|
---|
206 | K @VALMAR,^TMP("VAFC-UNDO")
|
---|
207 | ;Build entire display
|
---|
208 | S VALMCNT=1
|
---|
209 | D BLDALL^VAFCMGB
|
---|
210 | ;No differences found
|
---|
211 | S:('$D(@VALMAR@("E2F"))) VALMSG="** No differences found **"
|
---|
212 | ;Done
|
---|
213 | S VALMCNT=VALMCNT-1
|
---|
214 | S VALMBG=1
|
---|
215 | Q
|
---|
216 | ;
|
---|
217 | CLEANUP ;Entry point to clean up
|
---|
218 | ;
|
---|
219 | ;Input : All variables set by List Manager interface
|
---|
220 | ;Output : None
|
---|
221 | ;
|
---|
222 | ;Up arrow out ?
|
---|
223 | I (Y=-1) D
|
---|
224 | .;Single up arrow
|
---|
225 | .S VAFCEXIT=1
|
---|
226 | .;Double up arrow
|
---|
227 | .S:($E(X,1,2)="^^") VAFCEXIT=2
|
---|
228 | ;Differences exist ?
|
---|
229 | S:($D(@VALMAR@("E2F"))) VAFCDIFF=1
|
---|
230 | ;Clean up global locations used
|
---|
231 | K @VALMAR,^TMP("VAFC-UNDO")
|
---|
232 | ;Switch to full screen
|
---|
233 | D FULL^VALM1
|
---|
234 | ;Done
|
---|
235 | Q
|
---|