| 1 | IBOCPDS ;ALB/ARH - CLERK PRODUCTIVITY REPORT (SUMMARY) ;10/8/91
 | 
|---|
| 2 |  ;;2.0;INTEGRATED BILLING;**44,118,155,342**;21-MAR-94;Build 18
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | EN ; - Get parameters then run the report.
 | 
|---|
| 5 |  D ORDER^IBOCPD I IBQUIT G EXIT
 | 
|---|
| 6 |  D HOME^%ZIS
 | 
|---|
| 7 |  S IBHDR="CLERK PRODUCTIVITY SUMMARY REPORT" W @IOF,?22,IBHDR,!!
 | 
|---|
| 8 |  S IBFLD="Date "_$S(IBORDER="E":"Entered",IBORDER="A":"Authorized",1:"First Printed")
 | 
|---|
| 9 |  D RANGE^IBOCPD I IBQUIT G EXIT
 | 
|---|
| 10 |  ;
 | 
|---|
| 11 |  ; - Print without clerks' names?
 | 
|---|
| 12 |  S DIR(0)="Y",DIR("B")="NO",DIR("?")="^D HLP^IBOCPDS" W !
 | 
|---|
| 13 |  S DIR("A")="Do you want to print the summary without the clerks' names"
 | 
|---|
| 14 |  D ^DIR K DIR I $D(DIRUT)!$D(DTOUT)!$D(DUOUT)!$D(DIROUT) G EXIT
 | 
|---|
| 15 |  S IBNCLK=+Y K DIR,DIROUT,DTOUT,DUOUT,DIRUT
 | 
|---|
| 16 |  ;
 | 
|---|
| 17 | DEV ; - Get the device.
 | 
|---|
| 18 |  W !!,"Report requires 132 columns."
 | 
|---|
| 19 |  S %ZIS="QM",%ZIS("A")="OUTPUT DEVICE: " D ^%ZIS G:POP EXIT
 | 
|---|
| 20 |  I $D(IO("Q")) S ZTRTN="ENT^IBOCPDS",ZTDESC="Clerk Productivity Summary Report",ZTSAVE("IB*")="" D ^%ZTLOAD K IO("Q") G EXIT
 | 
|---|
| 21 |  U IO
 | 
|---|
| 22 |  ;***
 | 
|---|
| 23 |  ;I $D(XRT0) S:'$D(XRTN) XRTN="IBOCPDS" D T1^%ZOSV ;stop rt clock
 | 
|---|
| 24 |  ;
 | 
|---|
| 25 | ENT ; - Find, save, and print the data that satisfies the search parameters
 | 
|---|
| 26 |  ;   entry for tasked jobs.
 | 
|---|
| 27 |  ;***
 | 
|---|
| 28 |  ;S XRTL=$ZU(0),XRTN="IBOCPDS-2" D T0^%ZOSV ;start rt clock
 | 
|---|
| 29 |  K ^TMP("IB",$J),IBMRAUSR
 | 
|---|
| 30 |  S IBCDT=IBBEG-.001,IBE=IBEND+.3,U="^",IBQUIT=0
 | 
|---|
| 31 |  S IBINDX=$S(IBORDER="E":"APD",IBORDER="A":"APD3",1:"AP")
 | 
|---|
| 32 |  F  S IBCDT=$O(^DGCR(399,IBINDX,IBCDT)) Q:IBCDT=""!(IBCDT>IBE)!IBQUIT  S IFN=0 D  S IBQUIT=$$STOP
 | 
|---|
| 33 |  .F  S IFN=$O(^DGCR(399,IBINDX,IBCDT,IFN)) Q:'IFN  D FILE
 | 
|---|
| 34 |  ;
 | 
|---|
| 35 |  ; 5/28/04 - esg - MRA project - patch 155 - get MRA request data
 | 
|---|
| 36 |  ;
 | 
|---|
| 37 |  S IBCDT=IBBEG-.001,IBE=IBEND+.3
 | 
|---|
| 38 |  F  S IBCDT=$O(^DGCR(399,"APM",IBCDT)) Q:'IBCDT!(IBCDT>IBE)!IBQUIT  D
 | 
|---|
| 39 |  . S IBQUIT=$$STOP Q:IBQUIT
 | 
|---|
| 40 |  . S IFN=0
 | 
|---|
| 41 |  . F  S IFN=$O(^DGCR(399,"APM",IBCDT,IFN)) Q:'IFN  D FILEMRA
 | 
|---|
| 42 |  . Q
 | 
|---|
| 43 |  ;
 | 
|---|
| 44 |  I $D(^TMP("IB",$J)),'IBQUIT D PRINT
 | 
|---|
| 45 |  ;
 | 
|---|
| 46 | EXIT ; - Clean up and quit.
 | 
|---|
| 47 |  K ^TMP("IB",$J)
 | 
|---|
| 48 |  ;***
 | 
|---|
| 49 |  ;I $D(XRT0) S:'$D(XRTN) XRTN="IBOCPDS" D T1^%ZOSV ;stop rt clock
 | 
|---|
| 50 |  I $D(ZTQUEUED) Q
 | 
|---|
| 51 |  K IBE,IBBEG,IBBEGE,IBCANC,IBEND,IBENDE,IBCDT,IFN,IBRT,IBCLK,IBNCLK,IBCT
 | 
|---|
| 52 |  K IBTD,IBNODE,IBPGN,IBLN,IBHDR,IBINDX,IBFLD,IBQUIT,IBORDER,IBI,X,Y
 | 
|---|
| 53 |  K DTOUT,DUOUT,DIRUT,DIROUT,IBMRAUSR
 | 
|---|
| 54 |  D ^%ZISC
 | 
|---|
| 55 |  Q
 | 
|---|
| 56 |  ;
 | 
|---|
| 57 | FILE ; - Save the data in sorted order in a temporary file.
 | 
|---|
| 58 |  S IBRT=$P($G(^DGCR(399,IFN,0)),U,7) I 'IBRT Q
 | 
|---|
| 59 |  S IBCLK=$P($G(^VA(200,+$P($G(^DGCR(399,IFN,"S")),U,$S(IBORDER="E":2,IBORDER="A":11,IBORDER="P":13,1:0)),0)),U) I IBCLK="" Q
 | 
|---|
| 60 |  S IBTD=$P($G(^DGCR(399,IFN,"U1")),U,1)-$P($G(^DGCR(399,IFN,"U1")),U,2)
 | 
|---|
| 61 |  S IBCANC=($P(^DGCR(399,IFN,0),U,13)=7)
 | 
|---|
| 62 |  S IBNODE=$G(^TMP("IB",$J)),$P(^($J),U,1,4)=($P(IBNODE,U,1)+1)_U_($P(IBNODE,U,2)+IBTD)_U_($P(IBNODE,U,3)+$S('IBCANC:0,1:1))_U_($P(IBNODE,U,4)+$S('IBCANC:0,1:IBTD))
 | 
|---|
| 63 |  S IBNODE=$G(^TMP("IB",$J,IBCLK)),$P(^(IBCLK),U,1,4)=($P(IBNODE,U,1)+1)_U_($P(IBNODE,U,2)+IBTD)_U_($P(IBNODE,U,3)+$S('IBCANC:0,1:1))_U_($P(IBNODE,U,4)+$S('IBCANC:0,1:IBTD))
 | 
|---|
| 64 |  S IBNODE=$G(^TMP("IB",$J,IBCLK,IBRT)),$P(^(IBRT),U,1,4)=($P(IBNODE,U,1)+1)_U_($P(IBNODE,U,2)+IBTD)_U_($P(IBNODE,U,3)+$S('IBCANC:0,1:1))_U_($P(IBNODE,U,4)+$S('IBCANC:0,1:IBTD))
 | 
|---|
| 65 |  S IBNODE=$G(^TMP("IB",$J,"~~")),$P(^("~~"),U,1,4)=($P(IBNODE,U,1)+1)_U_($P(IBNODE,U,2)+IBTD)_U_($P(IBNODE,U,3)+$S('IBCANC:0,1:1))_U_($P(IBNODE,U,4)+$S('IBCANC:0,1:IBTD))
 | 
|---|
| 66 |  S IBNODE=$G(^TMP("IB",$J,"~~",IBRT)),$P(^(IBRT),U,1,4)=($P(IBNODE,U,1)+1)_U_($P(IBNODE,U,2)+IBTD)_U_($P(IBNODE,U,3)+$S('IBCANC:0,1:1))_U_($P(IBNODE,U,4)+$S('IBCANC:0,1:IBTD))
 | 
|---|
| 67 |  ;
 | 
|---|
| 68 |  ; 7/26/04 - ESG - MRA Project - Capture division data for MRA authorizer user
 | 
|---|
| 69 |  I IBCLK["AUTHORIZER,IB MRA"!(IBCLK["POSTMASTER")  D
 | 
|---|
| 70 |  . N DIV
 | 
|---|
| 71 |  . S DIV=+$P($G(^DGCR(399,IFN,0)),U,22)    ; division pointer
 | 
|---|
| 72 |  . S DIV=$P($G(^DG(40.8,DIV,0)),U,1)       ; division name
 | 
|---|
| 73 |  . I DIV="" S DIV="~UNKNOWN"
 | 
|---|
| 74 |  . S IBNODE=$G(IBMRAUSR(IBCLK,IBRT,DIV))
 | 
|---|
| 75 |  . S $P(IBMRAUSR(IBCLK,IBRT,DIV),U,1,4)=($P(IBNODE,U,1)+1)_U_($P(IBNODE,U,2)+IBTD)_U_($P(IBNODE,U,3)+$S('IBCANC:0,1:1))_U_($P(IBNODE,U,4)+$S('IBCANC:0,1:IBTD))
 | 
|---|
| 76 |  . Q
 | 
|---|
| 77 |  Q
 | 
|---|
| 78 |  ;
 | 
|---|
| 79 | FILEMRA ; Capture and file MRA data into the scratch global
 | 
|---|
| 80 |  ; 9/9/03 - ESG - MRA Project
 | 
|---|
| 81 |  NEW IBRT,IBTD,MRAUSR,IBNODE
 | 
|---|
| 82 |  S IBRT=$P($G(^DGCR(399,IFN,0)),U,7) I 'IBRT G FMX
 | 
|---|
| 83 |  S IBTD=$P($G(^DGCR(399,IFN,"U1")),U,1)-$P($G(^DGCR(399,IFN,"U1")),U,2)
 | 
|---|
| 84 |  S MRAUSR=+$P($G(^DGCR(399,IFN,"S")),U,8)
 | 
|---|
| 85 |  I 'MRAUSR G FMX
 | 
|---|
| 86 |  S MRAUSR=$P($G(^VA(200,MRAUSR,0)),U,1)
 | 
|---|
| 87 |  I MRAUSR="" G FMX
 | 
|---|
| 88 |  S IBNODE=$G(^TMP("IB",$J)),$P(^($J),U,5,6)=($P(IBNODE,U,5)+1)_U_($P(IBNODE,U,6)+IBTD)
 | 
|---|
| 89 |  S IBNODE=$G(^TMP("IB",$J,MRAUSR)),$P(^(MRAUSR),U,5,6)=($P(IBNODE,U,5)+1)_U_($P(IBNODE,U,6)+IBTD)
 | 
|---|
| 90 |  S IBNODE=$G(^TMP("IB",$J,MRAUSR,IBRT)),$P(^(IBRT),U,5,6)=($P(IBNODE,U,5)+1)_U_($P(IBNODE,U,6)+IBTD)
 | 
|---|
| 91 |  S IBNODE=$G(^TMP("IB",$J,"~~")),$P(^("~~"),U,5,6)=($P(IBNODE,U,5)+1)_U_($P(IBNODE,U,6)+IBTD)
 | 
|---|
| 92 |  S IBNODE=$G(^TMP("IB",$J,"~~",IBRT)),$P(^(IBRT),U,5,6)=($P(IBNODE,U,5)+1)_U_($P(IBNODE,U,6)+IBTD)
 | 
|---|
| 93 |  ;
 | 
|---|
| 94 | FMX ;
 | 
|---|
| 95 |  Q
 | 
|---|
| 96 |  ;
 | 
|---|
| 97 |  ;
 | 
|---|
| 98 | PRINT ; - Print the report from the temp sort file to the appropriate device.
 | 
|---|
| 99 |  N IBT,IBH1,L1,L2,T1,T2,T3,T4,T5,T6
 | 
|---|
| 100 |  S IBCLK="",IBPGN=0
 | 
|---|
| 101 |  S L1=7        ; length of count fields
 | 
|---|
| 102 |  S L2=13       ; length of dollar amount fields
 | 
|---|
| 103 |  S T1=50       ; tab stop 1 - total count
 | 
|---|
| 104 |  S T2=59       ; tab stop 2 - total dollar amount
 | 
|---|
| 105 |  S T3=78       ; tab stop 3 - cancelled count
 | 
|---|
| 106 |  S T4=87       ; tab stop 4 - cancelled dollar amount
 | 
|---|
| 107 |  S T5=106      ; tab stop 5 - MRA request count
 | 
|---|
| 108 |  S T6=115      ; tab stop 6 - MRA request dollar amount
 | 
|---|
| 109 |  D HDR F  S IBCLK=$O(^TMP("IB",$J,IBCLK)) Q:IBCLK=""!(IBQUIT)  D LINE
 | 
|---|
| 110 |  S IBT=$G(^TMP("IB",$J)) I IBQUIT Q
 | 
|---|
| 111 |  W !!,"TOTAL:",?T1,$J(+$P(IBT,U,1),L1),?T2,$J($P(IBT,U,2),L2,2),?T3,$J(+$P(IBT,U,3),L1),?T4,$J($P(IBT,U,4),L2,2),?T5,$J(+$P(IBT,U,5),L1),?T6,$J($P(IBT,U,6),L2,2),!
 | 
|---|
| 112 |  D NOTE^IBOCPD,PAUSE
 | 
|---|
| 113 |  Q
 | 
|---|
| 114 |  ;
 | 
|---|
| 115 | LINE ; - Print all data for a particular clerk.
 | 
|---|
| 116 |  N IBT,DIV
 | 
|---|
| 117 |  S IBLN=IBLN+1 I IBNCLK S IBCT=$G(IBCT)+1
 | 
|---|
| 118 |  I IBCLK'="~~" W !,$S(IBNCLK:"CLERK #"_IBCT,1:$E(IBCLK,1,25))
 | 
|---|
| 119 |  E  W !,"RATE TYPE TOTALS"
 | 
|---|
| 120 |  S IBRT="" F  S IBRT=$O(^TMP("IB",$J,IBCLK,IBRT)) Q:IBRT=""!(IBQUIT)  D  Q:IBQUIT  S IBLN=IBLN+1 I IBLN>(IOSL-7) D PAUSE,HDR:'IBQUIT
 | 
|---|
| 121 |  . S IBT=$G(^TMP("IB",$J,IBCLK,IBRT))
 | 
|---|
| 122 |  . W ?30,$E($P(^DGCR(399.3,IBRT,0),U,1),1,20),?T1,$J(+$P(IBT,U,1),L1),?T2,$J($P(IBT,U,2),L2,2),?T3,$J(+$P(IBT,U,3),L1),?T4,$J($P(IBT,U,4),L2,2)
 | 
|---|
| 123 |  . W ?T5,$J(+$P(IBT,U,5),L1),?T6,$J($P(IBT,U,6),L2,2),!
 | 
|---|
| 124 |  . ; divisional display
 | 
|---|
| 125 |  . I '$D(IBMRAUSR(IBCLK,IBRT)) Q
 | 
|---|
| 126 |  . W ?T1,"  -----",?T2,"  -----------",?T3,"  -----",?T4,"  -----------",?T5,"  -----",?T6,"  -----------"
 | 
|---|
| 127 |  . S DIV=""
 | 
|---|
| 128 |  . F  S DIV=$O(IBMRAUSR(IBCLK,IBRT,DIV)) Q:DIV=""!IBQUIT  D
 | 
|---|
| 129 |  .. S IBLN=IBLN+1 I IBLN>(IOSL-7) D PAUSE,HDR:'IBQUIT
 | 
|---|
| 130 |  .. I IBQUIT Q
 | 
|---|
| 131 |  .. S IBT=$G(IBMRAUSR(IBCLK,IBRT,DIV))
 | 
|---|
| 132 |  .. W !?7,DIV,?T1,$J(+$P(IBT,U,1),L1),?T2,$J($P(IBT,U,2),L2,2),?T3,$J(+$P(IBT,U,3),L1),?T4,$J($P(IBT,U,4),L2,2),?T5,$J(+$P(IBT,U,5),L1),?T6,$J($P(IBT,U,6),L2,2)
 | 
|---|
| 133 |  .. Q
 | 
|---|
| 134 |  . I IBQUIT Q
 | 
|---|
| 135 |  . W !
 | 
|---|
| 136 |  . Q
 | 
|---|
| 137 |  ;
 | 
|---|
| 138 |  I IBQUIT Q
 | 
|---|
| 139 |  W ?T1,"  -----",?T2,"  -----------",?T3,"  -----",?T4,"  -----------"
 | 
|---|
| 140 |  W ?T5,"  -----",?T6,"  -----------"
 | 
|---|
| 141 |  S IBT=$G(^TMP("IB",$J,IBCLK))
 | 
|---|
| 142 |  W !,?30,"SUBTOTAL:",?T1,$J(+$P(IBT,U,1),L1),?T2,$J($P(IBT,U,2),L2,2),?T3,$J(+$P(IBT,U,3),L1),?T4,$J($P(IBT,U,4),L2,2)
 | 
|---|
| 143 |  W ?T5,$J(+$P(IBT,U,5),L1),?T6,$J($P(IBT,U,6),L2,2),!
 | 
|---|
| 144 |  S IBLN=IBLN+2
 | 
|---|
| 145 |  Q
 | 
|---|
| 146 |  ;
 | 
|---|
| 147 | HDR ; - Print the report header.
 | 
|---|
| 148 |  N IBH1,IBH2
 | 
|---|
| 149 |  S IBQUIT=$$STOP Q:IBQUIT  S IBPGN=IBPGN+1,IBLN=7
 | 
|---|
| 150 |  D NOW^%DTC S Y=$E(%,1,12) D DD^%DT S IBCDT=$P(Y,"@",1)_"  "_$P(Y,"@",2)
 | 
|---|
| 151 |  I IBPGN>1!($E(IOST,1,2)["C-") W @IOF
 | 
|---|
| 152 |  S IBH1=$S(IBORDER="E":"ENTERED",IBORDER="A":"AUTHORIZED",1:"FIRST PRINTED")
 | 
|---|
| 153 |  W "CLERK PRODUCTIVITY SUMMARY FOR BILLS ",IBH1," ",IBBEGE," - ",IBENDE I IOM<85 W !
 | 
|---|
| 154 |  S IBH2=$S(IBORDER'="P":IBH1,1:"PRINTED") S:IBORDER="E" IBH1="ENTERED/EDITED"
 | 
|---|
| 155 |  W ?(IOM-30),IBCDT,?(IOM-8),"PAGE ",IBPGN,!
 | 
|---|
| 156 |  W !,?T1,"---",$S(IBORDER'="A":"-",1:""),"TOTAL ",IBH2,"---",$S(IBORDER'="A":"--",1:""),?T3,"-",$S(IBORDER'="A":"-",1:""),IBH2," CANCELLED-",$S(IBORDER'="A":"--",1:"")
 | 
|---|
| 157 |  W ?T5,"-----MRA REQUESTS-----"
 | 
|---|
| 158 |  W !,IBH1," BY",?30,"RATE TYPE",?T1,$J("COUNT",L1),?T2,$J("AMOUNT",L2),?T3,$J("COUNT",L1),?T4,$J("AMOUNT",L2)
 | 
|---|
| 159 |  W ?T5,$J("COUNT",L1),?T6,$J("AMOUNT",L2),!
 | 
|---|
| 160 |  S IBI="",$P(IBI,"-",IOM+1)="" W IBI,!
 | 
|---|
| 161 |  Q
 | 
|---|
| 162 |  ;
 | 
|---|
| 163 | PAUSE ; - Pause at end of screen if beeing displayed on a terminal.
 | 
|---|
| 164 |  Q:$E(IOST,1,2)'["C-"
 | 
|---|
| 165 |  S DIR(0)="E" D ^DIR K DIR
 | 
|---|
| 166 |  I $D(DUOUT)!($D(DIRUT)) S IBQUIT=1
 | 
|---|
| 167 |  Q
 | 
|---|
| 168 |  ;
 | 
|---|
| 169 | STOP() ; - Determine if user has requested the queued report to stop.
 | 
|---|
| 170 |  I $D(ZTQUEUED),$$S^%ZTLOAD S ZTSTOP=1 K ZTREQ I +$G(IBPGN) W !,"***TASK STOPPED BY USER***"
 | 
|---|
| 171 |  Q +$G(ZTSTOP)
 | 
|---|
| 172 |  ;
 | 
|---|
| 173 | HLP ; - "Do you want to print..." prompt.
 | 
|---|
| 174 |  W !!,"Select: '<CR>' to print the summary with the clerks' actual names"
 | 
|---|
| 175 |  W !?11,"'Y' to print the summary with an identifier ('CLERK #xxx')"
 | 
|---|
| 176 |  W !?15,"in place of the clerks' names",!?11,"'^' to quit"
 | 
|---|
| 177 |  Q
 | 
|---|