1 | DGQEUT3 ;ALB/RPM - VIC REPLACEMENT UTILITIES #3 ; 12/22/03
|
---|
2 | ;;5.3;Registration;**571**;Aug 13, 1993
|
---|
3 | ;
|
---|
4 | ; This routine contains the following address selection and retrieval
|
---|
5 | ; utilities:
|
---|
6 | ; $$GETFADD - retrieves facility address
|
---|
7 | ; $$GETPTCA - retrieves a confidential, temporary or permanent address
|
---|
8 | ; $$ISCONF - determines if confidential address is active
|
---|
9 | ; $$ISTEMP - determines if temporary address active
|
---|
10 | ; $$ISFRGN - determines if selected address is a foreign address
|
---|
11 | ; $$GETABRV - converts pointer to STATE(#5) file to state abbreviation
|
---|
12 | ;
|
---|
13 | Q ;no direct entry
|
---|
14 | ;
|
---|
15 | GETFADD(DGFADD) ;retrieve facility address
|
---|
16 | ; This function retrieves a facility's address from the INSTITUTION(#4)
|
---|
17 | ; file and places the address in an array mapped to be compatible with
|
---|
18 | ; the ADD^VADPT call. A valid DUZ(2) is used to determine the
|
---|
19 | ; pointer to the INSTITUTION(#4) file, otherwise, $$SITE^VASITE() is
|
---|
20 | ; used.
|
---|
21 | ;
|
---|
22 | ; Supported References:
|
---|
23 | ; DBIA #2171: $$PADD^XUAF4
|
---|
24 | ; DBIA #10112: $$SITE^VASITE
|
---|
25 | ;
|
---|
26 | ; Input:
|
---|
27 | ; none
|
---|
28 | ;
|
---|
29 | ; Output:
|
---|
30 | ; DGFADD - facility address array, pass by reference
|
---|
31 | ; Array subscripts are:
|
---|
32 | ; "1" - Street Line 1
|
---|
33 | ; "2" - null
|
---|
34 | ; "3" - null
|
---|
35 | ; "4" - City
|
---|
36 | ; "5" - State (2 character abbreviation)
|
---|
37 | ; "6" - Zip
|
---|
38 | ; Function value - address type on success [4:facility]; 0 on failure
|
---|
39 | ;
|
---|
40 | N DGADR ;return value of $$PADD api
|
---|
41 | N DGINST ;INSTITUTION (#4) file pointer
|
---|
42 | N DGTYPE ;function value address type
|
---|
43 | ;
|
---|
44 | S DGTYPE=0
|
---|
45 | ;
|
---|
46 | I $G(DUZ(2))>0 S DGINST=DUZ(2)
|
---|
47 | E S DGINST=$P($$SITE^VASITE(),U,1)
|
---|
48 | ;
|
---|
49 | I $D(^DIC(4,DGINST)) D
|
---|
50 | . S DGADR=$$PADD^XUAF4(DGINST)
|
---|
51 | . ;
|
---|
52 | . S DGFADD(1)=$P(DGADR,U,1) ;street 1
|
---|
53 | . S DGFADD(2)="" ;placeholder
|
---|
54 | . S DGFADD(3)="" ;placeholder
|
---|
55 | . S DGFADD(4)=$P(DGADR,U,2) ;city
|
---|
56 | . S DGFADD(5)=$P(DGADR,U,3) ;state
|
---|
57 | . S DGFADD(6)=$P(DGADR,U,4) ;zip
|
---|
58 | . ;
|
---|
59 | . ;success
|
---|
60 | . S DGTYPE=4
|
---|
61 | ;
|
---|
62 | Q DGTYPE
|
---|
63 | ;
|
---|
64 | GETPTCA(DGDFN,DGADDR) ;select confidential, temporary or permanent address
|
---|
65 | ; This function uses ADD^VADPT to retrieve a patient address array and
|
---|
66 | ; selects the address to be used for mailing. The address selection
|
---|
67 | ; priority is as follows:
|
---|
68 | ; 1) Active "ELIGIBILITY/ENROLLMENT"-category Confidential Address
|
---|
69 | ; 2) Active Temporary Address
|
---|
70 | ; 3) Permanent Address
|
---|
71 | ; The selected address is returned in an array format.
|
---|
72 | ;
|
---|
73 | ; Supported Reference:
|
---|
74 | ; DBIA #10061: ADD^VADPT
|
---|
75 | ;
|
---|
76 | ; Input:
|
---|
77 | ; DGDFN - pointer to patient in PATIENT (#2) file
|
---|
78 | ;
|
---|
79 | ; Output:
|
---|
80 | ; DGADDR - selected address array, pass by reference
|
---|
81 | ; Array subscripts are:
|
---|
82 | ; "1" - Street Line 1
|
---|
83 | ; "2" - Street Line 2
|
---|
84 | ; "3" - Street Line 3
|
---|
85 | ; "4" - City
|
---|
86 | ; "5" - State (abbreviation)
|
---|
87 | ; "6" - Zip
|
---|
88 | ; "7" - County
|
---|
89 | ; Function value - set of codes for address type [1:permanent,
|
---|
90 | ; 2:temporary,3:confidential]
|
---|
91 | ;
|
---|
92 | N DFN ;input parameter for ADD^VADPT
|
---|
93 | N DGI ;generic counter
|
---|
94 | N DGLINE1 ;array node of Street Line 1
|
---|
95 | N DGSUB ;return array subscript
|
---|
96 | N DGTYPE ;function value - address type
|
---|
97 | N VAERR ;error return from VADPT
|
---|
98 | N VAPA ;result array from VADPT
|
---|
99 | ;
|
---|
100 | S DGTYPE=0
|
---|
101 | ;
|
---|
102 | I $G(DGDFN)>0,$D(^DPT(DGDFN,0)) D
|
---|
103 | . S DFN=DGDFN
|
---|
104 | . D ADD^VADPT
|
---|
105 | . ;
|
---|
106 | . ;determine address type
|
---|
107 | . S DGTYPE=$S($$ISCONF(.VAPA,"ELIGIBILITY/ENROLLMENT"):3,$$ISTEMP(.VAPA):2,1:1)
|
---|
108 | . ;
|
---|
109 | . ;copy VADPT array into return array
|
---|
110 | . S DGLINE1=$S(DGTYPE=3:13,1:1)
|
---|
111 | . S DGSUB=0
|
---|
112 | . F DGI=DGLINE1:1:DGLINE1+6 D
|
---|
113 | . . S DGSUB=DGSUB+1
|
---|
114 | . . I DGSUB=5 D ;get state abbreviation
|
---|
115 | . . . S DGADDR(DGSUB)=$$GETABRV($P(VAPA(DGI),U))
|
---|
116 | . . E D
|
---|
117 | . . . S DGADDR(DGSUB)=$P(VAPA(DGI),U)
|
---|
118 | ;
|
---|
119 | Q DGTYPE
|
---|
120 | ;
|
---|
121 | ;
|
---|
122 | ISCONF(DGADD,DGCAT) ;is confidential address active?
|
---|
123 | ; This function accepts an address array returned from a call to
|
---|
124 | ; ADD^VADPT and determines if an active confidential address exists
|
---|
125 | ; for the given category.
|
---|
126 | ;
|
---|
127 | ; DGADD - VAPA address array from ADD^VADPT
|
---|
128 | ; DGCAT - confidential address category
|
---|
129 | ;
|
---|
130 | ; Output:
|
---|
131 | ; Function value - 1:confidential address active,0:confidential
|
---|
132 | ; address inactive
|
---|
133 | ;
|
---|
134 | N DGI ;generic counter
|
---|
135 | N DGRSLT ;function value
|
---|
136 | ;
|
---|
137 | S DGRSLT=0
|
---|
138 | I $G(DGADD(12)),$G(DGCAT)]"" D
|
---|
139 | . S DGI=0
|
---|
140 | . F S DGI=$O(DGADD(22,DGI)) Q:'DGI D Q:DGRSLT
|
---|
141 | . . Q:$P($G(DGADD(22,DGI)),U,2)'=DGCAT
|
---|
142 | . . Q:$P($G(DGADD(22,DGI)),U,3)'="Y"
|
---|
143 | . . S DGRSLT=1
|
---|
144 | ;
|
---|
145 | Q DGRSLT
|
---|
146 | ;
|
---|
147 | ;
|
---|
148 | ISTEMP(DGADD) ;is temporary address active?
|
---|
149 | ; This function determines if an active temporary address exists.
|
---|
150 | ;
|
---|
151 | ; Input:
|
---|
152 | ; DGADD - address array in VADPT VAPA format
|
---|
153 | ;
|
---|
154 | ; Output:
|
---|
155 | ; Function value - 1 on active temp address, 0 on failure
|
---|
156 | ;
|
---|
157 | Q $G(DGADD(9))>0
|
---|
158 | ;
|
---|
159 | ;
|
---|
160 | ISFRGN(DGADD) ;is selected address foreign?
|
---|
161 | ; This function determines if the address selected by VADPT is a
|
---|
162 | ; foreign address.
|
---|
163 | ;
|
---|
164 | ; Input:
|
---|
165 | ; DGADD - address aray in VADPT VAPA format
|
---|
166 | ;
|
---|
167 | ; Output:
|
---|
168 | ; Function value - returns 1 on foreign address, 0 not a foreign
|
---|
169 | ; address
|
---|
170 | ;
|
---|
171 | Q $G(DGADD(7))="999"
|
---|
172 | ;
|
---|
173 | ;
|
---|
174 | GETABRV(DGIEN) ;retrieve state abbreviation
|
---|
175 | ; This function retrieves the abbreviation for a state from the STAT
|
---|
176 | ; (#5) file for a given IEN.
|
---|
177 | ;
|
---|
178 | ; Supported Reference:
|
---|
179 | ; DBIA #10056: FileMan Read access to STATE (#5) file
|
---|
180 | ;
|
---|
181 | ; Input:
|
---|
182 | ; DGIEN - pointer to a state in the STATE (#5) file
|
---|
183 | ;
|
---|
184 | ; Output:
|
---|
185 | ; Function value - state abbreviation on success, "" on failure
|
---|
186 | ;
|
---|
187 | N DGABRV ;function value
|
---|
188 | N DGERR ;FM error value
|
---|
189 | ;
|
---|
190 | S DGABRV=""
|
---|
191 | ;
|
---|
192 | I $G(DGIEN)>0,$D(^DIC(5,DGIEN,0)) D
|
---|
193 | . S DGABRV=$$GET1^DIQ(5,DGIEN_",",1,"","","DGERR")
|
---|
194 | . S:$D(DGERR) DGABRV=""
|
---|
195 | ;
|
---|
196 | Q DGABRV
|
---|