Produced by Araxis Merge on 11/9/2018 12:33:39 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_AH | AHCJSU.m | Mon Nov 5 16:38:49 2018 UTC |
2 | CPEE_Build9_Sprint27.zip\HAC_CPE_AH | AHCJSU.m | Mon Nov 5 17:36:27 2018 UTC |
Description | Between Files 1 and 2 |
|
---|---|---|
Text Blocks | Lines | |
Unchanged | 2 | 514 |
Changed | 1 | 10 |
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 | AHCJSU ; | |
2 | Q | |
3 | LOAD(PDI,P TRS,LoadPo p,log) ; | |
4 | Q $$AVSSU LOAD(PDI,P TRS,.LoadP op,.log) | |
5 | ||
6 | AVSSULOAD( PDI,PTRS,L oadPop,log ) ; | |
7 | // Class CHA IR.HACSJ.s ch.sjData | |
8 | // | |
9 | // bufferPro viderLevel As CHAIR. HACSJ.sch. bufferProv iderLevel | |
10 | // buffer PatientLev el As CHAI R.HACSJ.sc h.bufferPa tientLevel | |
11 | // buffer ClaimLevel As CHAIR. HACSJ.sch. bufferClai mLevel | |
12 | // buffer ServiceLin eLevelList As list O f CHAIR.HA CSJ.sch.bu fferServic eLineLevel | |
13 | // claimV endor As C HAIR.HACSJ .sch.vendo r | |
14 | // possib leVendorLi st As list Of CHAIR. HACSJ.sch. vendor | |
15 | ||
16 | Ne w ClaimObj Set Claim Obj=##clas s(CHAIR.HA CSJ.sch.sj Data).%New () | |
17 | Ne w Provider IenB,Patie ntIenC,Cla imIenE,Lin eIensF,Cla imLineIenF | |
18 | Se t LoadPop= 0 | |
19 | ||
20 | // Verify th at a valid Claim IEN | |
21 | Se t ClaimIen E=$Piece(P TRS,U,6) | |
22 | If +ClaimIen E=0 { Set LoadPop=1 Quit Claim Obj } | |
23 | If $Data(^CH MXCLE(Clai mIenE,0))= 0 { Set Lo adPop=1 Qu it ClaimOb j } | |
24 | ||
25 | // Get and v erify the Patient IE N | |
26 | Se t PatientI enC=$Piece (PTRS,U,5) | |
27 | If +PatientI enC=0 { Se t LoadPop= 2 Quit Cla imObj } | |
28 | If $Data(^CH MXCLC(Pati entIenC,0) )=0 { Set LoadPop=2 Quit Claim Obj } | |
29 | ||
30 | // Get and v erify the Provider I EN | |
31 | Se t Provider IenB=$Piec e(PTRS,U,4 ) | |
32 | If +Provider IenB=0 { S et LoadPop =3 Quit Cl aimObj } | |
33 | If $Data(^CH MXCLB(Prov iderIenB,0 ))=0 { Set LoadPop=3 Quit Clai mObj } | |
34 | ||
35 | // Get and v erify that Line Leve l IENS exi st | |
36 | Me rge LineIe nsF=^CHMXC LF("B",Cla imIenE) | |
37 | If $Data(Lin eIensF)=0 { Set Load Pop=4 Quit ClaimObj } | |
38 | ||
39 | // Load Clai m Level Ob ject | |
40 | Se t ClaimObj .bufferCla imLevel=$$ CLAIM^CHIS JLD(ClaimI enE,PDI,.L oadPop) | |
41 | Qu it:LoadPop ClaimObj //LoadPop 5 | |
42 | ||
43 | // Load Clai m Line Lev el Objects | |
44 | Se t ClaimLin eIenF=0 Fo r | |
45 | { | |
46 | Set ClaimL ineIenF=$O rder(LineI ensF(Claim LineIenF)) Quit:+Cla imLineIenF =0 | |
47 | Do ClaimOb j.bufferSe rviceLineL evelList.I nsert($$LI NE^CHISJLE (ClaimLine IenF,.Load Pop)) | |
48 | Quit:LoadP op | |
49 | } | |
50 | Qu it:LoadPop ClaimObj //LoadPop 6 | |
51 | ||
52 | // Load Prov ider Level Object | |
53 | Se t ClaimObj .bufferPro viderLevel =$$PROVIDE R^CHISJLB( ProviderIe nB,.LoadPo p) | |
54 | Qu it:LoadPop ClaimObj //LoadPop 7 | |
55 | ||
56 | // Load Pati ent Level Object | |
57 | Se t ClaimObj .bufferPat ientLevel= $$PATIENT^ CHISJLC(Pa tientIenC, .LoadPop) | |
58 | Qu it:LoadPop ClaimObj //LoadPop 8 | |
59 | ||
60 | // Load the Claim Vend or Address Informati on | |
61 | Se t ClaimObj .claimVend or=$$EDIVE NDOR^CHISJ LF(Provide rIenB,Clai mIenE,.Loa dPop,$Get( log),PDI) | |
62 | Qu it:LoadPop ClaimObj //LoadPop 9 | |
63 | ||
64 | // Load the Possible V endor Obje ct List | |
65 | Se t ClaimObj .possibleV endorList= $$Possible Vendors^CH ISJLF(Clai mObj.claim Vendor.id, ClaimObj.c laimVendor .remitToZi p,$Get(log )) | |
66 | ||
67 | // Successfu l Load, Qu it and Ret urn the Ob ject. | |
68 | Qu it ClaimOb j | |
69 | ||
70 | AVSLOAD(PD I,PTRS,Loa dPop,log) | |
71 | New ObjX Set ObjX=# #class(CHA IR.HACSJ.s ch.sjData) .%New() | |
72 | // Create and Load an empty C laim Level Object | |
73 | New Z Set Z=##class (CHAIR.HAC SJ.sch.buf ferClaimLe vel).%New( ) | |
74 | Set Z.pdi =PDI | |
75 | Set ObjX. bufferClai mLevel=Z K ill Z | |
76 | // Create and Load an empty S ervice Lin e Level Ob ject | |
77 | New Z Set Z=##class (CHAIR.HAC SJ.sch.buf ferService LineLevel) .%New() | |
78 | Do ObjX.b ufferServi ceLineLeve lList.Inse rt(Z) Kill Z | |
79 | // Create and Load an empty P rovider Le vel Object | |
80 | New Z Set Z=##class (CHAIR.HAC SJ.sch.buf ferProvide rLevel).%N ew() | |
81 | Set ObjX. bufferProv iderLevel= Z Kill Z | |
82 | // Create and Load an empty P atient Lev el Object | |
83 | New Z Set Z=##class (CHAIR.HAC SJ.sch.buf ferPatient Level).%Ne w() | |
84 | Set ObjX. bufferPati entLevel=Z Kill Z | |
85 | // Load t he Claim V endor Addr ess Inform ation | |
86 | New Z Set Z=##class (CHAIR.HAC SJ.sch.ven dor).%New( ) | |
87 | Set ObjX. claimVendo r=$$OCRVEN DOR^CHISJL F(PDI,.Loa dPop,$Get( log),.TOBP OSQ) | |
88 | // Set TO B/POS and Qualifier | |
89 | Set ObjX. bufferClai mLevel.pla ceOfSvcTob Qualifier= TOBPOSQ | |
90 | If TOBPOS Q="A" { Se t ObjX.buf ferClaimLe vel.placeO fServiceTo b=ObjX.cla imVendor.t ypeOfBill } | |
91 | If TOBPOS Q="B" { Se t ObjX.buf ferClaimLe vel.placeO fServiceTo b=ObjX.cla imVendor.p laceOfServ ice } | |
92 | // Load t he Possibl e Vendor O bject List | |
93 | If 'LoadP op,ObjX.cl aimVendor. id'="",Obj X.claimVen dor.remitT oZip'="" | |
94 | { | |
95 | Set Obj X.possible VendorList =$$Possibl eVendors^C HISJLF(Obj X.claimVen dor.id,Obj X.claimVen dor.remitT oZip,$Get( log)) | |
96 | } | |
97 | Quit ObjX | |
98 | ||
99 | WSCALL(PDI ,log,respo nseStatus, buffPTRS) | |
100 | New LoadP op,WS,resp onseStatus ,X,Y,Z,TG, PTRS,ZTS,S EC | |
101 | Set $ZT=" ERROR^AHCJ SU" | |
102 | Set U=$Ge t(U,"^"),^ ||DTS=0 | |
103 | Set LoadP op=0 | |
104 | Kill ^||V LIST | |
105 | Set PTRS= $Get(^CHMI MAGE(PDI," BUFF")) | |
106 | If PTRS=" " Set PTRS =$Get(buff PTRS) | |
107 | If PTRS'= "" | |
108 | { | |
109 | If $Pie ce(PTRS,U, 1)="OCR" | |
110 | { Set sjData=$$ AVSLOAD(PD I,PTRS,.Lo adPop,log) | |
111 | If sj Data.possi bleVendorL ist.Count( )<2 | |
112 | { S et LoadPop =1 Quit } } | |
113 | Else | |
114 | { Set sjData=$$ AVSSULOAD( PDI,PTRS,. LoadPop,lo g) } | |
115 | } | |
116 | Kill PTRS | |
117 | Quit:Load Pop "" | |
118 | Set WS=## class(CHAI R.HACSJW.s jWrap11).% New() | |
119 | Set sjRes ult="" | |
120 | Set respo nseStatus= WS.sj(sjDa ta,.sjResu lt) | |
121 | If respon seStatus'= "SUCCESS" | |
122 | { | |
123 | if $isobj ect(sjResu lt) | |
124 | { | |
125 | For erro r=1:1:sjRe sult.messa geList.Cou nt() | |
126 | { | |
127 | S et messObj =sjResult. messageLis t.GetAt(er ror) | |
128 | S et ^CHMZHO LD("SJLOG" ,PDI,error ,"key")=me ssObj.key | |
129 | K ill messag e | |
130 | F or I=1:1:$ L(messObj. value,$c(1 0)) Set me ssage(I)=$ Translate( $Piece(mes sObj.value ,$c(10),I) ,$c(9)) | |
131 | M erge ^CHMZ HOLD("SJLO G",PDI,err or,"messag e")=messag e | |
132 | S et X=$I(^C HMZHOLD("S JLOG","COU NT")) | |
133 | I f $Get(^CH MZHOLD("SJ LOG","TIME "))="" Set ^CHMZHOLD ("SJLOG"," TIME")=$ZH | |
134 | ; write to user for n ow | |
135 | ; W !,"Submi ssion/AVS call resul ted in ",r esponseSta tus | |
136 | ; W !,"Messa ge is: " | |
137 | ; f J=1:1:I W !,messag e(J) | |
138 | ; W ! | |
139 | } | |
140 | If sjRes ult.messag eList.Coun t() = 0 | |
141 | { | |
142 | S et ^CHMZHO LD("SJLOG" ,PDI,error ,"key")="g eneral err or" | |
143 | S et ^CHMZHO LD("SJLOG" ,PDI,error ,"message" ,1)=respon seStatus | |
144 | S et X=$I(^C HMZHOLD("S JLOG","COU NT")) | |
145 | I f $Get(^CH MZHOLD("SJ LOG","TIME "))="" Set ^CHMZHOLD ("SJLOG"," TIME")=$ZH | |
146 | } | |
147 | } | |
148 | } | |
149 | ||
150 | Set mailF lg=0 | |
151 | Set max=$ Get(^CHMZH OLD("SJLOG ","MAX"))+ 1*20+50 | |
152 | If $Get(^ CHMZHOLD(" SJLOG","CO UNT"))>max | |
153 | { | |
154 | Set X=$I (^CHMZHOLD ("SJLOG"," MAX")) ; m ax is slid ing up to avoid spam ming | |
155 | Set mail Flg=1 | |
156 | } | |
157 | // if th ere are er rors, push them out every 2 ho urs | |
158 | If mailF lg=0,$Get( ^CHMZHOLD( "SJLOG","C OUNT")),$Z H-^CHMZHOL D("SJLOG", "TIME")>72 00 | |
159 | { | |
160 | Set mailF lg=2 | |
161 | Kill ^CHM ZHOLD("SJL OG","MAX") | |
162 | } | |
163 | If mailF lg | |
164 | { | |
165 | K ^UTILITY($ J,"AVS-ERR ") | |
166 | S ^UTILITY($ J,"AVS-ERR ",1,1,0)=" AVS/SUBMIS SION Web S ervice Err or:" | |
167 | S ^UTILITY($ J,"AVS-ERR ",1,2,0)=" " | |
168 | S LN=2,P="" | |
169 | F | |
170 | { | |
171 | S P=$O(^CHMZ HOLD("SJLO G",P)) Q:' P | |
172 | S E="" | |
173 | F | |
174 | { | |
175 | S E= $O(^CHMZHO LD("SJLOG" ,P,E)) Q:E ="" | |
176 | S ^U TILITY($J, "AVS-ERR", 1,$I(LN),0 )="PDI= "_ P | |
177 | S ^U TILITY($J, "AVS-ERR", 1,$I(LN),0 )="key= "_ ^CHMZHOLD( "SJLOG",P, E,"key") | |
178 | F L= 1:1:$O(^CH MZHOLD("SJ LOG",P,E," message"," "),-1) S ^ UTILITY($J ,"AVS-ERR" ,1,$I(LN), 0)=^CHMZHO LD("SJLOG" ,P,E,"mess age",L) | |
179 | S ^UTILI TY($J,"AVS -ERR",1,$I (LN),0)=" " | |
180 | } | |
181 | K ^CHMZHOLD( "SJLOG",P) | |
182 | } | |
183 | K ^CHMZHOLD( "SJLOG","C OUNT") | |
184 | K ^CHMZHOLD( "SJLOG","T IME") | |
185 | ;; LOGIC cop ied from C HMXMM04 | |
186 | S DOMN=$P(^C HMDIC(7410 02.17,1,60 ),"^",4) | |
187 | I $D(^XMB(3. 8,"B",DOMN )) | |
188 | { | |
189 | S NUM=0 | |
190 | F | |
191 | { | |
192 | S NU M=$O(^XMB( 3.8,"B",DO MN,NUM)) Q :'NUM | |
193 | S PT X=0 | |
194 | F | |
195 | { | |
196 | S PTX=$O(^ XMB(3.8,NU M,1,PTX)) Q:'PTX | |
197 | S RDUZ=$ P(^XMB(3.8 ,NUM,1,PTX ,0),"^",1) | |
198 | S XMY(RD UZ)="" | |
199 | } | |
200 | } | |
201 | } | |
202 | D | |
203 | . N DUZ | |
204 | . S XMDUZ =.5,XMSUB= "Cache - A VS/SUBMISS ION Web se rvice ERRO R" | |
205 | . S XMTEXT=" ^UTILITY($ J,""AVS-ER R"",1," | |
206 | . ;S XMY(" PII ")="" | |
207 | . ;S XMY( " PII ")="" | |
208 | . ;S XMY( " PII ")="" ; MTN01619 4-01 09-20 -12 jeh | |
209 | . S XMY(" PII ")="" ; MTN01619 4-01 09-20 -12 jeh | |
210 | . S XMY("
|
|
211 | . S U="^" D ^XMD | |
212 | } | |
213 | ||
214 | ||
215 | Quit sjRe sult | |
216 | ||
217 | // OCR en try point from CHMXV 001 | |
218 | AVSpdi(PDI ,log,AVSER R) ; | |
219 | Set sjRes ult=$$WSCA LL(PDI,log ,.AVSERR) | |
220 | Set resul t=$$PROCAV S(PDI,log, .AVSERR,.s jResult) | |
221 | Quit resu lt | |
222 | ||
223 | ERROR ; | |
224 | D ^%ZTER | |
225 | S $ZE="" | |
226 | Q "" | |
227 | ||
228 | PROCAVS(PD I,log,AVSE RR,sjResul t) ; | |
229 | New PICKE D | |
230 | If sjResu lt="" Quit 99 | |
231 | If $D(^CH MIMAGE(PDI ,100)) Qui t 1 | |
232 | Kill PICK ED | |
233 | Set ^||DT S=$Get(^|| DTS) | |
234 | If $Isobj ect(sjResu lt),sjResu lt.possibl eVendorLis t.Count()> 0,$G(^||VL IST)=PDI | |
235 | { | |
236 | Fo r PCCNT=1: 1:sjResult .possibleV endorList. Count() | |
237 | { | |
238 | Set Y= sjResult.p ossibleVen dorList.Ge tAt(PCCNT) .ien | |
239 | Merge PICKED(Y)= ^||VLIST(Y ) | |
240 | } | |
241 | } | |
242 | Else | |
243 | { | |
244 | // Don't put possible vendor lis t into pic ked vendor list till HAC says OK. | |
245 | // Merge PIC KED=^||VLI ST | |
246 | // Set Y="" | |
247 | // For PCCNT =0:1 Set Y =$O(PICKED (Y)) Q:Y=" " | |
248 | } | |
249 | If log | |
250 | { | |
251 | Se t V=0 | |
252 | Fo r CHCNT=1: 1 | |
253 | { | |
254 | Set V=$Order(^ ||VLIST(V) ) | |
255 | Quit :V="" | |
256 | Set N1=^||VLIS T(V,1),N2= ^||VLIST(V ,2) | |
257 | Set $Piece(N1, "^",11)=$S elect($Dat a(PICKED(V )):"Y",1:" N") | |
258 | Set ^||DTS=$$L OG^CHISJLF (PDI_"^"_N 1,$Piece(N 2,"^",7),C HCNT,V) | |
259 | } | |
260 | } | |
261 | If $Data(PIC KED) D SAV E^CHMXV002 (PDI,PCCNT ,.PICKED) | |
262 | Quit 1 |
Araxis Merge (but not the data content of this report) is Copyright © 1993-2016 Araxis Ltd (www.araxis.com). All rights reserved.