| 1 | RMPR5HQ2 ;HCIOFO/RVD - ITEM & HCPCS USAGE REPORT  ; 15 AUG 00
 | 
|---|
| 2 |  ;;3.0;PROSTHETICS;**51**;Feb 09, 1996
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | MANUAL ;run the USAGE report manually.  User needs to enter the month the
 | 
|---|
| 5 |  ;report should be ran.
 | 
|---|
| 6 |  N RLN,RMPAGE,R5,REQ,RSL,RMTVAL,RMTCOML,RMTDLEL,RMTUSEL,RHCPC,RMTVAH
 | 
|---|
| 7 |  N RMTUSEG,RMTVAG,RMTCOMG,RMTQOHG,RMTVALG,RMGVAL,RGCNT,RLCNT,RSCNT,RFL
 | 
|---|
| 8 |  N RLINE,RGRP,RST,RI,RST,RJ,RK,RGRP,RDAT,RMBD,RMED,RPR,RMARRAY,RMTUSEH
 | 
|---|
| 9 |  N RMTQOHNL,RMTQOHUL,RMTISNL,RMTISUL,RMTVALNL,RMTVALUL,RMTAVELU
 | 
|---|
| 10 |  N RMTQOHNG,RMTQOHUG,RMTISNG,RMTISUG,RMTVALNG,RMTVALUG,RMTCOMH,RMTISUH,RMTISNH
 | 
|---|
| 11 |  N RMTVALUH,RMTVALNH,RMTQOHUH,RMTQOHNH,RMTDLEH,RMTDLEG,RMTAVEG,RMGTOT
 | 
|---|
| 12 |  N RTAVEGA,RTAVEGC,RTDLEGA,RTDLEGC,RTUSEGA,RTUSEGC,RMGTIU,RMGTIN
 | 
|---|
| 13 |  N RTAVELA,RTAVELC,RTDLELA,RTDLELC,RTUSELA,RTUSELC,RMTUSELU,RMTUSELN
 | 
|---|
| 14 |  N RTAVEHA,RTAVEHC,RTDLEHA,RTDLEHC,RTUSEHA,RTUSEHC,RMCALDAY,RMTAVELN
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 |  S X1=RMPREDT,X2=RMPRSDT
 | 
|---|
| 17 |  D ^%DTC S RMCALDAY=X+1
 | 
|---|
| 18 |  S Y=RMPRSDT D DD^%DT S RMBD=Y S Y=RMPREDT D DD^%DT S RMED=Y
 | 
|---|
| 19 |  D NOW^%DTC S Y=% X ^DD("DD") S RMRDATE=Y
 | 
|---|
| 20 |  S $P(RLN,"-",IOM)="",RMPAGE=0,R5="RMPR5"
 | 
|---|
| 21 |  S $P(REQ,"=",IOM)=""
 | 
|---|
| 22 |  S (RMTVAL,RMTCOML,RMTDLEL,RMTUSEL,RMTAVEG,RMGTOT,RMTUSELU,RMGISNG,RMGISUG)=0
 | 
|---|
| 23 |  S (RMTQOHNL,RMTQOHUL,RMTISNL,RMTISUL,RMTVALNL,RMTVALUL,RMTAVELU,RMTUSELN)=0
 | 
|---|
| 24 |  S (RMTQOHNG,RMTQOHUG,RMTISNG,RMTISUG,RMTVALNG,RMTVALUG,RMTISUH,RMTISNH)=0
 | 
|---|
| 25 |  S (RMTUSEG,RMTVAG,RMTCOMG,RMGTOU,RMGTON,RMTVAH,RMTCOMH,RMTVALUH,RMTVALNH,RMTQOHUH)=0
 | 
|---|
| 26 |  S (RMGVAL,RGCNT,RLCNT,RSCNT,RFL,RPRINT,RMTQOHNH,RMTUSEH,RMTDLEH)=0
 | 
|---|
| 27 |  S (RTAVEGA,RTAVEGC,RTDLEGA,RTDLEGC,RTUSEGA,RTUSEGC,RMGTIU,RMGTIN)=0
 | 
|---|
| 28 |  S (RTAVELA,RTAVELC,RTDLELA,RTDLELC,RTUSELA,RTUSELC,RMTAVELN)=0
 | 
|---|
| 29 |  S (RTAVEHA,RTAVEHC,RTDLEHA,RTDLEHC,RTUSEHA,RTUSEHC)=0
 | 
|---|
| 30 |  S (RLINE,RGRP,RST,RNPGRP,RNPLINE,RHCPC,RMTDLEG)=""
 | 
|---|
| 31 |  D GRPARY^RMPR5HQ4(.RMARRAY)
 | 
|---|
| 32 |  ;
 | 
|---|
| 33 | ITEM ;entry point for Item Detail Usage report
 | 
|---|
| 34 |  G:RMPRDET="I" DQ1
 | 
|---|
| 35 |  ;
 | 
|---|
| 36 | HCPCS ;entry point for HCPCS Summary Usage report.
 | 
|---|
| 37 |  I RMPRDET="H" D ^RMPR5HQH G TOT
 | 
|---|
| 38 | LINE ;entry point for NPPD LINE Usage report.
 | 
|---|
| 39 |  I RMPRDET="L" D ^RMPR5HQL G TOT
 | 
|---|
| 40 |  ;
 | 
|---|
| 41 | GROUP ;entry point for NPPD GROUP Usage report.
 | 
|---|
| 42 |  I RMPRDET="G" D ^RMPR5HQG
 | 
|---|
| 43 |  G CLEAN1
 | 
|---|
| 44 |  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 | 
|---|
| 45 |  ;
 | 
|---|
| 46 | DQ1 ;print PIP Report (Item Detail Usage report).
 | 
|---|
| 47 |  ;$O the ^TMP( global for all the records
 | 
|---|
| 48 |  ;print all records based on the sort criteria given.
 | 
|---|
| 49 |  I IOST["C-" W @IOF
 | 
|---|
| 50 |  ;
 | 
|---|
| 51 |  F RST=0:0 S RST=$O(^TMP($J,R5,RST)) Q:RST'>0  S RSTN=$$STN^RMPR5HQL(RST),RPR=0 F RI=0:0 S RI=$O(^TMP($J,R5,RST,RI)) Q:$G(RFL)  Q:RI'>0  D
 | 
|---|
| 52 |  .D:RPR=0 HDRI
 | 
|---|
| 53 |  .S RNPGRP=RMARRAY(RI)
 | 
|---|
| 54 |  .S RJ=""
 | 
|---|
| 55 |  .F  S RJ=$O(^TMP($J,R5,RST,RI,RJ)) Q:$G(RFL)  D:(RLINE'="")&(RLINE'=RJ) SUML1 Q:RJ=""  D
 | 
|---|
| 56 |  ..S RLINE=RJ,RNPLINE=$$NPLIN^RMPR5HQ5(RJ)
 | 
|---|
| 57 |  ..I RGCNT=0 S RGCNT=RGCNT+1
 | 
|---|
| 58 |  ..S RK="" F  S RK=$O(^TMP($J,R5,RST,RI,RJ,RK)) Q:$G(RFL)!(RK="")  D
 | 
|---|
| 59 |  ...S RL=""
 | 
|---|
| 60 |  ...F  S RL=$O(^TMP($J,R5,RST,RI,RJ,RK,RL)) Q:$G(RFL)!(RL="")  D
 | 
|---|
| 61 |  ....S RHCPC=$P(RK,"/",1)
 | 
|---|
| 62 |  ....S:RMPRDET="I" RHCPC=RHCPC_"-"_RL
 | 
|---|
| 63 |  ....S RNPITEM=$$GETITEM^RMPR5HQ5($P(RK,"/",2),RL)
 | 
|---|
| 64 |  ....I RLCNT=0 D GLN1
 | 
|---|
| 65 |  ....S RLCNT=RLCNT+1
 | 
|---|
| 66 |  ....S RDAT=^TMP($J,R5,RST,RI,RJ,RK,RL)
 | 
|---|
| 67 |  ....S RMVA=$P(RDAT,U,1)
 | 
|---|
| 68 |  ....S RMCOM=$P(RDAT,U,2)
 | 
|---|
| 69 |  ....S RMUSE=$P(RDAT,U,3)
 | 
|---|
| 70 |  ....S RMISU=$P(RDAT,U,4)
 | 
|---|
| 71 |  ....S RMISN=$P(RDAT,U,5)
 | 
|---|
| 72 |  ....S RMAVEN=$P(RDAT,U,6)
 | 
|---|
| 73 |  ....S RMDLEN=$P(RDAT,U,7)
 | 
|---|
| 74 |  ....S RMQOHU=$P(RDAT,U,8)
 | 
|---|
| 75 |  ....S RMQOHN=$P(RDAT,U,9)
 | 
|---|
| 76 |  ....S RMVALU=$P(RDAT,U,10)
 | 
|---|
| 77 |  ....S RMVALN=$P(RDAT,U,11)
 | 
|---|
| 78 |  ....S RMAVEU=$P(RDAT,U,12)
 | 
|---|
| 79 |  ....S RMDLEU=$P(RDAT,U,13)
 | 
|---|
| 80 |  ....S RMDLEU=$S(RMDLEU>999:">999",1:$J(RMDLEU,7,0))
 | 
|---|
| 81 |  ....S RMDLEN=$S(RMDLEN>999:">999",1:$J(RMDLEN,7,0))
 | 
|---|
| 82 |  ....S:(RMVA<1)&(RMVALU>0) RMDLEU=">"_RMCALDAY
 | 
|---|
| 83 |  ....S:(RMCOM<1)&(RMVALN>0) RMDLEN=">"_RMCALDAY
 | 
|---|
| 84 |  ....;total for line item
 | 
|---|
| 85 |  ....S RMTVAL=RMTVAL+RMVA
 | 
|---|
| 86 |  ....S RMTCOML=RMTCOML+RMCOM
 | 
|---|
| 87 |  ....S:RMVA'="" RMTUSELU=RMTUSELU+RMVA
 | 
|---|
| 88 |  ....S:RMCOM'="" RMTUSELN=RMTUSELN+RMCOM
 | 
|---|
| 89 |  ....S RMTISUL=RMTISUL+RMISU
 | 
|---|
| 90 |  ....S RMTISNL=RMTISNL+RMISN
 | 
|---|
| 91 |  ....;S RMTAVELU=RMTAVELU+RMAVEU
 | 
|---|
| 92 |  ....;S RMTAVELN=RMTAVELN+RMAVEN
 | 
|---|
| 93 |  ....S RMTQOHUL=RMTQOHUL+RMQOHU
 | 
|---|
| 94 |  ....S RMTQOHNL=RMTQOHNL+RMQOHN
 | 
|---|
| 95 |  ....S RMTVALUL=RMTVALUL+RMVALU
 | 
|---|
| 96 |  ....S RMTVALNL=RMTVALNL+RMVALN
 | 
|---|
| 97 |  ....;total for group
 | 
|---|
| 98 |  ....S RMTVAG=RMTVAG+RMVA
 | 
|---|
| 99 |  ....S RMTCOMG=RMTCOMG+RMCOM
 | 
|---|
| 100 |  ....S RMTUSEG=RMTUSEG+RMVA
 | 
|---|
| 101 |  ....S RMTISUG=RMTISUG+RMISU
 | 
|---|
| 102 |  ....S RMTISNG=RMTISNG+RMISN
 | 
|---|
| 103 |  ....S RMTQOHUG=RMTQOHUG+RMQOHU
 | 
|---|
| 104 |  ....S RMTQOHNG=RMTQOHNG+RMQOHN
 | 
|---|
| 105 |  ....S RMTVALUG=RMTVALUG+RMVALU
 | 
|---|
| 106 |  ....S RMTVALNG=RMTVALNG+RMVALN
 | 
|---|
| 107 |  ....S RMGTOU=RMGTOU+RMVALU
 | 
|---|
| 108 |  ....S RMGTON=RMGTON+RMVALN
 | 
|---|
| 109 |  ....S RMGTIU=RMGTIU+RMISU
 | 
|---|
| 110 |  ....S RMGTIN=RMGTIN+RMISN
 | 
|---|
| 111 |  ....S:'RMISU RMISU=""
 | 
|---|
| 112 |  ....S:'RMISN RMISN=""
 | 
|---|
| 113 |  ....S RMVALU=$FN(RMVALU,",",2) S:'RMVALU RMVALU=""
 | 
|---|
| 114 |  ....S RMVALN=$FN(RMVALN,",",2) S:'RMVALN RMVALN=""
 | 
|---|
| 115 |  ....S:RMVA="" RMVA=0 S:RMISU="" RMISU=0 S:RMCOM="" RMCOM=0
 | 
|---|
| 116 |  ....S:RMISN="" RMISN=0
 | 
|---|
| 117 |  ....;for used item
 | 
|---|
| 118 |  ....W:$G(RMVA)!$G(RMVALU) !,RHCPC,?10,$E(RNPITEM,1,15),?26,$J(RMVA,5),?33,$J($FN(RMISU,",",2),7),?40,"|",?59,"|",?60,$J(RMVA,5),?67,"|",?71,$J(RMAVEU,5,2),?78,"|",?81,$J(RMQOHU,5)
 | 
|---|
| 119 |  ....W:$G(RMVA)!$G(RMVALU) ?94,"|",?96,$J(RMDLEU,7),?103,"|",?104,$J(RMVALU,11)
 | 
|---|
| 120 |  ....;for new item
 | 
|---|
| 121 |  ....W:$G(RMCOM)!$G(RMVALN) !,RHCPC,?10,$E(RNPITEM,1,15),?40,"|",?41,$J(RMCOM,4),?49,$J($FN(RMISN,",",2),9),?59,"|",?60,$J(RMCOM,5),?67,"|",?71,$J(RMAVEN,5,2),?78,"|"
 | 
|---|
| 122 |  ....W:$G(RMCOM)!$G(RMVALN) ?87,$J(RMQOHN,6),?94,"|",?96,$J(RMDLEN,7),?103,"|",?116,$J(RMVALN,11)
 | 
|---|
| 123 |  ....S (RPRINT,RPR)=1
 | 
|---|
| 124 |  ....I $Y+8>IOSL,IOST["C-" K DIR S DIR(0)="E" D ^DIR S:+Y'>0 RFL=1 Q:+Y'>0  W @IOF D HDRI,LBL1
 | 
|---|
| 125 |  ....I $Y+8>IOSL,IOST'["C-" W @IOF D HDRI,LBL1
 | 
|---|
| 126 |  ;print total for Used and New items (all report type)
 | 
|---|
| 127 | TOT G:$G(RFL) CLEAN1
 | 
|---|
| 128 |  I '$G(RPRINT) W !!,"No Records to Print !!" G CLEAN1
 | 
|---|
| 129 |  W !!,?10,"GRAND TOTAL $ VALUE ISSUED (Used) = ",?38,"$",$J($FN(RMGTIU,",",2),10)
 | 
|---|
| 130 |  W ?80,"GRAND TOTAL $ VALUE ON-HAND (Used) = ",?115,"$",$J($FN(RMGTOU,",",2),12)
 | 
|---|
| 131 |  W !,?10,"GRAND TOTAL $ VALUE ISSUED (New)  = ",?38,"$",$J($FN(RMGTIN,",",2),10)
 | 
|---|
| 132 |  W ?80,"GRAND TOTAL $ VALUE ON-HAND (New)  = ",?115,"$",$J($FN(RMGTON,",",2),12)
 | 
|---|
| 133 |  W !,"<End of Report>"
 | 
|---|
| 134 |  ;
 | 
|---|
| 135 | CLEAN1 ; Clean and EXITS program.
 | 
|---|
| 136 |  I $E(IOST)["C",'$D(DUOUT) K DIR S DIR(0)="E" D ^DIR
 | 
|---|
| 137 |  I $D(ZTQUEUED) S ZTREQ="@" Q
 | 
|---|
| 138 |  D ^%ZISC
 | 
|---|
| 139 |  N RMPR,RMPRSITE
 | 
|---|
| 140 |  D KILL^XUSCLEAN
 | 
|---|
| 141 |  K ^TMP($J)
 | 
|---|
| 142 |  Q
 | 
|---|
| 143 |  ;
 | 
|---|
| 144 | HDRI ;print heading.
 | 
|---|
| 145 |  Q:$G(RFL)
 | 
|---|
| 146 |  S RMPAGE=RMPAGE+1
 | 
|---|
| 147 |  W !,"PROSTHETIC INVENTORY ITEM DETAIL REPORT",?50,"Run Date: ",RMRDATE,?100,"Page: ",RMPAGE
 | 
|---|
| 148 |  W !,"STATION: ",$E(RSTN,1,20)
 | 
|---|
| 149 |  W ?32,RMBD," - ",RMED,"  [ ",RMCALDAY," calendar days ]"
 | 
|---|
| 150 |  Q
 | 
|---|
| 151 |  ;
 | 
|---|
| 152 | LBL1 ;print column header.
 | 
|---|
| 153 |  Q:$G(RFL)
 | 
|---|
| 154 |  W !,RLN
 | 
|---|
| 155 |  W:RMPRDET="I" !,"HCPCS     PSAS/ITEM"
 | 
|---|
| 156 |  W:RMPRDET="H" !,"HCPCS    DESCRIPTION"
 | 
|---|
| 157 |  W:RMPRDET="L" !,"NPPD LINE"
 | 
|---|
| 158 |  W:RMPRDET="G" !,"NPPD GROUP"
 | 
|---|
| 159 |  W ?23,"V.A.(Used)  Total| COM. (New)  Total| Total |Days Ave  |  Stock On-Hand| Days   |Total $ Value On-Hand"
 | 
|---|
| 160 |  W !,?23,"Issue     $ Value| Issue     $ Value| Issue |Usage Rate|  Used    New  | On-Hand|   Used        New"
 | 
|---|
| 161 |  W:RMPRDET'="G" !,RLN
 | 
|---|
| 162 |  Q
 | 
|---|
| 163 |  ;
 | 
|---|
| 164 | GLN1 ;print NPPD GROUP and LINE header.
 | 
|---|
| 165 |  Q:$G(RFL)
 | 
|---|
| 166 |  W !!,RJ," ",RNPLINE," [",RNPGRP," ]"
 | 
|---|
| 167 |  D LBL1
 | 
|---|
| 168 |  Q
 | 
|---|
| 169 |  ;
 | 
|---|
| 170 | SUML1 ;print summary total for NPPD LINE
 | 
|---|
| 171 |  Q:$G(RFL)
 | 
|---|
| 172 |  W !,REQ
 | 
|---|
| 173 |  S:$G(RMTUSELU) RMTAVELU=RMTUSELU/RMCALDAY
 | 
|---|
| 174 |  S:$G(RMTUSELN) RMTAVELN=RMTUSELN/RMCALDAY
 | 
|---|
| 175 |  ;S:RMTDLEL>999 RMTDLEL=">999"
 | 
|---|
| 176 |  ;next two lines print used total
 | 
|---|
| 177 |  W !,?5,"(Used)",?26,$J(RMTVAL,5),?34,$J($FN(RMTISUL,",",2),6),?40,"|",?59,"|",?60,$J(RMTUSELU,5),?67,"|",?71,$J(RMTAVELU,5,2),?78,"|"
 | 
|---|
| 178 |  W ?81,$J(RMTQOHUL,5),?94,"|",?103,"|",?104,$J($FN(RMTVALUL,",",2),11)
 | 
|---|
| 179 |  ;next two lines print new total
 | 
|---|
| 180 |  W !,?5,"(New)",?40,"|",?41,$J(RMTCOML,4),?49,$J($FN(RMTISNL,",",2),9),?59,"|",?60,$J(RMTUSELN,5),?67,"|",?71,$J(RMTAVELN,5,2),?78,"|"
 | 
|---|
| 181 |  W ?87,$J(RMTQOHNL,6),?94,"|",?103,"|",?116,$J($FN(RMTVALNL,",",2),11)
 | 
|---|
| 182 |  S (RMTVAL,RMTISUL,RMTCOML,RMTISNL,RMTUSEL,RMTAVELU,RMTAVELN,RMTQOHUL,RMTQOHNL,RMTVALUL,RMTVALNL,RLCNT,RMTUSELU,RMTUSELN)=0
 | 
|---|
| 183 |  S (RNPLINE,RLINE)=""
 | 
|---|
| 184 |  Q
 | 
|---|