| 1 | IBCIMG ;DSI/JSR - IBCI CLAIMS MANAGER MGR WORKSHEET ;6-MAR-2001
 | 
|---|
| 2 |  ;;2.0;INTEGRATED BILLING;**161**;21-MAR-94
 | 
|---|
| 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 |  ;; Program Description:
 | 
|---|
| 5 |  ;  This routine is a ListManager routine invoked when the user is in
 | 
|---|
| 6 |  ;  the bill edit screen.  This is a hybrid routine used for 3 reasons:
 | 
|---|
| 7 |  ;     1) To define and display all ListManager Template data with
 | 
|---|
| 8 |  ;        aesthetic consistency.
 | 
|---|
| 9 |  ;     2) To permit Overriding Access for override CM errors.
 | 
|---|
| 10 |  ;     3) To Define and display MailMan header claims specific
 | 
|---|
| 11 |  ;        information 
 | 
|---|
| 12 |  ;  IBCIMG is the main routine utilized when calling all 3 ListManager
 | 
|---|
| 13 |  ;  templates.  IBCIMG contains all the visual display details for all
 | 
|---|
| 14 |  ;  LM templates and is also utilized for the building of MailMan 
 | 
|---|
| 15 |  ;  Messages.
 | 
|---|
| 16 |  ;  Manager Access:
 | 
|---|
| 17 |  ;  Is only permitted when IBCIMG security key action is  
 | 
|---|
| 18 |  ;  allocated for Manager Override access.
 | 
|---|
| 19 |  ;  MailMan Messages:
 | 
|---|
| 20 |  ;  Invoked by IBCIUT6 with a call to HDR^IBCIMG.  
 | 
|---|
| 21 | EN ; -- main entry point
 | 
|---|
| 22 |  D EN^VALM("IBCI CLAIMSMANAGER MGR WK")
 | 
|---|
| 23 |  Q
 | 
|---|
| 24 |  ;
 | 
|---|
| 25 | HDR ; -- header code
 | 
|---|
| 26 |  S:'$D(IBCINAM) IBCINAM=IBCIPAD
 | 
|---|
| 27 |  S:'$D(IBCICLNO) IBCICLNO=IBCIPAD
 | 
|---|
| 28 |  S:'$D(IBCIBIR) IBCIBIR=IBCIPAD
 | 
|---|
| 29 |  S:'$D(IBCISEX) IBCISEX=IBCIPAD
 | 
|---|
| 30 |  S:'$D(IBCICNM) IBCICNM=IBCIPAD
 | 
|---|
| 31 |  S:'$D(IBCIASN) IBCIASN=IBCIPAD
 | 
|---|
| 32 |  S:'$D(IBCIBIL) IBCIBIL=IBCIPAD
 | 
|---|
| 33 |  S:'$D(IBCISRR) IBCISRR=IBCIPAD
 | 
|---|
| 34 |  S:'$D(IBCIEVV) IBCIEVV=IBCIPAD
 | 
|---|
| 35 |  S:'$D(IBCICAR) IBCICAR=IBCIPAD_IBCIPAD
 | 
|---|
| 36 |  S VALMHDR(1)=" Name: "_$E(IBCINAM,1,27)_"Sex: "_$E(IBCISEX,1)_"  DOB: "_$E(IBCIBIR,1,11)_"  Claim: "_$E(IBCICLNO,1,8)_"("_IBCISRR_")"
 | 
|---|
| 37 |  S VALMHDR(2)="  Ins: "_$E(IBCICAR,1,40)_"    Provider: "_$E(IBCIPRV,1,16)
 | 
|---|
| 38 |  S VALMHDR(3)="Coder: "_$E(IBCICNM,1,16)_"  Biller: "_$E(IBCIBIL,1,16)_"  Assigned: "_$E(IBCIASN,1,16)
 | 
|---|
| 39 |  Q
 | 
|---|
| 40 |  ;
 | 
|---|
| 41 | INIT ; -- init variables and list array
 | 
|---|
| 42 |  S QUITDP=0
 | 
|---|
| 43 |  K ^TMP("IBCIMG",$J),^TMP("IBCIMG1",$J)
 | 
|---|
| 44 |  S IBCICMP=""
 | 
|---|
| 45 |  F I=1:1:50 S IBCICMP=IBCICMP_" "
 | 
|---|
| 46 |  D BLD
 | 
|---|
| 47 |  Q
 | 
|---|
| 48 |  ;
 | 
|---|
| 49 | HELP ; -- help code
 | 
|---|
| 50 |  S X="?" D DISP^XQORM1 W !!
 | 
|---|
| 51 |  Q
 | 
|---|
| 52 |  ;
 | 
|---|
| 53 | EXIT ; -- exit code
 | 
|---|
| 54 |  ; User is prompted to enter comments for each claim that has error if
 | 
|---|
| 55 |  ; they exit before fixing the claim.
 | 
|---|
| 56 |  I ($G(Y)="Q")!($G(Y)=-1) D
 | 
|---|
| 57 |  . D UTIL2
 | 
|---|
| 58 |  . I Y'=1 S QUITDP=1 Q
 | 
|---|
| 59 |  . D CLEAR^VALM1,CLEAN^VALM10
 | 
|---|
| 60 |  . D COMMENT^IBCIUT7(IBIFN,1)
 | 
|---|
| 61 |  K ^TMP("IBCILM",$J)
 | 
|---|
| 62 |  K ^TMP("IBCIMG",$J),^TMP("IBCIMG1",$J)
 | 
|---|
| 63 |  Q
 | 
|---|
| 64 |  ;
 | 
|---|
| 65 | BLD ; build array for display
 | 
|---|
| 66 |  N IBRT,IBCISEQ,IBCICNT,IBTC,IBTW,IBSW,IBLR,IBLN,IBT,IBD,IBGRPB,IBGRPE
 | 
|---|
| 67 |  N ICDL,ICDSP,ICDXX,LMDX,LMDX2,MODS,MOD2,EOLM
 | 
|---|
| 68 |  S (IBCICNT,VALMCNT)=1
 | 
|---|
| 69 |  S IBPREV=""
 | 
|---|
| 70 |  S IBTC(1)=1,IBTC(2)=30,IBTW(1)=1,IBTW(2)=10,IBSW(1)=79,IBSW(2)=12
 | 
|---|
| 71 |  ; create LM display array
 | 
|---|
| 72 |  S IBCIERL=0 F  S IBCIERL=$O(^TMP("IBCILM",$J,IBCIERL)) Q:'IBCIERL  D
 | 
|---|
| 73 |  . S YARR=""
 | 
|---|
| 74 |  . S IBCIZZZ=^TMP("IBCILM",$J,IBCIERL,0)
 | 
|---|
| 75 |  . S IBCIYYY=$TR(IBCIZZZ,"~","^")
 | 
|---|
| 76 |  . S TYPE=$P($G(IBCIYYY),U,1)
 | 
|---|
| 77 |  . S IBLINE=$P($G(IBCIYYY),U,2)
 | 
|---|
| 78 |  . S IBCILEV=$P($G(IBCIYYY),U,3)
 | 
|---|
| 79 |  . I IBLINE'=IBPREV D
 | 
|---|
| 80 |  .. S LMLINE="Line: "_IBLINE
 | 
|---|
| 81 |  .. S IBCILD1=$G(^IBA(351.9,IBIFN,5,IBLINE,0))
 | 
|---|
| 82 |  .. S IBCILD2=$G(^IBA(351.9,IBIFN,5,IBLINE,2))
 | 
|---|
| 83 |  .. S LMBDATE=$P($G(IBCILD1),U,6)
 | 
|---|
| 84 |  .. S LMEDATE=$P($G(IBCILD1),U,7)
 | 
|---|
| 85 |  .. S LMPOS=$P($G(IBCILD1),U,8)
 | 
|---|
| 86 |  .. S LMTOS=$P($G(IBCILD2),U,11)
 | 
|---|
| 87 |  .. S LMUNIT=$P($G(IBCILD2),U,12)
 | 
|---|
| 88 |  .. S LMCPT=$P($G(IBCILD1),U,9)
 | 
|---|
| 89 |  .. S LMCHARG=$P($G(IBCILD1),U,11)
 | 
|---|
| 90 |  .. S MODS=$TR($P($G(^IBA(351.9,IBIFN,5,IBLINE,3)),U,1),",","")
 | 
|---|
| 91 |  .. S LMMOD=$E(MODS,1,6)
 | 
|---|
| 92 |  .. S MOD2=$E(MODS,7,14)
 | 
|---|
| 93 |  .. S YARR=$$SETFLD^VALM1(LMTOS,YARR,"TOS")
 | 
|---|
| 94 |  .. S YARR=$$SETFLD^VALM1(LMPOS,YARR,"POS")
 | 
|---|
| 95 |  .. S YARR=$$SETFLD^VALM1(($E(LMBDATE,5,6)_"/"_$E(LMBDATE,7,8)_"/"_$E(LMBDATE,1,4)),YARR,"BDATE")
 | 
|---|
| 96 |  .. S YARR=$$SETFLD^VALM1(($E(LMEDATE,5,6)_"/"_$E(LMEDATE,7,8)_"/"_$E(LMEDATE,1,4)),YARR,"EDATE")
 | 
|---|
| 97 |  .. S YARR=$$SETFLD^VALM1($J($FN(LMCHARG,"",2),7),YARR,"CHARGE")  ;JSR 6/22/2001 Number Format fix
 | 
|---|
| 98 |  .. S YARR=$$SETFLD^VALM1(LMCPT,YARR,"CPT")
 | 
|---|
| 99 |  .. S YARR=$$SETFLD^VALM1(LMMOD,YARR,"MODIFY")
 | 
|---|
| 100 |  .. S YARR=$$SETFLD^VALM1(LMUNIT,YARR,"UNITS")
 | 
|---|
| 101 |  .. S YARR=$$SETFLD^VALM1(LMLINE,YARR,"LINE")
 | 
|---|
| 102 |  .. I IBCICNT'=1 S IBT="",IBD="" S IBCICNT=$$SET(IBT,IBD,IBCICNT,1)
 | 
|---|
| 103 |  .. S IBT="",IBD=YARR S IBCICNT=$$SET(IBT,IBD,IBCICNT,1)
 | 
|---|
| 104 |  .. D CNTRL^VALM10((IBCICNT-1),1,79,IOINHI,IOINORM)
 | 
|---|
| 105 |  .. ; ******
 | 
|---|
| 106 |  .. D DIAG^IBCIUT1(IBIFN)
 | 
|---|
| 107 |  .. S ICDXX=""
 | 
|---|
| 108 |  .. S ICDSP=""
 | 
|---|
| 109 |  .. S ICDL=""
 | 
|---|
| 110 |  .. F  S ICDL=$O(^TMP("DISPLAY",$J,IBIFN,"ICD",IBLINE,ICDL)) Q:ICDL=""  D
 | 
|---|
| 111 |  ... S ICDXX=ICDXX_ICDSP_^TMP("DISPLAY",$J,IBIFN,"ICD",IBLINE,ICDL)
 | 
|---|
| 112 |  ... S ICDSP=" / "
 | 
|---|
| 113 |  .. S LMDX=" Dx's: "
 | 
|---|
| 114 |  .. S LMDX2=ICDXX
 | 
|---|
| 115 |  .. ;
 | 
|---|
| 116 |  .. ; esg - 10/26/01 - squeeze in 4th thru 7th modifiers on the 2nd line
 | 
|---|
| 117 |  .. I $L(ICDXX)<46,MOD2'="" S LMDX2=ICDXX_$J("",47-$L(ICDXX))_MOD2
 | 
|---|
| 118 |  .. S IBLR=1
 | 
|---|
| 119 |  .. S IBT=$E(LMDX,1,60),IBD=LMDX2 S IBCICNT=$$SET(IBT,IBD,IBCICNT,IBLR)
 | 
|---|
| 120 |  .. D CNTRL^VALM10((IBCICNT-1),1,79,IOINHI,IOINORM)
 | 
|---|
| 121 |  .. ;  ***** 
 | 
|---|
| 122 |  .. S IBGRPB=IBCICNT
 | 
|---|
| 123 |  . I IBLINE=IBPREV D
 | 
|---|
| 124 |  .. S IBGRPB=IBCICNT,IBLR=1
 | 
|---|
| 125 |  .. S IBT="",IBD="" S IBCICNT=$$SET(IBT,IBD,IBCICNT,IBLR)
 | 
|---|
| 126 |  . S IBGRPB=IBCICNT,IBLR=1
 | 
|---|
| 127 |  . S IBPREV=IBLINE
 | 
|---|
| 128 |  . S IBCISEQ=0 F  S IBCISEQ=$O(^TMP("IBCILM",$J,IBCIERL,IBCISEQ)) Q:'IBCISEQ  D
 | 
|---|
| 129 |  .. S IBCICM2="Error Level: "_IBCILEV
 | 
|---|
| 130 |  .. S IBCICM1="("_IBCIERL_") "_"ClaimsManager Error: "_TYPE_IBCICMP
 | 
|---|
| 131 |  .. S IBT=$E(IBCICM1,1,60),IBD=IBCICM2 S IBCICNT=$$SET(IBT,IBD,IBCICNT,IBLR)
 | 
|---|
| 132 |  .. S IBCIERT=0 F  S IBCIERT=$O(^TMP("IBCILM",$J,IBCIERL,IBCISEQ,IBCIERT)) Q:'IBCIERT  D
 | 
|---|
| 133 |  ... S IBGRPB=IBCICNT,IBLR=1
 | 
|---|
| 134 |  ... S DATA=$G(^TMP("IBCILM",$J,IBCIERL,IBCISEQ,IBCIERT,0))
 | 
|---|
| 135 |  ... S IBT="     ",IBD=DATA S IBCICNT=$$SET(IBT,IBD,IBCICNT,IBLR)
 | 
|---|
| 136 |  ... S IBGRPE=IBCICNT,IBCICNT=IBGRPB,IBLR=2
 | 
|---|
| 137 |  ... S (IBCICNT,VALMCNT)=$S(IBCICNT>IBGRPE:IBCICNT,1:IBGRPE)
 | 
|---|
| 138 |  F I=1:1:5 S IBT="",IBD="" S IBCICNT=$$SET(IBT,IBD,IBCICNT,1)
 | 
|---|
| 139 |  S EOLM=IBCICNT-7
 | 
|---|
| 140 |  ;
 | 
|---|
| 141 |  I EOLM=-1 S IBCICNT=$$SET(" ","",1,1),IBCICNT=$$SET("No ERRORS defined for claim EVENT DATE: "_IBCIEVV,"",2,1),VALMSG="No Errors found by ClaimsManager."
 | 
|---|
| 142 |  ;
 | 
|---|
| 143 |  K ^TMP("DISPLAY",$J)  ; This is the arrary for the dx & line assoc.
 | 
|---|
| 144 |  Q
 | 
|---|
| 145 |  ;
 | 
|---|
| 146 | SETO(RT,LN) ;
 | 
|---|
| 147 |  ; set line number of beginning line of ClaimsManager error message
 | 
|---|
| 148 |  S ^TMP("IBCIMG1",$J,+$G(RT))=+$G(LN)
 | 
|---|
| 149 |  Q
 | 
|---|
| 150 |  ;
 | 
|---|
| 151 | SET(TTL,DATA,LN,LR) ;
 | 
|---|
| 152 |  N IBY
 | 
|---|
| 153 |  S IBY=$J(TTL,IBTW(LR))_DATA D SET1(IBY,LN,IBTC(LR),(IBTW(LR)+IBSW(LR)))
 | 
|---|
| 154 |  S LN=LN+1
 | 
|---|
| 155 |  Q LN
 | 
|---|
| 156 |  ;
 | 
|---|
| 157 | SET1(STR,LN,COL,WD,RV) ; set up TMP array with screen data
 | 
|---|
| 158 |  N IBX S IBX=$G(^TMP("IBCIMG",$J,LN,0))
 | 
|---|
| 159 |  S IBX=$$SETSTR^VALM1(STR,IBX,COL,WD)
 | 
|---|
| 160 |  D SET^VALM10(LN,IBX) I $G(RV)'="" D CNTRL^VALM10(LN,COL,WD,IORVON,IORVOFF)
 | 
|---|
| 161 |  Q
 | 
|---|
| 162 | CBILL ;Cancel Bill
 | 
|---|
| 163 |  ; Uses core IB and takes user cancel and populates Comment
 | 
|---|
| 164 |  D CLEAR^VALM1
 | 
|---|
| 165 |  N IBQUIT,IBCCCC,I,IBCICNCL
 | 
|---|
| 166 |  S IBCICNCL=1
 | 
|---|
| 167 |  D PROCESS^IBCC(IBIFN) I IBQUIT=1 S VALMBCK="R" Q
 | 
|---|
| 168 |  S VALMBCK="Q"
 | 
|---|
| 169 |  K ^TMP("IBCILM",$J)
 | 
|---|
| 170 |  Q
 | 
|---|
| 171 | EBILL ; re-edit action no need to capture comments
 | 
|---|
| 172 |  ; Uses core IB routines and allows user to re-edit bill
 | 
|---|
| 173 |  D CLEAR^VALM1,CLEAN^VALM10
 | 
|---|
| 174 |  S IBCIREDT=1
 | 
|---|
| 175 |  Q
 | 
|---|
| 176 | ABILL ; override action
 | 
|---|
| 177 |  ; This Protocol driven option only appears for those user witht he override key
 | 
|---|
| 178 |  N IBCISNT
 | 
|---|
| 179 |  S VALMBCK="R"
 | 
|---|
| 180 |  S DIR(0)="Y"
 | 
|---|
| 181 |  S DIR("A")="Are you sure you want to Override the errors of this bill"
 | 
|---|
| 182 |  S DIR("B")="YES"
 | 
|---|
| 183 |  D ^DIR K DIR
 | 
|---|
| 184 |  Q:$D(DIRUT)
 | 
|---|
| 185 |  I Y'=1 Q
 | 
|---|
| 186 |  S VALMBCK="Q"
 | 
|---|
| 187 |  D CLEAR^VALM1,CLEAN^VALM10
 | 
|---|
| 188 |  S IBCISNT=5
 | 
|---|
| 189 |  D ST2^IBCIST
 | 
|---|
| 190 |  D COMMENT^IBCIUT7(IBIFN,2)
 | 
|---|
| 191 |  Q
 | 
|---|
| 192 | XIT ;
 | 
|---|
| 193 |  S VALMBCK="R"
 | 
|---|
| 194 |  D UTIL2
 | 
|---|
| 195 |  I Y'=1 Q
 | 
|---|
| 196 |  S VALMBCK="Q"
 | 
|---|
| 197 |  D CLEAR^VALM1,CLEAN^VALM10
 | 
|---|
| 198 |  D COMMENT^IBCIUT7(IBIFN,1)
 | 
|---|
| 199 |  Q
 | 
|---|
| 200 |  ;
 | 
|---|
| 201 | UTIL2 ;
 | 
|---|
| 202 |  S DIR(0)="Y"
 | 
|---|
| 203 |  S DIR("A")="Are you sure you want to Exit the ClaimsManager Interface process"
 | 
|---|
| 204 |  S DIR("B")="YES"
 | 
|---|
| 205 |  D ^DIR K DIR
 | 
|---|
| 206 |  I $D(DIRUT) S Y=1
 | 
|---|
| 207 |  K DIRUT
 | 
|---|
| 208 |  Q
 | 
|---|