| [613] | 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 | 
|---|