| 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 | 
|---|