| 1 | RMPR5HQ6 ;HCIOFO/ODJ - USAGE CALCULATION, LOCAL REPORT ; 20 SEP 00
 | 
|---|
| 2 |  ;;3.0;PROSTHETICS;**51**;Feb 09, 1996
 | 
|---|
| 3 |  Q
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 |  ;Vars. required...
 | 
|---|
| 6 |  ;RMPRSDT
 | 
|---|
| 7 |  ;RMPREDT
 | 
|---|
| 8 | CALC N KEYS,EOF,CHNG,OLD,GTOT,LTOT,HTOT,ITOT,INVREC
 | 
|---|
| 9 |  N X1,X2,DAYS,I,DAYAV,X,QOHU,QOHN
 | 
|---|
| 10 |  D INIT(.KEYS,.EOF,.CHNG) I EOF G CALCX
 | 
|---|
| 11 |  S X2=RMPRSDT,X1=RMPREDT D ^%DTC S DAYS=X+1
 | 
|---|
| 12 |  F  Q:EOF  D
 | 
|---|
| 13 |  . S:CHNG("STATION") OLD("STATION")=KEYS("STATION")
 | 
|---|
| 14 |  . S:CHNG("NPPD_GROUP") OLD("NPPD_GROUP")=KEYS("NPPD_GROUP"),GTOT=""
 | 
|---|
| 15 |  . S:CHNG("NPPD_LINE") OLD("NPPD_LINE")=KEYS("NPPD_LINE"),LTOT=""
 | 
|---|
| 16 |  . S:CHNG("HCPC_CODE") OLD("HCPC")=KEYS("HCPC"),HTOT=""
 | 
|---|
| 17 |  . I CHNG("HCPC_ITEM") D
 | 
|---|
| 18 |  .. S OLD("HCPC_ITEM")=KEYS("HCPC_ITEM")
 | 
|---|
| 19 |  .. D RDITEM(.KEYS,.ITOT) ;get current quantity on hand and value
 | 
|---|
| 20 |  .. S QOHU=+$P(ITOT,"^",8),QOHN=+$P(ITOT,"^",9)
 | 
|---|
| 21 |  .. Q
 | 
|---|
| 22 |  . D RDINV(.KEYS,.INVREC) ;read inventory
 | 
|---|
| 23 |  . I INVREC("SOURCE")="C" D
 | 
|---|
| 24 |  .. S $P(ITOT,"^",2)=$P(ITOT,"^",2)+INVREC("QTY") ;commercial issue
 | 
|---|
| 25 |  .. S $P(ITOT,"^",5)=$P(ITOT,"^",5)+INVREC("ISSUE COST")
 | 
|---|
| 26 |  .. Q
 | 
|---|
| 27 |  . E  D
 | 
|---|
| 28 |  .. S $P(ITOT,"^",1)=$P(ITOT,"^",1)+INVREC("QTY") ;VA issue
 | 
|---|
| 29 |  .. S $P(ITOT,"^",4)=$P(ITOT,"^",4)+INVREC("ISSUE COST")
 | 
|---|
| 30 |  .. Q
 | 
|---|
| 31 |  . D NXINV(.KEYS,.EOF,.CHNG) ;next inventory record in ^TMP
 | 
|---|
| 32 |  . I CHNG("HCPC_ITEM")!EOF D
 | 
|---|
| 33 |  .. S DAYAV=$P(ITOT,"^",2)/DAYS
 | 
|---|
| 34 |  .. S $P(ITOT,"^",6)=DAYAV
 | 
|---|
| 35 |  .. S:DAYAV $P(ITOT,"^",7)=QOHN/DAYAV
 | 
|---|
| 36 |  .. S DAYAV=$P(ITOT,"^",1)/DAYS
 | 
|---|
| 37 |  .. S $P(ITOT,"^",12)=DAYAV
 | 
|---|
| 38 |  .. S:DAYAV $P(ITOT,"^",13)=QOHU/DAYAV
 | 
|---|
| 39 |  .. D UPITEM(.OLD,ITOT) ;update Item totals in ^TMP
 | 
|---|
| 40 |  .. F I=1:1:5,8:1:11 S $P(HTOT,"^",I)=$P(ITOT,"^",I)+$P(HTOT,"^",I)
 | 
|---|
| 41 |  .. Q
 | 
|---|
| 42 |  . I CHNG("HCPC_CODE")!EOF D
 | 
|---|
| 43 |  .. S DAYAV=$P(HTOT,"^",2)/DAYS
 | 
|---|
| 44 |  .. S $P(HTOT,"^",6)=DAYAV
 | 
|---|
| 45 |  .. S:DAYAV $P(HTOT,"^",7)=$P(HTOT,"^",9)/DAYAV
 | 
|---|
| 46 |  .. S DAYAV=$P(HTOT,"^",1)/DAYS
 | 
|---|
| 47 |  .. S $P(HTOT,"^",12)=DAYAV
 | 
|---|
| 48 |  .. S:DAYAV $P(HTOT,"^",13)=$P(HTOT,"^",8)/DAYAV
 | 
|---|
| 49 |  .. D UPHCPC(.OLD,HTOT) ;update HCPC totals in ^TMP
 | 
|---|
| 50 |  .. F I=1:1:5,8:1:11 S $P(LTOT,"^",I)=$P(HTOT,"^",I)+$P(LTOT,"^",I)
 | 
|---|
| 51 |  .. Q
 | 
|---|
| 52 |  . I CHNG("NPPD_LINE")!EOF D
 | 
|---|
| 53 |  .. S DAYAV=$P(LTOT,"^",2)/DAYS
 | 
|---|
| 54 |  .. S $P(LTOT,"^",6)=DAYAV
 | 
|---|
| 55 |  .. S:DAYAV $P(LTOT,"^",7)=$P(LTOT,"^",9)/DAYAV
 | 
|---|
| 56 |  .. S DAYAV=$P(LTOT,"^",1)/DAYS
 | 
|---|
| 57 |  .. S $P(LTOT,"^",12)=DAYAV
 | 
|---|
| 58 |  .. S:DAYAV $P(LTOT,"^",13)=$P(LTOT,"^",8)/DAYAV
 | 
|---|
| 59 |  .. D UPLIN(.OLD,LTOT) ;update NPPD line totals
 | 
|---|
| 60 |  .. S $P(GTOT,"^",4)=$P(LTOT,"^",4)+$P(GTOT,"^",4)
 | 
|---|
| 61 |  .. S $P(GTOT,"^",5)=$P(LTOT,"^",5)+$P(GTOT,"^",5)
 | 
|---|
| 62 |  .. S $P(GTOT,"^",10)=$P(LTOT,"^",10)+$P(GTOT,"^",10)
 | 
|---|
| 63 |  .. S $P(GTOT,"^",11)=$P(LTOT,"^",11)+$P(GTOT,"^",11)
 | 
|---|
| 64 |  .. Q
 | 
|---|
| 65 |  . I CHNG("NPPD_GROUP")!EOF D
 | 
|---|
| 66 |  .. D UPGRP(.OLD,GTOT) ;update NPPD group totals
 | 
|---|
| 67 |  .. Q
 | 
|---|
| 68 |  . Q
 | 
|---|
| 69 | CALCX Q
 | 
|---|
| 70 |  ;
 | 
|---|
| 71 |  ; Read inventory rec
 | 
|---|
| 72 | RDINV(PRIKEY,INVREC)    ;
 | 
|---|
| 73 |  N INVIEN,S,TNAM,NPGRP,NPLIN,HCPC,ITEM,STATION
 | 
|---|
| 74 |  S TNAM="RMPR5"
 | 
|---|
| 75 |  S INVIEN=PRIKEY("INVENTORY_IEN")
 | 
|---|
| 76 |  I INVIEN="" S INVREC("QTY")=0,INVREC("SOURCE")="",INVREC("ISSUE COST")=0 Q
 | 
|---|
| 77 |  S STATION=PRIKEY("STATION")
 | 
|---|
| 78 |  S NPGRP=PRIKEY("NPPD_GROUP")
 | 
|---|
| 79 |  S NPLIN=PRIKEY("NPPD_LINE")
 | 
|---|
| 80 |  S HCPC=PRIKEY("HCPC")
 | 
|---|
| 81 |  S ITEM=PRIKEY("HCPC_ITEM")
 | 
|---|
| 82 |  S S=$G(^TMP($J,TNAM,STATION,NPGRP,NPLIN,HCPC,ITEM,INVIEN))
 | 
|---|
| 83 |  K INVREC
 | 
|---|
| 84 |  S INVREC("QTY")=$P(S,"^",1)
 | 
|---|
| 85 |  S INVREC("SOURCE")=$P(S,"^",3)
 | 
|---|
| 86 |  S INVREC("ISSUE COST")=$P(S,"^",2)
 | 
|---|
| 87 |  Q
 | 
|---|
| 88 | RDITEM(PRIKEY,MYSTR)    ;
 | 
|---|
| 89 |  N TNAM,NPGRP,NPLIN,HCPC,ITEM,STATION
 | 
|---|
| 90 |  S TNAM="RMPR5"
 | 
|---|
| 91 |  S STATION=PRIKEY("STATION")
 | 
|---|
| 92 |  S NPGRP=PRIKEY("NPPD_GROUP")
 | 
|---|
| 93 |  S NPLIN=PRIKEY("NPPD_LINE")
 | 
|---|
| 94 |  S HCPC=PRIKEY("HCPC")
 | 
|---|
| 95 |  S ITEM=PRIKEY("HCPC_ITEM")
 | 
|---|
| 96 |  S MYSTR=$G(^TMP($J,TNAM,STATION,NPGRP,NPLIN,HCPC,ITEM))
 | 
|---|
| 97 |  Q
 | 
|---|
| 98 |  ;
 | 
|---|
| 99 |  ; Get next inventory record
 | 
|---|
| 100 | NXINV(RMPRKEY,RMPREOF,RMPRCHNG) ;
 | 
|---|
| 101 |  N TNAM,NPGRP,NPLIN,HCPC,ITEM,INVIEN,STATION
 | 
|---|
| 102 |  S TNAM="RMPR5"
 | 
|---|
| 103 |  S STATION=RMPRKEY("STATION")
 | 
|---|
| 104 |  S NPGRP=RMPRKEY("NPPD_GROUP")
 | 
|---|
| 105 |  S NPLIN=RMPRKEY("NPPD_LINE")
 | 
|---|
| 106 |  S HCPC=RMPRKEY("HCPC")
 | 
|---|
| 107 |  S ITEM=RMPRKEY("HCPC_ITEM")
 | 
|---|
| 108 |  S INVIEN=RMPRKEY("INVENTORY_IEN")
 | 
|---|
| 109 |  S RMPREOF=0
 | 
|---|
| 110 |  S RMPRCHNG("STATION")=0
 | 
|---|
| 111 |  S RMPRCHNG("NPPD_GROUP")=0,RMPRCHNG("NPPD_LINE")=0,RMPRCHNG("HCPC_CODE")=0,RMPRCHNG("HCPC_ITEM")=0
 | 
|---|
| 112 |  S INVIEN=$O(^TMP($J,TNAM,STATION,NPGRP,NPLIN,HCPC,ITEM,INVIEN))
 | 
|---|
| 113 |  S:INVIEN="" ITEM=$O(^TMP($J,TNAM,STATION,NPGRP,NPLIN,HCPC,ITEM))
 | 
|---|
| 114 |  S:ITEM="" HCPC=$O(^TMP($J,TNAM,STATION,NPGRP,NPLIN,HCPC))
 | 
|---|
| 115 |  S:HCPC="" NPLIN=$O(^TMP($J,TNAM,STATION,NPGRP,NPLIN))
 | 
|---|
| 116 |  S:NPLIN="" NPGRP=$O(^TMP($J,TNAM,STATION,NPGRP))
 | 
|---|
| 117 |  S:NPGRP="" STATION=$O(^TMP($J,TNAM,STATION))
 | 
|---|
| 118 |  I STATION=""!(STATION="Z") S RMPREOF=1,RMPRCHNG("INVENTORY_IEN")=0 G NXINVX
 | 
|---|
| 119 |  S:NPGRP="" NPGRP=$O(^TMP($J,TNAM,STATION,"")),RMPRCHNG("STATION")=1
 | 
|---|
| 120 |  S:NPLIN="" NPLIN=$O(^TMP($J,TNAM,STATION,NPGRP,"")),RMPRCHNG("NPPD_GROUP")=1
 | 
|---|
| 121 |  S:HCPC="" HCPC=$O(^TMP($J,TNAM,STATION,NPGRP,NPLIN,"")),RMPRCHNG("NPPD_LINE")=1
 | 
|---|
| 122 |  S:ITEM="" ITEM=$O(^TMP($J,TNAM,STATION,NPGRP,NPLIN,HCPC,"")),RMPRCHNG("HCPC_CODE")=1
 | 
|---|
| 123 |  S:INVIEN="" INVIEN=$O(^TMP($J,TNAM,STATION,NPGRP,NPLIN,HCPC,ITEM,"")),RMPRCHNG("HCPC_ITEM")=1
 | 
|---|
| 124 |  S RMPRCHNG("INVENTORY_IEN")=1
 | 
|---|
| 125 |  S RMPRKEY("STATION")=STATION
 | 
|---|
| 126 |  S RMPRKEY("NPPD_GROUP")=NPGRP
 | 
|---|
| 127 |  S RMPRKEY("NPPD_LINE")=NPLIN
 | 
|---|
| 128 |  S RMPRKEY("HCPC")=HCPC
 | 
|---|
| 129 |  S RMPRKEY("HCPC_CODE")=$P(HCPC,"/",1)
 | 
|---|
| 130 |  S RMPRKEY("HCPC_IEN")=$P(HCPC,"/",2)
 | 
|---|
| 131 |  S RMPRKEY("HCPC_ITEM")=ITEM
 | 
|---|
| 132 |  S RMPRKEY("INVENTORY_IEN")=INVIEN
 | 
|---|
| 133 | NXINVX Q
 | 
|---|
| 134 |  ;
 | 
|---|
| 135 |  ; Init. TMP array keys
 | 
|---|
| 136 | INIT(RMPRKEY,RMPREOF,RMPRCHNG) ;
 | 
|---|
| 137 |  N TNAM,NPGRP,NPLIN,HCPC,ITEM,INVIEN,STATION
 | 
|---|
| 138 |  S TNAM="RMPR5"
 | 
|---|
| 139 |  K RMPRKEY
 | 
|---|
| 140 |  S RMPREOF=0
 | 
|---|
| 141 |  S RMPRCHNG("STATION")=0,RMPRCHNG("NPPD_GROUP")=0,RMPRCHNG("NPPD_LINE")=0
 | 
|---|
| 142 |  S RMPRCHNG("HCPC_CODE")=0,RMPRCHNG("HCPC_ITEM")=0,RMPRCHNG("INVENTORY_IEN")=0
 | 
|---|
| 143 |  S STATION=$O(^TMP($J,TNAM,""))
 | 
|---|
| 144 |  I STATION=""!(STATION="Z") S RMPREOF=1 G INITX
 | 
|---|
| 145 |  S RMPRCHNG("STATION")=1,RMPRCHNG("NPPD_GROUP")=1,RMPRCHNG("NPPD_LINE")=1
 | 
|---|
| 146 |  S RMPRCHNG("HCPC_CODE")=1,RMPRCHNG("HCPC_ITEM")=1,RMPRCHNG("INVENTORY_IEN")=1
 | 
|---|
| 147 |  S NPGRP=$O(^TMP($J,TNAM,STATION,""))
 | 
|---|
| 148 |  S NPLIN=$O(^TMP($J,TNAM,STATION,NPGRP,""))
 | 
|---|
| 149 |  S HCPC=$O(^TMP($J,TNAM,STATION,NPGRP,NPLIN,""))
 | 
|---|
| 150 |  S ITEM=$O(^TMP($J,TNAM,STATION,NPGRP,NPLIN,HCPC,""))
 | 
|---|
| 151 |  S INVIEN=$O(^TMP($J,TNAM,STATION,NPGRP,NPLIN,HCPC,ITEM,""))
 | 
|---|
| 152 |  S RMPRKEY("STATION")=STATION
 | 
|---|
| 153 |  S RMPRKEY("NPPD_GROUP")=NPGRP
 | 
|---|
| 154 |  S RMPRKEY("NPPD_LINE")=NPLIN
 | 
|---|
| 155 |  S RMPRKEY("HCPC")=HCPC
 | 
|---|
| 156 |  S RMPRKEY("HCPC_CODE")=$P(HCPC,"/",1)
 | 
|---|
| 157 |  S RMPRKEY("HCPC_IEN")=$P(HCPC,"/",2)
 | 
|---|
| 158 |  S RMPRKEY("HCPC_ITEM")=ITEM
 | 
|---|
| 159 |  S RMPRKEY("INVENTORY_IEN")=INVIEN
 | 
|---|
| 160 | INITX Q
 | 
|---|
| 161 |  ;
 | 
|---|
| 162 |  ; ^TMP updates
 | 
|---|
| 163 | UPGRP(PRIKEY,MYSTR) ;
 | 
|---|
| 164 |  N TNAM,NPGRP,STATION
 | 
|---|
| 165 |  S TNAM="RMPR5"
 | 
|---|
| 166 |  S STATION=PRIKEY("STATION")
 | 
|---|
| 167 |  S NPGRP=PRIKEY("NPPD_GROUP")
 | 
|---|
| 168 |  S ^TMP($J,TNAM,STATION,NPGRP)=MYSTR
 | 
|---|
| 169 |  Q
 | 
|---|
| 170 | UPLIN(PRIKEY,MYSTR) ;
 | 
|---|
| 171 |  N TNAM,NPGRP,NPLIN,STATION
 | 
|---|
| 172 |  S TNAM="RMPR5"
 | 
|---|
| 173 |  S STATION=PRIKEY("STATION")
 | 
|---|
| 174 |  S NPGRP=PRIKEY("NPPD_GROUP")
 | 
|---|
| 175 |  S NPLIN=PRIKEY("NPPD_LINE")
 | 
|---|
| 176 |  S ^TMP($J,TNAM,STATION,NPGRP,NPLIN)=MYSTR
 | 
|---|
| 177 |  Q
 | 
|---|
| 178 | UPHCPC(PRIKEY,MYSTR) ;
 | 
|---|
| 179 |  N TNAM,NPGRP,NPLIN,HCPC,STATION
 | 
|---|
| 180 |  S TNAM="RMPR5"
 | 
|---|
| 181 |  S STATION=PRIKEY("STATION")
 | 
|---|
| 182 |  S NPGRP=PRIKEY("NPPD_GROUP")
 | 
|---|
| 183 |  S NPLIN=PRIKEY("NPPD_LINE")
 | 
|---|
| 184 |  S HCPC=PRIKEY("HCPC")
 | 
|---|
| 185 |  S ^TMP($J,TNAM,STATION,NPGRP,NPLIN,HCPC)=MYSTR
 | 
|---|
| 186 |  Q
 | 
|---|
| 187 | UPITEM(PRIKEY,MYSTR) ;
 | 
|---|
| 188 |  N TNAM,NPGRP,NPLIN,HCPC,ITEM,STATION
 | 
|---|
| 189 |  S TNAM="RMPR5"
 | 
|---|
| 190 |  S STATION=PRIKEY("STATION")
 | 
|---|
| 191 |  S NPGRP=PRIKEY("NPPD_GROUP")
 | 
|---|
| 192 |  S NPLIN=PRIKEY("NPPD_LINE")
 | 
|---|
| 193 |  S HCPC=PRIKEY("HCPC")
 | 
|---|
| 194 |  S ITEM=PRIKEY("HCPC_ITEM")
 | 
|---|
| 195 |  S ^TMP($J,TNAM,STATION,NPGRP,NPLIN,HCPC,ITEM)=MYSTR
 | 
|---|
| 196 |  Q
 | 
|---|