| [613] | 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
 | 
|---|