1 | RMPR5NU1 ;HIN/RVD-INVENTORY UPDATE UTILITY ;3/24/1998
|
---|
2 | ;;3.0;PROSTHETICS;**33,37,53**;Feb 09, 1996
|
---|
3 | ;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ADD ;add a new inventory stock record
|
---|
5 | K Y,DD,DO S DIC="^RMPR(661.2,",DIC(0)="L",X=DT,DLAYGO=661.2 D FILE^DICN K DLAYGO S (RM6612,DA)=+Y
|
---|
6 | Q:'$D(RMLOC)
|
---|
7 | D UPD Q:$D(RQUIT)
|
---|
8 | S ^RMPR(661.2,DA,0)=DT_"^"_RMPRDFN_"^"_RMSO_"^"_RMDAHC_"^^"_RMSER_"^"_DUZ_"^"_RMQTY_"^"_RMIT_"^^^"_RMTOBA_"^^"_$J(RMTOCO,0,2)_"^"_RMPR("STA")_"^"_RMLOC_"^"_$J(RMAVA,0,2)
|
---|
9 | S:$D(RMLAB) ^RMPR(661.2,DA,1)=RMTIME_"^"_$J(RMLACO,0,2)
|
---|
10 | S DIK="^RMPR(661.2," D IX1^DIK
|
---|
11 | Q
|
---|
12 | ;
|
---|
13 | EDIT ;update the current balance.
|
---|
14 | S RMITEM=$O(^RMPR(661.1,"G",RMITEM,0))
|
---|
15 | Q:'$D(^RMPR(661.1,RMITEM,3))
|
---|
16 | D UPD
|
---|
17 | S DIC="^RMPR(661.2,",DIC(0)="L",X=DT,DLAYGO=661.2 D FILE^DICN G:Y'>0 EXIT S DA=+Y K DLAYGO,DIC,DIC(0),X
|
---|
18 | S RMMES="Issue from Stock was updated: ("
|
---|
19 | S ^RMPR(661.2,DA,0)=DT_"^^^^^^^"_RMQTY_"^"_RMITEM_"^^^"_RMBAL_"^"_RMMES_"^"_RMTOCO
|
---|
20 | S DIK="^RMPR(661.2," D IX1^DIK
|
---|
21 | Q
|
---|
22 | ;
|
---|
23 | UPD ;update item current balance in 661.3
|
---|
24 | S RMAVCO=0
|
---|
25 | S RM3=$G(^RMPR(661.3,RMLOC,1,RMHCDA,1,RMITDA,0))
|
---|
26 | S RMBA=$P(RM3,U,2),RMCO=$P(RM3,U,3),RMAVCO=$P(RM3,U,10)
|
---|
27 | S RMBA=RMBA-RMQTY S RMCO=RMBA*RMAVCO
|
---|
28 | S $P(^RMPR(661.3,RMLOC,1,RMHCDA,1,RMITDA,0),U,2)=RMBA
|
---|
29 | S $P(^RMPR(661.3,RMLOC,1,RMHCDA,1,RMITDA,0),U,3)=RMCO
|
---|
30 | ;
|
---|
31 | BAL ;get total cost of the same HCPCS and ITEM @ the same station.
|
---|
32 | S RS=RMPR("STA"),(RMTOBA,RMTOCO,RMAVA)=0
|
---|
33 | F RLO=0:0 S RLO=$O(^RMPR(661.3,"E",RS,RLO)) Q:RLO'>0 I $D(^RMPR(661.3,RLO,1,"B",RMDAHC)) S RHC=$O(^RMPR(661.3,RLO,1,"B",RMDAHC,0)) S RIT=$O(^RMPR(661.3,RLO,1,RHC,1,"B",RMIT,0)) D
|
---|
34 | .Q:'RIT
|
---|
35 | .S RENT=$G(^RMPR(661.3,RLO,1,RHC,1,RIT,0))
|
---|
36 | .S RMBAA=$P(RENT,U,2),RMCOA=$P(RENT,U,3),RMAVA=$P(RENT,U,10),RMSOA=$P(RENT,U,9)
|
---|
37 | .S RMTOBA=RMTOBA+RMBAA,RMTOCO=RMTOCO+RMCOA
|
---|
38 | S:RMTOBA RMAVA=RMTOCO/RMTOBA
|
---|
39 | Q
|
---|
40 | ;
|
---|
41 | ;RE = EDIT FLAG
|
---|
42 | ;RL =location
|
---|
43 | ;RH = hcpcs IEN (NEW)
|
---|
44 | ;RHO = hcpcs IEN (OLD)
|
---|
45 | ;RMLOC,RDESC,RMHCDA = variables created
|
---|
46 | ;
|
---|
47 | ITEMLOC(RE,RL,RH,RHO) ;ASK for an Item Location.
|
---|
48 | ;
|
---|
49 | N X,Y,DIC,RMLOCC,RMHCC,RMHCC,RMHC,RMLO1,RMLLF,RMLCOUNT,DA
|
---|
50 | I '$D(^RMPR(661.3,"C",RH)) K RMLOC Q
|
---|
51 | S RMLLF=0,RMLOCC=0
|
---|
52 | S RMHCC=$P(^RMPR(661.1,RH,3,0),U,4) S:RMHCC=1 RMLLF=1
|
---|
53 | S RDESC=$P(^RMPR(661.1,RH,0),U,2)
|
---|
54 | S RMHC=$P(^RMPR(661.1,RH,0),U,1)
|
---|
55 | K Y,DIC("B")
|
---|
56 | ;
|
---|
57 | LODIC S DIC("S")="I $D(^RMPR(661.3,+Y,1,""B"",RH)),$P(^RMPR(661.3,+Y,0),U,3)=RMPR(""STA"")"
|
---|
58 | S DIC("A")="Enter Inventory LOCATION: "
|
---|
59 | I $G(RE)&(RH=RHO) S DIC("B")=$P(^RMPR(661.3,RL,0),U,1)
|
---|
60 | S DIC="^RMPR(661.3,",DIC(0)="AENMQ"
|
---|
61 | D ^DIC K DIC
|
---|
62 | I $D(DUOUT)!$D(DTOUT)!$D(DIRUT) S RQUIT=1 Q
|
---|
63 | I +Y'>0 G LODIC
|
---|
64 | S RL=+Y
|
---|
65 | ;
|
---|
66 | LOCPROC ;jump here if only one location
|
---|
67 | S RMLOC=RL
|
---|
68 | S RMHCDA=$O(^RMPR(661.3,RL,1,"B",RH,0))
|
---|
69 | Q
|
---|
70 | ;
|
---|
71 | ;RE = edit flag
|
---|
72 | ;RL = location NEW
|
---|
73 | ;RO = location old
|
---|
74 | ;RC = HCPCS entry in 661.3
|
---|
75 | ;RH = HCPCS NEW
|
---|
76 | ;RHO = HCPCS OLD
|
---|
77 | ;RI = PSAS-item#
|
---|
78 | ;RMDES,RMIT,RMITDA,RMITDES variables created
|
---|
79 | ITEM(RE,RL,RO,RH,RHO,RC,RI) ;ask for PSAS ITEM
|
---|
80 | N Y,X,DIC,RMIIF,RMDAHC,RMHCPC,RMHC,RMUBA,RMU3,DA
|
---|
81 | ;
|
---|
82 | ITDIC ;
|
---|
83 | I $G(RE)&(RL=RO)&(RH=RHO) S DIC("B")=$G(RI)
|
---|
84 | ;S DIC("S")="I $D(^RMPR(661.3,RL,1,RC,1,""B"",Y))"
|
---|
85 | S DA(2)=RL,DA(1)=RC
|
---|
86 | S DIC="^RMPR(661.3,"_DA(2)_",1,"_DA(1)_",1,"
|
---|
87 | S DIC(0)="AEMNQ",DIC("A")="Enter PSAS Item: " D ^DIC K DIC
|
---|
88 | I $D(DUOUT)!$D(DTOUT) S RQUIT=1 Q
|
---|
89 | I +Y'>0 G ITDIC
|
---|
90 | S RMITDA=+Y,(RMITDES,RMIT)=$P(^RMPR(661.3,RL,1,RC,1,+Y,0),U,1)
|
---|
91 | S RMU3=$G(^RMPR(661.3,RL,1,RC,1,RMITDA,0))
|
---|
92 | S RMDES=RMIT K DIC("B"),DIC("S")
|
---|
93 | S RMUBA=$P(RMU3,U,2)
|
---|
94 | I RMUBA<1 W !,$C(7),"*** ITEM BALANCE is LOW @ this Pros Location......",!,"*** Please ORDER the Item or UPDATE the Inventory Balance."
|
---|
95 | Q
|
---|
96 | ;
|
---|
97 | DSP ;display HCPCS @ a LOCATION
|
---|
98 | K ^TMP($J) S (RCNT,RMPRI,REND)=0
|
---|
99 | S RMPRI=0 F S RMPRI=$O(^RMPR(661.3,RMLODA,1,RMPRI)) Q:RMPRI'>0 D
|
---|
100 | .S RMPRI1=$P(^RMPR(661.3,RMLODA,1,RMPRI,0),U,1),RMPRIT=$P(^RMPR(661.1,RMPRI1,0),U,1),^TMP($J,RMPRIT)=$P(^RMPR(661.1,RMPRI1,0),U,2)
|
---|
101 | I $D(^TMP($J)) W !,"List of HCPCS at location: ",RMLOC S RI="" F S RI=$O(^TMP($J,RI)) Q:RI=""!(REND) D
|
---|
102 | .S RCNT=RCNT+1
|
---|
103 | .I RCNT>16 R !,"Enter <RETURN> for more or ^ to STOP listing",RANS:DTIME S:$D(DTOUT)!$D(DUOUT)!(RANS="^") REND=1 S RCNT=0
|
---|
104 | .W !,RI,?12,^TMP($J,RI)
|
---|
105 | LDIC I RFL S X="?",DIC=661.1,DIC(0)="EQM",DIC("W")="W "" "",$P(^RMPR(661.1,+Y,0),U,2) I $P(^RMPR(661.1,+Y,0),U,5)=0 W "" **Inactive HCPCS**""" D ^DIC K RFL
|
---|
106 | K ^TMP($J),RANS,RCNT,REND,RI,RMPRI,RMPRI1,RMPRIT
|
---|
107 | Q
|
---|
108 | ;
|
---|
109 | VEND() ;
|
---|
110 | N RMU3
|
---|
111 | S RMU3=$G(^RMPR(661.3,RMLOC,1,RMHCDA,1,RMITDA,0))
|
---|
112 | S Y=$P(RMU3,U,5)
|
---|
113 | Q Y
|
---|
114 | ;
|
---|
115 | ;
|
---|
116 | BALA() ;
|
---|
117 | N RMU3
|
---|
118 | S RMU3=$G(^RMPR(661.3,RMLOC,1,RMHCDA,1,RMITDA,0))
|
---|
119 | S Y=$P(RMU3,U,3)
|
---|
120 | Q Y
|
---|
121 | ;
|
---|
122 | COST() ;
|
---|
123 | N RMU3
|
---|
124 | S RMU3=$G(^RMPR(661.3,RMLOC,1,RMHCDA,1,RMITDA,0))
|
---|
125 | S Y=$P(RMU3,U,10)
|
---|
126 | Q Y
|
---|
127 | ;
|
---|
128 | SOURCE() ;
|
---|
129 | N RMU3
|
---|
130 | S RMU3=$G(^RMPR(661.3,RMLOC,1,RMHCDA,1,RMITDA,0))
|
---|
131 | S Y=$P(RMU3,U,9)
|
---|
132 | Q Y
|
---|
133 | ;
|
---|
134 | CONV ;convert utility for Inventory Location field. (in CAPS)
|
---|
135 | S RJ=0,RMDAT=X,X=""
|
---|
136 | PROC S RJ=RJ+1 Q:RJ>$L(RMDAT) S RA=$E(RMDAT,RJ,RJ),RB=$A(RA) D:(RB>96)&(RB<123) ST S:(RB<97)!(RB>123) RMC=RA S X=X_RMC G PROC
|
---|
137 | ST S RC=RB-32,RMC=$C(RC)
|
---|
138 | Q
|
---|
139 | ;
|
---|
140 | EXIT ;EXIT FOR INVENTORY UPDATE UTILITY
|
---|
141 | K DLAYGO,DUOUT,DTOUT,DIE,DIC,DA,DR,RMQTY,RMIEN,RMSO,RMLOC,RMBAL,RMPRIEN,RMITEM
|
---|
142 | Q
|
---|
143 | NDX ;reindex the 'D1' cross-reference of file 661.3
|
---|
144 | S DIK(1)=".01^D1"
|
---|
145 | W !!,"Reindexing 'D1' cross reference of file #661.3...",!
|
---|
146 | F RI=0:0 S RI=$O(^RMPR(661.3,RI)) Q:RI'>0 F RJ=0:0 S RJ=$O(^RMPR(661.3,RI,1,RJ)) Q:RJ'>0 D
|
---|
147 | .F RK=0:0 S RK=$O(^RMPR(661.3,RI,1,RJ,1,RK)) Q:RK'>0 I $D(^(RK,0)) D
|
---|
148 | ..S DA(2)=RI,DA(1)=RJ,DA=RK,DIK="^RMPR(661.3,"_DA(2)_",1,"_DA(1)_",1,"
|
---|
149 | ..D EN1^DIK
|
---|
150 | K RI,RJ,RK,DIK,DA
|
---|
151 | Q
|
---|