1. EPMO Open Source Coordination Office Redaction File Detail Report

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.

1.1 Files compared

# 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

1.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 2 514
Changed 1 10
Inserted 0 0
Removed 0 0

1.3 Comparison options

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

1.4 Active regular expressions

No regular expressions were active.

1.5 Comparison detail

  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("
P II                  ")=""     ; Tom Pres ton
  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