1 | PRCPEITE ;WISC/RFJ-enter/edit inventory items ; 11/6/06 8:40am
|
---|
2 | V ;;5.1;IFCAP;**1,98**;Oct 20, 2000;Build 37
|
---|
3 | ;Per VHA Directive 2004-038, this routine should not be modified.
|
---|
4 | Q
|
---|
5 | ;
|
---|
6 | ALL(PRCPINPT,ITEMDA) ; edit all fields option (for new items)
|
---|
7 | I '$D(^PRCP(445,+PRCPINPT,1,+ITEMDA,0)) Q
|
---|
8 | N %,%H,D,D0,D1,D2,DA,DES,DI,DIC,DIE,DLAYGO,DQ,DR,I
|
---|
9 | N PRCPINDA,PRCPITEM,PRCPNL,PRCPQUIT,PRCPPRIV,PRCPTYPE,PRCPUI,PRCPUI1,X,Y
|
---|
10 | D EN^DDIOL("----- Enter Item Descriptive Data -----")
|
---|
11 | S DES=$P($G(^PRCP(445,PRCPINPT,1,ITEMDA,6)),"^")
|
---|
12 | I DES="" S DES=$$DESDEF^PRCPEITF(PRCPINPT,ITEMDA) ; get item description default
|
---|
13 | S PRCPQUIT=0
|
---|
14 | D DESCRIP^PRCPEITF(PRCPINPT,ITEMDA,.PRCPQUIT)
|
---|
15 | I PRCPQUIT Q
|
---|
16 | S DR="[PRCP ITEM ALL FIELDS (NON-SS)]"
|
---|
17 | I $P(^PRCP(445,PRCPINPT,0),"^",3)="S",$P($G(^PRCP(445,PRCPINPT,5)),"^",1)]"" S DR="[PRCP ITEM ALL FIELDS (SS)]" ; supply station monitors normal level value
|
---|
18 | S DA=PRCPINPT
|
---|
19 | S PRCPITEM=$C(96)_ITEMDA
|
---|
20 | S (DIC,DIE)="^PRCP(445,"
|
---|
21 | S DIE("NO^")="BACKOUTOK"
|
---|
22 | S PRCPPRIV=1 D ^DIE
|
---|
23 | Q
|
---|
24 | ;
|
---|
25 | ;
|
---|
26 | DESCRIP(PRCPINPT,ITEMDA) ; edit description, category, location fields
|
---|
27 | I '$D(^PRCP(445,+PRCPINPT,1,+ITEMDA,0)) Q
|
---|
28 | N %,D,D0,DA,DES,DI,DIC,DIE,DISYS,DQ,DR,DZ,E,PRCPPRIM,PRCPPRIV,PRCPPRNM,PRCPQUIT,TYPE,X,XH,XP,Y
|
---|
29 | S DES=$P($G(^PRCP(445,PRCPINPT,1,ITEMDA,6)),"^")
|
---|
30 | I DES="" S DES=$$DESDEF^PRCPEITF(PRCPINPT,ITEMDA) ; get default value
|
---|
31 | S PRCPQUIT=0
|
---|
32 | D DESCRIP^PRCPEITF(PRCPINPT,ITEMDA,.PRCPQUIT)
|
---|
33 | I PRCPQUIT Q
|
---|
34 | S DA(1)=PRCPINPT,DA=ITEMDA,(DIC,DIE)="^PRCP(445,"_PRCPINPT_",1,"
|
---|
35 | S DR=".5GROUP CATEGORY;5MAIN STORAGE LOCATION;6"
|
---|
36 | S PRCPPRIV=1
|
---|
37 | D ^DIE K PRCPPRIV
|
---|
38 | Q
|
---|
39 | ;
|
---|
40 | ;
|
---|
41 | LEVELS(PRCPINPT,ITEMDA) ; edit stock levels
|
---|
42 | I '$D(^PRCP(445,+PRCPINPT,1,+ITEMDA,0)) Q
|
---|
43 | N %,D,D0,DA,DI,DIC,DIE,DQ,DR,DZ,PRCPDR,PRCPPRIV,PRCPQUIT,UNIT,X,Y
|
---|
44 | S UNIT=$$UNIT^PRCPUX1(PRCPINPT,ITEMDA," per ")
|
---|
45 | S DR="9NORMAL STOCK LEVEL ("_UNIT_")"
|
---|
46 | S PRCPQUIT=0
|
---|
47 | ;
|
---|
48 | ; if the supply station secondary has unposted regular orders,
|
---|
49 | ; restrict editing a non-zero normal level to zero.
|
---|
50 | I $P(^PRCP(445,PRCPINPT,0),"^",3)="S",$P($G(^PRCP(445,PRCPINPT,5)),"^",1)]"" D
|
---|
51 | . D EDNORM(PRCPINPT,ITEMDA,$E(DR,2,99),.PRCPQUIT)
|
---|
52 | . S DR=""
|
---|
53 | . I $D(DUOUT)!$D(DTOUT) Q
|
---|
54 | I PRCPQUIT Q
|
---|
55 | I DR]"" S DR=DR_";"
|
---|
56 | S PRCPPRIV=1
|
---|
57 | S DR=DR_"11EMERGENCY STOCK LEVEL ("_UNIT_");9.5TEMPORARY STOCK LEVEL ("_UNIT_");I 'X S Y=10;9.6;10STANDARD REORDER POINT ("_UNIT_");10.3OPTIONAL REORDER POINT ("_UNIT_");"
|
---|
58 | S DA(1)=PRCPINPT,DA=ITEMDA,(DIC,DIE)="^PRCP(445,"_PRCPINPT_",1," D ^DIE
|
---|
59 | Q
|
---|
60 | ;
|
---|
61 | ;
|
---|
62 | SPECIAL(PRCPINPT,ITEMDA) ; special parameters and flags
|
---|
63 | I '$D(^PRCP(445,+PRCPINPT,1,+ITEMDA,0)) Q
|
---|
64 | N %,C,D,D0,D1,DA,DDH,DI,DIC,DIE,DISYS,DIZ,DLAYGO,DQ,DR,I,ISSUE,PRCPITEM,PRCPPRIV,PRCPSET,TYPE,X,Y
|
---|
65 | S (DIC,DIE)="^PRCP(445,"_PRCPINPT_",1,",PRCPSET="I PRCPITEM'=X,$D(^PRCP(445,PRCPINPT,1,X,0))",DA(1)=PRCPINPT,(PRCPITEM,DA)=ITEMDA
|
---|
66 | S TYPE=$P($G(^PRCP(445,PRCPINPT,0)),"^",3)
|
---|
67 | ; substitute item multiple
|
---|
68 | I TYPE="W",'$D(^PRCP(445,PRCPINPT,1,ITEMDA,4,0)) S ^(0)="^445.122PI^^"
|
---|
69 | I TYPE="P",$P(^PRCP(445,PRCPINPT,0),"^",10)="S" S ISSUE=1
|
---|
70 | ; removal of fields 14;14.3;14.4 if type = "P" (fields not used)
|
---|
71 | S DR="17;"_$S($G(ISSUE):"14.5;",1:"")_$S(TYPE="W":"22;",1:"")
|
---|
72 | S PRCPPRIV=1
|
---|
73 | D ^DIE I $D(DTOUT)!$D(Y) Q
|
---|
74 | K DIC,DIE,DA,DR
|
---|
75 | I TYPE'="W" D ODI^PRCPEITG(PRCPINPT,ITEMDA) ; ask On-Demand (PRC*5.1*98)
|
---|
76 | Q
|
---|
77 | ;
|
---|
78 | ;
|
---|
79 | DISPUNIT(PRCPINPT,ITEMDA) ; drug accountability dispensing units
|
---|
80 | N %,D,D0,DA,DD,DDH,DI,DIC,DIE,DISYS,DIX,DIY,DO,DQ,DR,DZ,X,Y
|
---|
81 | S DA(1)=PRCPINPT,DA=ITEMDA,(DIC,DIE)="^PRCP(445,"_PRCPINPT_",1,",DR="50;51"
|
---|
82 | S PRCPPRIV=1 D ^DIE K PRCPPRIV
|
---|
83 | Q
|
---|
84 | ;
|
---|
85 | ;
|
---|
86 | EDNORM(PRCPINPT,ITEMDA,TEXT,PRCPQUIT) ; editing the normal level on supply station secondaries
|
---|
87 | ; ITEMDA = item number requiring the default description
|
---|
88 | ; PRCPINPT = inventory point
|
---|
89 | ; TEXT = text to display when prompting the user
|
---|
90 | ; PRCPQUIT = flag to signify exit desired
|
---|
91 | ;
|
---|
92 | N DA,DIC,DIE,DIR,DR,ORD,PRCPNL,PRCPPRIV,VALUE
|
---|
93 | ; because this is sometimes called from templates, new FileMan variables
|
---|
94 | N D,D0,D1,D2,D3,D4,D5,D6,DB,DC,DD,DE,DG,DH,DI,DIA,DIADD,DICR,DIEC,DIEL
|
---|
95 | N DIFLD,DIK,DIOV,DK,DL,DLAYGO,DM,DO,DOV,DP,DQ,DU,DV,DW,I,J,X,Y
|
---|
96 | I $P(^PRCP(445,PRCPINPT,0),"^",3)'="S" QUIT
|
---|
97 | I '$P($G(^PRCP(445,PRCPINPT,5)),"^",1) QUIT
|
---|
98 | I '$D(^PRCP(445,PRCPINPT,1,ITEMDA,0)) QUIT
|
---|
99 | S PRCPNL=+$P(^PRCP(445,PRCPINPT,1,ITEMDA,0),"^",9)
|
---|
100 | S ORD=0
|
---|
101 | S ORD=$$ORDCHK^PRCPUITM(ITEMDA,PRCPINPT,"R","")
|
---|
102 | I ORD D ; this field is also a flag of items on supply station, editing must be restricted if there are outstanding supply station orders.
|
---|
103 | . N DIR
|
---|
104 | . S DIR("A")=TEXT
|
---|
105 | . S DIR("A",1)="There are outstanding regular orders for this item."
|
---|
106 | . S DIR("A",2)="You cannot delete the normal level or make it 0"
|
---|
107 | . S DIR(0)="N^1:999999"
|
---|
108 | . S DIR("B")=PRCPNL
|
---|
109 | . D ^DIR K DIR
|
---|
110 | . I $D(DUOUT)!$D(DTOUT) S PRCPQUIT=1 Q
|
---|
111 | . I X S PRCPNL=X D
|
---|
112 | . . S DA(1)=PRCPINPT,DA=ITEMDA,PRCPPRIV=1
|
---|
113 | . . S (DIC,DIE)="^PRCP(445,"_PRCPINPT_",1,"
|
---|
114 | . . S DR="9///^S X=PRCPNL"
|
---|
115 | . . D ^DIE
|
---|
116 | . . K DIC,DIE
|
---|
117 | I 'ORD D
|
---|
118 | . I PRCPNL'>0 W !!,"Changing the level from zero will add the item to the supply station."
|
---|
119 | . I PRCPNL>0 W !!,"Changing the level to zero will delete the item from the supply station."
|
---|
120 | . I $D(DUOUT)!$D(DTOUT) S PRCPQUIT=1 Q
|
---|
121 | . S DIR(0)="445.01,9^^",DA(1)=PRCPINPT,DA=ITEMDA
|
---|
122 | . D ^DIR K DIR
|
---|
123 | . S VALUE=Y
|
---|
124 | . I $D(DTOUT)!$D(DUOUT) S PRCPQUIT=1 Q
|
---|
125 | . S DR="9///^S X=VALUE"
|
---|
126 | . S DA=ITEMDA,DA(1)=PRCPINPT,PRCPPRIV=1
|
---|
127 | . S (DIC,DIE)="^PRCP(445,"_PRCPINPT_",1,"
|
---|
128 | . D ^DIE
|
---|
129 | . K DIC,DIE
|
---|
130 | . I PRCPNL,'$P(^PRCP(445,PRCPINPT,1,ITEMDA,0),"^",9) D BLDSEG^PRCPHLFM(2,ITEMDA,PRCPINPT)
|
---|
131 | . I 'PRCPNL,$P(^PRCP(445,PRCPINPT,1,ITEMDA,0),"^",9) D BLDSEG^PRCPHLFM(1,ITEMDA,PRCPINPT)
|
---|
132 | QUIT
|
---|