| [613] | 1 | IBOCHK ;ALB/AAS - INTEGRATED BILLING - RX COPAY LINK CHECK ; 2-APR-91
 | 
|---|
 | 2 |  ;;2.0;INTEGRATED BILLING;**347**; 21-MAR-94;Build 24
 | 
|---|
 | 3 |  ;
 | 
|---|
 | 4 |  ;  -loop through range of IB reference numbers and verify
 | 
|---|
 | 5 |  ;   soft link exists and has link back to IB.
 | 
|---|
 | 6 |  ;
 | 
|---|
 | 7 | % ;
 | 
|---|
 | 8 |  ;***
 | 
|---|
 | 9 |  ;S XRTL=$ZU(0),XRTN="IBOCHK-1" D T0^%ZOSV ;start rt clock
 | 
|---|
 | 10 |  ;
 | 
|---|
 | 11 |  D HOME^%ZIS W @IOF,?24,"Verify IB - Pharmacy Co-Pay links",!!
 | 
|---|
 | 12 |  ;
 | 
|---|
 | 13 | ST S DIC="^IB(",DIC(0)="AEQMN",DIC("A")="START WITH REFERENCE NUMBER:",DIC("B")="" D ^DIC K DIC G:+Y<1 END S IBSTART=$P(Y,"^",2)
 | 
|---|
 | 14 |  ;
 | 
|---|
 | 15 | TO S DIC="^IB(",DIC(0)="AEQMN",DIC("A")="GO TO REFERENCE NUMBER: ",DIC("B")="" D ^DIC K DIC G:+Y<1 END S IBEND=$P(Y,"^",2)
 | 
|---|
 | 16 |  I IBSTART>IBEND W *7,!!,"End must not be less than beginning number",! G ST
 | 
|---|
 | 17 |  ;
 | 
|---|
 | 18 | DEV W !!,"*** Margin width of this output is 132 ***"
 | 
|---|
 | 19 |  W ! S %ZIS="QM",%ZIS("A")="Output Device: " D ^%ZIS G:POP END
 | 
|---|
 | 20 |  I $D(IO("Q")) S ZTRTN="DQ^IBOCHK",ZTDESC="IB Check Pharmacy Links",ZTSAVE("IB*")="" D ^%ZTLOAD K IO("Q") W ! G END
 | 
|---|
 | 21 |  ;
 | 
|---|
 | 22 |  U IO
 | 
|---|
 | 23 |  ;***
 | 
|---|
 | 24 |  ;I $D(XRT0) S:'$D(XRTN) XRTN="IBOCHK" D T1^%ZOSV ;stop rt clock
 | 
|---|
 | 25 |  ;
 | 
|---|
 | 26 | DQ ;  -entry point from queing
 | 
|---|
 | 27 |  ;S XRTL=$ZU(0),XRTN="IBOCHK-2" D T0^%ZOSV ;start rt clock
 | 
|---|
 | 28 |  ;
 | 
|---|
 | 29 |  S (IBCNT,IBECNT)=0,IBPAG=0,IBQUIT=0 S Y=DT D D^DIQ S IBHDT=Y D HDR
 | 
|---|
 | 30 |  S IBRNUM=IBSTART-1
 | 
|---|
 | 31 |  F  S IBRNUM=$O(^IB("B",IBRNUM)) Q:'IBRNUM!(IBRNUM>IBEND)!(IBQUIT)  S IBN="" F  S IBN=$O(^IB("B",IBRNUM,IBN)) Q:'IBN!(IBQUIT)  D CHK
 | 
|---|
 | 32 |  G END
 | 
|---|
 | 33 |  ;
 | 
|---|
 | 34 | CHK S IBCNT=IBCNT+1
 | 
|---|
 | 35 |  N DFN,IBNODE
 | 
|---|
 | 36 |  I '$D(^IB(IBN,0))!('$D(^IB(IBN,1))) S IBOERR=1,IBND=IBN G LINE ;xref to no entry
 | 
|---|
 | 37 |  S IBND=$S($D(^IB(IBN,0)):^(0),1:"")
 | 
|---|
 | 38 |  S IBSL=$P(^IB(IBN,0),"^",4) I 'IBSL S IBOERR=2 G LINE ;no softlink
 | 
|---|
 | 39 |  I +IBSL'=52 Q  ;not a pharmacy rx entry
 | 
|---|
 | 40 |  S IBRXN=$P($P(IBSL,";"),":",2),IBRXN1=$P($P(IBSL,";",2),":",2)
 | 
|---|
 | 41 |  S DFN=$P(^IB(IBN,0),"^",2)
 | 
|---|
 | 42 |  I $$FILE^IBRXUTL(IBRXN,.01)="" S IBOERR=3 G LINE ;rx deleted
 | 
|---|
 | 43 |  S IBNODE=$$IBND^IBRXUTL(DFN,IBRXN)
 | 
|---|
 | 44 |  I IBNODE'["^" S IBOERR=4 G LINE ;IB node missing
 | 
|---|
 | 45 |  I +IBNODE,'$P(IBNODE,"^",2) S IBOERR=5 G LINE ;pointer back to IB missing
 | 
|---|
 | 46 |  Q:'IBRXN1
 | 
|---|
 | 47 |  I +$$SUBFILE^IBRXUTL(IBRXN,IBRXN1,52,.01)=0 S IBOERR=6 G LINE ;refill deleted
 | 
|---|
 | 48 |  I $$IBNDFL^IBRXUTL(DFN,IBRXN,IBRXN1)'["^" S IBOERR=7 G LINE ;ib node on refill missing
 | 
|---|
 | 49 |  I +$$IBNDFL^IBRXUTL(DFN,IBRXN,IBRXN1)=0 S IBOERR=8 G LINE ;no data on node
 | 
|---|
 | 50 |  Q  ;pharmacy links okay.
 | 
|---|
 | 51 |  ;
 | 
|---|
 | 52 | HDR ;
 | 
|---|
 | 53 |  S IBPAG=IBPAG+1
 | 
|---|
 | 54 |  W:$E(IOST,1,2)["C-"!(IBPAG>1) @IOF
 | 
|---|
 | 55 |  W "Verify Integrated Billing links to Pharmacy",?IOM-22,IBHDT,"  Page:",IBPAG
 | 
|---|
 | 56 |  W !,"Verify IB Reference Number ",IBSTART," to ",IBEND
 | 
|---|
 | 57 |  W !,"REF. NO.",?12,"PATIENT",?34,"SSN",?40,"RX#",?50,"REFILL",?58,"IB LINK",?80,"CHARGE ID",?91,"TRANS",?97,"ERROR MESSAGE"
 | 
|---|
 | 58 |  S $P(IBLINE,"-",IOM)="" W !,IBLINE K IBLINE
 | 
|---|
 | 59 |  Q
 | 
|---|
 | 60 | LINE ;
 | 
|---|
 | 61 |  I $Y>(IOSL-5) D PAUSE^IBOUTL Q:IBQUIT  D HDR
 | 
|---|
 | 62 |  S IBECNT=IBECNT+1
 | 
|---|
 | 63 |  W !,$P(IBND,"^") S DFN=$P(IBND,"^",2)
 | 
|---|
 | 64 |  I $D(^DPT(+DFN,0)) D PID^VADPT W ?12,$E($P(^DPT(DFN,0),"^"),1,20),?34,VA("BID"),?40,$P($P(IBND,"^",8),"-"),?50,$P($P(IBSL,";",2),":",2),?58,IBSL,?80,$P(IBND,"^",11),?91,$P(IBND,"^",12)
 | 
|---|
 | 65 |  W ?97,$P($T(IBOERR+IBOERR),";;",2,99)
 | 
|---|
 | 66 |  Q
 | 
|---|
 | 67 |  ;
 | 
|---|
 | 68 | END ;
 | 
|---|
 | 69 |  ;***
 | 
|---|
 | 70 |  I $D(XRT0) S:'$D(XRTN) XRTN="IBOCHK" D T1^%ZOSV ;stop rt clock
 | 
|---|
 | 71 |  ;
 | 
|---|
 | 72 |  Q:$D(ZTQUEUED)  K IBCNT,IBECNT,IBEND,IHDT,IBN,IBND,IBPAG,IBQUIT,IBRNUM,IBRXN,IBRXN1,IBSL,IBSTART
 | 
|---|
 | 73 |  D ^%ZISC
 | 
|---|
 | 74 |  Q
 | 
|---|
 | 75 | IBOERR ;error messages
 | 
|---|
 | 76 |  ;;IB CROSS-REFERENCE BUT NO ENTRY
 | 
|---|
 | 77 |  ;;IB ENTRY MISSING SOFTLINK
 | 
|---|
 | 78 |  ;;RX ENTRY DELETED OR ARCHIVED
 | 
|---|
 | 79 |  ;;RX ENTRY MISSING IB NODE
 | 
|---|
 | 80 |  ;;RX ENTRY MISSING IB POINTER
 | 
|---|
 | 81 |  ;;RX REFILL DELETED
 | 
|---|
 | 82 |  ;;RX REFILL MISSING IB NODE
 | 
|---|
 | 83 |  ;;RX REFILL MISSING IB LINK
 | 
|---|