| [613] | 1 | PRCPUX2 ;WISC/RFJ/VAC/DST-extrinsic functions                              ; 2/21/07 10:52am
 | 
|---|
 | 2 |  ;;5.1;IFCAP;**98**;Oct 20, 2000;Build 37
 | 
|---|
 | 3 |  ;Per VHA Directive 2004-038, this routine should not be modified.
 | 
|---|
 | 4 |  ;*98 Added three new calls to support On-Demand Items
 | 
|---|
 | 5 |  ;*98 Added fourth call to support ODI All items or single item
 | 
|---|
 | 6 |  Q
 | 
|---|
 | 7 |  ;
 | 
|---|
 | 8 |  ;
 | 
|---|
 | 9 | ISMSFLAG(SITE) ;  isms switch on|off for site
 | 
|---|
 | 10 |  ;  switch=0 or 1 for log code sheet format
 | 
|---|
 | 11 |  ;  switch=2 for isms code sheet formats
 | 
|---|
 | 12 |  N % S %=+$P($G(^PRC(411,+SITE,0)),"^",23)
 | 
|---|
 | 13 |  Q $S(1:1,%=0:1,1:%)
 | 
|---|
 | 14 |  ;
 | 
|---|
 | 15 |  ;
 | 
|---|
 | 16 | INPERCNT(V1,V2,V3,V4) ;  initialize percent graph
 | 
|---|
 | 17 |  ;  v1=total number of entries
 | 
|---|
 | 18 |  ;  v2=display character
 | 
|---|
 | 19 |  ;  v3=reverse video on (optional)
 | 
|---|
 | 20 |  ;  v4=reverse video off (optional)
 | 
|---|
 | 21 |  ;  returns number v2 to display per entry
 | 
|---|
 | 22 |  W !!?30,"% COMPLETE",!?10,"0   10   20   30   40   50   60   70   80   90   100"
 | 
|---|
 | 23 |  W !?10,"|----+----+----+----+----+----+----+----+----+----|"
 | 
|---|
 | 24 |  W !?10,V3,V2,V4
 | 
|---|
 | 25 |  S %=.02*V1,%=$S(%=0:50,1:1/%)
 | 
|---|
 | 26 |  Q %
 | 
|---|
 | 27 |  ;
 | 
|---|
 | 28 |  ;
 | 
|---|
 | 29 | SHPERCNT(V1,V2,V3,V4,V5,V6) ; display percent complete
 | 
|---|
 | 30 |  ;  v1=current entry number executed
 | 
|---|
 | 31 |  ;  v2=display this many v3 for each entry
 | 
|---|
 | 32 |  ;  v3=character to display
 | 
|---|
 | 33 |  ;  v4=reverse video on (optional)
 | 
|---|
 | 34 |  ;  v5=reverse video off (optional)
 | 
|---|
 | 35 |  ;  return last one displayed
 | 
|---|
 | 36 |  N %
 | 
|---|
 | 37 |  S X=V1*V2\1 S:X>50 X=50 F %=((V1-1*V2\1)+1):1:X W V4,V3,V5 I $X>50,$D(PRCP("XY")) X PRCP("XY")
 | 
|---|
 | 38 |  Q X
 | 
|---|
 | 39 |  ;
 | 
|---|
 | 40 |  ;
 | 
|---|
 | 41 | QPERCNT(V1,V2,V3,V4) ;  finish percent display
 | 
|---|
 | 42 |  ;  v1=last v2 displayed
 | 
|---|
 | 43 |  ;  v2=character to display
 | 
|---|
 | 44 |  ;  v3=reverse video on (optional)
 | 
|---|
 | 45 |  ;  v4=reverse video off (optional)
 | 
|---|
 | 46 |  N %
 | 
|---|
 | 47 |  F %=V1+1:1:50 W V3,V2,V4 I $X>50,$D(PRCP("XY")) X PRCP("XY")
 | 
|---|
 | 48 |  Q
 | 
|---|
 | 49 |  ;
 | 
|---|
 | 50 |  ;
 | 
|---|
 | 51 | DISPLAY(DX1,DX2,X) ;  display message
 | 
|---|
 | 52 |  ;  dx1 = begin column
 | 
|---|
 | 53 |  ;  dx2 = end column
 | 
|---|
 | 54 |  ;  x = message
 | 
|---|
 | 55 |  N %,END,LENGTH,LINE,NEXT,PRCPFLAG,PRCPLINE,TEXT
 | 
|---|
 | 56 |  S LENGTH=DX2-DX1 I LENGTH<10 S (DX1,DX2)=1,LENGTH=79
 | 
|---|
 | 57 |  S DX1=DX1-1,DX2=DX2-1,PRCPLINE="",$P(PRCPLINE,"-",LENGTH)="",PRCPLINE="+"_PRCPLINE_"+"
 | 
|---|
 | 58 |  W !?DX1,PRCPLINE
 | 
|---|
 | 59 |  S LINE=0,TEXT=""
 | 
|---|
 | 60 |  F  D  I TEXT="",'$O(X(LINE)) Q
 | 
|---|
 | 61 |  .   ;
 | 
|---|
 | 62 |  .   ;  get more text if less than 240 characters
 | 
|---|
 | 63 |  .   F  D  Q:$G(PRCPFLAG)
 | 
|---|
 | 64 |  .   .   S NEXT=+$O(X(LINE))
 | 
|---|
 | 65 |  .   .   I NEXT,$L(TEXT)+$L($G(X(NEXT)))<240 S TEXT=TEXT_$S(TEXT'="":" ",1:"")_$G(X(NEXT)) K X(NEXT) Q
 | 
|---|
 | 66 |  .   .   S PRCPFLAG=1
 | 
|---|
 | 67 |  .   ;
 | 
|---|
 | 68 |  .   ;  fit text in window
 | 
|---|
 | 69 |  .   F END=LENGTH:-1:0 S %=$E(TEXT,END) I %=""!(%=" ") Q
 | 
|---|
 | 70 |  .   I END=0 S END=LENGTH
 | 
|---|
 | 71 |  .   W !?DX1,"|",$E(TEXT,1,END-1),?DX2,"|" S TEXT=$E(TEXT,END+1,255)
 | 
|---|
 | 72 |  W !?DX1,PRCPLINE
 | 
|---|
 | 73 |  Q
 | 
|---|
 | 74 |  ;
 | 
|---|
 | 75 | ODITEM(INVPT,ITEMDA) ;Return a flag for On-Demand Item
 | 
|---|
 | 76 |  ; If an item is in the warehouse, return a "W", if the item is an 
 | 
|---|
 | 77 |  ;   on-demand item, return a "Y", otherwise return a null.
 | 
|---|
 | 78 |  Q:$P($G(^PRCP(445,INVPT,0)),"^",3)="W" "W"
 | 
|---|
 | 79 |  Q:$P($G(^PRCP(445,INVPT,1,ITEMDA,0)),"^",30)="N" ""
 | 
|---|
 | 80 |  Q $P($G(^PRCP(445,INVPT,1,ITEMDA,0)),"^",30)
 | 
|---|
 | 81 |  ;
 | 
|---|
 | 82 | ODIPROM(Y) ; Display prompt to user for On-Demand Items selection
 | 
|---|
 | 83 |  ;
 | 
|---|
 | 84 |  ; DIRUT - "^" entered, exit from this option and return to menu.
 | 
|---|
 | 85 |  ; Y - user selection, passed to calling routine for further process:
 | 
|---|
 | 86 |  ;        if Y = 1 - display Standard Items on the report only.
 | 
|---|
 | 87 |  ;        if Y = 2 - display On-Demand Items on the report only.
 | 
|---|
 | 88 |  ;        if Y = 3 - display All Items on the report.
 | 
|---|
 | 89 |  ;
 | 
|---|
 | 90 |  N X
 | 
|---|
 | 91 |  W !
 | 
|---|
 | 92 |  S X(1)=" Select On-Demand/Standard items to include on this report:             "
 | 
|---|
 | 93 |  D DISPLAY^PRCPUX2(3,75,.X)
 | 
|---|
 | 94 |  ; Choose one
 | 
|---|
 | 95 |  K DIR
 | 
|---|
 | 96 |  S DIR(0)="S^1:Standard Items Only;2:On-Demand Items Only;3:All Items (Both Standard and On-Demand)"
 | 
|---|
 | 97 |  S DIR("A")="Display information for"
 | 
|---|
 | 98 |  D ^DIR
 | 
|---|
 | 99 |  K DIR
 | 
|---|
 | 100 |  Q:$D(DIRUT) 0
 | 
|---|
 | 101 |  Q Y
 | 
|---|
 | 102 |  ;
 | 
|---|
 | 103 | SRTPRMP(Y) ; Display prompt for On-Demand Items SORT selection
 | 
|---|
 | 104 |  ;
 | 
|---|
 | 105 |  ; DIRUT - "^" entered, exit from this option and return to menu.
 | 
|---|
 | 106 |  ; Y - user selection, passed to calling routine for further process:
 | 
|---|
 | 107 |  ;     If Y = 1, report sorted by Item Description 
 | 
|---|
 | 108 |  ;        Y = 2, report sorted by Item Number
 | 
|---|
 | 109 |  N X
 | 
|---|
 | 110 |  W !
 | 
|---|
 | 111 |  S X(1)=" Select the order in which you want the item information to appear.      "
 | 
|---|
 | 112 |  D DISPLAY^PRCPUX2(3,42,.X)
 | 
|---|
 | 113 |  K DIR
 | 
|---|
 | 114 |  S DIR(0)="S^1:ITEM DESCRIPTION;2:ITEM NUMBER"
 | 
|---|
 | 115 |  S DIR("A")="Sort By"
 | 
|---|
 | 116 |  D ^DIR
 | 
|---|
 | 117 |  K DIR
 | 
|---|
 | 118 |  Q:$D(DIRUT) 0
 | 
|---|
 | 119 |  Q Y
 | 
|---|
 | 120 |  ;
 | 
|---|
 | 121 | SINGIT(PRCPIP) ; Prompt for selecting a single item or all items
 | 
|---|
 | 122 |  ; *98 Used by PRCPRODA
 | 
|---|
 | 123 |  ; ITEMSEL=NULL for all items selected or non-NULL for a single item
 | 
|---|
 | 124 |  N XP,ITEMSEL
 | 
|---|
 | 125 | SING1 S %=0,ITEMSEL=""
 | 
|---|
 | 126 |  W !
 | 
|---|
 | 127 |  W "To select All items, press RETURN."
 | 
|---|
 | 128 |  S ITEMSEL=$$ITEM^PRCPUITM(PRCPIP,0,"","")
 | 
|---|
 | 129 |  I ITEMSEL=0 D  G SING1:%=2
 | 
|---|
 | 130 |  .S XP="Do you want to select ALL items"
 | 
|---|
 | 131 |  .W !
 | 
|---|
 | 132 |  .S %=$$YN^PRCPUYN(1)
 | 
|---|
 | 133 |  .I %=1 S ITEMSEL="" Q
 | 
|---|
 | 134 |  .S ITEMSEL="^"
 | 
|---|
 | 135 |  Q ITEMSEL
 | 
|---|