| 1 | PRCPEITG ;WOIFO/CC-enter/edit inventory items (On-Demand) ; 11/6/06 9:56am
 | 
|---|
| 2 |  ;;5.1;IFCAP;**98**;Oct 20, 2000;Build 37
 | 
|---|
| 3 |  ;Per VHA Directive 2004-038, this routine should not be modified.
 | 
|---|
| 4 |  Q
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 | ODI(PRCPINPT,PRCPITEM) ; ask On-Demand and reason if appropriate, save data
 | 
|---|
| 8 |  ;
 | 
|---|
| 9 |  ; PRCPINPT   inventory point ien
 | 
|---|
| 10 |  ; PRCPITEM   ien of the selected item
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 |  N DIR,DIRUT,DIROUT,DTOUT,DUOUT,PRCPARRY,PRCPEDIT,PRCPIEN,PRCPONN,PRCPONO,PRCPREAS,Y
 | 
|---|
| 13 |  S PRCPONO=$P(^PRCP(445,+PRCPINPT,1,+PRCPITEM,0),"^",30) ; O-D Flag
 | 
|---|
| 14 |  I PRCPONO'="Y" S PRCPONO="N" ; if no value is defined, O-D Flag is No
 | 
|---|
| 15 |  ; Can user edit this On-Demand setting?
 | 
|---|
| 16 |  S PRCPEDIT=0
 | 
|---|
| 17 |  I $D(^PRCP(445,+PRCPINPT,9,"B",DUZ)) S PRCPEDIT=1 ; authorized user
 | 
|---|
| 18 |  ;
 | 
|---|
| 19 |  ; Display On-Demand value. If user is not authorized,
 | 
|---|
| 20 |  ; display << not editable >> , pause and exit
 | 
|---|
| 21 |  I 'PRCPEDIT D EN^DDIOL("ON-DEMAND: "_$S(PRCPONO="N":"NO",1:"YES")_"//   <<may not edit>>") D R^PRCPUREP Q
 | 
|---|
| 22 |  ; if user can edit value, proceed with prompting
 | 
|---|
| 23 | YN S DIR(0)="Y",DIR("A")="ON-DEMAND",DIR("B")=PRCPONO
 | 
|---|
| 24 |  S DIR("?",1)="Enter 'Y'es for low usage items qualifying to be On-Demand"
 | 
|---|
| 25 |  S DIR("?")="      'N'o  for routinely used (standard) items"
 | 
|---|
| 26 |  D ^DIR K DIR
 | 
|---|
| 27 |  ; prompt user, default to value on file
 | 
|---|
| 28 |  ; if user up-arrows or times out, exit
 | 
|---|
| 29 |  I $D(DUOUT)!$D(DTOUT) G NOCHANGE
 | 
|---|
| 30 |  I Y'=0,Y'=1 W "??" G YN
 | 
|---|
| 31 |  I Y=1 S PRCPONN="Y"
 | 
|---|
| 32 |  I Y=0 S PRCPONN="N"
 | 
|---|
| 33 |  ; if new value agrees with current setting, exit
 | 
|---|
| 34 |  I PRCPONN=PRCPONO Q  ; no additional processing required
 | 
|---|
| 35 |  ;
 | 
|---|
| 36 |  ; prompt user for reason
 | 
|---|
| 37 | RS S DIR(0)="F^3:30",DIR("A")="REASON FOR CHANGE"
 | 
|---|
| 38 |  S DIR("?")="Enter 3 - 30 characters with no embedded '^' and no leading spaces"
 | 
|---|
| 39 |  ; if user enters '^', all spaces or just hits return, tell user setting will not be changed - no reason entered, prompt On-Demand again.
 | 
|---|
| 40 |  D ^DIR K DIR
 | 
|---|
| 41 |  I $D(DUOUT)!$D(DTOUT) G NOCHANGE
 | 
|---|
| 42 |  F  Q:$E(Y,1)'=" "  S Y=$E(Y,2,$L(Y))
 | 
|---|
| 43 |  I Y']"" W "??" G RS
 | 
|---|
| 44 |  S PRCPREAS=Y
 | 
|---|
| 45 |  ;
 | 
|---|
| 46 |  ; save new setting, date/time, DUZ, reason in audit file
 | 
|---|
| 47 |  S PRCPIEN="+1,"_+PRCPITEM_","_+PRCPINPT_","
 | 
|---|
| 48 |  S PRCPARRY(445.13,PRCPIEN,.01)=$$NOW^XLFDT
 | 
|---|
| 49 |  S PRCPARRY(445.13,PRCPIEN,1)=DUZ
 | 
|---|
| 50 |  S PRCPARRY(445.13,PRCPIEN,2)=PRCPREAS
 | 
|---|
| 51 |  S PRCPARRY(445.13,PRCPIEN,3)=PRCPONN
 | 
|---|
| 52 |  D UPDATE^DIE("","PRCPARRY")
 | 
|---|
| 53 |  I $D(^TMP("DIERR",$J)) W "NOTHING SAVED" ; likely system or space err
 | 
|---|
| 54 |  ;
 | 
|---|
| 55 |  ; Save new setting into field .8
 | 
|---|
| 56 |  S PRCPIEN=+PRCPITEM_","_+PRCPINPT_","
 | 
|---|
| 57 |  K PRCPARRY S PRCPARRY(445.01,PRCPIEN,.8)=PRCPONN
 | 
|---|
| 58 |  D UPDATE^DIE("","PRCPARRY")
 | 
|---|
| 59 |  I $D(^TMP("DIERR",$J)) W "NOTHING SAVED" ; likely system or space err
 | 
|---|
| 60 | OD Q
 | 
|---|
| 61 |  ;
 | 
|---|
| 62 | NOCHANGE D EN^DDIOL("NO DATA UPDATED.  VALID RESPONSE AND/OR REASON NOT ENTERED.")
 | 
|---|
| 63 |  D R^PRCPUREP
 | 
|---|
| 64 |  Q
 | 
|---|