| [613] | 1 | IBOHRAR ;ALB/EMG-RELEASED CHARGES REPORT;APR 11 1997
 | 
|---|
 | 2 |  ;;2.0;INTEGRATED BILLING;**70,95,215,347**;21-MAR-94;Build 24
 | 
|---|
 | 3 |  ;
 | 
|---|
 | 4 | EN ; - Option entry point.
 | 
|---|
 | 5 |  N X,Y,ZTIO
 | 
|---|
 | 6 |  S (IBCRT,IBQUIT)=0,IBLINE="",$P(IBLINE,"-",IOM)=""
 | 
|---|
 | 7 |  D NOW^%DTC S Y=X X ^DD("DD") S IBNOW=Y D HOME^%ZIS
 | 
|---|
 | 8 |  W @IOF,!,"List of On Hold/Hold-Review Charges Released to AR"
 | 
|---|
 | 9 |  W !!?5,"This report will list all charges that were previously on"
 | 
|---|
 | 10 |  W !?5,"ON HOLD or HOLD-REVIEW status and currently have a status"
 | 
|---|
 | 11 |  W !?5,"of BILLED and the DATE LAST UPDATED is within the date range"
 | 
|---|
 | 12 |  W !?5,"you specify."
 | 
|---|
 | 13 |  ;
 | 
|---|
 | 14 | SELECT W !!,"Print former (O)N HOLD charges,"
 | 
|---|
 | 15 |  R !?13,"(H)OLD-REVIEW charges, or (B)OTH: BOTH// ",X:DTIME
 | 
|---|
 | 16 |  G:'$T!(X["^") END S:X="" X="B" S X=$E(X)
 | 
|---|
 | 17 |  I "BHObho"'[X D HELP G SELECT
 | 
|---|
 | 18 |  W "  ",$S("Hh"[X:"HOLD-REVIEW","Oo"[X:"ON HOLD",1:"BOTH")
 | 
|---|
 | 19 |  S IBSEL=$S("Hh"[X:"H","Oo"[X:"O",1:"HO")
 | 
|---|
 | 20 |  ;
 | 
|---|
 | 21 | RANGE S DIR(0)="DA^:NOW:EX",DIR("A")="Start with DATE: "
 | 
|---|
 | 22 |  S DIR("?")="Enter the starting date for this report."
 | 
|---|
 | 23 |  W ! D ^DIR K DIR G:$D(DIRUT) END S IBSDT=+Y
 | 
|---|
 | 24 |  S DIR(0)="DA^+Y:NOW:EX",DIR("A")="     Go to DATE: "
 | 
|---|
 | 25 |  S DIR("?")="Enter the ending date for this report."
 | 
|---|
 | 26 |  D ^DIR K DIR G:$D(DIRUT) END S IBEDT=+Y
 | 
|---|
 | 27 |  ;
 | 
|---|
 | 28 | QUEUED ; - Entry point if queued.
 | 
|---|
 | 29 |  K ^TMP($J)
 | 
|---|
 | 30 |  I '$G(IBQUIT) D DEVICE
 | 
|---|
 | 31 |  I '$G(IBQUIT) D CHRGS,PRINT
 | 
|---|
 | 32 |  ;
 | 
|---|
 | 33 | END D ^%ZISC
 | 
|---|
 | 34 |  K DFN,DIRUT,DUOUT,I,IBACT,IBATYPE,IBBILL,IBCHG,IBCNT,IBCRT,IBDT,IBFR
 | 
|---|
 | 35 |  K IBGBL,IBHDR,IBHR,IBLINE,IBN,IBNAME,IBND,IBND1,IBNOW,IBOH,IBPAGE,IBQUIT
 | 
|---|
 | 36 |  K IBRDT,IBRF,IBRX,IBRXN,IBSEL,IBSDT,IBSSN,IBTO,IBTYPE,POP,VA,X,^TMP($J)
 | 
|---|
 | 37 |  Q
 | 
|---|
 | 38 |  ;
 | 
|---|
 | 39 | DEVICE I $D(ZTQUEUED) Q
 | 
|---|
 | 40 |  W !!,"*** This output should be queued ***"
 | 
|---|
 | 41 |  S %ZIS="QM" D ^%ZIS I POP S IBQUIT=1 Q
 | 
|---|
 | 42 |  I $D(IO("Q")) D  Q
 | 
|---|
 | 43 |  .S ZTRTN="QUEUED^IBOHRAR",ZTIO=ION,ZTDESC="CHARGES RELEASED TO AR"
 | 
|---|
 | 44 |  .S ZTSAVE("IB*")="" D ^%ZTLOAD
 | 
|---|
 | 45 |  .W !,$S($D(ZTSK):"REQUEST QUEUED TASK="_ZTSK,1:"REQUEST CANCELLED")
 | 
|---|
 | 46 |  .D HOME^%ZIS K ZTSK S IBQUIT=1
 | 
|---|
 | 47 |  ;
 | 
|---|
 | 48 |  U IO
 | 
|---|
 | 49 |  Q
 | 
|---|
 | 50 |  ;
 | 
|---|
 | 51 | CHRGS ; - Indexes charges released to AR within date range.
 | 
|---|
 | 52 |  S IBSDT=IBSDT+.000001,IBEDT=IBEDT+.24 Q:IBQUIT
 | 
|---|
 | 53 |  I $E(IOST,1,2)="C-" S IBCRT=1
 | 
|---|
 | 54 |  S IBN=0 F  S IBN=$O(^IB("AC",3,IBN)) Q:'IBN  D
 | 
|---|
 | 55 |  .S IBND=$G(^IB(IBN,0)),IBND1=$G(^IB(IBN,1)) Q:'IBND!('IBND1)
 | 
|---|
 | 56 |  .S IBOH=$P(IBND1,U,6),IBHR=$P(IBND1,U,7)
 | 
|---|
 | 57 |  .I IBOH,IBSEL["O" S IBGBL="IBOH" D CHRGS1 Q
 | 
|---|
 | 58 |  .I IBHR,IBSEL["H" S IBGBL="IBHR" D CHRGS1
 | 
|---|
 | 59 |  ;
 | 
|---|
 | 60 |  Q
 | 
|---|
 | 61 |  ;
 | 
|---|
 | 62 | CHRGS1 ; - Set global for report.
 | 
|---|
 | 63 |  S IBDT=$P(IBND1,U,4) Q:'IBDT!(IBDT<IBSDT)!(IBDT>IBEDT)
 | 
|---|
 | 64 |  S DFN=$P(IBND,U,2) Q:'DFN
 | 
|---|
 | 65 |  D PAT S ^TMP($J,IBGBL,IBNAME,DFN,IBN)=""
 | 
|---|
 | 66 |  Q
 | 
|---|
 | 67 |  ;
 | 
|---|
 | 68 | PRINT ; - Print charges released to AR.
 | 
|---|
 | 69 |  N IENS Q:IBQUIT
 | 
|---|
 | 70 |  I IBCRT=1 W @IOF
 | 
|---|
 | 71 |  S IBGBL="" F  S IBGBL=$O(^TMP($J,IBGBL)) Q:IBGBL=""  D  Q:IBQUIT
 | 
|---|
 | 72 |  .S (IBCNT,IBPAGE)=0 D HEADER Q:IBQUIT
 | 
|---|
 | 73 |  .S IBNAME="" F  S IBNAME=$O(^TMP($J,IBGBL,IBNAME)) Q:IBNAME=""  S (DFN,IBFL)=0 F  S DFN=$O(^TMP($J,IBGBL,IBNAME,DFN)) Q:'DFN  D  Q:IBQUIT
 | 
|---|
 | 74 |  ..D PRNTPAT Q:IBQUIT
 | 
|---|
 | 75 |  ..S IBN=0 F  S IBN=$O(^TMP($J,IBGBL,IBNAME,DFN,IBN)) Q:IBN=""  D
 | 
|---|
 | 76 |  ...S IBND=$G(^IB(IBN,0)),IBND1=$G(^IB(IBN,1))
 | 
|---|
 | 77 |  ...S (IBRX,IBRXN,IBRF,IBRDT)=0,IBACT=+IBND
 | 
|---|
 | 78 |  ...S IBTYPE=$P(IBND,U,3),IBTYPE=$P($G(^IBE(350.1,IBTYPE,0)),U)
 | 
|---|
 | 79 |  ...S IBTYPE=$S(IBTYPE["PSO NSC":"RXNSC",IBTYPE["PSO SC":"RX SC",1:$E(IBTYPE,4,7))
 | 
|---|
 | 80 |  ...S IBBILL=$P($P(IBND,U,11),"-",2)
 | 
|---|
 | 81 |  ...I $P(IBND,U,4)["52:" S IBRXN=$P($P(IBND,U,4),":",2),IBRX=$P($P(IBND,U,8),"-"),IBRF=$P($P(IBND,U,4),":",3)
 | 
|---|
 | 82 |  ...I IBRF>0 S IBRDT=$$SUBFILE^IBRXUTL(+IBRXN,IBRF,52,.01)
 | 
|---|
 | 83 |  ...E  S IBRDT=$$FILE^IBRXUTL(IBRXN,22)
 | 
|---|
 | 84 |  ...S IBFR=$$DAT1^IBOUTL($S(IBRXN>0:IBRDT,1:$P(IBND,U,14)))
 | 
|---|
 | 85 |  ...S IBTO=$$DAT1^IBOUTL($S($P(IBND,U,15)'="":$P(IBND,U,15),1:$P(IBND1,U,2)))
 | 
|---|
 | 86 |  ...S IBCHG=$J(+$P(IBND,U,7),9,2)
 | 
|---|
 | 87 |  ...I IBQUIT Q
 | 
|---|
 | 88 |  ...W ?27,IBACT,?37,IBBILL,?46,IBTYPE W:IBRX>0 ?52,"Rx #: "_IBRX_$S(IBRF>0:"("_IBRF_")",1:""),!
 | 
|---|
 | 89 |  ...W ?52,IBFR,?62,IBTO,?70,IBCHG,!
 | 
|---|
 | 90 |  ...S IBCNT=IBCNT+1
 | 
|---|
 | 91 |  ...I ($Y+4)>IOSL,$O(^TMP($J,IBGBL,IBNAME,DFN,IBN)) D PRNTPAT
 | 
|---|
 | 92 |  .;
 | 
|---|
 | 93 |  .I IBCNT=0 W !?10,"No charges were released in this time period.",!!
 | 
|---|
 | 94 |  ;
 | 
|---|
 | 95 |  Q
 | 
|---|
 | 96 |  ;
 | 
|---|
 | 97 | PAT ; - Print patient data during processing.
 | 
|---|
 | 98 |  N VADM,VAERR D DEM^VADPT K:VAERR VADM
 | 
|---|
 | 99 |  S IBNAME=$G(VADM(1)) S:IBNAME="" IBNAME=""
 | 
|---|
 | 100 |  Q
 | 
|---|
 | 101 |  ;
 | 
|---|
 | 102 | PRNTPAT ; - Print patient data on report.
 | 
|---|
 | 103 |  N VADM,VAERR
 | 
|---|
 | 104 |  D DEM^VADPT S IBSSN=$S('VAERR:VA("BID"),1:"")
 | 
|---|
 | 105 |  I ($Y+4)>IOSL D HEADER Q:IBQUIT
 | 
|---|
 | 106 |  W $E(IBNAME,1,20),?21,IBSSN
 | 
|---|
 | 107 |  Q
 | 
|---|
 | 108 |  ;
 | 
|---|
 | 109 | HEADER ; - Report header.
 | 
|---|
 | 110 |  I IBQUIT Q
 | 
|---|
 | 111 |  I IBCRT,$Y>1 D PAUSE Q:IBQUIT
 | 
|---|
 | 112 |  S IBHDR=$S(IBGBL="IBHR":"HOLD-REVIEW",1:"ON HOLD"),IBPAGE=IBPAGE+1
 | 
|---|
 | 113 |  W !,@IOF
 | 
|---|
 | 114 |  W "List of ",IBHDR," charges released to AR from ",$P($$DAT2^IBOUTL(IBSDT),"@")," to ",$P($$DAT2^IBOUTL(IBEDT),"@")
 | 
|---|
 | 115 |  W !,"Date Printed: ",IBNOW,?72,"Page ",IBPAGE,!,IBLINE
 | 
|---|
 | 116 |  W !,"Name",?20,"Pt.ID",?27,"Act.ID",?37,"Bill #",?46,"Type",?52,"Fr/Fl Dt",?62,"To/Rls Dt",?73,"Charge"
 | 
|---|
 | 117 |  W !,IBLINE,!
 | 
|---|
 | 118 |  Q
 | 
|---|
 | 119 |  ;
 | 
|---|
 | 120 | PAUSE ; - Pause for screen output.
 | 
|---|
 | 121 |  I $E(IOST,1,2)'="C-" Q
 | 
|---|
 | 122 |  F I=$Y:1:(IOSL-5) W !
 | 
|---|
 | 123 |  S DIR(0)="E" D ^DIR K DIR I $D(DIRUT)!($D(DUOUT)) S IBQUIT=1
 | 
|---|
 | 124 |  Q
 | 
|---|
 | 125 |  ;
 | 
|---|
 | 126 | HELP ; - 'Print former (O)N HOLD...' prompt help text.
 | 
|---|
 | 127 |  W !!?5,"Enter: '<CR>' - To select both On Hold and Hold-Review charges"
 | 
|---|
 | 128 |  W !?15,"'O' - To select only On Hold charges"
 | 
|---|
 | 129 |  W !?15,"'H' - To select only Hold-Review charges"
 | 
|---|
 | 130 |  W !?15,"'^' - To quit this option",!
 | 
|---|
 | 131 |  Q
 | 
|---|