254. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 11/9/2018 12:34:12 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.

254.1 Files compared

# Location File Last Modified
1 CPEE_Build9_Sprint27.zip\HAC_CPE_CH CHMXRP22.m Mon Nov 5 16:40:04 2018 UTC
2 CPEE_Build9_Sprint27.zip\HAC_CPE_CH CHMXRP22.m Fri Nov 9 03:34:18 2018 UTC

254.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 3 894
Changed 2 8
Inserted 0 0
Removed 0 0

254.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

254.4 Active regular expressions

No regular expressions were active.

254.5 Comparison detail

  1   CHMXRP22         ;JBM /HIPAA Rea dy;SXC Cla im Reversa l Driver;1 2/03/2007  14:21 AM
  2           ;; V1.0;;;;Bu ild 15
  3           ;  ;
  4           ;H R-PBM-PHAS E 1-Begin  JBM
  5           ;N ew routine  for SXC R eversals
  6   EPAUTO  ;C ALLED FROM  CHMXWT1 ( Wait Routi ne)
  7           ;E nters in w ith CHFILE  defined.
  8           S  $ZT="ERROR "
  9           D  INIT
  10           D  LOADFL
  11           ;  PROCESS ro utine is c alled from  error tra p after re aching the  EOF see " Error" FUN CTION
  12           Q
  13           ;
  14           ;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;
  15           ;  TEST ENTRY  POINT tHI S ENTRY WI LL PROMPT  USER FOR F ILES TO US E, THEN
  16           ;  USES THE S AME FUNCTI ONS A S TH E PRODUCTI ON ENTRY P OINT TO PR OCESS THE  CLAIM
  17           ;  REVERSALS.  
  18           ;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;
  19           ;
  20   EP      ;E ntry Point  to run ma nually - P RODUCTION  should be  run VIA EP AUTO.
  21           S  $ZT="ERROR "
  22           D  GETFILE Q: POP
  23           D  INIT
  24           D  LOADFL
  25           ;P ROCESS rou tine is ca ll after r eaching th e EOF see  "Error" FU NCTION
  26           Q
  27   INIT    ;  INITIALIZE  THE FILEM AN VARIABL ES 
  28           S: '$D(DUZ) D UZ=1,DUZ(0 )="" I '$D (DT) S %DT ="",X="T"  D ^%DT S D T=Y
  29           S: '$D(IOZFO)  IOZFO="^^ " S:'$D(IO ZBK) IOZBK ="^" S:'$D (DTIME) DT IME=60
  30           I  '$D(IOZ) S  %ZIS="N", IOP="HOME"  D HOME^%Z IS S IOZ=I O,IOZL=IOS L,IOZW=IOM ,IOZF=IOF, IOZT=IOST, IOZN=ION,I OZS=IOS
  31           S  POP=0
  32           K  ^CHMZHOLD( $J),^CITIR EV($J),DBG REV
  33           D  NOW^%DTC
  34           S  CHDDMMYY=$ E(%,2,7)
  35           Q
  36   LOADFL                             ; LOAD T HE DATA FR OM THE FIL E INTO THE  ^CHMXHOLD  ARRAY
  37           O  CHFILE:"R" :1
  38           S  RESULT=$T 
  39           I  'RESULT Q
  40           U  CHFILE
  41           F  SEQ=1:1 D   
  42           .R  REC
  43           .Q :REC=""
  44           .Q :REC["XXXX XXXX"
  45           .S  ^CHMZHOLD ($J,"SXC_R EVERSAL",S EQ)=REC
  46           Q
  47           ;
  48   PROCESS ;T HIS FUNCTI ON "PROCES SES THE RE VERSAL CLA IMS. THIS  IS CALLED  FROM "END- OF-FILE" E RROR TRAP
  49           N  GTOT,RTOT, GCNT,RCNT, CHFYARR,CH RPDT,IDX
  50           S  GTOT=0,GCN T=0,RTOT=0 ,RCNT=0,CH RPDT=""
  51           O  CHFILE2:"N WS":1
  52           S  RESULT=$T 
  53           I  'RESULT Q 
  54           S  SEQ=""
  55           F  IDX=1:1 S  SEQ=$O(^CH MZHOLD($J, "SXC_REVER SAL",SEQ))  Q:SEQ=""   D    
  56           .S  DATA=$G(^ CHMZHOLD($ J,"SXC_REV ERSAL",SEQ ))
  57           .Q :DATA=""
  58           .D  CHECKREC                                                                                     ; DE TERMINE IF  THE CLAIM  REVERSAL  WAS SUCCES SFUL
  59           .I  STAT=1 D                                                                                     ; SU CCESSFUL R EVERSAL RE TURNS STAT =1
  60           .. D MAIN^CHM XRP23
  61           .. S:$P(^CHMX RX(CHI,0), "^",8)="Z"  ^CITIREV( $J,IDX)=ED IDATA ; IF  CITI, SAV E CLM INDI CES FOR EM AIL
  62           .D  OUTPUT                                                                                                ; RESP ONSE FILE  OUTPUT 
  63           D  END                                                                                                    ; SHUT  DOWN & CL EAN UP OPE RATIONS
  64           Q
  65           ;
  66   CHECKREC          ;Th is checks  to see if  it is a va lid record
  67           ;1  - Claim R eversal Su ccessful
  68           ;2  - Invalid  Claim
  69           ;3  - SSN Mis match
  70           ;4  - RX Numb er Mismatc h
  71           ;5  - Claim P reviously  Reversed
  72           ;6  - Claim N ot Complet e
  73           ;  checks tha t the ssn  /rx number  matches R X Batch da ta
  74           ;  CHECK that  it's an S XC claim
  75           ;  Check to s ee that cl aim is in  a complete  status... no need to  reverse r ejects
  76           ;  Check to s ee if alre ady revers ed/recoupe d
  77           S  STAT=""
  78           S: CHRPDT=""  CHRPDT=$E( DATA,1,8)
  79           S  INBSSN=$E( DATA,75,83 )                           ; MO DIFIED 12/ 21/2011 DL B EXTRACT  INDEX: WAS  70,78
  80           S  INRXNUM=$E (DATA,17,2 8)                                   ; MODI FIED 12/21 /2011 DLB  EXTRACT IN DEX: WAS 1 7,23
  81           S  INRXNUM=$$ TRIM^CHTFL IB(INRXNUM )                ; MO DIFIED 12/ 21/2011 DL B REMOVE T RAILING SP ACES
  82           S  INCLMX=$E( DATA,127,1 46)                                  ; MODI FIED 12/21 /2011 DLB  EXTRACT IN DEX: WAS 1 22,141
  83           S  INVAMT=+$E (DATA,147, 154)                                 ; MODI FIED 12/21 /2011 DLB  EXTRACT IN DEX: WAS 1 42,149
  84           S  INCLM=$P(D ATA,"/",2)
  85           D  DEBUG("CHM XRP22: CHE CKREC: CLM #: ",INCLM )
  86           S: $E(INCLM,1 ,3)="CHV"  INCLM=$E(I NCLM,($L(I NCLM)-6),$ L(INCLM))             ; FIRST 3  LETTERS AR E CHAMPVA  ID: "CHV"
  87           D  DEBUG("CHM XRP22: CHE CKREC: EXT RACTED CLM #: ",INCLM )
  88           I  INCLM="" S  STAT=2 Q
  89           S  X1=0,X1=$O (^CHMINDEX ("B",INCLM ,X1))                                       ; MASTER C LAIM INDEX  FILE: "I"  VALUE FOR  CLAIM NUM BER
  90           D  DEBUG("CHM XRP22: CHM INDEX(""B" ",INCLM,X1 )= ",X1)
  91           I  X1="" S ST AT=2 Q
  92           S  OCPT=X1
  93           D  PROGTYP^CH FCD001
  94           S  CHEDI=$O(@ (GLPAY_"OC PT,""ZEMC" ",""SXC"", """")"))                ; UNDOCU MENTED XRE F TO ^CHMP AY()
  95           D  DEBUG("CHM XRP22: CHE CKREC: CHE DI= ",CHED I)
  96           I  CHEDI="" S  STAT=2 Q
  97           S  EDIDATA=$P ($G(@(GLPA Y_"OCPT,"" ZEMC"",""S XC"",CHEDI )")),"^",1 )
  98           D  DEBUG("CHM XRP22: CHE CKREC: EDI DATA= ",ED IDATA)
  99           I  $P(@(GLPAY _"OCPT,0)" ),"^",2)'= "4" S STAT =6 Q                             ; 4=COMPLE TE; CANNOT  REVERSE I NCOMPLETE  CLAIM
  100           D  DEBUG("CHM XRP22: CHE CKREC: CHM PAY= ",$P( $G(@(GLPAY _"OCPT,5)" )),"^",6))  
  101           I  $P($G(^CHM PAY(OCPT,5 )),"^",6)= "1" S STAT =5 Q                             ; 1= RESET  MCCR RESE T FLAG 
  102           S  CHI=$P(EDI DATA,"*",1 )
  103           S  CHJ=$P(EDI DATA,"*",2 )
  104           S  CHK=$P(EDI DATA,"*",3 )
  105           I  CHI=""!(CH J="")!(CHK ="") S STA T=2 Q
  106           D  DEBUG("CHM XRX: I^J^K = ",CHI_"^ "_CHJ_"^"_ CHK)
  107           S  BSSN=$P($G (^CHMXRX(C HI,100,CHJ ,100,CHK,0 )),"^",4)
  108           S  RXNUM=$P($ G(^CHMXRX( CHI,100,CH J,100,CHK, 1)),"^",1)
  109           D  DEBUG("CHM XRP22: CHE CKREC: INB SSN/RXNUM=  ",BSSN_"^ "_RXNUM)
  110           I  INBSSN'=BS SN S STAT= 3 Q                                                                              ; FAIL ED TO MATC H BENE SSN
  111           I  INRXNUM'=R XNUM S STA T=4 Q                                                                   ; FA ILED TO MA TCH PRESCR IPTION NUM BER
  112           S  STAT=1
  113           Q
  114           ;
  115           ;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;
  116           ;  CREATE THE  RESPONSE  FILE
  117           ;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;
  118           ;
  119   OUTPUT
  120           N  PDT,CLM,VA MT,CHKNUM
  121           S  PDT="",VAM T="",CHKNU M="",CLM=" "
  122           I  STAT=1 D
  123           .S  TXDATE=$E ($P(^CHMXR X(CHI,0)," ^",2),1,7)
  124           .S  VAL=$P(@( GLPAY_"OCP T,0)"),"^" ,10)
  125           .S  CHFY=$$FY R4^CHTFLIB ($P(VAL,". ",1))
  126           .S  YR=$$FMYR ^CHTFLIB(V AL)
  127           .S  PDT=YR_$E (VAL,4,5)_ $E(VAL,6,7 )
  128           .S  CHKNUM=$P ($G(@(GLPA Y_"OCPT,1) ")),"^",16 )
  129           .S  CLM=$P($G (@(GLPAY_" OCPT,0)")) ,"^",1)
  130           .S  VAMT=$FN( $P($G(@(GL PAY_"OCPT, 1)")),"^", 14),"",2)
  131           .S  RTOT=RTOT +VAMT,RCNT =RCNT+1
  132           .S  FYARR(CHF Y)=$G(FYAR R(CHFY))+V AMT
  133           S  DATA2=$$LJ (CLM,7)_$$ LJ(PDT,8)_ $$RJ(VAMT, 8)_$$LJ(CH KNUM,10)_$ $LJ(STAT,1 )
  134           U  CHFILE2
  135           W  DATA_DATA2 ,!
  136           Q
  137           ;
  138           ;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;;
  139           ;  CLOSED FIL ES AND KIL L WORKING  ARRAYS
  140           ;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;;
  141           ;
  142   END     ;
  143           U  CHFILE2
  144           W  !,"/////// ////////// / [End Of  File - Tot  Recoupmen t = $"_$FN (RTOT,"",2 )_" - ("_$ E(CHRPDT,5 ,6)_"/"_$E (CHRPDT,7, 8)_"/"_$E( CHRPDT,1,4 )_")] //"
  145           C  CHFILE2                                                             ; CLOSE  REPORT FIL E
  146           I  $D(^CITIRE V($J)) D B LDCITI(RTO T,GTOT,CHR PDT)                    ; BUILD  UTILITY($J ) BODY OF  EMAIL FOR  CITI
  147           E   D BLDSXC( RTOT,GTOT, CHRPDT)                                                        ;  BUILD ^UTI LITY($J)BO DY OF EMAI L FOR SXC
  148           K  ^CHMZHOLD( $J),^CITIR EV($J)
  149           C: $D(DBGREV)  DBGREV                                                                            ; CL OSE DEBUG  LOGFILE
  150           Q
  151           ;
  152           ;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;
  153           ;  UTILITY FU NCTIONS US ED IN THE  REVERSAL P ROCESSING
  154           ;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;
  155           ;
  156   RJ(VAL,LEN )                       ; RIGHT  JUSTIFY FU NCTION 
  157           N  X,Y
  158           S  Y=VAL
  159           F  X=$L(VAL)+ 1:1:LEN S  Y=" "_Y
  160           Q  Y
  161   LJ(VAL,LEN )                       ; LEFT J USTIFY FUN CTION 
  162           N  X,Y
  163           S  Y=VAL 
  164           F  X=$L(VAL)+ 1:1:LEN S  Y=Y_" "
  165           Q  Y
  166           ;
  167   ERROR   ;  MUST GET T O END OF F ILE ERROR,  THEN PROC ESS THE DA TA RECEIVE D
  168           I  $ZE["ENDOF FILE" C CH FILE D PRO CESS Q
  169           C  CHFILE
  170           G  ^%ET
  171           Q
  172           ;H R-PBM-PHAS E 1-End
  173           ;  CONVERT FI LEMAN DATE  TO EXTERN AL MM-DD-Y YYY FORMAT
  174   DTCVRT(FMD ATE)
  175           N  EXTDATE
  176           S  EXTDATE=$E (FMDATE,4, 5)_"-"_$E( FMDATE,6,7 )_"-"_($E( FMDATE,1,3 )+1700)
  177           Q  EXTDATE
  178           ;        
  179           ;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;
  180           ;  BLDSXC LOA DS THE ^UT ILITY ARRA Y WITH THE  INFORMATI ON TO BE S ENT VIA MA ILMAN
  181           ;  FOR THE RE VERSAL PRO CESSES (SX C, CITI)
  182           ;  VARIABLE D ESCRIPTION S: 
  183           ;  RTOT           REVERS AL TOTAL F OR THIS CL AIM REVERS AL FILE
  184           ;  GTOT           GRAND  TOTAL OF C LAIMS $$
  185           ;  CHRPDT         DATE O F PROCESSI NG
  186           ;  CHFY           FISCAL  YEAR TOTA LS $$
  187           ;  AMT            AMOUNT  REVERSED  FOR A FISC AL YEAR $$
  188           ;  CNT            COUNTE R USED TO  INDEX THE  ^UTILITY($ J) ARRAY
  189           ;  SUBJECT        MAILMA N SUBJECT  LINE
  190           ;  TEXT           BODY O F THE MAIL MAN MESSAG E (^UTILIT Y($J, SXC- REV))
  191           ;  GROUP MAIL MAN ADDRES S GROUP 
  192           ;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;
  193           ;
  194   BLDSXC(RTO T,GTOT,CHR PDT)
  195           N  CHFY,AMT,C NT,SUBJECT ,TEXT,GROU P
  196           N  CHI,CHJ,CH K,UCNT,CLM IDX,MXRXI, NPIARRAY,N PICNT,TVEN DI,TCLMID, TNPI,TAMT, N1,N2,NPIR EC,TESTAMT
  197           S  (AMT,CNT)= 0,CHFY=""                                                         ; INIT THE  NEW VARIA BLES
  198           K  ^UTILITY($ J,"SXC-REV ")
  199           S  CNT=CNT+1, ^UTILITY($ J,"SXC-REV ",1,CNT,0) ="Tot Reco upment = $ "_$FN(RTOT ,"",2)_" o f $ "_$FN( GTOT,"",2) _" - ("_$E (CHRPDT,5, 6)_"/"_$E( CHRPDT,7,8 )_"/"_$E(C HRPDT,1,4) _")"
  200           S  CNT=CNT+1, ^UTILITY($ J,"SXC-REV ",1,CNT,0) =" "
  201           F   S CHFY=$O (FYARR(CHF Y)) Q:CHFY =""  D
  202           .S  AMT=FYARR (CHFY)
  203           .S  CNT=CNT+1 ,^UTILITY( $J,"SXC-RE V",1,CNT,0 )="Fiscal  Year "_CHF Y_": "_"$  "_$FN(AMT, "",2)
  204           S  CNT=CNT+1, ^UTILITY($ J,"SXC-REV ",1,CNT,0) =" "
  205           S  CNT=CNT+1, ^UTILITY($ J,"SXC-REV ",1,CNT,0) ="Please i nitiate ap propriate  recoupment  procedure s."
  206           S  CNT=CNT+1, ^UTILITY($ J,"SXC-REV ",1,CNT,0) =" "
  207           S  CNT=CNT+1, ^UTILITY($ J,"SXC-REV ",1,CNT,0) ="     E N  D - O F -  R E P O R  T "
  208           S  SUBJECT="S XC Recoupm ent Notice ",TEXT="^U TILITY($J, ""SXC-REV" ",1,",GROU P="G.EDI T ECH GROUP"
  209           D  VMAIL(SUBJ ECT,TEXT,G ROUP)
  210           Q
  211           ;
  212           ;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;
  213           ;  BUILD THE  ^UTILITY($ J) ARRAY F OR CITI RE VERSALS &  SEND EMAIL
  214           ;  RTOT           REVERS AL TOTAL F OR THIS CL AIM REVERS AL FILE
  215           ;  GTOT           GRAND  TOTAL OF C LAIMS $$
  216           ;  CHRPDT         DATE O F PROCESSI NG
  217           ;  CHFY           FISCAL  YEAR TOTA LS $$
  218           ;  AMT            AMOUNT  REVERSED  FOR A FISC AL YEAR $$
  219           ;  CNT            COUNTE R USED TO  INDEX THE  ^UTILITY($ J) ARRAY
  220           ;  SUBJECT        MAILMA N SUBJECT  LINE
  221           ;  TEXT           BODY O F THE MAIL MAN MESSAG E (^UTILIT Y($J, SXC- REV))
  222           ;  GROUP MAIL MAN ADDRES S GROUP 
  223           ;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;
  224           ;
  225   BLDCITI(RT OT,GTOT,CH RPDT)
  226           N  CHFY,AMT,C NT,NTAB,SU BJECT,TEXT ,GROUP
  227           N  CHI,CHJ,CH K,UCNT,CLM IDX,MXRXI, NPIARRAY,N PICNT,TVEN DI,TCLMID, PAYI,TNPI, TAMT,N1,N2 ,NPIREC,TE STAMT
  228           S  (AMT,CNT,N PICNT)=0,C HFY="",NTA B="          "                                               ; IN IT THE NEW  VARIABLES
  229           K  ^UTILITY($ J,"SXC-REV ")
  230           ;S  CNT=CNT+1 ,^UTILITY( $J,"SXC-RE V",1,CNT,0 )="Tot Rec oupment =  $"_$FN(RTO T,"",2)_"  of $ "_$FN (GTOT,"",2 )_" - ("_$ E(CHRPDT,5 ,6)_"/"_$E (CHRPDT,7, 8)_"/"_$E( CHRPDT,1,4 )_")"
  231           ;S  CNT=CNT+1 ,^UTILITY( $J,"SXC-RE V",1,CNT,0 )=" "
  232           ;F   S CHFY=$ O(FYARR(CH FY)) Q:CHF Y=""  D
  233           .; S AMT=FYAR R(CHFY)
  234           .; S CNT=CNT+ 1,^UTILITY ($J,"SXC-R EV",1,CNT, 0)="Fiscal  Year "_CH FY_": "_"$  "_$FN(AMT ,"",2)
  235           S  CNT=CNT+1, ^UTILITY($ J,"SXC-REV ",1,CNT,0) =" "
  236           S  CNT=CNT+1, ^UTILITY($ J,"SXC-REV ",1,CNT,0) ="Please i nitiate ap propriate  recoupment  procedure s for the  following  CITI Pharm acy claims  sent by S XC on "_$E (CHRPDT,5, 6)_"/"_$E( CHRPDT,7,8 )_"/"_$E(C HRPDT,1,4) _")"
  237           S  CNT=CNT+1, ^UTILITY($ J,"SXC-REV ",1,CNT,0) =" "
  238           S  CLMIDX=0 F   S CLMIDX =$O(^CITIR EV($J,CLMI DX)) Q:CLM IDX=""  D             ; GET CLM  REVERSAL I NDICES
  239           .  S MXRXI=^C ITIREV($J, CLMIDX),CH I=$P(MXRXI ,"*",1),CH J=$P(MXRXI ,"*",2),CH K=$P(MXRXI ,"*",3)
  240           .  S TVENDI=$ P(^CHMXRX( CHI,100,CH J,2),"^",1 )                                                 ; PT R TO ^CHMV EN() VENDO R ID
  241           .  S PAYI=$P( ^CHMXRX(CH I,100,CHJ, 100,CHK,2) ,"^",1)                                           ; CH AMPVA CLAI M ID
  242           .  S TCLMID=$ P(^CHMPAY( PAYI,0),"^ ",1)                                                                  ; CHAM PVA CLAIM  ID->CHMPAY  CLAIM NUM BER          
  243           .  S TNPI=$P( ^CHMVEN(TV ENDI,1),"^ ",19)                                                                 ; VEND OR NPI VAL UE ^CHMVEN (I,1),"^", 19
  244           .  S TAMT=$P( ^CHMXRX(CH I,100,CHJ, 100,CHK,1) ,"^",4)                                           ; TO TAL AMOUNT  DUE
  245           .  S NPICNT=N PICNT+1,NP IARRAY(TNP I,NPICNT)= TNPI_U_TCL MID_U_TAMT            ; BUILD NP I ARRAY FO R SORT(LOW  TO HIGH)
  246           .  I $G(TNPI) ']"" D DEB UG("VMAIL2 : NPI not  defined fo r BATCH [" ,CHI_"]")
  247           .  D DEBUG("N PIARRAY: ^ CHMXRX:"_C HI_",100," _CHJ_",100 ,"_CHK_",2 )=NPI^CLAI M ID^AMOUN T: ",TNPI_ "^"_TCLMID _"^"_TAMT)
  248           I  '$D(NPIARR AY) D DEBU G("NPIARRA Y NOT DEFI NED; we ha ve a probl em","") Q
  249           S  N1=0 F  S  N1=$O(NPIA RRAY(N1))  Q:N1']""   D     ;NEE D TWO LOOP S TO ENSUR E MULTIPLE  PHARMACY  #s HANDLED
  250           .  S N2=0 F   S N2=$O(NP IARRAY(N1, N2)) Q:'N2   D
  251           .  . S NPIREC =NPIARRAY( N1,N2)
  252           .  . S TESTAM T=$P(NPIRE C,"^",3) I  $E(TESTAM T,1)'="$"  S $P(NPIRE C,"^",3)=" $"_TESTAMT
  253           .  . S CNT=CN T+1,^UTILI TY($J,"SXC -REV",1,CN T,0)="NPI:  " _$P(NPI REC,"^")_N TAB_"CLAIM #: "_$P(NP IREC,"^",2 )_NTAB_"AM OUNT: "_$P (NPIREC,"^ ",3)
  254           .  . W !,^UTI LITY($J,"S XC-REV",1, CNT,0)
  255           S  CNT=CNT+1, ^UTILITY($ J,"SXC-REV ",1,CNT,0) ="     E N  D - O F -  R E P O R  T "
  256           S  SUBJECT="C ITI Recoup ment Notic e",TEXT="^ UTILITY($J ,""SXC-REV "",1,",GRO UP="G.CITI  EDI REVER SAL"
  257           D  VMAIL(SUBJ ECT,TEXT,G ROUP)
  258           Q 
  259           
  260           ;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;
  261           ;  EMAIL UTIL ITIES SEND  THE REVER SAL INFORM ATION TO T HE GROUPS  DEFINED. T HIS REPLAC ES 
  262           ;  INDIVIDUAL  EMAIL ADD RESES THAT  REQUIRE O UTLOOK CON NECTIONS
  263           ;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;
  264           ;
  265   VMAIL(SUBJ ECT,TEXT,G ROUP)
  266           D  DEBUG("SUB JECT: ",SU BJECT)
  267           D  DEBUG("GRO UP: ",GROU P)
  268           D  DEBUG("TEX T: ",TEXT)
  269           D  DMPUTL(CNT )                                                                 ; LOG THE  ^UTILITY($ J) CONTENT S
  270           S  DUZ=.5                                                                               ;  DEFAULT DU Z
  271           S  XMDUZ=.5                                                                             ;  POSTMAN DU Z
  272           S  XMSUB=SUBJ ECT                                                      ; SET SU BJECT LINE  FOR EMAIL
  273           S  XMTEXT=TEX T                                                                 ; SET TEXT  ARRAY FOR  BODY OF E MAIL
  274           S  XMY(GROUP) =""                                                      ; SET TH E GROUP TO  RECEIVE E MAIL
  275           S  U="^" D ^X MD                                                                ; SEND IT  OFF
  276           Q
  277           ;
  278           ;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;
  279           ;  TEST SETUP  FOR RUNNI NG THE BLD SXC FUNCTI ON
  280           ;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;
  281           ;
  282   TSTSXC
  283           N  RTOT,GTOT, CHRPDT,FYA RR
  284           S  RTOT=17555 .53,GTOT=3 051.22,CHR PDT=201203 21,FYARR=" "
  285           D  BLDSXC(RTO T,GTOT,CHR PDT)
  286           C: $D(DBGREV)  DBGREV
  287           K  DBGREV
  288           Q
  289           ;
  290           ;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;
  291           ;  TEST FILE  RETRIEVAL  FROM USER  FOR TESTIN G THE REVE RSAL PROCE SS
  292           ;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;;
  293           ;
  294   GETFILE                   ; GETF ILE FUNCTI ON USED FO R TESTING;  ALLOWS US ER TO SPEC IFY FILENA MES
  295           S  POP=0
  296           R  "ENTER INP UT FILE NA ME W/EXT:  ",INFILE
  297           R  !,"ENTER O UTPUT FILE  NAME W/EX T: ",INFIL E2
  298           I  INFILE=""  S POP=1 Q
  299           I  INFILE2=""  S POP=1 Q
  300           S  CHFILE="HA C_HFS$:[KE RMIT.REVER SAL]"_INFI LE
  301           S  CHFILE2="H AC_HFS$:[K ERMIT.REVE RSAL]"_INF ILE2
  302           Q
  303           ;
  304           ;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;
  305           ;  TEST ENTRY  POINT FOR  THE BLDCI TI() FUNCT ION
  306           ;  ^CHMXRX(17 335 NODE I N DEV HAS  MULTIPLE C LAIMS SET  UP FOR TES TING
  307           ;  THE REMAIN ING VARIAB LES HAVE B EEN INITIA LIZED TO E NSURE NO C RASHES FOR  TEST
  308           ;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;
  309           ;
  310   TSTCITI
  311           N  RTOT,GTOT, CHRPDT,FYA RR,CIDX
  312           K  DBGREV
  313           S  RTOT=17555 .53,GTOT=3 051.22,CHR PDT=201203 21,FYARR=" "
  314           F  IDX=1:1 Q: IDX>12  S  ^CITIREV($ J,IDX)="17 335*1*"_ID X
  315           S  CIDX=IDX
  316           F  IDX=1:1 Q: IDX>2  S ^ CITIREV($J ,CIDX+IDX) ="17336*1* "_IDX 
  317           D  BLDCITI(RT OT,GTOT,CH RPDT)
  318           C: $D(DBGREV)  DBGREV
  319           K  DBGREV
  320           K  ^CITIREV($ J)
  321           Q 
  322           ;
  323           ;X XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXX
  324           ;  THE FOLLOW ING FUNCTI ONS HAVE B EEN OBSOLE TED IN FAV OR OF A MO RE MODULAR  APPROACH
  325           ;  TO BUILDIN G THE VMAI L MESSAGIN G.
  326           ;X XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXX
  327           ;
  328   VMAILX
  329           K  ^UTILITY($ J,"SXC-REV ")
  330           S  ^UTILITY($ J,"SXC-REV ",1,1,0)=" Tot Recoup ment = $"_ $FN(RTOT," ",2)_" of  $ "_$FN(GT OT,"",2)_"  - ("_$E(C HRPDT,5,6) _"/"_$E(CH RPDT,7,8)_ "/"_$E(CHR PDT,1,4)_" )"
  331           S  ^UTILITY($ J,"SXC-REV ",1,2,0)="  "
  332           S  CNT=3 
  333           S  CHFY="" 
  334           F   S CHFY=$O (FYARR(CHF Y)) Q:CHFY =""  D
  335           .S  AMT=FYARR (CHFY)
  336           .S  ^UTILITY( $J,"SXC-RE V",1,CNT,0 )="Fiscal  Year "_CHF Y_": "_"$  "_$FN(AMT, "",2)
  337           .S  CNT=CNT+1
  338           S  CNT=CNT+1
  339           S  ^UTILITY($ J,"SXC-REV ",1,CNT,0) =" "
  340           S  CNT=CNT+1
  341           S  ^UTILITY($ J,"SXC-REV ",1,CNT,0) ="Please i nitiate ap propriate  recoupment  procedure s."
  342           S  DUZ=.5                                                                                                                                                               ; DEFAULT  DUZ
  343           S  XMDUZ=.5,X MSUB=SUBJE CT                                                                                        ; POSTMA N DUZ
  344           S  XMTEXT=TEX T
  345           I  $$ENVIR^CH TFLIB()="L IVE" S XMY (" PI                  
")=""                ; "LIVE" E DI TECH GR OUP
  346           I  $$ENVIR^CH TFLIB()="T ST" S XMY( "
P II ")=""                  ; "TEST" E DI TECH GR OUP
  347           I  $$ENVIR^CH TFLIB()="D EV" S XMY( 450978)=""
  348           S  U="^" D ^X MD
  349           Q
  350           ;
  351   VMAIL2X
  352           N  N1,N2,NPIA RRAY,NPICN T,NPIREC
  353           N  NTAB,TAMT, TPHARMX,TC LMID,TCLMI EN,TNPI,TV ENDI,UCNT
  354           S  (UCNT,NPIC NT)=0,NTAB ="          ",U="^"
  355           S  TXDATE=$$D TCVRT^CHMX RP22(TXDAT E)
  356           K  ^UTILITY($ J,"SXC-CIT IREV")
  357           S  UCNT=UCNT+ 1,^UTILITY ($J,"SXC-C ITIREV",1, UCNT,0)="P lease init iate appro priate rec oupment pr ocedures f or the fol lowing CIT I Pharmacy  claims se nt by SXC  on "_TXDAT E
  358           ;W  !,^UTILIT Y($J,"SXC- CITIREV",1 ,UCNT,0)
  359           S  UCNT=UCNT+ 1,^UTILITY ($J,"SXC-C ITIREV",1, UCNT,0)=""
  360           ;W  !,^UTILIT Y($J,"SXC- CITIREV",1 ,UCNT,0)
  361           ;  Note you n eed one fo r loop at  the Phamar cy Number  #100
  362           ;   then you  need anoth er LOOP at  the EDI C LAIM Multi ple.
  363           ;  Sort By NP I in ascen ding order
  364           S  TPHARMX=0  F TPHARMX= $O(^CHMXRX (TBATIEN,1 00,TPHARMX )) Q:TPHAR MX=""  D
  365           .  ;Could you  have mult iple pharm acy Number s within t he same ba tch
  366           .  S TVENDI=$ P(^CHMXRX( TBATIEN,10 0,TPHARMX, 2),"^")
  367           .  S TCLMIEN=
  368           .  F  S TCLMI EN=$O(^CHM XRX(TBATIE N,100,TPHA RMX,100,TC LMIEN)) Q: 'TCLMIEN   D
  369           .  . S TCLMID =$P(^CHMXR X(TBATIEN, 100,TPHARM X,100,TCLM IEN,0),"^" )
  370           .  . S TNPI=$ P(^CHMVEN( TVENDI,1), "^",19)                                             ;  VENDOR NPI  VALUE ^CH MVEN(D0,1) = P19
  371           .  . S TAMT=$ P(^CHMXRX( TBATIEN,10 0,TPHARMX, 100,TCLMIE N,2),"^",1 0)
  372           .  . S NPICNT =NPICNT+1
  373           .  . I $G(TNP I)']"" D D EBUG("VMAI L2: NPI no t defined  for BATCH  [",TBATIEN _"]")
  374           .  . S NPIARR AY(TNPI,NP ICNT)=TNPI _U_TCLMID_ U_TAMT
  375           .  . D DEBUG( "NPIARRAY:  ^CHMXRX:" _TBATIEN_" ,100,"_TPH ARMX_",100 ,"_TCLMIEN _",2)=NPI^ CLAIM ID^A MOUNT: ",T NPI_"^"_TC LMID_"^"_T AMT)
  376           I  '$D(NPIARR AY) D DEBU G("NPIARRA Y NOT DEFI NED in VMA IL3 we hav e a proble m","") Q
  377           S  N1=0 F  S  N1=$O(NPIA RRAY(N1))  Q:N1']""   D     ;NEE D TWO LOOP S TO ENSUR E MULTIPLE  PHARMACY  #s HANDLED
  378           .  S N2=0 F   S N2=$O(NP IARRAY(N1, N2)) Q:'N2   D
  379           .  . S NPIREC =NPIARRAY( N1,N2)
  380           .  . S TESTAM T=$P(NPIRE C,"^",3) I  $E(TESTAM T,1)'="$"  S $P(NPIRE C,"^",3)=" $"_TESTAMT
  381           .  . S UCNT=U CNT+1,^UTI LITY($J,"S XC-CITIREV ",1,UCNT,0 )="NPI: "  _$P(NPIREC ,"^")_NTAB _"CLAIM#:  "_$P(NPIRE C,"^",2)_N TAB_"AMOUN T: "_$P(NP IREC,"^",3 )
  382           .  . ;W !,^UT ILITY($J," SXC-CITIRE V",1,UCNT, 0)
  383           S  UCNT=UCNT+ 1,^UTILITY ($J,"SXC-C ITIREV",1, UCNT,0)=""
  384           ;W  !,^UTILIT Y($J,"SXC- CITIREV",1 ,UCNT,0)
  385           S  UCNT=UCNT+ 1,^UTILITY ($J,"SXC-C ITIREV",1, UCNT,0)="      E N D  - O F - R  E P O R T  "
  386           ;W  !,^UTILIT Y($J,"SXC- CITIREV",1 ,UCNT,0)                                                                                        ;  UTILITY CO NTAINS REV ERSAL INFO
  387           I  $D(TSTVMAI L2) D DMPU TL(UCNT)
  388           S  XMDUZ=.5,D UZ=.5,U="^ "                                                                                                                                     ; MAILMA N DUZ, MAK E SURE "U"  INITIALIZ ED
  389           S  XMSUB="CIT I Recoupme nt Notice"                                                                                                          ; SU BJECT LINE  FOR EMAIL
  390           S  XMTEXT="^U TILITY($J, ""SXC-CITI REV"",1,"                                                                                       ;  NPI VALUES  FOR REVER SAL
  391           I  $$ENVIR^CH TFLIB()="L IVE" S XMY (" PI                  
")=""                ; "LIVE" M AIL LIST
  392           ;I  $$ENVIR^C HTFLIB()=" TST" S XMY (" PI
")=""      ; "TEST" M AIL LIST
  393           I  $$ENVIR^CH TFLIB()="T ST" S XMY( "G.EDI TEC H GROUP")= ""                                                       ; "TEST"  MAIL LIST
  394           I  $$ENVIR^CH TFLIB()="D EV" S XMY( "G.EDI TEC H GROUP")= ""                                                       ; "DEV"  MAIL LIST
  395           D  ^XMD
  396           Q
  397           ;
  398           ;X XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXX
  399           ;  END OF OBS OLETED VMA IL FUNCTIO NS
  400           ;X XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXX
  401           ;
  402           ;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;
  403           ;  OUTPUT DEB UG STATEME NTS TO A L OGFILE.TXT  IN THE TA RGET DIREC TORY FOR T HE 
  404           ;  PRIMARY ST ATUS. THIS  FUNCTION  USES A PRE VIOUSLY CR EATED IO ( "LOGFILE") , OR
  405           ;  IF "LOGFIL E" IS NOT  DEFINED, O PENS A FIL E AN USES  THAT IO FO R DEBUG LO GGING.
  406           ;  NOTE: THE  SXC (PHARM ACY) CLAIM S ALL USE  THE SAME O UTPUT DIRE CTORY
  407           ;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;
  408           ;  EXAMPLE US AGE: D DEB UG("DEBUG  OUTPUT= ", VARIABLE)
  409           ;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;
  410           
  411           ;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;
  412           ;  DEBUG LOGG ING ROUTIN E USED TO  LOG THE FR ONT END ED IT PROCESS , INCLUDIN G THE 
  413           ;  RECORDS RE AD FROM TH E CLAIM FI LE, THE FU NCTIONS CA LLED TO PE RFORM THE  EDITS,
  414           ;  AND THE LO GGING OF T HE ERRORS  ENCOUNTERE D FROM THE  EDIT PROC ESS.
  415           ;  THE INTEND ED USE FOR  THIS FUNC TION IS IN   THE DEVE LOPMENT OR  TEST ENVI RONMENTS
  416           ;  AND TO ENS URE THAT I T IS NOT E XECUTED IN  THE "PROD UCTION" EN VIRONMENT
  417           ;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;
  418             
  419   DEBUG(STR, VALUE)
  420           ;        STR               A USER P ROVIDED ST RING DESCR IBING THE  VALUE (I.E . "RECORD  INFORMATIO N=",
  421           ;    VALUE        THE VA LUE TO BE  DISPLAYED  IN THE LOG  FOR THE L OGGING ENT RY.
  422           Q: $$ENVIR^CH TFLIB()="L IVE"       ; CHECK TH E CURRENT  WORKING EN VIRONMENT
  423           N  TMPIO
  424           S  TMPIO=$IO                                                                                              ; SAVE  THE CURRE NT IO VARI ABLE
  425           I  '$D(DBGREV ) D                                                                                ; IF  NO LOGFIL E CREATED,  CREATE ON E
  426           .S  DBGREV="H AC_HFS$:[K ERMIT.SXC] DBGREV.TXT "                       ; TARGET  OUTPUT DI R/FILENAME
  427           .O  DBGREV:"N WS":5 ; DE BUG OUTPUT  FILE                                       ; OPEN THE  LOGFILE
  428           .I  $D(CHFIO)  U DBGREV   W !,"TEST FILE= ",CH FIO                     ; RECORD  THE CLAIM  FILE BEIN G LOGGED
  429           .U  DBGREV  W  !,"PROCES S ID= ",$J                                                     ;  RECORD THE  PROCESS I D
  430           U  DBGREV W ! ,STR,VALUE                                                                ;  OUTPUT LOG GING STATE MENT
  431           U  TMPIO                                                                                                  ; REST ORE TO THE  ORIGINAL  IO
  432           Q         
  433           
  434   USERDUZ
  435           S  CHMFDUZ=0, CHMFDUZ=$O (^VA(200," B","USER,E DI",CHMFDU Z)) S:CHMF DUZ="" CHM FDUZ=9944
  436           I  CHMFDUZ'=9 944  D
  437           .I  CHMFDUZ=1 1422 S CHF ILE="DLB_" _CHFILE,CH FILE2="DLB _"_CHFILE2  Q                          ; DA VE B. DUZ
  438           Q
  439            
  440           ;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;
  441           ;  UTILITY FU NCTION FOR  VERIFYING  THE CONTE NTS OF THE  ^UTILITY( $J) ARRAY,
  442           ;  THE BODY O F THE EMAI L (XMTEXT) .
  443           ;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;; ;;;;;;;;;;
  444           ;
  445   DMPUTL(UCN T)
  446           N  CNT,VALUE
  447           F  CNT=1:1 Q: CNT>UCNT   D
  448           .D  DEBUG("UT ILITY DUMP  ",CNT_":  "_$G(^UTIL ITY($J,"SX C-REV",1,C NT,0)))
  449           Q
  450           ;
  451