Produced by Araxis Merge on 11/9/2018 12:33:40 AM Central Standard Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.
# | Location | File | Last Modified |
---|---|---|---|
1 | CPEE_Build9_Sprint27.zip\HAC_CPE_CH | CH835DRV.m | Mon Nov 5 16:43:32 2018 UTC |
2 | CPEE_Build9_Sprint27.zip\HAC_CPE_CH | CH835DRV.m | Tue Nov 6 21:24:37 2018 UTC |
Description | Between Files 1 and 2 |
|
---|---|---|
Text Blocks | Lines | |
Unchanged | 9 | 2468 |
Changed | 8 | 22 |
Inserted | 0 | 0 |
Removed | 0 | 0 |
Whitespace | |
---|---|
Character case | Differences in character case are significant |
Line endings | Differences in line endings (CR and LF characters) are ignored |
CR/LF characters | Not shown in the comparison detail |
No regular expressions were active.
1 | CH835DRV ; HR/JBM;Jun 26, 2018@ 12:29:07 | |
2 | ;;1.0;CHA MPVA SYSTE M;**1**;JU LY 4, 1990 ;Build 1 | |
3 | ;HR - Tea m Track #: 5592;;;;; Build 11 | |
4 | ;HR - New 835 Routi ne that re places the old CHEDI * Routines | |
5 | ;TT MTN01 5348: Adde d ADHOC ve ndor updat e - JEH 7/ 27/12 | |
6 | ;TST15525 DLB BEEFE D UP THE " RERUN" CAP ABILITY TO RE-GENERA TE LOST 83 5 FLAT FIL ES | |
7 | ; DLB ENH ANCEMENT: 12/5/2012 ADDED CAP ABILITY TO SEND EMAI L TO TEST ENGINEER T O REPORT B ALANCE ERR ORS | |
8 | ; RECORDED A ND SITTING IN QUEUE TO BE SENT IN 835 | |
9 | ; DLB 01/ 09/2013 DE V7820 MOD IFIED THE "NEWFILE" FUNCTION, THE STATUS CHANGE IS NOW DONE | |
10 | ; IN C H835F1.INT , IN FMSLO OP, EACH S TATUS IS C HANGED AS THE RECORD IS | |
11 | ; WRIT TEN TO THE FILE | |
12 | ; DLB 02/ 07/2013 MO VED FUNCTI ON FROM "D EV" TO "DE VSLA" | |
13 | ; SBB 11/ 22/2013 DE F016554 Mo dified Wri ting to a file as pe r VHA stan dard. | |
14 | ; 12/11/2 013 DLB M ODIFIED TH E CHECK NU MBER TEST TO HANDLE "0" PAY (< 1.00 CALCU LATED PAYM ENT) FOR Q UEING 835s | |
15 | ; DLB 1/1 6/2014 ENA BLED CALL TO BALRPT( ), WHICH S ENDS EMAIL REPORTING BALANCE E RRORS | |
16 | ; DLB 1/1 6/2014 DIS ABLED THE CHKNUM() F UNCTION TO INHIBIT 8 35 GENERAT ION UNTIL CHECK/EFT NUMBERS AV AILABLE | |
17 | ; 12/3/20 15 SLT ERA COMPLIANC E - VALID CARCS/RARC S | |
18 | Q | |
19 | ; | |
20 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;; | |
21 | ; EPALL L OOPS THROU GH ALL THE ACTIVE EN TRIES IN T HE ^CHMEDI PA() GLOBA L | |
22 | ; AND CAL LS THE EP( ) FUNCTION TO GENERA TE THE 835 FOR THE S UBMITTING | |
23 | ; ENTITY FROM THE G LOBAL. | |
24 | ; 2/18/20 13 ^CHMEDI PA(): | |
25 | ; ^CHMEDI PA(0)="HAC EDI 835 E NTITY^7410 03^4^4" | |
26 | ; ^CHMEDI PA(1,0)="S XC PHARMAC Y^1^SXCNET ^SXCRX^CH8 35EI^HAC_H FS$:[X12OC R.IN]^SXCN ET^1559150 000" | |
27 | ; ^CHMEDI PA(2,0)="E MDEON CLAI MS^1^W8414 6^ENV^CH83 5EI^HAC_HF S$:[X12OCR .IN]^W8414 6^18414698 24" | |
28 | ; ^CHMEDI PA(3,0)="S XC 837P CL AIMS^0^S55 915^SXCACH ^CH835EI^H AC_HFS$:[X 12OCR.IN]^ S55915^155 9150000" | |
29 | ; ^CHMEDI PA(4,0)="E MDEON MEDC OB CLAIMS^ 1^C74161^M EDCOB^CH83 5EI^HAC_HF S$:[X12OCR .IN]^C7416 1^17416122 29" | |
30 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;; | |
31 | ; NOTE: F IELD 2=1 I NDICATES T HE ENTITY IS "ACTIVE ". THIS FI ELD IS TES TED IN THE | |
32 | ; EP(ENTI TY INDEX) FUNCTION S O AS NOT T O DUPLICAT E THE CHEC K. | |
33 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;; | |
34 | ; | |
35 | EPALL ;ENT RY POINT T O PROCESS 835 FILES FOR ALL AC TIVE SUBMI TTER ENTIT IES | |
36 | N EI | |
37 | ;Get acti ve 835 ent ities to p rocess | |
38 | S EI=0 | |
39 | F S EI=$ O(^CHMEDIP A(EI)) Q:E I'?1N D ; HAC EDI 8 35 ENTITY FILE | |
40 | .D EP(EI) ; GENERATE EACH SUBM ITTER'S FI LE | |
41 | Q | |
42 | ; | |
43 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;; | |
44 | ; ENTRY P OINT TO GE NERATE AN 835 FILE F OR A SPECI FIC SUBMIT TER ENTITY | |
45 | ; USER PR OVIDES THE SUBMITTER FOR WHICH TO GENERA TE THE FIL E FROM ^CH MEDIPA() | |
46 | ;^CHMEDIP A(0)="HAC EDI 835 EN TITY^74100 3^4^4" | |
47 | ;^CHMEDIP A(1,0)="SX C PHARMACY ^1^SXCNET^ SXCRX^CH83 5EI^HAC_HF S$:[X12OCR .IN]^SXCNE T^15591500 00" | |
48 | ;^CHMEDIP A(2,0)="EM DEON CLAIM S^1^W84146 ^ENV^CH835 EI^HAC_HFS $:[X12OCR. IN]^W84146 ^184146982 4" | |
49 | ;^CHMEDIP A(3,0)="SX C 837P CLA IMS^1^S559 15^SXCACH^ CH835EI^HA C_HFS$:[X1 2OCR.IN]^S 55915^1559 150000" | |
50 | ;^CHMEDIP A(4,0)="EM DEON MEDCO B CLAIMS^1 ^C74161^ME DCOB^CH835 EI^HAC_HFS $:[X12OCR. IN]^C74161 ^174161222 9" | |
51 | ;^CHMEDIP A("B","EMD EON CLAIMS ",2)="" | |
52 | ;^CHMEDIP A("B","EMD EON MEDCOB CLAIMS",4 )="" | |
53 | ;^CHMEDIP A("B","SXC 837P CLAI MS",3)="" | |
54 | ;^CHMEDIP A("B","SXC PHARMACY" ,1)="" | |
55 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;; | |
56 | ; | |
57 | EP(INEI) ; Entry poi nt to run a single 8 35 file | |
58 | ; INEI - ^CHMEDIPA (I) INDEX | |
59 | D INIT | |
60 | Q:'$D(^CH MEDIPA(INE I)) ; EXIT IF IN VALID INDE X PROVIDED | |
61 | Q:$P(^CHM EDIPA(INEI ,0),"^",2) '=1 ; EXIT IF EN TITY ENTRY IS NOT "A CTIVE" | |
62 | D MAIN(IN EI) ; GENERATE F ILE FOR EN TITY INDEX | |
63 | Q | |
64 | ; | |
65 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;; | |
66 | ; RERUN E NTRY POINT TO RE-CRE ATE A PREV IOUSLY GEN ERATED 835 FILE | |
67 | ; THE TAR GET DIRECT ORY: HAC_H FS$:[X12OC R.IN] | |
68 | ; A MENU LIST OF PR EVIOUSLY G ENERATED F ILES AND I NDEXES IS DISPLAYED TO | |
69 | ; ASSIST THE USER I N SELECTIN G THE DESI RED FILE T O REGENERA TE. | |
70 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;; | |
71 | ; | |
72 | RERUN(FILE I) ;E.P. R erun 835 f ile for SX C Network Pharmacy c laims | |
73 | N EI | |
74 | D INIT ; HOUS ECLEANING AND SETUP FUNCTION | |
75 | S DT=TODA Y | |
76 | S:'$D(FIL EI) FILEI= $$GETFILE Q:FILEI="" ; USER S ELECTION F OR FILE TO GENERATE | |
77 | S EI=$P($ G(^CHMEDIF (FILEI,0)) ,"^",3) ; RETRIE VE THE ENT ITY INDEX FOR THE FI LE | |
78 | D FCREATE (EI,FILEI, "R") ; RE-CRE ATE THE FI LE | |
79 | I ($D(^TM P($J,"BALE RR")))!($D (^TMP($J," NOEFT"))) D ; L OG EFT/BAL ANCE ERROR IN THIS R UN | |
80 | .D DMP835 ERR(FILEI) ; LOG EF T, BALANCE ERRORS FO R THIS RUN | |
81 | Q | |
82 | ; | |
83 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;; | |
84 | ; EPREJ(R EJCODE) C ONVERT THE REJECT CO DE FROM ^C HMPAY() TO THE "CROS SWALK" | |
85 | ; VALUES EXPECTED I N THE 835 FILE | |
86 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; | |
87 | ; | |
88 | EPREJ(REJC ODE) | |
89 | ; REJCODE INTERNAL REJECT COD E FOR CLAI M FROM THE ^CHMPAY() FILE | |
90 | D CNVRJCD ^CH835F2(R EJCODE) | |
91 | Q | |
92 | ; | |
93 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;; | |
94 | ; EPCLMS( FILEI) OU TPUT THE L IST OF CLA IM NUMBERS FOR A GIV EN FILE IN DEX | |
95 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;; | |
96 | ; | |
97 | EPCLMS(FIL EI) | |
98 | ; FILEI I NDEX TO ^C HMEDIF() F ILE | |
99 | N EDII,ED IJ,PAYI,CI CMPDT,CNT | |
100 | S EDII=0, CNT=0 | |
101 | F CNT=1:1 S EDII=$ O(^CHMEDI( "G",FILEI, EDII)) Q:+ (EDII)=0 D ; LOOP THRU THE "EDI 8 35 FILE IN DEX #"s | |
102 | .S EDIJ=0 | |
103 | .F S EDI J=$O(^CHME DI(EDII,1, EDIJ)) Q:+ (EDIJ)=0 D ; LOOP THRU "J" INDEX ES | |
104 | ..S PAYI= $P($G(^CHM EDI(EDII,1 ,EDIJ,0)), "^",1) ; RETRIEVIN G THE POIN TER->^CHMP AY() | |
105 | ..U 0 W ! ,"CLAIM SO RT FOR FIL EI= ",FILE I," EDII= ",EDII," EDIJ= ",ED IJ," CLAIM NUMBER= " ,$P(^CHMPA Y(PAYI,0), "^",1) | |
106 | Q | |
107 | ; | |
108 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;; | |
109 | ; INIT FU NCTION PER FORMS CLEA NUP AND FI LE RUN DAT E:TIME | |
110 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;; | |
111 | ; | |
112 | INIT ; | |
113 | K ^TMP($J ) ; temp global sto re valid F MSdoc IDs or those t hat have E FT error | |
114 | S POP=0 | |
115 | D NOW^%DT C | |
116 | S TODAY=X ; DATE OF 835 RE CORD/FILE GENERATION | |
117 | Q | |
118 | ; | |
119 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;; | |
120 | ; MAIN PR OCESSING L OOP FOR TH E 835 GENE RATION | |
121 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;; | |
122 | ; 1/29/20 15 DLB A DDED THE " ENTITY IND EX" VALUE TO THE BAL RPT() FUNC TION CALL | |
123 | ; TO ALLO W THE CLAI M TYPE TO BE ADDED T O THE BALA NCE ERROR REPORT EMA IL | |
124 | ; BUSINES S GROUP WA S CONFUSED AS TO THE SOURCE OF THE BALAN CE ERRORS | |
125 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;; | |
126 | ; | |
127 | MAIN(INEI) ;Loop thru CHMEDI() "NEEDS SEN T" ENTRIES FOR ENTIT Y | |
128 | N FILEI,C LMCNT | |
129 | D LOOP(IN EI) ;LOAD ^TMP ($J,"VALID 835",EI) w ith FMSDOC ids that need 835 s ent | |
130 | S FILEI=$ $NEWFILE(I NEI) ; SET UP ^CHMEDIF( ) FILE, ^T MP($J,"VAL ID835",EI, I) | |
131 | D FCREATE (INEI,FILE I,"P") ; OPEN/C REATE THE 835 FILE F OR THE ENT ITY | |
132 | I $D(^TMP ($J,"NOEFT ")) D ; JEH 7/2 7/12 MTN01 5348 | |
133 | .D EFTERR ^CH835EFT ; SEND EMA IL NOTIFIC ATION OF M ISSING EFT INFO | |
134 | .D ^CH835 VUP ; AUTOMATE D EFT UPDA TE FUNCTIO N | |
135 | I ($D(^TM P($J,"BALE RR")))!($D (^TMP($J," NOEFT"))) D ; LOG EF T/BALANCE/ CARC ERROR IN THIS R UN | |
136 | .D BALRPT (INEI) ; CURRENTL Y BALANCE ERRORS ARE NOT REPOR TED (ENABL ED 1/16/20 14: DLB) | |
137 | I $D(^TMP ($J,"CARCE RR")) D | |
138 | .D CARCRP T(INEI) | |
139 | I $D(^TMP ($J,"RARCE RR")) D | |
140 | .D RARCRP T(INEI) | |
141 | I ($D(^TM P($J,"BALE RR")))!($D (^TMP($J," NOEFT")))! ($D(^TMP($ J,"CARCERR ")))!($D(^ TMP($J,"RA RCERR"))) D | |
142 | .D DMP835 ERR(FILEI) ; LOG EF T, BALANCE ERRORS FO R THIS RUN IF NOT "L IVE" ENV | |
143 | D CLEANUP | |
144 | Q | |
145 | ; | |
146 | CLEANUP | |
147 | I $$ENVIR ^CHTFLIB=" LIVE" K ^ TMP($J) ; KILL ^TMP ARRAY(S) C REATED FOR THIS PROC ESS ($J) I F IN "LIVE " | |
148 | C:$D(LOG8 35) LOG835 | |
149 | Q | |
150 | ; | |
151 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;; | |
152 | ; Loop th ru CHMEDI nodes for 835 STATUS =NEEDS 835 SENT | |
153 | ; OPTIONA L: loop th ru those t hat have b alance err ors and tr y to send | |
154 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;; | |
155 | ; This is the contr ol loop fo r generati ng the 835 records/f iles (CHME DI(I,0)) | |
156 | ; 1) LOOP THROUGH T HE CHMEDI( "D",0,I) ( NEEDS SENT STATUS) X REF FOR CL AIMS, | |
157 | ; CREA TING THE ^ TMP($J,"VA LID835",EI ,I) ARRAY FOR ALL VA LID ENTRIE S FOR THE | |
158 | ; 835 PR OCESS. | |
159 | ; 2) Veri fy that th e Claim Su bmitter (E ntity) is the curren t valid EN TITY | |
160 | ; 3) If E lectronic Fund Trans fer, verif y Banking Informatio n/address | |
161 | ; No 835 records g enerated i f missing Banking in fo | |
162 | ; Set s up NOEFT node in T MP global. .IE ^TMP($ J,"NOEFT", VID) | |
163 | ; 4) Veri fy the Cla im balance s | |
164 | ; No 835 records w ill be gen erated for unbalance d claims | |
165 | ; Sets t he ^CHMEDI Status=2 (835 Bala nce Error) | |
166 | ; NOTE: C LAIMS WITH MISSING E FT INFO RE MAIN IN TH E "NEEDS S ENT" STATU S | |
167 | ; SO THAT WHEN THE EFT DATA I S PROVIDED , THE 835 RECORD WIL L BE GENER ATED | |
168 | ; AN EMAI L IS SENT TO THE PRO PER PARTIE S TO INFOR M HAC THAT THE EFT I NFO | |
169 | ; IS MISS ING. | |
170 | ; CLAIMS WITH BALA NCE ERRORS REQUIRE A TTENTION T O "FIX" TH E ERROR. | |
171 | ; AN EMAI L IS SENT NOTIFYING THE PROPER PARTIES T HAT A BALA NCE ERROR HAS | |
172 | ; BEEN EN COUNTERED. | |
173 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;; | |
174 | ; | |
175 | LOOP(INEI) | |
176 | N I,EI | |
177 | S I=0 | |
178 | F S I=$O (^CHMEDI(" D",0,I)) Q :'I D ; "needs se nt" status index | |
179 | .S EI=$$G ETEI^CH835 EI(I) ; RETRIEVE THE CLAIM SUBMITTIN G ENTITY | |
180 | .Q:((EI=" ")!(EI'=IN EI)) ; SKIP 835 GENERATIO N IF INVAL ID ENTITY INFO | |
181 | .Q:$$NOEF T^CH835EFT (I) ; SKIP 835 GENERATIO N IF REQUI RED BANK E FT INFO MI SSING | |
182 | .Q:$$CHKN UM(I)=0 ; SKIP 835 G ENERATION IF CHECK N UMBER IS M ISSING (EN ABLED 3/12 /2014: DLB ) | |
183 | .S ^TMP($ J,"VALID83 5",EI,I)=" " ; CREATE A RRAY CONTA INING ENTR IES TO HAV E 835 RECO RDS BUILT | |
184 | Q | |
185 | ; | |
186 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;; | |
187 | ; CHKNUM( ) RETURNS A BOOLEAN FOR THE CH ECK NUMBER AVAILABLE | |
188 | ; 12/11/2 013 DLB M ODIFIED TH E TEST FOR CHECK NUM BER TO HAN DLE "0" PA Y | |
189 | ; 12/11/2 013 DLB A DDED CODE TO RETURN "0" (IF TH E CALCULAT ED PAYMENT | |
190 | ; IS >= $ 1.00, BUT THE CHECK NUMBER HAS NOT BEEN RECEIVED F ROM AUSTIN ) | |
191 | ; IF THE CALCULATED AMOUNT IS <$1.00, R ETURN THE FMS DOC ID (THIS IND ICATES | |
192 | ; A NON Z ERO RETRN, WHICH ALL OWS THE CL AIM TO BE QUE'D FOR 835 GENERA TION. | |
193 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;; | |
194 | ; | |
195 | CHKNUM(EDI I) | |
196 | ; EDII IN DEX INTO ^ CHMEDI() | |
197 | N EDIJ,PA YI,CHKNUM | |
198 | S (CHKNUM ,EDIJ)=0 | |
199 | S EDIJ=$O (^CHMEDI(E DII,1,EDIJ )) Q:+(EDI J)=0 ; JU ST NEED ON E PAYI IND EX, CALCPM T() GETS M ULTIPLES | |
200 | S PAYI=$P ($G(^CHMED I(EDII,1,E DIJ,0)),"^ ",1) ; RE TRIEVING T HE POINTER ->^CHMPAY( ) | |
201 | I PAYI D | |
202 | .S RESULT =$$CALCPMT ^CH835F1(P AYI) ; DETERM INE IF PAY MENT IS TO BE MADE | |
203 | .I ($P(RE SULT,"^",1 )>0.99)&($ P(RESULT," ^",2)>0.99 ) D ; AMT TO BE PAI D (PIECE 1 ) AND PAID TO VENDOR (PIECE 2) BOTH > 0. 99 | |
204 | ..S CHKNU M=$P($G(^C HMPAY(PAYI ,1)),"^",1 6) ; GET VENDOR TRE ASURY CHEC K / EFT NU MBER | |
205 | ..S:CHKNU M="" CHKNU M=0 ; IF CHECK N UMBER NOT POPULATED (NULL) RET URN 0 (WAI TING FOR C HECK #) | |
206 | .E S CHK NUM=1 ; NO CHECK NUM BER REQUIR ED, RETURN TRUE (GO AHEAD & RE PORT | |
207 | Q CHKNUM ; 0= NO CHECK N UMBER, NON -ZERO PAYM ENT GET FM S DOC ID | |
208 | ; | |
209 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;; | |
210 | ; RECORD THE BALANC E ERROR IN ^CHMEDI() STATUS R ETIRED 1/1 /2013 | |
211 | ; | |
212 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;; | |
213 | ; | |
214 | BALERR(I) ; Set stat us to bala nce error and set th e balance error date | |
215 | ; I ^CHME DI "I" IND EX | |
216 | Q:$P($G(^ CHMEDI(I,0 )),"^",2)= 2 ; EXI T IF Alrea dy recorde d as a bal ance error | |
217 | N ARR,RES ULT,PAYI,C LM,FMSDOCI D | |
218 | S (RESULT ,PAYI,CLM) ="" | |
219 | D NOW^%DT C ; GE T TODAY'S DATE | |
220 | S TODAY=X ; DA TE BALANCE ERROR REC ORDED | |
221 | S ARR(.02 )=2 ; SET STATUS TO BALANC E ERROR | |
222 | S ARR(.07 )=TODAY ; SET DATE B ALANCE ERR OR ENCOUNT ERED | |
223 | S RESULT= $$UPDATE^C HHRLIBFM(" CHMEDI(I,0 )",I,$$SET DR^CHHRLIB FM("ARR")) | |
224 | S FMSDOCI D=$P(^CHME DI(I,0),"^ ",1) | |
225 | S CHPDI=$ $FMSTOPDI( FMSDOCID) | |
226 | S PAYI=0, PAYI=$O(^C HMPAY("C", PDI,PAYI)) ; ^CHMPAY "I" INDEX | |
227 | S:PAYI CL M=$P(^CHMP AY(PAYI,0) ,"^",1) ; INTERNAL HAC CLAIM NUMBER | |
228 | S ^TMP($J ,"BALERR", CHPDI)=CHP DI_"^"_CLM _"^"_I_"^" _TODAY | |
229 | Q | |
230 | ; | |
231 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;; | |
232 | ; FUNCTIO N TO ADD N EW FILE ID s TO THE ^ CHMEDIF() FILE. THIS FUNCTION IS | |
233 | ; CALLED FOR THE EP ALL AND EP ENTRY POI NTS. NOT R EQUIRED FO R THE RERU N | |
234 | ; PROCESS . | |
235 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;; | |
236 | ; 9/17/20 13 DLB AD DED FILEI AND I TO " NEW" LIST | |
237 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;; | |
238 | ; | |
239 | NEWFILE(EI ) ;Create a new file and load FMSDOC id' s from TMP global. | |
240 | N DT,DTIM E,TIME,I,F ILEI | |
241 | S TIME=0 | |
242 | L ^CHMEDI F(0) | |
243 | S FILEI=$ P(^CHMEDIF (0),"^",3) S:'FILEI FILEI=0 ; CURRENT I NDEX TO ^C HMEDIF() | |
244 | S FILEI=F ILEI+1 ; ADD ON E TO THE C URRENT IND EX | |
245 | S $P(^CHM EDIF(0),"^ ",3)=FILEI ,$P(^CHMED IF(0),"^", 4)=FILEI L ; NEW IN DEX STORED | |
246 | F Q:TIME D | |
247 | .D NOW^%D TC | |
248 | .S DTIME= % | |
249 | .I '$D(^C HMEDIF("B" ,DTIME)) S TIME=1 | |
250 | S DT=X | |
251 | S ^CHMEDI F("B",DTIM E,FILEI)=" " ; SET THE "B" CR OSS REFERE NCE (PROCE SS DATE) | |
252 | S ^CHMEDI F("D",EI,F ILEI)="" ; SE T THE "D" CROSS REFE RENCE (ENT ITY INDEX) | |
253 | S $P(^CHM EDIF(FILEI ,0),"^",3) =EI ; PO INTER TO ^ CHMEDIPA() | |
254 | S $P(^CHM EDIF(FILEI ,0),"^",1) =DTIME ; PROCESS DA TE/TIME | |
255 | ;set stat us to inpr ogrss and set x-ref | |
256 | S $P(^CHM EDIF(FILEI ,0),"^",2) =0 ; IN PROGRESS( 0)/COMPLET E STATUS(1 ) | |
257 | S ^CHMEDI F("C",0,FI LEI)="" ; SET THE "C" CR OSS REFERE NCE (STATU S XREF) | |
258 | ; Now loa d the clai ms into TH E FILE | |
259 | S I="" | |
260 | L +(^CHME DI(I)) ; LOCK F ILE TO ALL OW FOR PAR ALLEL PROC ESSING | |
261 | F S I=$O (^TMP($J," VALID835", EI,I)) Q:I ="" D ; LOOP ON ST ORED ^CHME DI() I IND EX (FROM L OOP FUNCTI ON) | |
262 | .Q:$P(^CH MEDI(I,0), "^",2)'=0 ; QUIT IF STATUS '= "NEEDS SENT" | |
263 | .S ^CHMED I("D",0,I) ="" ; SET TH E "NEED SE NT" STATUS XREF | |
264 | .S $P(^CH MEDI(I,0), "^",6)=FIL EI ; RE TRIEVE POI NTER TO ^C HMEDIF() | |
265 | .S ^CHMED I("G",FILE I,I)="" ; SET THE "G" XR EF (STORE INDEXES FO R FILE NUM BER) | |
266 | L -(^CHME DI(I)) ; UNLOCK FILE AFTE R SETUPS | |
267 | Q FILEI | |
268 | ; | |
269 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;; | |
270 | ; CREATE THE TARGET FILENAME AND OPEN T HE FILE IN THE "HAC_ HFS$:[X12. OCR]" | |
271 | ; DIRECTO RY FOR ALL ENTRY POI NTS. | |
272 | ; THE CHP ID USED HE RE IS NOT CARRIED TH ROUGH FOR 835 PROCES SING, AS D ENTAL CLAI MS | |
273 | ; CAN/WIL L BE SUBMI TTED WITH THE MEDICA L CLAIMS, BUT MUST B E DIFFEREN TIATED | |
274 | ; IN THE FINAL 835 EXTRACT. | |
275 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;; | |
276 | ; | |
277 | FCREATE(EI ,FILEI,CAL LER) ;Crea tes the ac tual 835 f ile | |
278 | ; EI ENTI TY INDEX (USED IN N AMING THE OUTPUT FIL E | |
279 | ; FILEI F ILE INDEX TO GENERAT E | |
280 | ; CALLER "P" FOR PR ODUCTION, "R" FOR RE RUN | |
281 | N CHPID,F NAME,EFN,C LMCNT | |
282 | S ENTINFO =$G(^CHMED IPA(EI,0)) Q:ENTINFO ="" ; LOAD EDI 8 35 ENTITY DATA | |
283 | S FNAME=$ P(ENTINFO, "^",3) ; FILE NAME | |
284 | S EFN=$P( ENTINFO,"^ ",3) | |
285 | S DIR=$P( ENTINFO,"^ ",6) ; TARG ET DIRECTO RY FROM CH MEDIPA | |
286 | S:DIR="" DIR="HAC_H FS$:[X12OC R.IN]" ; DEFAULT OU TPUT DIREC TORY | |
287 | S CHPID=$ P(ENTINFO, "^",7) ; CLRH OUSE SHORT NAME/PAYE R ID "C741 61","W8414 6","SXCNET " | |
288 | ;SBB; DEF 016554-12/ 24/13 - Ge tting UCI for differ ent areas. | |
289 | X ^%ZOSF( "UCI") S U CI=$P(Y,", ",1) | |
290 | S FIO=DIR _CHPID_"_" _FILEI_".T XT" ; CR EATE FULL PATH/FILEN AME STRING | |
291 | S FNAME=E FN_"_835_" _FILEI_".8 35" | |
292 | ;I UCI'=" HAC" S FIO =DIR_CHPID _"_"_FILEI _"_"_UCI_" .TXT",FNAM E=EFN_"_83 5_"_FILEI_ "_"_UCI_". 835" ; DL B 2/12/201 4 DO NOT W ANT ENV ID IN FILENA ME | |
293 | ;SBB; DEF 016554-11/ 22/13 - Mo dified Wri ting to a file as pe r VHA stan dard. | |
294 | ;O FIO:"N WS":10 Q: '$TEST ; OPEN / CHECK F OR SUCCESS | |
295 | I '$$OPEN FIWR^CHTFL IB9(.FIO," FIO") Q | |
296 | I CALLER= "R" U 0 W !,"RERUN " ,FIO ; RE RUN IS NOT DONE BY B ATCH, SO O UTPUT DATA | |
297 | D SORT^CH 835F1(FILE I) ; SORT C LAIMS FOR THE SELECT ED CLEARIN GHOUSE | |
298 | S CLMCNT= $$FMSLOOP^ CH835F1(FI LEI,EI) ; GENERATE T HE FILE | |
299 | ;DEF01655 4-11/22/13 -SBB use C LOSE^%ZISH to close file | |
300 | ;C FIO | |
301 | D CLOSEF^ CHTFLIB9(F IO,"FIO") | |
302 | I CALLER= "R" U 0 W !,"CLOSED ",FIO," CL AIM COUNT= ",CLMCNT | |
303 | C:$D(LOG8 35) LOG835 | |
304 | Q | |
305 | ; | |
306 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;; | |
307 | ; GETFILE FUNCTION: USED FOR THE "RERU N" ENTRY P OINT | |
308 | ; DISP LAY THE LA ST 10 ENTI TY IDS FRO M THE ^CHM EDI FILE | |
309 | ; GET THE USER S ELECTION F OR THE ENT ITY ID TO RE-RUN | |
310 | ; RETU RN THE SEL ECTED & VA LIDATED EN TITY ID | |
311 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;; | |
312 | ; | |
313 | GETFILE() ; | |
314 | START | |
315 | N DIR,PRE FIX,FNAME, IDX,FCNT,F ENT,FDATE, FSTAT,TMPI O,CLMCNT,E DII | |
316 | S IDX=999 9999999,FI LEI="",FCN T=0,TMPIO= $IO | |
317 | W !,"DISP LAYING PRE VIOUS ENTR IES IN ^CH MEDIF() FI LE: " | |
318 | W !,"FILE ID",?12," PROCESSED" ,?25,"STAT US",?35,"C LAIM CNT", ?50,"ENTIT Y" | |
319 | F FCNT=1: 1 S IDX=$O (^CHMEDIF( IDX),-1) Q :'IDX Q:$ L(FILEI)=4 D | |
320 | .I (FCNT# 15)=0 R ! !,"Enter F ile ID: ", FILEI Q:$ L(FILEI)=4 D | |
321 | ..W !,"FI LE ID",?12 ,"PROCESSE D",?25,"ST ATUS",?35, "CLAIM CNT ",?50,"ENT ITY" | |
322 | .S FENT=$ P(^CHMEDIF (IDX,0),"^ ",3) Q:FEN T="" ; GE T ONLY ENT RIES THAT HAVE ENTIT Y VALUE | |
323 | .S FDATE= $$DTCVRT^C HMXWBUT($P ($P(^CHMED IF(IDX,0), "^",1),"." ,1)) | |
324 | .S FSTAT= $$GETDESC^ CHHRLIBFM( 741207.02, .02,$P(^CH MEDIF(IDX, 0),"^",2), 0) | |
325 | .I $D(^CH MEDI("G",I DX)) D | |
326 | ..S EDII= 0,EDII=$O( ^CHMEDI("G ",IDX,EDII )) | |
327 | ..S EDITM P=EDII F CLMCNT=1:1 S EDITMP= $O(^CHMEDI ("G",IDX,E DITMP)) Q: +(EDITMP)= 0 | |
328 | ..W !,IDX ,?12,FDATE ,?25,$E(FS TAT,1,4),? 35,CLMCNT, ?50,$E($P( ^CHMEDIPA( FENT,0),"^ ",1),1,13) | |
329 | S FILE="" S POP=1 | |
330 | I '$D(^CH MEDIF(FILE I)) W !," <Invalid ^ CHMEDIF(IN DEX)> ",FI LEI,!! G S TART | |
331 | S EI=$P($ G(^CHMEDIF (FILEI,0)) ,"^",3) | |
332 | I EI="" W !," <Inva lid PIECE 3>","" G START | |
333 | S ENTINFO =$G(^CHMED IPA(EI,0)) | |
334 | I ENTINFO ="" W !," <Invalid E NTINFO>"," " G START | |
335 | S DIR=$P( ENTINFO,"^ ",6) ; GET TA RGET DIR F ROM ^CHMED IPA | |
336 | S:DIR="" DIR="HAC_H FS$:[X12OC R.IN]" ; DE FAULT IF N OT IN CHME DIPA | |
337 | S PREFIX= $P(ENTINFO ,"^",7) ; GET TA RGET FILEN AME FROM ^ CHMEDIPA | |
338 | S FNAME=D IR_PREFIX_ "_"_FILEI_ ".TXT" | |
339 | U 0 W !," GENERATING : ",FNAME U TMPIO | |
340 | Q FILEI | |
341 | ; | |
342 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ; | |
343 | ; RETRIEV E A PDI FR OM FMSDOCI D (MAY HA VE MULTIPL E PDIs ASS OCIATED) | |
344 | ; ALTERNA TIVE LOOKU P FUNCTION ALITY: CHF MSLK.INT (FMS DOC I D/CHECK NU M/CLM NUM) | |
345 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ; | |
346 | ; | |
347 | FMSTOPDI(C HFMS) | |
348 | ; CHFMS F MS DOC ID SEARCH VAL UE | |
349 | Q:'$D(^CH MEDI("B",C HFMS)) 0 ; NO XRE F TO RETRI EVE PDI | |
350 | N PDI,CLM PTR,IDX,JD X,CNT,PDIA RR | |
351 | S (IDX,JD X,CNT)=0,P DIARR="" | |
352 | F S IDX= $O(^CHMEDI ("B",CHFMS ,IDX)) Q:' IDX D ; FMS DOC IDS AR E UNIQUE | |
353 | .F S JDX =$O(^CHMED I(IDX,1,JD X)) Q:'JDX D | |
354 | ..S CLMPT R=$P(^CHME DI(IDX,1,J DX,0),"^", 1) ; GET THE POINTE R INTO ^CH MPAY() | |
355 | ..I CNT=0 S PDIARR =$P($P(^CH MPAY(CLMPT R,0),"^",4 ),"*",1) | |
356 | ..E S PD IARR=PDIAR R_","_$P($ P(^CHMPAY( CLMPTR,0), "^",4),"*" ,1) ; GET PDI VALUE S FOR FMS DOC ID | |
357 | ..S CNT=C NT+1 | |
358 | Q PDIARR | |
359 | ; | |
360 | ;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;; | |
361 | ; GIVEN T HE PATIENT CONTROL N UMBER (PCN ), RETRIEV E THE PDIs GENERATED FOR THAT | |
362 | ; PCN. TH IS FUNCTIO N USES THE UNDOCUMEN TED STORAG E: | |
363 | ; ^CHMXCL E("CLM-CTR L-NO",PCN, PDI,CHMXCL I,CHMXCLAI ,CHMXCLBI, CHMXCLCI,C HMXCLEI) | |
364 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ; | |
365 | ; | |
366 | PCNTOPDI(C HPCN,PCNAR R) | |
367 | ; CHPCN T HE PROVIDE R SUPPLIED CLAIM/PAT IENT IDENT IFIER | |
368 | ; PCNARR AN ARRAY T O CONTAIN THE POSSIB LE PDI VAL UES ASSOCI ATED WITH THE PCN | |
369 | N PDI,CHE I,CNT,RESU LT,PAYI,ST ATUS,DESC | |
370 | S RESULT= "" | |
371 | S (PDI,CN T)=0 | |
372 | Q:'$D(^CH MXCLE("CLM -CTRL-NO", CHPCN)) PD I ; QUIT IF NO ENT RY FOR PCN | |
373 | F S PDI= $O(^CHMXCL E("CLM-CTR L-NO",CHPC N,PDI)) Q: 'PDI D ; LOOP THRU ALL PDI E NTRIES | |
374 | .S IDXSTR =^CHMIMAGE (PDI,"BUFF ") ; CLAIM BUFFER IND EXES | |
375 | .S PCNARR (CNT)=PDI_ "^"_IDXSTR ; SET UP A LL THE BUF FER INDEXE S | |
376 | .S CNT=CN T+1 | |
377 | Q CNT | |
378 | ; | |
379 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;; | |
380 | ; DLB 12/ 5/2012 | |
381 | ; BALRPT SENDS AN E MAIL REPOR TING THE ^ CHMEDI()IN DEXES THAT FAIL | |
382 | ; TO GENE RATE 835 R ECORDS DUE TO BALANC E ERRORS. | |
383 | ; FORMAT OF THE BAL ANCE ERROR ARRAY: | |
384 | ; ^TMP($J ,"BALERR", CHPDI)=CHP DI_"^"_CLA IM_"^"_STA TUS_"^"_RE J INDEX_"^ "_REJCODE_ "^"_BILLED AMT_"^"_P ROV PMT_"^ "_TOTAL CL PCAS AMT_" ^"_TOTAL S VCCAS AMT | |
385 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;; | |
386 | ; | |
387 | BALRPT(INE I) ;Email B ALANCE ERR OR INDEXES TO OUTLOO K FROM ^TM P($J,"BALE RR",PDI) A RRAY | |
388 | N PID,ZML ,DATA,CHPD I,BERRCT,S UBJECT,TEX T,GROUP,CN T,Y,HACCLM ,LN,X,ULN | |
389 | S ULN="-" F X=2:1:1 65 S ULN=U LN_"-" ; LINE S EPARATOR, CREATE LIN E | |
390 | K ^UTILIT Y($J,"BAL- ERR") | |
391 | D NOW^%DT C ; EXTER NAL DATE/T IME | |
392 | S Y=% X ^ DD("DD") | |
393 | S (CNT,BE RRCT)=0 | |
394 | S CNT=CNT +1,^UTILIT Y($J,"BAL- ERR",1,CNT ,0)=" " | |
395 | S CNT=CNT +1,^UTILIT Y($J,"BAL- ERR",1,CNT ,0)=" BALANCE ER ROR REPORT ...835 RE CORDS NOT GENERATED! " | |
396 | S CNT=CNT +1,^UTILIT Y($J,"BAL- ERR",1,CNT ,0)=" PROCESS ID : "_$J_" PROCESS DA TE:TIME: " _Y ; EX TERNAL DAT E AND TIME | |
397 | S CNT=CNT +1,^UTILIT Y($J,"BAL- ERR",1,CNT ,0)=" CLAIM TYPE : "_$P(^CH MEDIPA(INE I,0),"^",1 ) ; CLAIM TYPE | |
398 | S CNT=CNT +1,^UTILIT Y($J,"BAL- ERR",1,CNT ,0)=" " | |
399 | S REC="" | |
400 | F LN=1:1 S STR=$T(H DRTBL+LN) Q:STR["END OF RECORD " D ; USE THE $TEXT "HDRTBL" TO CREATE REPORT HEA DER | |
401 | .S REC=RE C_$$FORMAT DATA^CHMXW BUT(STR) | |
402 | S CNT=CNT +1,^UTILIT Y($J,"BAL- ERR",1,CNT ,0)=REC ; RE CORD THE C LAIM (PDI) HEADER IN TO THE ARR AY | |
403 | S CNT=CNT +1,^UTILIT Y($J,"BAL- ERR",1,CNT ,0)=ULN ; US E SEPARATO R FOR READ ABILITY | |
404 | S CHPDI=" " | |
405 | F S CHPD I=$O(^TMP( $J,"BALERR ",CHPDI)) Q:+CHPDI=0 D | |
406 | .S DATA=$ G(^TMP($J, "BALERR",C HPDI)) | |
407 | .S REC="" | |
408 | .F LN=1:1 S STR=$T( BALTBL+LN) Q:STR["EN D OF RECOR D" D ; US E THE $TEX T "BALTBL" TO CREATE REPORT RE CORDS | |
409 | ..S REC=R EC_$$FORMA TDATA^CHMX WBUT(STR) | |
410 | .S CNT=CN T+1,^UTILI TY($J,"BAL -ERR",1,CN T,0)=REC | |
411 | .S BERRCT =BERRCT+1 ; COUNT # OF PDIs WITH BALANCE E RRORS | |
412 | .S HACCLM =0 | |
413 | .F IDX=1: 1 S HACCLM =$O(^TMP($ J,"BALERR" ,CHPDI,HAC CLM)) Q:HA CCLM="" D | |
414 | ..S SVCDA TA=^TMP($J ,"BALERR", CHPDI,HACC LM) | |
415 | ..I IDX=1 D ; CREATE HEA DER FOR TH E FIRST SV C LINE BAL ERR | |
416 | ...S REC= "" | |
417 | ...F LN=1 :1 S STR=$ T(SVCHDR+L N) Q:STR[" END OF REC ORD" D ; USE THE $T EXT "SVCHD R" TO CREA TE REPORT HEADER | |
418 | ....S REC =REC_$$FOR MATDATA^CH MXWBUT(STR ) | |
419 | ...S CNT= CNT+1,^UTI LITY($J,"B AL-ERR",1, CNT,0)=REC ; RE CORD THE S VC LINE (L ICTRL) REC ORD INTO A RRAY | |
420 | ...S CNT= CNT+1,^UTI LITY($J,"B AL-ERR",1, CNT,0)=ULN ; US E SEPARATO R FOR READ ABILITY | |
421 | ..S REC=" " | |
422 | ..F LN=1: 1 S STR=$T (SVCTBL+LN ) Q:STR["E ND OF RECO RD" D ; U SE THE $TE XT "SVCTBL " TO CREAT E SVC BAL ERR RECORD | |
423 | ...S REC= REC_$$FORM ATDATA^CHM XWBUT(STR) | |
424 | ..S CNT=C NT+1,^UTIL ITY($J,"BA L-ERR",1,C NT,0)=REC | |
425 | S CNT=CNT +1,^UTILIT Y($J,"BAL- ERR",1,CNT ,0)="TOTAL NUMBER OF BALANCE E RRORS: "_B ERRCT | |
426 | S SUBJECT ="CACHE 83 5 Balance Error Repo rt" | |
427 | S TEXT="^ UTILITY($J ,""BAL-ERR "",1," | |
428 | I $$ENVIR ^CHTFLIB() ="LIVE" D ; FOR LI VE ENVIRON MENT DO TH ESE EMAILS | |
429 | .S LXMY(" G.BST")="" ; MAILMAN GROUP EMAI L ADDRESS | |
430 | .S LXMY(" PII ")="" ; MICROSOF T GROUP EM AIL ADDRES SES | |
431 | .S LXMY("
|
|
432 | E D ; AL L OTHER EN VIRONMENTS GET THESE ADDRESSES | |
433 | .S LXMY(" G.EDI TECH GROUP")=" " ; MA ILMAN GROU P QA TEST EMAIL ADDR ESSES | |
434 | .S LXMY(" PII ")="" ; MI CROSOFT OU TLOOK EMAI L ADDRESS | |
435 | .S LXMY(4 33137)="", LXMY(46975 3)="" ; M AILMAN "DU Z" EMAIL A DDRESSES | |
436 | D VMAIL(S UBJECT,TEX T,.LXMY) | |
437 | Q | |
438 | ; | |
439 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;; | |
440 | ; SLT 8/2 1/2015 | |
441 | ; CARCRPT SENDS AN EMAIL REPO RTING THE ^CHMEDI()I NDEXES THA T FAIL | |
442 | ; TO GENE RATE 835 R ECORDS DUE TO CARC E RRORS. | |
443 | ; FORMAT OF THE CAR C ERROR AR RAY: | |
444 | ; ^TMP($J ,"CARCERR" ,CHPDI)=CH PDI_"^"_CL AIM_"^"_ST ATUS_"^"_C ARC_"^"_ST DT_"^"_EDD T_"^"_CARC ... | |
445 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;; | |
446 | ; | |
447 | CARCRPT(IN EI) ;Email CAR C ERROR IN DEXES TO O UTLOOK FRO M ^TMP($J, "CARCERR", PDI) ARRAY | |
448 | N PID,ZML ,DATA,CHPD I,BERRCT,S UBJECT,TEX T,GROUP,CN T,Y,HACCLM ,LN,X,ULN | |
449 | S ULN="-" F X=2:1:1 65 S ULN=U LN_"-" ; LINE S EPARATOR, CREATE LIN E | |
450 | K ^UTILIT Y($J,"CARC -ERR") | |
451 | D NOW^%DT C ; EXTER NAL DATE/T IME | |
452 | S Y=% X ^ DD("DD") | |
453 | S (CNT,BE RRCT)=0 | |
454 | S CNT=CNT +1,^UTILIT Y($J,"CARC -ERR",1,CN T,0)=" " | |
455 | S CNT=CNT +1,^UTILIT Y($J,"CARC -ERR",1,CN T,0)=" CARC ERRO R REPORT . ..835 RECO RDS NOT GE NERATED!" | |
456 | S CNT=CNT +1,^UTILIT Y($J,"CARC -ERR",1,CN T,0)=" PROCESS I D: "_$J_" PROCESS D ATE:TIME: "_Y ; E XTERNAL DA TE AND TIM E | |
457 | S CNT=CNT +1,^UTILIT Y($J,"CARC -ERR",1,CN T,0)=" CLAIM TYP E: "_$P(^C HMEDIPA(IN EI,0),"^", 1) ; CLAI M TYPE | |
458 | S CNT=CNT +1,^UTILIT Y($J,"CARC -ERR",1,CN T,0)=" " | |
459 | S REC="" | |
460 | F LN=1:1 S STR=$T(C HDRTBL+LN) Q:STR["EN D OF RECOR D" D ; US E THE $TEX T "CHDRTBL " TO CREAT E REPORT H EADER | |
461 | .S REC=RE C_$$FORMAT DATA^CHMXW BUT(STR) | |
462 | S CNT=CNT +1,^UTILIT Y($J,"CARC -ERR",1,CN T,0)=REC ; RE CORD THE C LAIM (PDI) HEADER IN TO THE ARR AY | |
463 | S CNT=CNT +1,^UTILIT Y($J,"CARC -ERR",1,CN T,0)=ULN ; US E SEPARATO R FOR READ ABILITY | |
464 | S CHPDI=" " | |
465 | F S CHPD I=$O(^TMP( $J,"CARCER R",CHPDI)) Q:+CHPDI= 0 D | |
466 | .S DATA=$ G(^TMP($J, "CARCERR", CHPDI)) | |
467 | .S REC="" | |
468 | .F LN=1:1 S STR=$T( CERRTBL+LN ) Q:STR["E ND OF RECO RD" D ; U SE THE $TE XT "CERRTB L" TO CREA TE REPORT RECORDS | |
469 | ..S REC=R EC_$$FORMA TDATA^CHMX WBUT(STR) | |
470 | .S CNT=CN T+1,^UTILI TY($J,"CAR C-ERR",1,C NT,0)=REC | |
471 | .S BERRCT =BERRCT+1 ; COUNT # OF PDIs WITH CARC ERRO RS | |
472 | .S HACCLM =0 | |
473 | .F IDX=1: 1 S HACCLM =$O(^TMP($ J,"CARCERR ",CHPDI,HA CCLM)) Q:H ACCLM="" D | |
474 | ..S SVCDA TA=^TMP($J ,"CARCERR" ,CHPDI,HAC CLM) | |
475 | ..I IDX=1 D ; CREATE HEA DER FOR TH E FIRST SV C LINE CAR C ERR | |
476 | ...S REC= "" | |
477 | ...F LN=1 :1 S STR=$ T(SVCCHDR+ LN) Q:STR[ "END OF RE CORD" D ; USE THE $ TEXT "SVCC HDR" TO CR EATE REPOR T HEADER | |
478 | ....S REC =REC_$$FOR MATDATA^CH MXWBUT(STR ) | |
479 | ...S CNT= CNT+1,^UTI LITY($J,"C ARC-ERR",1 ,CNT,0)=RE C ; RE CORD THE S VC LINE (L ICTRL) REC ORD INTO A RRAY | |
480 | ...S CNT= CNT+1,^UTI LITY($J,"C ARC-ERR",1 ,CNT,0)=UL N ; US E SEPARATO R FOR READ ABILITY | |
481 | ..S REC=" " | |
482 | ..F LN=1: 1 S STR=$T (SVCCTBL+L N) Q:STR[" END OF REC ORD" D ; USE THE $T EXT "SVCCT BL" TO CRE ATE SVC CA RC ERR REC ORD | |
483 | ...S REC= REC_$$FORM ATDATA^CHM XWBUT(STR) | |
484 | ..S CNT=C NT+1,^UTIL ITY($J,"CA RC-ERR",1, CNT,0)=REC | |
485 | S CNT=CNT +1,^UTILIT Y($J,"CARC -ERR",1,CN T,0)="TOTA L NUMBER O F CARC ERR ORS: "_BER RCT | |
486 | S SUBJECT ="CACHE 83 5 CARC Err or Report" | |
487 | S TEXT="^ UTILITY($J ,""CARC-ER R"",1," | |
488 | I $$ENVIR ^CHTFLIB() ="LIVE" D ; FOR LI VE ENVIRON MENT DO TH ESE EMAILS | |
489 | .S LXMY(" G.BST")="" ; MAILMAN GROUP EMAI L ADDRESS | |
490 | .S LXMY(" PII ")="" ; MICROSOF T GROUP EM AIL ADDRES SES | |
491 | .S LXMY("
|
|
492 | E D ; AL L OTHER EN VIRONMENTS GET THESE ADDRESSES | |
493 | .S LXMY(" G.EDI TECH GROUP")=" " ; MA ILMAN GROU P QA TEST EMAIL ADDR ESSES | |
494 | .S LXMY(" PII ")="" ; MI CROSOFT OU TLOOK EMAI L ADDRESS | |
495 | .S LXMY(4 33137)="", LXMY(46975 3)="" ; M AILMAN "DU Z" EMAIL A DDRESSES | |
496 | D VMAIL(S UBJECT,TEX T,.LXMY) | |
497 | Q | |
498 | ; | |
499 | RARCRPT(IN EI) ;Email RAR C ERROR IN DEXES TO O UTLOOK FRO M ^TMP($J, "RARCERR", PDI) ARRAY | |
500 | ; | |
501 | N PID,ZML ,DATA,CHPD I,BERRCT,S UBJECT,TEX T,GROUP,CN T,Y,HACCLM ,LN,X,ULN | |
502 | S ULN="-" F X=2:1:1 65 S ULN=U LN_"-" ; LINE S EPARATOR, CREATE LIN E | |
503 | K ^UTILIT Y($J,"RARC -ERR") | |
504 | D NOW^%DT C ; EXTER NAL DATE/T IME | |
505 | S Y=% X ^ DD("DD") | |
506 | S (CNT,BE RRCT)=0 | |
507 | S CNT=CNT +1,^UTILIT Y($J,"RARC -ERR",1,CN T,0)=" " | |
508 | S CNT=CNT +1,^UTILIT Y($J,"RARC -ERR",1,CN T,0)=" RARC ERRO R REPORT . ..835 RECO RDS NOT GE NERATED!" | |
509 | S CNT=CNT +1,^UTILIT Y($J,"RARC -ERR",1,CN T,0)=" PROCESS I D: "_$J_" PROCESS D ATE:TIME: "_Y ; E XTERNAL DA TE AND TIM E | |
510 | S CNT=CNT +1,^UTILIT Y($J,"RARC -ERR",1,CN T,0)=" CLAIM TYP E: "_$P(^C HMEDIPA(IN EI,0),"^", 1) ; CLAI M TYPE | |
511 | S CNT=CNT +1,^UTILIT Y($J,"RARC -ERR",1,CN T,0)=" " | |
512 | S REC="" | |
513 | F LN=1:1 S STR=$T(R HDRTBL+LN) Q:STR["EN D OF RECOR D" D ; US E THE $TEX T "RHDRTBL " TO CREAT E REPORT H EADER | |
514 | .S REC=RE C_$$FORMAT DATA^CHMXW BUT(STR) | |
515 | S CNT=CNT +1,^UTILIT Y($J,"RARC -ERR",1,CN T,0)=REC ; RE CORD THE C LAIM (PDI) HEADER IN TO THE ARR AY | |
516 | S CNT=CNT +1,^UTILIT Y($J,"RARC -ERR",1,CN T,0)=ULN ; US E SEPARATO R FOR READ ABILITY | |
517 | S CHPDI=" " | |
518 | F S CHPD I=$O(^TMP( $J,"RARCER R",CHPDI)) Q:+CHPDI= 0 D | |
519 | .S HACCLM =0,BERRCT= 0 | |
520 | .F IDX=1: 1 S HACCLM =$O(^TMP($ J,"RARCERR ",CHPDI,HA CCLM)) Q:H ACCLM="" D | |
521 | ..S SVCDA TA=^TMP($J ,"RARCERR" ,CHPDI,HAC CLM) | |
522 | ..S REC=" ",BERRCT=B ERRCT+1 | |
523 | ..F LN=1: 1 S STR=$T (SVCRTBL+L N) Q:STR[" END OF REC ORD" D ; USE THE $T EXT "SVCRT BL" TO CRE ATE SVC RA RC ERR REC ORD | |
524 | ...S REC= REC_$$FORM ATDATA^CHM XWBUT(STR) | |
525 | ..S CNT=C NT+1,^UTIL ITY($J,"RA RC-ERR",1, CNT,0)=REC | |
526 | S CNT=CNT +1,^UTILIT Y($J,"RARC -ERR",1,CN T,0)="TOTA L NUMBER O F RARC ERR ORS: "_BER RCT | |
527 | S SUBJECT ="CACHE 83 5 RARC Err or Report" | |
528 | S TEXT="^ UTILITY($J ,""RARC-ER R"",1," | |
529 | I $$ENVIR ^CHTFLIB() ="LIVE" D ; FOR LI VE ENVIRON MENT DO TH ESE EMAILS | |
530 | .S LXMY(" G.BST")="" ; MAILMAN GROUP EMAI L ADDRESS | |
531 | .S LXMY(" PII ")="" ; MICROSOF T GROUP EM AIL ADDRES SES | |
532 | .S LXMY("
|
|
533 | E D ; AL L OTHER EN VIRONMENTS GET THESE ADDRESSES | |
534 | .S LXMY(" G.EDI TECH GROUP")=" " ; MA ILMAN GROU P QA TEST EMAIL ADDR ESSES | |
535 | .S LXMY(" PII ")="" ; MI CROSOFT OU TLOOK EMAI L ADDRESS | |
536 | .S LXMY(4 33137)="", LXMY(46975 3)="" ; M AILMAN "DU Z" EMAIL A DDRESSES | |
537 | D VMAIL(S UBJECT,TEX T,.LXMY) | |
538 | Q | |
539 | ; | |
540 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ; | |
541 | ; EMAIL U TILITIES S END THE RE VERSAL INF ORMATION T O THE GROU PS DEFINED . THIS REP LACES | |
542 | ; INDIVID UAL EMAIL ADDRESES T HAT REQUIR E OUTLOOK CONNECTION S | |
543 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ; | |
544 | ; | |
545 | VMAIL(SUBJ ECT,TEXT,L XMY) | |
546 | ; SUBJEC T SUBJECT LINE FOR THE EMAIL | |
547 | ; TEXT TEXT FOR T HE EMAIL | |
548 | ; LXMY TARGETED R ECIPIENTS FOR THE EM AIL (S LXM Y="DUZ" (M AILMAN),LX MY=" PII " (MAILMAN ),LXMY("
|
|
549 | N EMLID | |
550 | S U="^" | |
551 | S DUZ=.5 ; DEFA ULT DUZ | |
552 | S XMDUZ=. 5 ; POST MAN DUZ | |
553 | S XMSUB=S UBJECT ; SE T SUBJECT LINE FOR E MAIL | |
554 | S XMTEXT= TEXT ; SET TEXT ARRAY FOR BODY OF EMAIL | |
555 | S EMLID=0 | |
556 | F S EMLI D=$O(LXMY( EMLID)) Q: EMLID="" D | |
557 | .S XMY($S (EMLID?1.N :$P(^VA(20 0,EMLID,0) ,"^",1),1: EMLID))="" | |
558 | D ^XMD ; SEND I T OFF | |
559 | Q | |
560 | ; | |
561 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ; | |
562 | ; HEADER LINE FOR B ALANCE ERR OR REPORTI NG | |
563 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ; | |
564 | ; | |
565 | HDRTBL ;;" FIELD NAME ";"TARGET VALUE";"MI N FIELD LE NGTH";"JUS TIFY FLAG" ;"PAD CHAR ";"DATA PA TTERN";FIE LD USE | |
566 | ;;1. PDI; "PDI";17;C ; ;3A;R; | |
567 | ;;2. HACC LM;"HAC CL M #";12;L; ;7AN;R; | |
568 | ;;3. STAT US;"STATUS ";8;C; ;2N ;R; | |
569 | ;;4. REJ INDEX;"REJ I";6;C; ;3 N;O; | |
570 | ;;5. REJ CODE;"REJC D";7;C; ;3 N;O; | |
571 | ;;6. BILL ED AMT;"BI LL AMT";12 ;R; ;10.2F P;R; | |
572 | ;;7. PROV IDER PMT;" PROV PMT"; 12;R; ;8.2 FP;R; | |
573 | ;;8. CLPC AS AMT;"CL PCAS AMT"; 12;R; ;8.2 FP;R; | |
574 | ;;9. SVCC AS AMT;"SV CCAS AMT"; 12;R; ;8.2 FP;R; | |
575 | ;;10. BAL ERR;"BAL ERR";12;R; ;8.2FP;R | |
576 | ;;11. BAL ERR DATE; "DATE";16; R; ;10AN;R | |
577 | ;;12. PAY MENTS;"CHK VS SUM";1 5;R; ;15AN ;R | |
578 | ;;13. CHE CKS;"CHECK #s";20;R; ;20AN;R | |
579 | ;;END OF RECORD | |
580 | ; | |
581 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ; | |
582 | ; TABLE F OR CREATIO N OF THE B ALANCE ERR OR RECORDS | |
583 | ; DATA FI ELDS: CHPD I_"^"_CLAI M_"^"_STAT US_"^"_REJ INDEX_"^" _REJCODE_" ^"_BILLED AMT_"^"_PR OV PMT_"^" _TOTAL CLP CAS AMT_"^ "_TOTAL SV CCAS AMT_" ^"_BAL ERR AMT_"^"_B AL ERR DAT E | |
584 | ; INDEXES ,PDI, AND HAC CLAIM NUMBER ARE LEFT JUST IFIED IN T HE FIELD, MONETARY A MOUNTS RIG HT JUSTIFI ED | |
585 | ; THE REJ ECT INDEX AND REJECT CODE VALU ES ARE ONL Y VALID FO R REJECTED CLAIMS (S TATUS=0) | |
586 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ; | |
587 | ; | |
588 | BALTBL ;;" FIELD NAME ";"TARGET VALUE";"MI N FIELD LE NGTH";"JUS TIFY FLAG" ;"PAD CHAR ";"DATA PA TTERN";FIE LD USE | |
589 | ;;1. PDI; $P(DATA,"^ ",1);17;L; ;17N;R; | |
590 | ;;2. HACC LM;$P(DATA ,"^",2);12 ;L; ;10AN; R; | |
591 | ;;3. STAT US;$P(DATA ,"^",3);8; C; ;1N;R; | |
592 | ;;4. REJI DX;$P(DATA ,"^",4);6; C; ;3N;O; | |
593 | ;;5. REJC D;$P(DATA, "^",5);7;C ; ;3N;O; | |
594 | ;;6. BILL AMT;$P(DA TA,"^",6); 12;R; ;10. 2FP;R; | |
595 | ;;7. PROV PMT;$P(DA TA,"^",7); 12;R; ;8.2 FP;R; | |
596 | ;;8. CLPC AS;$P(DATA ,"^",8);12 ;R; ;8.2FP ;R; | |
597 | ;;9. SVCC AS;$P(DATA ,"^",9);12 ;R; ;8.2FP ;R; | |
598 | ;;10.BAL ERR;($P(DA TA,"^",6)- $P(DATA,"^ ",7)-$P(DA TA,"^",8)- $P(DATA,"^ ",9));12;R ; ;8.2FP;R | |
599 | ;;11.BAL ERR DATE;$ $FMEXT^CH8 35DRV($P(D ATA,"^",11 ));16;R; ; 10AN;R; | |
600 | ;;12.PAYM ENTS;$P(DA TA,"^",12) ;15;R; ;15 AN;R | |
601 | ;;13.CHEC KS;$P(DATA ,"^",13);2 0;R; ;20AN ;R | |
602 | ;;END OF RECORD | |
603 | ; | |
604 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ; | |
605 | ; TABLES FOR CREATI NG SVC LIN E BALANCE ERROR HEAD ER FOR REP ORTING | |
606 | ; CHPDI_" ^"_HACCLM_ "^"_LICTRL _"^"_SVCBA L_"^"_BILL AMT_"^"_PR OV PMT AMT _"^"_SVCCA S | |
607 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ; | |
608 | ; | |
609 | SVCHDR ;; "FIELD NAM E";"TARGET VALUE";"M IN FIELD L ENGTH";"JU STIFY FLAG ";"PAD CHA R";"DATA P ATTERN";FI ELD USE | |
610 | ;;0. TAB; " ";5;L; ; 5A;R; | |
611 | ;;1. PDI; "PDI";17;C ; ;17N;R; | |
612 | ;;2. HACC LM;"HAC CL M #";12;L; ;10AN;R; | |
613 | ;;3. LICT RL;"LICTRL ";20;C; ;2 0AN;R; | |
614 | ;;4. BILL AMT;"BILL AMT";12;R ; ;12A;R; | |
615 | ;;5. PROV PMT AMT;" PROV PMT"; 12;R; ;12A ;R; | |
616 | ;;6. SVCC AS AMT;"SV C ADJ AMT" ;12;R; ;12 A;R; | |
617 | ;;7. BAL ERR AMT;"B AL ERR";12 ;R; ;12A;R ; | |
618 | ;;END OF RECORD | |
619 | ; | |
620 | SVCTBL ;;" FIELD NAME ";"TARGET VALUE";"MI N FIELD LE NGTH";"JUS TIFY FLAG" ;"PAD CHAR ";"DATA PA TTERN";FIE LD USE | |
621 | ;;0. TAB; " ";5;L; ; 5A;R; | |
622 | ;;1. PDI; $P(SVCDATA ,"^",1);17 ;L; ;17N;R ; | |
623 | ;;2. HACC LM;$P(SVCD ATA,"^",2) ;12;L; ;10 AN;R; | |
624 | ;;3. LICT RL;$P(SVCD ATA,"^",3) ;20;C; ;1N ;R; | |
625 | ;;4. BILL AMT;$P(SV CDATA,"^", 5);12;R; ; 10.2FP;R; | |
626 | ;;5. PROV PMT AMT;$ P(SVCDATA, "^",6);12; R; ;10.2FP ;R; | |
627 | ;;6. SVCC AS AMT;$P( SVCDATA,"^ ",7);12;R; ;10.2FP;R ; | |
628 | ;;7. BAL ERR AMT;$P (SVCDATA," ^",4);12;R ; ;10.2FP; R; | |
629 | ;;END OF RECORD | |
630 | ; | |
631 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ; | |
632 | ; CREATE A FILE THA T CONTAINS ALL THE B ALANCE ERR OR CLAIM I NFORMATION | |
633 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ; | |
634 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ; | |
635 | ; | |
636 | CHDRTBL ;; "FIELD NAM E";"TARGET VALUE";"M IN FIELD L ENGTH";"JU STIFY FLAG ";"PAD CHA R";"DATA P ATTERN";FI ELD USE | |
637 | ;;1. PDI; "PDI";17;L ; ;3A;R; | |
638 | ;;2. HACC LM;"HAC CL M #";12;L; ;7AN;R; | |
639 | ;;3. STAT US;"STATUS ";8;L; ;2N ;R; | |
640 | ;;4. CARC 1;"CARC";7 ;L; ;5AN;R ; | |
641 | ;;5. STDT 1;"START D T";16;L; ; 10AN;R; | |
642 | ;;6. EDDT 1;"END DT" ;16;L; ;10 AN;R; | |
643 | ;;7. CARC 2;"CARC";7 ;L; ;5AN;O ; | |
644 | ;;8. STDT 2;"START D T";16;L; ; 10AN;O; | |
645 | ;;9. EDDT 2;"END DT" ;16;L; ;10 AN;O; | |
646 | ;;10. CAR C3;"CARC"; 7;L; ;5AN; O; | |
647 | ;;11. STD T3;"START DT";16;L; ;10AN;O; | |
648 | ;;12. EDD T3;"END DT ";16;L; ;1 0AN;O; | |
649 | ;;13. CAR C4;"CARC"; 7;L; ;5AN; O; | |
650 | ;;14. STD T4;"START DT";16;L; ;10AN;O; | |
651 | ;;15. EDD T4;"END DT ";16;L; ;1 0AN;O; | |
652 | ;;16. CAR C5;"CARC"; 7;L; ;5AN; O; | |
653 | ;;17. STD T5;"START DT";16;L; ;10AN;O; | |
654 | ;;18. EDD T5;"END DT ";16;L; ;1 0AN;O; | |
655 | ;;19. CAR C6;"CARC"; 7;L; ;5AN; O; | |
656 | ;;20. STD T6;"START DT";16;L; ;10AN;O; | |
657 | ;;21. EDD T6;"END DT ";16;L; ;1 0AN;O; | |
658 | ;;END OF RECORD | |
659 | ; | |
660 | CERRTBL ;; "FIELD NAM E";"TARGET VALUE";"M IN FIELD L ENGTH";"JU STIFY FLAG ";"PAD CHA R";"DATA P ATTERN";FI ELD USE | |
661 | ;;1. PDI; $P(DATA,"^ ",1);17;L; ;17N;R; | |
662 | ;;2. HACC LM;$P(DATA ,"^",2);12 ;L; ;10AN; R; | |
663 | ;;3. STAT US;$P(DATA ,"^",3);8; L; ;1N;R; | |
664 | ;;4. CARC 1;$P(DATA, "^",4);7;L ; ;5AN;R; | |
665 | ;;5. STDT 1;$P(DATA, "^",5);16; L; ;10AN;R ; | |
666 | ;;6. EDDT 1;$P(DATA, "^",6);16; L; ;10AN;R ; | |
667 | ;;7. CARC 2;$P(DATA, "^",7);7;L ; ;5AN;O; | |
668 | ;;8. STDT 2;$P(DATA, "^",8);16; L; ;10AN;O ; | |
669 | ;;9. EDDT 2;$P(DATA, "^",9);16; L; ;10AN;O ; | |
670 | ;;10. CAR C3;$P(DATA ,"^",10);7 ;L; ;5AN;O ; | |
671 | ;;11. STD T3;$P(DATA ,"^",11);1 6;L; ;10AN ;O; | |
672 | ;;12. EDD T3;$P(DATA ,"^",12);1 6;L; ;10AN ;O; | |
673 | ;;13. CAR C4;$P(DATA ,"^",13);7 ;L; ;5AN;O ; | |
674 | ;;14. STD T4;$P(DATA ,"^",14);1 6;L; ;10AN ;O; | |
675 | ;;15. EDD T4;$P(DATA ,"^",15);1 6;L; ;10AN ;O; | |
676 | ;;16. CAR C5;$P(DATA ,"^",16);7 ;L; ;5AN;O ; | |
677 | ;;17. STD T5;$P(DATA ,"^",17);1 6;L; ;10AN ;O; | |
678 | ;;18. EDD T5;$P(DATA ,"^",18);1 6;L; ;10AN ;O; | |
679 | ;;19. CAR C6;$P(DATA ,"^",19);7 ;L; ;5AN;O ; | |
680 | ;;20. STD T6;$P(DATA ,"^",20);1 6;L; ;10AN ;O; | |
681 | ;;21. EDD T6;$P(DATA ,"^",21);1 6;L; ;10AN ;O; | |
682 | ;;END OF RECORD | |
683 | ; | |
684 | RHDRTBL ;; "FIELD NAM E";"TARGET VALUE";"M IN FIELD L ENGTH";"JU STIFY FLAG ";"PAD CHA R";"DATA P ATTERN";FI ELD USE | |
685 | ;;1. PDI; "PDI";17;L ; ;3A;R; | |
686 | ;;2. CLAI M;"CLAIM # ";12;L; ;7 AN;R; | |
687 | ;;3. STAT US;"STATUS ";8;L; ;2N ;R; | |
688 | ;;4. RARC ;"RARC";7; L; ;5AN;R; | |
689 | ;;5. STDT ;"START DT ";16;L; ;1 0AN;R; | |
690 | ;;6. EDDT ;"END DT"; 16;L; ;10A N;R; | |
691 | ;;END OF RECORD | |
692 | ; | |
693 | SVCCHDR ; ;"FIELD NA ME";"TARGE T VALUE";" MIN FIELD LENGTH";"J USTIFY FLA G";"PAD CH AR";"DATA PATTERN";F IELD USE | |
694 | ;;0. TAB; " ";5;L; ; 5A;R; | |
695 | ;;1. PDI; "PDI";17;L ; ;17N;R; | |
696 | ;;2. HACC LM;"HAC CL M #";12;L; ;10AN;R; | |
697 | ;;3. CARC 1;"CARC";7 ;L; ;5AN;R ; | |
698 | ;;4. STDT 1;"START D T";16;L; ; 10AN;R; | |
699 | ;;5. EDDT 1;"END DT" ;16;L; ;10 AN;R; | |
700 | ;;6. CARC 2;"CARC";7 ;L; ;5AN;O ; | |
701 | ;;7. STDT 2;"START D T";16;L; ; 10AN;O; | |
702 | ;;8. EDDT 2;"END DT" ;16;L; ;10 AN;O; | |
703 | ;;9. CARC 3;"CARC";7 ;L; ;5AN;O ; | |
704 | ;;10. STD T3;"START DT";16;L; ;10AN;O; | |
705 | ;;11. EDD T3;"END DT ";16;L; ;1 0AN;O; | |
706 | ;;12. CAR C4;"CARC"; 7;L; ;5AN; O; | |
707 | ;;13. STD T4;"START DT";16;L; ;10AN;O; | |
708 | ;;14. EDD T4;"END DT ";16;L; ;1 0AN;O; | |
709 | ;;15. CAR C5;"CARC"; 7;L; ;5AN; O; | |
710 | ;;16. STD T5;"START DT";16;L; ;10AN;O; | |
711 | ;;17. EDD T5;"END DT ";16;L; ;1 0AN;O; | |
712 | ;;18. CAR C6;"CARC"; 7;L; ;5AN; O; | |
713 | ;;19. STD T6;"START DT";16;L; ;10AN;O; | |
714 | ;;20. EDD T6;"END DT ";16;L; ;1 0AN;O; | |
715 | ;;END OF RECORD | |
716 | ; | |
717 | SVCCTBL ;; "FIELD NAM E";"TARGET VALUE";"M IN FIELD L ENGTH";"JU STIFY FLAG ";"PAD CHA R";"DATA P ATTERN";FI ELD USE | |
718 | ;;0. TAB; " ";5;L; ; 5A;R; | |
719 | ;;1. PDI; $P(SVCDATA ,"^",1);17 ;L; ;17N;R ; | |
720 | ;;2. HACC LM;$P(SVCD ATA,"^",2) ;12;L; ;10 AN;R; | |
721 | ;;3. CARC 1;$P(SVCDA TA,"^",3); 7;L; ;5AN; R; | |
722 | ;;4. STDT 1;$P(SVCDA TA,"^",4); 16;L; ;10A N;R; | |
723 | ;;5. EDDT 1;$P(SVCDA TA,"^",5); 16;L; ;10A N;R; | |
724 | ;;6. CARC 2;$P(SVCDA TA,"^",6); 7;L; ;5AN; O; | |
725 | ;;7. STDT 2;$P(SVCDA TA,"^",7); 16;L; ;10A N;O; | |
726 | ;;8. EDDT 2;$P(SVCDA TA,"^",8); 16;L; ;10A N;O; | |
727 | ;;9. CARC 3;$P(SVCDA TA,"^",9); 7;L; ;5AN; O; | |
728 | ;;10. STD T3;$P(SVCD ATA,"^",10 );16;L; ;1 0AN;O; | |
729 | ;;11. EDD T3;$P(SVCD ATA,"^",11 );16;L; ;1 0AN;O; | |
730 | ;;12. CAR C4;$P(SVCD ATA,"^",12 );7;L; ;5A N;O; | |
731 | ;;13. STD T4;$P(SVCD ATA,"^",13 );16;L; ;1 0AN;O; | |
732 | ;;14. EDD T4;$P(SVCD ATA,"^",14 );16;L; ;1 0AN;O; | |
733 | ;;15. CAR C5;$P(SVCD ATA,"^",15 );7;L; ;5A N;O; | |
734 | ;;16. STD T5;$P(SVCD ATA,"^",16 );16;L; ;1 0AN;O; | |
735 | ;;17. EDD T5;$P(SVCD ATA,"^",17 );16;L; ;1 0AN;O; | |
736 | ;;18. CAR C6;$P(SVCD ATA,"^",18 );7;L; ;5A N;O; | |
737 | ;;19. STD T6;$P(SVCD ATA,"^",19 );16;L; ;1 0AN;O; | |
738 | ;;20. EDD T6;$P(SVCD ATA,"^",20 );16;L; ;1 0AN;O; | |
739 | ;;END OF RECORD | |
740 | ; | |
741 | SVCRTBL ;; "FIELD NAM E";"TARGET VALUE";"M IN FIELD L ENGTH";"JU STIFY FLAG ";"PAD CHA R";"DATA P ATTERN";FI ELD USE | |
742 | ;;1. PDI; $P(SVCDATA ,"^",1);17 ;L; ;17N;R ; | |
743 | ;;2. HACC LM;$P(SVCD ATA,"^",2) ;12;L; ;10 AN;R; | |
744 | ;;3. RARC ;$P(SVCDAT A,"^",3);7 ;L; ;5AN;R ; | |
745 | ;;4. STDT ;$P(SVCDAT A,"^",4);1 6;L; ;10AN ;R; | |
746 | ;;5. EDDT ;$P(SVCDAT A,"^",5);1 6;L; ;10AN ;R; | |
747 | ;;END OF RECORD | |
748 | ; | |
749 | DMP835ERR( FILEI) | |
750 | N ENV,TMP IO,LOGFILE ,ICNT,JCNT ,HACCLM,PR OCID,ULN | |
751 | S ENV=$$E NVIR^CHTFL IB() | |
752 | Q:ENV["LI VE" ; CHECK THE CURREN T WORKING ENVIRONMEN T | |
753 | N TMPIO,C HPDI | |
754 | S TMPIO=$ IO ; SAVE T HE CURRENT IO VARIAB LE | |
755 | S PROCID= $J ; ALLOW ASSIGNMENT TO OTHER PROCESS ID S | |
756 | S ULN="-" F X=2:1:1 65 S ULN=U LN_"-" ; LINE S EPARATOR, CREATE LIN E | |
757 | S X=132 X ^%ZOSF("R M") ; SET THE CACHE DISPLAY TO 132 CHARA CTERS | |
758 | S LOGFILE ="HAC_HFS$ :[X12OCR.I N]LOG_835E RR_"_FILEI _".TXT" ; TARGET OU TPUT DIR/F ILENAME | |
759 | ;SBB; DEF 016554-12/ 24/13 - Ge tting UCI for differ ent areas. | |
760 | X ^%ZOSF( "UCI") S U CI=$P(Y,", ",1) | |
761 | I UCI'="H AC" S LOGF ILE="HAC_H FS$:[X12OC R.IN]LOG_8 35ERR_"_FI LEI_".TXT" ;"CHAMPVA_ USER:[ D NS ]LOG_835ER R_"_FILEI_ ".TXT" | |
762 | ;W !,"CRE ATING ",LO GFILE | |
763 | ;SBB; DEF 016554-11/ 22/13 - Mo dified Wri ting to a file as pe r VHA stan dard. | |
764 | ;O LOGFIL E:"NWS":5 ; OPEN THE DEBUG OUTPUT ER ROR FILE | |
765 | I '$$OPEN FIWR^CHTFL IB9(.LOGFI LE,"LOGFIL E") Q | |
766 | W !,"CREA TING ",LOG FILE | |
767 | D NOW^%DT C ; EXTERN AL DATE/TI ME | |
768 | S Y=% X ^ DD("DD") | |
769 | U LOGFILE W !,?20," CACHE 835 STAGING FI LE BALANCE ERRORS" | |
770 | U LOGFILE W !,"PRO CESS ID= " ,PROCID," PROCESS D ATE:TIME: "_Y ; R ECORD THE PROCESS ID & EXTERNA L DATE AND TIME | |
771 | I $D(DUZ) U LOGFILE W !," U SER ID (DU Z)= ",DUZ, ": ",$P(^V A(200,DUZ, 0),"^",1) ; IDENTIF Y THE USER BY "DUZ" | |
772 | S CHPDI=0 ,ICNT=0 | |
773 | F ICNT=1: 1 S CHPDI= $O(^TMP(PR OCID,"NOEF T",CHPDI)) Q:+CHPDI= 0 D | |
774 | .W !,"^TM P(",$J,",N OEFT,",CHP DI,")= ",^ TMP(PROCID ,"NOEFT",C HPDI) | |
775 | S CHPDI=0 ,ICNT=0,JC NT=0 | |
776 | F ICNT=1: 1 S CHPDI= $O(^TMP(PR OCID,"BALE RR",CHPDI) ) Q:+CHPDI =0 D | |
777 | .S DATA=$ G(^TMP(PRO CID,"BALER R",CHPDI)) | |
778 | .W !!,"CL AIM"_ULN | |
779 | .S REC="" | |
780 | .F LN=1:1 S STR=$T( HDRTBL+LN) Q:STR["EN D OF RECOR D" D ; US E THE $TEX T "HDRTBL" TO CREATE REPORT HE ADER | |
781 | ..S REC=R EC_$$FORMA TDATA^CHMX WBUT(STR) | |
782 | .W !,REC, !,ULN | |
783 | .S REC="" | |
784 | .F LN=1:1 S STR=$T( BALTBL+LN) Q:STR["EN D OF RECOR D" D ; US E THE $TEX T "BALTBL" TO CREATE REPORT RE CORDS | |
785 | ..S REC=R EC_$$FORMA TDATA^CHMX WBUT(STR) | |
786 | .W !,REC | |
787 | .S HACCLM =0 | |
788 | .F IDX=1: 1 S HACCLM =$O(^TMP(P ROCID,"BAL ERR",CHPDI ,HACCLM)) Q:HACCLM= "" D | |
789 | ..S SVCDA TA=^TMP(PR OCID,"BALE RR",CHPDI, HACCLM) | |
790 | ..I IDX=1 D | |
791 | ...W !!," SVC LINE"_ ULN ; CREATE H EADER FOR THE FIRST SVC LINE B AL ERR | |
792 | ...S REC= "" | |
793 | ...F LN=1 :1 S STR=$ T(SVCHDR+L N) Q:STR[" END OF REC ORD" D ; USE THE $T EXT "SVCHD R" TO CREA TE REPORT HEADER | |
794 | ....S REC =REC_$$FOR MATDATA^CH MXWBUT(STR ) | |
795 | ...W !,RE C,!,ULN | |
796 | ..S REC=" " | |
797 | ..F LN=1: 1 S STR=$T (SVCTBL+LN ) Q:STR["E ND OF RECO RD" D ; U SE THE $TE XT "SVCTBL " TO CREAT E SVC BAL ERR RECORD | |
798 | ...S REC= REC_$$FORM ATDATA^CHM XWBUT(STR) | |
799 | ..W !,REC ,!,ULN | |
800 | ; | |
801 | ; CARCERR code here | |
802 | S CHPDI=0 | |
803 | F ICNT=1: 1 S CHPDI= $O(^TMP(PR OCID,"CARC ERR",CHPDI )) Q:+CHPD I=0 D | |
804 | .S DATA=$ G(^TMP(PRO CID,"CARCE RR",CHPDI) ) | |
805 | .W !!,"CL AIM"_ULN | |
806 | .S REC="" | |
807 | .F LN=1:1 S STR=$T( CHDRTBL+LN ) Q:STR["E ND OF RECO RD" D ; U SE THE $TE XT "CHDRTB L" TO CREA TE REPORT HEADER | |
808 | ..S REC=R EC_$$FORMA TDATA^CHMX WBUT(STR) | |
809 | .W !,REC, !,ULN | |
810 | .S REC="" | |
811 | .F LN=1:1 S STR=$T( CERRTBL+LN ) Q:STR["E ND OF RECO RD" D ; U SE THE $TE XT "CERRTB L" TO CREA TE REPORT RECORDS | |
812 | ..S REC=R EC_$$FORMA TDATA^CHMX WBUT(STR) | |
813 | .W !,REC | |
814 | .S HACCLM =0 | |
815 | .F IDX=1: 1 S HACCLM =$O(^TMP(P ROCID,"CAR CERR",CHPD I,HACCLM)) Q:HACCLM ="" D | |
816 | ..S SVCDA TA=^TMP(PR OCID,"CARC ERR",CHPDI ,HACCLM) | |
817 | ..I IDX=1 D | |
818 | ...W !!," SVC LINE"_ ULN ; CREATE H EADER FOR THE FIRST SVC LINE C ARC ERR | |
819 | ...S REC= "" | |
820 | ...F LN=1 :1 S STR=$ T(SVCCHDR+ LN) Q:STR[ "END OF RE CORD" D ; USE THE $ TEXT "SVCC HDR" TO CR EATE REPOR T HEADER | |
821 | ....S REC =REC_$$FOR MATDATA^CH MXWBUT(STR ) | |
822 | ...W !,RE C,!,ULN | |
823 | ..S REC=" " | |
824 | ..F LN=1: 1 S STR=$T (SVCCTBL+L N) Q:STR[" END OF REC ORD" D ; USE THE $T EXT "SVCCT BL" TO CRE ATE SVC CA RC ERR REC ORD | |
825 | ...S REC= REC_$$FORM ATDATA^CHM XWBUT(STR) | |
826 | ..W !,REC ,!,ULN | |
827 | ; end CAR CERR code | |
828 | ; | |
829 | ;RARCERR codes | |
830 | S CHPDI=" " | |
831 | F S CHPD I=$O(^TMP( $J,"RARCER R",CHPDI)) Q:+CHPDI= 0 D | |
832 | .S HACCLM =0,BERRCT= 0 | |
833 | .F IDX=1: 1 S HACCLM =$O(^TMP($ J,"RARCERR ",CHPDI,HA CCLM)) Q:H ACCLM="" D | |
834 | ..S SVCDA TA=^TMP($J ,"RARCERR" ,CHPDI,HAC CLM) | |
835 | ..I IDX=1 D | |
836 | ...W !!," SVC LINE"_ ULN ; CREATE H EADER FOR THE FIRST SVC LINE R ARC ERR | |
837 | ...S REC= "" | |
838 | ...F LN=1 :1 S STR=$ T(RHDRTBL+ LN) Q:STR[ "END OF RE CORD" D ; USE THE $ TEXT "RHDR TBL" TO CR EATE REPOR T HEADER | |
839 | ....S REC =REC_$$FOR MATDATA^CH MXWBUT(STR ) | |
840 | ...W !,RE C,!,ULN | |
841 | ..S REC=" " | |
842 | ..F LN=1: 1 S STR=$T (SVCRTBL+L N) Q:STR[" END OF REC ORD" D ; USE THE $T EXT "SVCRT BL" TO CRE ATE SVC RA RC ERR REC ORD | |
843 | ...S REC= REC_$$FORM ATDATA^CHM XWBUT(STR) | |
844 | ..W !,REC ,!,ULN | |
845 | ;end RARC ERR codes | |
846 | ; | |
847 | U TMPIO ; RESTORE TO THE ORI GINAL IO | |
848 | ;DEF01655 4-11/22/13 -SBB use C LOSE^%ZISH to close file | |
849 | ;C LOGFIL E | |
850 | D CLOSEF^ CHTFLIB9(L OGFILE,"LO GFILE") | |
851 | Q | |
852 | ; | |
853 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ; | |
854 | ; THE FOL LOWING FUN CTIONS ARE USED TO C ONTROL THE STATUS VA LUES IN ^C HMEDI(). | |
855 | ; IF THE STATUS IS NO 0, THE 835 RECORD WILL NOT BE GENERAT ED. THE VA LUE IS | |
856 | ; SET TO 5 SO THAT IT WILL BE POSSIBLE TO "RESET" THE STATU S VALUES A FFECTED | |
857 | ; TO 0, R ESTORING T HE ENVIRON MENT AFTER TESTING. | |
858 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ; | |
859 | ; | |
860 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ; | |
861 | ; UNLOAD FUNCTION C LEARS ALL "NEED SENT " STATUS I N ^CHMEDI( ) TO A KNO WN STATUS | |
862 | ; SO THAT THE "RELO AD" FUNCTI ON CAN RES ET THE STA TUS TO "NE EDS SENT" (0) IF | |
863 | ; REQUIRE D. THIS F UNCTION DO ESNOT USE FILEMAN BE CAUSE IT W OULD NOT A LLOW AN | |
864 | ; UNDEFIN ED STATUS TO BE STOR ED. | |
865 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ; | |
866 | ; | |
867 | UNLOAD(STA TUS) | |
868 | ; STATUS THE STATU S VALUE TO RECORD IN ^CHMEDI | |
869 | N ENV S E NV=$$ENVIR ^CHTFLIB() | |
870 | Q:ENV["LI VE" ; CH ECK THE CU RRENT WORK ING ENVIRO NMENT | |
871 | U 0 W !," THIS FUNCT ION WILL P ERMANENTLY REMOVE AL L CURRENT ""NEEDS SE NT"" STATU S CLAIMS" | |
872 | U 0 W !," FROM THE ^ CHMEDI 835 QUEUE, ST ORING THE USER'S PRO VIDED STAT US VALUE I N THE STAT US" | |
873 | U 0 W !," FIELD (2), AND THE D ATE REMOVE D IN THE B ALANCE ERR OR DATE FI ELD (7)." | |
874 | N STATUSV AL,Y ; LOCA L VARIABLE FOR STATU S VALUE | |
875 | I '$D(STA TUS) D ; IF USER DID NOT PROVID E A VALUE, ASK FOR O NE | |
876 | .U 0 W !, "PLEASE EN TER A VALU E FOR THE ^CHMEDI ST ATUS FOR T HIS ""UNLO AD"".YOU M AY NOT USE ""0"" OR ""1"".",!, "INPUT: " | |
877 | .D CSBRS^ CHSC2 ; HAND LE USER IN PUT (ANYTH ING IS POS SIBLE) | |
878 | .S:Y'="" Y=$TR(Y,"a bcdefghijk lmnopqrstu vwxyz","AB CDEFGHIJKL MNOPQRSTUV WXYZ") | |
879 | .S STATUS VAL=Y | |
880 | E S STAT USVAL=STAT US | |
881 | I (STATUS VAL=0)!(ST ATUSVAL=1) D Q | |
882 | .U 0 W !, "YOU CANNO T USE A VA LID STATUS VALUE TO UNLOAD THE CLAIMS." | |
883 | D NOW^%DT C | |
884 | S TODAY=X ; DATE CLAIMS UN LOADED | |
885 | N I,CNT,I DX | |
886 | S (IDX,CN T)=0 | |
887 | S I=0,CNT =0 | |
888 | F S I=$O (^CHMEDI(" D",0,I)) Q:+(I)=0 D ; LOOKUP THROUGH ^ CHMEDI "NE EDS SENT" XREF | |
889 | .Q:'$D(^C HMEDI(I,0) ) ; NEXT ENTRY IF NOT VA LID | |
890 | .Q:$P(^CH MEDI(I,0), "^",2)'=0 ; GOTO NEX T ENTRY IF NOT "NEED S SENT" | |
891 | .S $P(^CH MEDI(I,0), "^",2)=STA TUSVAL ; SET THE ST ATUS TO A KNOWN VALU E | |
892 | .S $P(^CH MEDI(I,0), "^",7)=TOD AY ; SET THE BALANCE ER ROR DATE T O MARK DAT E UNLOADED | |
893 | .S ^CHMED I("D",STAT USVAL,I)=" " ; SET A FAKE XREF FOR THE UNLOAD ED INDEX | |
894 | .K ^CHMED I("D",0,I) ; KILL TH E "D" CROS S REFERENC E FOR "NEE DS SENT" | |
895 | .S CNT=CN T+1 | |
896 | W !,"""UN LOAD"" RES ET ",CNT," RECORDS W ITH ""NEED S SENT"" S TATUS TO " ,STATUSVAL ," ON ",TO DAY," (",$ $FMEXT(X), ")",! | |
897 | Q | |
898 | ; | |
899 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ; | |
900 | ; RELOAD FUNCTION R ESETS THE ^CHMEDI() GLOBAL STA TUS TO "NE EDS SENT" STATUS | |
901 | ; THIS FU NCTION USE S FILEMAN TO SET THE STATUS SO THE STATU S XREF IS CORRECTLY | |
902 | ; SET UP( ^CHMEDI("D ",0,EI)). | |
903 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ; | |
904 | ; | |
905 | RELOAD(STA TUS,FMDATE ) | |
906 | ; STATUS ; STAT US VALUE T O RELOAD | |
907 | ; FMDATE ; DATE THE STATU S WAS UNLO ADED | |
908 | N ENV S E NV=$$ENVIR ^CHTFLIB() | |
909 | Q:ENV["LI VE" ; CH ECK THE CU RRENT WORK ING ENVIRO NMENT | |
910 | I '$D(STA TUS)!'$D(F MDATE) D Q | |
911 | .U 0 W !, "YOU MUST PROVIDE TH E STATUS V ALUE AND T HE ""UNLOA D DATE"" F OR CLAIMS TO RELOAD. " | |
912 | N EI,I,EX IT,ARR,CNT ,ENTITY,CO UNT,IDX | |
913 | S (I,CNT) =0 | |
914 | F S I=$O (^CHMEDI(" D",STATUS, I)) Q:+(I) =0 D ; R EVERSE LOO KUP THROUG H ^CHMEDI | |
915 | .Q:'$D(^C HMEDI(I,0) ) ; NEXT ENTRY IF NOT VA LID | |
916 | .Q:$P(^CH MEDI(I,0), "^",2)'=ST ATUS ; GOTO NEX T VALUE IF NOT SET T O USER PRO VIDED STAT US | |
917 | .Q:$P(^CH MEDI(I,0), "^",7)'=FM DATE ; GO TO NE XT VALUE I F THE "UNL OAD" DATE DOESN'T MA TCH PROVID ED DATE | |
918 | .S ARR(.0 2)=0 ; RESE T THE STAT US TO "NEE DS SENT" | |
919 | .S RESULT =$$UPDATE^ CHHRLIBFM( "CHMEDI(I, 0)",I,$$SE TDR^CHHRLI BFM("ARR") ) | |
920 | .K ^CHMED I("D",STAT US,I) ; KILL THE F AKE XREF U SED TO MAR K THE UNLO ADED INDEX ES | |
921 | .S CNT=CN T+1 | |
922 | W !,"""RE LOAD"" RES ET ",CNT," RECORDS W ITH STATUS = ",STATUS ," UNLOADE D ON ",$$F MEXT(FMDAT E)," TO "" NEEDS SENT """,! | |
923 | Q | |
924 | ; | |
925 | RESEND(HAC CLM) | |
926 | ; HACCLM THE HAC CL AIM NUMBER TO RESEND 835 | |
927 | N PAYI,ED II,PDI,FMS ,DXREF | |
928 | S PAYI=0, PAYI=$O(^C HMPAY("B", HACCLM,PAY I)) ; RET RIEVE THE ^CHMPAY(I) INDEX | |
929 | S EDII=0, EDII=$O(^C HMEDI("C", PAYI,EDII) ) ; RETRI EVE THE ^C HMEDI(I) I NDEX | |
930 | S PDI=$P( $P(^CHMPAY (PAYI,0)," ^",4),"*", 1) ; RETR IEVE THE P DI | |
931 | S FMS=$P( $P(^CHMPAY (PAYI,7)," ^",3),"*", 1) ; RETR IEVE THE ^ CHMPAY() V ENDOR FMS DOC ID | |
932 | S FMS835= $P(^CHMEDI (EDII,0)," ^",1) ; RETRIEVE T HE ^CHMEDI () FMS DOC ID | |
933 | S STATUS= $P(^CHMEDI (EDII,0)," ^",2) ; THE CURREN T STATUS V ALUE | |
934 | U 0 W !," HAC CLAIM #: ",HACCL M," STAT US: ",STAT US | |
935 | U 0 W !," PDI: ",PDI ," FMS DO C ID: ",FM S835," ^C HMPAY() FM S: ",FMS | |
936 | U 0 W !," CONTINUE ? (Y/N)" R RCH | |
937 | I (RCH="Y ")!(RCH="y ") D | |
938 | .K ^CHMED I("D",STAT US) ; KI LL THE CUR RENT STATU S VALUE CR OSS-REFERE NCE | |
939 | .S ^CHMED I("D",0,ED II)="" ; SET THE "N EEDS SENT" STATUS CR OSS-REFERE NCE | |
940 | .S $P(^CH MEDI(EDII, 0),"^",2)= 0 ; RESET THE "NEEDS SEN T" STATUS FLAG | |
941 | Q | |
942 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;; | |
943 | ; CHK835 FUNCTION | |
944 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;; | |
945 | ; | |
946 | CHK835OLD | |
947 | N I,CNT,A RR,IDX,EFT ,EFTARR | |
948 | S (I,CNT, EFT)=0 | |
949 | F S I=$O (^CHMEDI(" D",0,I)) Q :+(I)=0 D ; UTILIZ E THE "NEE DS SENT" X REF | |
950 | .Q:'$D(^C HMEDI(I,0) ) ; NEXT ENTRY IF NOT VA LID | |
951 | .I $$NOEF T^CH835EFT (I) D Q ; CHECK FO R MISSING BANK EFT I NFO | |
952 | ..S EFT=E FT+1,EFTAR R(EFT)=I ; COUNT/RE CORD THE N UMBER OD Q UEUED CLAI MS WITH EF T ERRORS | |
953 | .S CNT=CN T+1 ; CO UNT ENTRIE S TO HAVE 835 RECORD S BUILT | |
954 | .S ARR(CN T)=I ; RECO RD THE ^CH MEDI INDEX ES COUNTED | |
955 | W !,"POTE NTIAL CLAI MS FOR 835 = ",CNT | |
956 | W !,"***N OTE: CLAIM COUNTS IN CLUDE POSS IBLE EFT/B ALANCE ERR OR CLAIMS. ",! | |
957 | F IDX=1:1 :CNT W !, IDX,". ",? 5,ARR(IDX) | |
958 | I EFT D | |
959 | .W !!,"TH E FOLLOWIN G QUEUED I NDEXES HAV E EFT ERRO RS:",! | |
960 | .F IDX=1: 1:EFT W ! ,IDX,". ", ?5,EFTARR( IDX) | |
961 | .W !! | |
962 | Q | |
963 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;; | |
964 | ; THIS FU NCTION "CO UNTS" THE NUMBER OF ENTRIES IN THE ^CHME DI FILE TH AT ARE | |
965 | ; READY F OR PROCESS ING. RECOR DS ARE CHE CKED TO DE TERMINE IF THERE IS BANKING EF T | |
966 | ; INFORMA TION, AND DOES NOT C OUNT THESE ENTRIES. | |
967 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;; | |
968 | ; | |
969 | CHK835 | |
970 | N I,CNT,A RR,IDX,EFT ,EFTARR,PT REDIF,FPTR ,FTYPE,CLA IMS | |
971 | S (I,CNT, EFT)=0,FTY PE="UNKNOW N",(PTREDI F,FPTR)=0, CLAIMS=0 | |
972 | F S I=$O (^CHMEDI(" D",0,I)) Q :+(I)=0 D ; UTILIZ E THE "NEE DS SENT" X REF | |
973 | .S EFTPAD ="" | |
974 | .Q:'$D(^C HMEDI(I,0) ) ; NEXT ENTRY IF NOT VA LID | |
975 | .I $$NOEF T^CH835EFT (I) D ; CHECK FOR MISSING BA NK EFT INF O | |
976 | ..S EFT=E FT+1,EFTAR R(EFT)=I,E FTPAD="*" ; COUNT/R ECORD THE NUMBER OD QUEUED CLA IMS WITH E FT ERRORS | |
977 | .S CNT=CN T+1 ; CO UNT ENTRIE S TO HAVE 835 RECORD S BUILT | |
978 | .S ARR(CN T)=I ; RECO RD THE ^CH MEDI INDEX ES COUNTED | |
979 | .S EDIJ=0 | |
980 | .F S EDI J=$O(^CHME DI(I,1,EDI J)) Q:+(ED IJ)=0 D ; LOOP T HRU "J" IN DEXES | |
981 | ..S CLAIM S=CLAIMS+1 ; COUNT CLAIMS WIT HI EACH ^C HMEDI INDE X | |
982 | ..S PAYI= $P($G(^CHM EDI(I,1,ED IJ,0)),"^" ,1) ; RE TRIEVING T HE POINTER ->^CHMPAY( ) | |
983 | ..I (EFT) S:(EFTARR (EFT)=I) E FTARR(EFT) =EFTARR(EF T)_"^"_$P( ^CHMPAY(PA YI,0),"^", 1) ; NO EF T HAC CLAI M NUMBER | |
984 | ..S STATU S=$P(^CHME DI(I,0),"^ ",2) ; GET THE STATUS VALUE | |
985 | ..S PTRED IF=$P($G(^ CHMEDI(I,0 )),"^",6) ; RETR IEVE THE P OINTER TO ^CHMEDIF | |
986 | ..S:PTRED IF FPTR=$P ($G(^CHMED IF(PTREDIF ,0)),"^",3 ) ; RETRI EVE THE PO INTER TO ^ CHMEDIPA | |
987 | ..S:FPTR FTYPE=$P($ G(^CHMEDIP A(FPTR,0)) ,"^",3) ; ST ATUS FILE TYPE | |
988 | ..U 0 W ! ,CNT,". ^C HMEDI(I)= ",I,EFTPAD ," J= ",E DIJ," FIL E: ",FTYPE ," : HAC CLAIM #: ",$P(^CHMP AY(PAYI,0) ,"^",1)," STATUS= " ,$S(STATUS =0:"NEEDS SENT",STAT US=1:"835 SENT",1:"B ALANCE ERR ") | |
989 | U 0 W !!, "^CHMEDI I NDEXES: ", CNT," POTENTIAL CLAIMS FO R 835 = ", CLAIMS | |
990 | U 0 W !!, "***NOTE: CLAIM COUN TS INCLUDE POSSIBLE EFT/BALANC E ERROR CL AIMS." | |
991 | I EFT D | |
992 | .U 0 W !, "THE FOLLO WING QUEUE D INDEXES HAVE EFT E RRORS:",! | |
993 | .F IDX=1: 1:EFT W ! ,IDX,". ", ?5,EFTARR( IDX) | |
994 | .W !! | |
995 | Q | |
996 | ; | |
997 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; | |
998 | ; KILL(ED II) KILLS THE ^CHME DI NODE AS SOCIATED W ITH THE PR OVIDED IND EX, | |
999 | ; AND THE "D" CROSS -REFERENCE S ASSOCIAT ED WITH TH E ENTRY | |
1000 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; | |
1001 | ; | |
1002 | KILL(EDII) | |
1003 | ; EDII ^ CHMEDI IND EX TO KILL | |
1004 | Q:$$ENVIR ^CHTFLIB=" LIVE" ; CANNOT K ILL IN "LI VE" ENVIRO NMENT | |
1005 | N RCH | |
1006 | U 0 W !," YOU ARE AB OUT TO KIL L THE ^CHM EDI() ENTR Y FOR ",ED II," C ONTINUE (Y /N) ? " R RCH | |
1007 | Q:(RCH'=" y")&(RCH'= "Y") | |
1008 | K ^CHMEDI (EDII) ; KILL THE D ATA NODE E NTRY | |
1009 | K ^CHMEDI ("D",0,EDI I) ; KILL THE " NEES SENT" XREF | |
1010 | K ^CHMEDI ("D",1,EDI I) ; KILL THE " 835 SENT" XREF | |
1011 | K ^CHMEDI ("D",5,EDI I) ; KILL THE " SET ASIDE" XREF | |
1012 | U 0 W !," $D(^CHMEDI (EDII) = " ,$D(^CHMED I(EDII)) | |
1013 | U 0 W !," $D(^CHMEDI (""D"",0,E DII) = ",$ D(^CHMEDI( "D",0,EDII )) | |
1014 | U 0 W !," $D(^CHMEDI (""D"",1,E DII) = ",$ D(^CHMEDI( "D",1,EDII )) | |
1015 | U 0 W !," $D(^CHMEDI (""D"",5,E DII) = ",$ D(^CHMEDI( "D",5,EDII )) | |
1016 | Q | |
1017 | ; | |
1018 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; | |
1019 | ; CHKSNA( ) WILL REP ORT THE CL AIMS THAT ARE PREPAR ED TO GO I NTO "BATCH " AFTER | |
1020 | ; THE VE HAS COMPLE TED THE IP SCREEN CL AIM CREATI ON | |
1021 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; | |
1022 | ; | |
1023 | CHKSNA(TYP E) | |
1024 | N IDX,DAT E,RCH,CLMC NT,JDX,FIL E,MAX,SENT ,RCVD | |
1025 | I '$D(TYP E) W !,"PL EASE PROVI DE ""CAPP" " (741008. 03) OR ""C ALM"" (741 008.05) FO R THE DISP LAY." Q | |
1026 | S:TYPE="C APP" FILE= 741008.03 | |
1027 | S:TYPE="C ALM" FILE= 741008.05 | |
1028 | S DATE=99 99999999.9 99999999,M AX=10,(SEN T,RCVD)=0 | |
1029 | F CNT=1:1 :MAX S DA TE=$O(^CHM SNA(FILE,D ATE),-1) D | |
1030 | .S IDX(CN T)=DATE W !,CNT,"." ,?3,"^CHMS NA(",FILE, ", BATCH C REATE DATE : ",$$DATE TIME(DATE) ," BATCH C LOSE DATE: ",$$DATET IME($P(^CH MSNA(FILE, DATE,0),"^ ",2)) | |
1031 | W !!,"SEL ECT THE NU MBER FOR T HE NODE TO OUTPUT: " | |
1032 | S RCH="" | |
1033 | F Q:(RC H'<1)&(RCH '>MAX) D | |
1034 | .R RCH | |
1035 | S CLMCNT= $P(^CHMSNA (FILE,IDX( RCH),1,0), "^",4) W ! !,CLMCNT," CLAIMS",! | |
1036 | S JDX=0 | |
1037 | F CNT=1:1 :(CLMCNT+1 ) S JDX=$O (^CHMSNA(F ILE,IDX(RC H),1,JDX)) Q:+(JDX)= 0 D | |
1038 | .S PAYI=$ P(^CHMSNA( FILE,IDX(R CH),1,JDX, 0),"^",1) | |
1039 | .W !,CNT, ". CLAIM " ,$P(^CHMPA Y(PAYI,0), "^",1)," : STATUS = ",$$GETDES C($P(^CHMS NA(FILE,ID X(RCH),1,J DX,0),"^", 5)) | |
1040 | .I $P(^CH MSNA(FILE, IDX(RCH),1 ,JDX,0),"^ ",6)'="" S SENT=JDX | |
1041 | .I $P(^CH MSNA(FILE, IDX(RCH),1 ,JDX,0),"^ ",7)'="" S RCVD=JDX | |
1042 | W:SENT !, "SENT TO A USTIN: ",$ $EXTDTCVT( $P(^CHMSNA (FILE,IDX( RCH),1,SEN T,0),"^",6 ))," SEE V MS FILE DH CP$MANAGER FMS_"_TYP E_"_FILE_C TST.DAT C REATED: ", $$EXTDTCVT ($P(^CHMSN A(FILE,IDX (RCH),1,SE NT,0),"^", 6)) | |
1043 | W:RCVD !, "RETURN FR OM AUSTIN: ",$$EXTDT CVT($P($P( ^CHMSNA(FI LE,IDX(RCH ),1,RCVD,0 ),"^",7)," .",1))," S EE VMS FIL E DHCP$CHA MPVA S741C H**_CTST.1 PART CREA TED: ",$$E XTDTCVT($P ($P(^CHMSN A(FILE,IDX (RCH),1,RC VD,0),"^", 7),".",1)) | |
1044 | Q | |
1045 | ; | |
1046 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;; | |
1047 | ; CONVERT YYMMDD.HH MMSS TO EX TERNAL FOR MAT STRING | |
1048 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;; | |
1049 | ; | |
1050 | DATETIME(D T) | |
1051 | Q $$EXTDT CVT($P(DT, ".",1))_" @ "_$$TIME CVT($P(DT, ".",2)) | |
1052 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;; | |
1053 | ; CONVERT THE YYYYM MDD DATE S TRING TO M M-DD-YYYY FORMAT | |
1054 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;; | |
1055 | ; | |
1056 | DTCVRT(DAT E) | |
1057 | N EXTDATE | |
1058 | S EXTDATE =$E(DATE,5 ,6)_"-"_$E (DATE,7,8) _"-"_$E(DA TE,1,4) | |
1059 | Q EXTDATE | |
1060 | ; | |
1061 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;; | |
1062 | ; CONVERT THE YYYMM DD DATE ST RING TO MM -DD-YYYY F ORMAT | |
1063 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;; | |
1064 | ; | |
1065 | EXTDTCVT(D ATE) | |
1066 | Q:DATE="" "" | |
1067 | N EXTDATE | |
1068 | S EXTDATE =$E(DATE,4 ,5)_"-"_$E (DATE,6,7) _"-"_($E(D ATE,1,3)+1 700) | |
1069 | Q EXTDATE | |
1070 | ; | |
1071 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; | |
1072 | ; FILEMAN CONVERSIO N: FILEMAN FORMAT TO EXTERNAL FORMAT | |
1073 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; | |
1074 | ; | |
1075 | FMEXT(FMDA TE) | |
1076 | S Y=FMDAT E | |
1077 | D DD^%DT | |
1078 | Q Y | |
1079 | ; | |
1080 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; | |
1081 | ; TIMECVT CONVERTS HHMMSS TO HH:MM:SS F ORMAT | |
1082 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; | |
1083 | ; | |
1084 | TIMECVT(TI ME) | |
1085 | Q:TIME="" "" | |
1086 | Q $$LJ($E (TIME,1,2) ,2,"0")_": "_$$LJ($E( TIME,3,4), 2,"0")_":" _$$LJ($E(T IME,5,6),2 ,"0") | |
1087 | ; | |
1088 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;; | |
1089 | ; LEFT JU STIFY FOR HH:MM:SS | |
1090 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;; | |
1091 | ; | |
1092 | LJ(STR,SIZ E,PAD1) ; | |
1093 | N RET,PAD | |
1094 | S PAD="", RET="" | |
1095 | I PAD1="" S RET=$E( STR,1,SIZE ) | |
1096 | E S $P(P AD,PAD1,SI ZE)=PAD1,R ET=$E(STR_ PAD,1,SIZE ) | |
1097 | Q RET | |
1098 | ; | |
1099 | GETDESC(I) | |
1100 | ; I= STAT US VALUE F OR ^CHMSNA () | |
1101 | Q $S(I=0: "PENDING", I=1:"CLM D ATA PROB/N OT SUB",I= 2:"SUB FOR PAY",I=3: "RTN CAPP ACC",I=4:" RTN CAP RE J",I=5:"CA LM REJ",I= 6:"CALM AC C",I=7:"RE J AS DUP", I=8:"NSF", I=9:"NO PA Y < 1.00", I=10:"CHK RTN") | |
1102 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; | |
1103 | ; DMPEDI UTILITY WR ITTEN TO D EBUG THE C LAIMS FOR SLA. tHIS FUNCTION E XTRACTS | |
1104 | ; DATA FR OM THE ^CH MEDI() FIL E AND ^CHM PAY() TO D ETERMINE W HICH CLAIM S WERE | |
1105 | ; PROCESS ED IN A SP ECIFIED 83 5 STAGING FILE. | |
1106 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; | |
1107 | ; | |
1108 | DMPEDI(FIL EI) | |
1109 | ; FILEI FILE INDE X FOR WHIC H TO DUMP THE ^CHMED I DATA | |
1110 | N RECONCI L,STATUS,C HKNUM,CHKA MT,VNDR,PA YI,IDX,CLM S,JDX | |
1111 | S IDX=0 | |
1112 | W !,"IDX" ,?10,"RECO NCIL",?31, "STATUS",? 40,"CHKNUM ",?50,"CHK AMT",?60," CLM(S)" | |
1113 | W !,"---- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----" | |
1114 | F S IDX= $O(^CHMEDI ("G",FILEI ,IDX)) Q:' IDX D | |
1115 | .S RECONC IL=$P(^CHM EDI(IDX,0) ,"^",1) | |
1116 | .S STATUS =$P(^CHMED I(IDX,0)," ^",2) | |
1117 | .S CHKNUM =$P(^CHMED I(IDX,0)," ^",3) | |
1118 | .S CHKAMT =$P(^CHMED I(IDX,0)," ^",4) | |
1119 | .S VNDR=$ P(^CHMEDI( IDX,0),"^" ,5) | |
1120 | .S JDX=0 | |
1121 | .F JDX=$O (^CHMEDI(I DX,1,JDX)) Q:'JDX D | |
1122 | ..S PAYI= $P(^CHMEDI (IDX,1,JDX ,0),"^",1) | |
1123 | ..S CLM(J DX)=$P(^CH MPAY(PAYI, 0),"^",1) | |
1124 | .W !!,IDX ,?10,RECON CIL,?31,ST ATUS,?40,C HKNUM,?50, CHKAMT,?60 | |
1125 | .F JDX=1: 1 Q:'$D(CL M(JDX)) S CLMNUM=CL M(JDX) W CLMNUM,"," | |
1126 | Q | |
1127 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;; | |
1128 | ; THE FOL LOWING UTI LITIES WER E DEVELOPE D TO SUPPO RT DEVELOP MENT AND | |
1129 | ; TESTING EFFORTS. THESE ARE NOT CALLED DIRECTLY DURING THE 835 PROCE SSING. | |
1130 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;; | |
1131 | ; | |
1132 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;; | |
1133 | ; SHOWREC (ID) USER PROVIDES T HE IDENTIF IER FOR TH E RECORD T O BE GENER ATED. | |
1134 | ; THE GOA L OF THIS FUNCTION I S TO GENER ATE THE 83 5 RECORD T HAT HAS NO T BEEN | |
1135 | ; TRANSMI TTED TO TH E PROVIDER . TYPICALL Y THE UNIQ UE IDENTIF IER THAT T HE PROVIDE R | |
1136 | ; HAS IN HIS POSSES SION IS ON E THAT THE PROVIDER SENT IN WI TH THE CLA IM. I.E. | |
1137 | ; THE PAT IENT CONTR OL NUMBER IN CONJUNC TION WITH THE DATE O F SERVICE AND SSN. | |
1138 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;; | |
1139 | ; | |
1140 | GETREC(PCN ,DOS,SSN) | |
1141 | ; PCN PRO VIDER'S PA TIENT CONT ROL NUMBER | |
1142 | ; DOS DAT E OF SERVI CE FOR THE CLAIM | |
1143 | ; SSN BEN EFICIARY S SN FOR THE CLAIM | |
1144 | N CI,PDI, CHPID,CHCI ,CHEI,PAYI ,PCNARR,CN T,MATCH,EI ,FIO,FILEI | |
1145 | S (MATCH, FIO,FILEI) =0 | |
1146 | S ECNT=$$ PCNTOPDI(P CN,.PCNARR ) | |
1147 | F CNT=1:1 :ECNT-1 S PDI=$P(PC NARR(CNT), "^",1) Q:( PDI="")!(M ATCH) D | |
1148 | .S CHCI=$ P(PCNARR(C NT),"^",5) ; CH ECK THE SS N | |
1149 | .I $P(^CH MXCLC(CHCI ,0),"^",4) =SSN D | |
1150 | ..S CHEI= $P(PCNARR( CNT),"^",6 ) ; CH ECK THE PC N/DOS | |
1151 | ..I ($P(^ CHMXCLE(CH EI,0),"^", 2)=PCN)&($ P(^CHMXCLE (CHEI,1)," ^",1)=DOS) D | |
1152 | ...S PAYI =$P(^CHMXC LE(CHEI,3) ,"^",3) ; POINTER TO ^CHMPAY () | |
1153 | ...S MATC H=1 | |
1154 | I MATCH D | |
1155 | .S CHPID= $$CHPID^CH 835FU1(PAY I) ; Clearing house sho rtname and payer id | |
1156 | .S EI=$O( ^CHMEDI("C ",PAYI,0)) ; ENTITY IND EX | |
1157 | .S ^TMP($ J,"EDI-835 ",CHPID,EI )="" ; NO FILE OUTPUT | |
1158 | .D FMSLOO P^CH835F1( FILEI,EI) | |
1159 | Q | |
1160 | ; | |
1161 | TSTONE | |
1162 | N CI,MATC H,PCN,DOS, SSN,RCH | |
1163 | S MATCH=0 | |
1164 | S CI=9999 999999 ; GET THE ^CHMPAY() INDEX | |
1165 | NEXT | |
1166 | F S CI=$ O(^CHMPAY( CI),-1) Q: MATCH D | |
1167 | .W !,"PAY I= ",CI | |
1168 | .S (PCN,D OS,SSN)="" | |
1169 | .Q:($P(^C HMPAY(CI,0 ),"^",2)'= 0)&($P(^CH MPAY(CI,0) ,"^",2)'=1 0) | |
1170 | .Q:'$D(^C HMPAY(CI,7 )) | |
1171 | .S PCN=$P (^CHMPAY(C I,7),"^",5 ) ; RETRIEVE A PCN | |
1172 | .S DOS=$P (^CHMPAY(C I,0),"^",8 ) ; RETRIEVE A DATE OF S ERVICE | |
1173 | .S SSN=$P (^AHCHVA($ P(^CHMPAY( CI,0),"^", 21),100,$P (^CHMPAY(C I,0),"^",2 2),0),"^", 9) | |
1174 | .I (PCN'= "")&(DOS'= "")&(SSN'= "") S MATC H=1 | |
1175 | W !,"TEST ING: PCN: ",PCN," D OS: ",DOS, " SSN: ", SSN | |
1176 | R RCH | |
1177 | D GETREC( PCN,DOS,SS N) | |
1178 | W !,"HIT <RTN> FOR NEXT TEST. " | |
1179 | R RCH S M ATCH=0 G N EXT | |
1180 | Q | |
1181 | ; | |
1182 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;; | |
1183 | ; SETUP F OR THE COR RECTION OF THE CHAMP VA STATUS REASON DIC TIONARY | |
1184 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;; | |
1185 | ; ^CHMDI C(741002.2 2,I,0) = | |
1186 | ; ^01 PROBLM STA TUS CODE NU MERIC 0 T O 9999 | |
1187 | ; ^02 STATUS REA SON DESCRI PTION FT 1 TO 200 | |
1188 | ; ^03 DEACTIVATI ON OF CODE SE T 0:ACTIVE CODE 1:N ON-ACTIVE CODE | |
1189 | ; ^04 LETTER POI NTER PT CHMDIC(7 41002.64 | |
1190 | ; ^05 ENCLOSURE POINTER PT CHMDIC(7 41002.56 | |
1191 | ; ^06 WHAT TO PR INT ON? SE T | |
1192 | ; 0:P RINT ON EO B & PPR | |
1193 | ; 1:P RINT ON PP R ONLY | |
1194 | ; 2:P RINT ON EO B ONLY | |
1195 | ; 3:N O EOB OR P PR | |
1196 | ; ^07 TYPE OF RE ASON SE T | |
1197 | ; 1:I NFORMATION AL | |
1198 | ; 0:R EJECT | |
1199 | ; ^CHMDI C(741002.2 2,I,1) = | |
1200 | ; ^01 CORRESPOND ENCE REASO N FT 1 TO 200 | |
1201 | ; ^CHMDI C(741002.2 2,I,2,J,0) = | |
1202 | ; ^01 PROGRAMS PT CHMDIC(7 41002.94 | |
1203 | ; | |
1204 | ; CROSS R EFERENCES | |
1205 | ; ------- --------- | |
1206 | ; ^CHMDIC (741002.22 ,"B",PROBL M STATUS C ODE,I) | |
1207 | ; ^CHMDIC (741002.22 ,"C",STATU S REASON D ESCRIPTION ,I) | |
1208 | ; ^CHMDIC (741002.22 ,I,2,"B",P ROGRAMS,J) | |
1209 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; | |
1210 | ; | |
1211 | FIXDIC | |
1212 | N IDX,VAL UE,ARR,ARR IDX,CHIJKV AL,CHBREF, CHDR,RCH | |
1213 | F IDX=1:1 Q:IDX>101 4 D ; FIND ALL T HE INDEXES WITH DATA IN FIELD 8 | |
1214 | .S FLAG=" " | |
1215 | .S:$D(^CH MDIC(74100 2.22,IDX,0 )) VALUE=$ P(^CHMDIC( 741002.22, IDX,0),"^" ,8) | |
1216 | .I VALUE' ="" D | |
1217 | ..F ARRID X=1:1:6 S ARR(ARRID X)=$P($G(^ CHMDIC(741 002.22,IDX ,0)),"^",A RRIDX) | |
1218 | ..K ^CHMD IC(741002. 22,IDX,0) | |
1219 | ..S CHMDI C(741002.2 2,IDX,0)=" ^^^^^^" | |
1220 | ..S $P(^C HMDIC(7410 02.22,IDX, 0),"^",1)= ARR(1) ; PROBLEM ST ATUS CODE | |
1221 | ..S $P(^C HMDIC(7410 02.22,IDX, 0),"^",2)= ARR(2) ; STATUS REA SON DESCRI PTION | |
1222 | ..S $P(^C HMDIC(7410 02.22,IDX, 0),"^",3)= ARR(3) ; ACTIVE/INA CTIVE FLAG | |
1223 | ..S $P(^C HMDIC(7410 02.22,IDX, 0),"^",4)= ARR(4) ; LETTER POI NTER | |
1224 | ..S $P(^C HMDIC(7410 02.22,IDX, 0),"^",5)= ARR(5) ; ENCLOSUER POINTER | |
1225 | ..S $P(^C HMDIC(7410 02.22,IDX, 0),"^",6)= ARR(6) ; WHAT TO PR INT | |
1226 | ..S $P(^C HMDIC(7410 02.22,IDX, 0),"^",7)= VALUE ; R EASON TYPE 0=REJECT, 1=INFORMA TIONAL | |
1227 | ..W !,"MO DIFIED :", IDX," TO F IELD 7= ", $P(^CHMDIC (741002.22 ,IDX,0),"^ ",7)," NO DE= ",^CHM DIC(741002 .22,IDX,0) | |
1228 | .E I $D( ^CHMDIC(74 1002.22,ID X,0)) W !, IDX,". ",^ CHMDIC(741 002.22,IDX ,0) | |
1229 | Q | |
1230 | ; | |
1231 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; | |
1232 | ; MOD7 P ROVIDES A PROMPT TO ALLOW THE USER TO MO DIFY FIELD 7 OF THE CHAMPVA ST ATUS | |
1233 | ; REASON DICTIONAR Y ^CHMDIC( 741002.22. | |
1234 | ;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; | |
1235 | ; | |
1236 | MOD7 | |
1237 | N IDX,RCH | |
1238 | S IDX=0 | |
1239 | F IDX=1:1 :1015 D | |
1240 | .Q:'$D(^C HMDIC(7410 02.22,IDX, 0)) | |
1241 | .W !,"ENT ER THE FIE LD 7 DATA FOR ^CHMDI C(741002.2 2,",IDX,", 0): " | |
1242 | .S RCH=9 F R RCH Q :(RCH=0)!( RCH=1) | |
1243 | .S $P(^CH MDIC(74100 2.22,IDX,0 ),"^",7)=R CH | |
1244 | .W !,"RES ULT: ^CHMD IC(741002. 22,",",",I DX,",0)= " ,^CHMDIC(7 41002.22,I DX,0) | |
1245 | Q |
Araxis Merge (but not the data content of this report) is Copyright © 1993-2016 Araxis Ltd (www.araxis.com). All rights reserved.