| 1 | ORPR06 ; slc/dcm - Rent a Requisition ; 07 Dec 99  01:43PM
 | 
|---|
| 2 |  ;;3.0;ORDER ENTRY/RESULTS REPORTING;**11,69**;Dec 17, 1997
 | 
|---|
| 3 | REQ1 ;
 | 
|---|
| 4 |  I '$S($P($G(^OR(100,+ORIFN,3)),"^",3)'=11:1,1:0) Q
 | 
|---|
| 5 |  N ORTCNT,ORX,OR3,ORPK,ORPKG
 | 
|---|
| 6 |  D GET^ORPR01(ORIFN)
 | 
|---|
| 7 |  S ORPKG=$P(ORX,"^",14)
 | 
|---|
| 8 |  I $D(OROPKG),(OROPKG'=ORPKG) S ORSNUM=1 D FOOT^ORPR01(ORFOOT) W @ORIOF
 | 
|---|
| 9 |  D REQSET
 | 
|---|
| 10 |  I +ORFMT'>0,'+$G(OREND) W:$E(IOST)="C" $C(7),!!,"Requisition copy format is not defined for this package.",!! H 1 Q
 | 
|---|
| 11 |  Q:+$P(OR3,"^",9)>0!'$L(ORX)
 | 
|---|
| 12 |  D CPRINT^ORPR01(ORIFN)
 | 
|---|
| 13 |  Q
 | 
|---|
| 14 | REQSET ;Setup
 | 
|---|
| 15 |  I $S('$G(ORPKG):1,ORPKG=$G(OROPKG):1,1:0) Q
 | 
|---|
| 16 |  S ORHEAD=$$GET^XPAR("SYS","ORPF WARD REQUISITION HEADER",ORPKG,"I")
 | 
|---|
| 17 |  S ORFOOT=$$GET^XPAR("SYS","ORPF WARD REQUISITION FOOTER",ORPKG,"I")
 | 
|---|
| 18 |  S (OROFMT,ORFMT)=$$GET^XPAR("SYS","ORPF WARD REQUISITION FORMAT",ORPKG,"I")
 | 
|---|
| 19 |  S ORIOSL=IOSL
 | 
|---|
| 20 |  I +ORFOOT,$D(^ORD(100.23,ORFOOT,0)) S ORBOT=$P(^(0),"^",2),ORIOSL=IOSL-ORBOT
 | 
|---|
| 21 |  S ORIOF=IOF
 | 
|---|
| 22 |  I +ORHEAD D PRINT^ORPR00(ORHEAD,1)
 | 
|---|
| 23 |  S IOF="!"
 | 
|---|
| 24 |  I +OROFMT S ORFMT=OROFMT
 | 
|---|
| 25 |  Q
 | 
|---|
| 26 | REQCLN ;Cleanup
 | 
|---|
| 27 |  G:+$G(OREND) REQX
 | 
|---|
| 28 |  I +$G(ORFOOT) S:IOF?1"!"."!" $P(IOF,"!",$S(ORIOSL>200:200,ORIOSL-$Y>1:ORIOSL-$Y,1:2))="" D PRINT^ORPR00(ORFOOT,1)
 | 
|---|
| 29 |  I $E(IOST)="C" D
 | 
|---|
| 30 |  . N DIR S DIR(0)="FO^1:1",DIR("A")="Press RETURN to continue or '^' to exit"
 | 
|---|
| 31 |  . D ^DIR I $S($D(DIROUT):1,$D(DUOUT):1,$D(DTOUT):1,1:0) S OREND=1
 | 
|---|
| 32 | REQX ;
 | 
|---|
| 33 |  S:$D(ORIOF) IOF=ORIOF
 | 
|---|
| 34 |  K ORHEAD,ORFOOT,OROFMT,ORFMT,ORIOF,ORBOT,ORIOSL
 | 
|---|
| 35 |  Q
 | 
|---|
| 36 | ARAY(ORVP,PKG,FIELD1,FIELD2) ;Sort by field in ^TMP("ORAFTER",$J,field,ORIFN;ACTION)
 | 
|---|
| 37 |  ;This entry point takes an array of orders and sorts them by field
 | 
|---|
| 38 |  ;PKG=ptr to package file
 | 
|---|
| 39 |  ;FIELD1=Name of field for 1st sort (e.g. START DATE)
 | 
|---|
| 40 |  ;FIELD2=Name of field for 2nd sort (e.g. SAMPLE)
 | 
|---|
| 41 |  ;^TMP("ORBEFORE",$J)=Input array
 | 
|---|
| 42 |  ;^TMP("ORAFTER",$J,FIELD1,FIELD2,ORIFN;ACTION)=Output array
 | 
|---|
| 43 |  Q:'$G(PKG)  Q:'$G(ORVP)
 | 
|---|
| 44 |  N X,IFN,ACT,CIFN
 | 
|---|
| 45 |  S IFN=""
 | 
|---|
| 46 |  F  S IFN=$O(^TMP("ORBEFORE",$J,IFN)) Q:IFN=""  S ACT=$P(IFN,";",2) D
 | 
|---|
| 47 |  . I $O(^OR(100,+IFN,2,0)) S CIFN=0 D  Q
 | 
|---|
| 48 |  .. F  S CIFN=$O(^OR(100,+IFN,2,CIFN)) Q:CIFN<1  I $D(^OR(100,CIFN,0)) D SET(^(0),ACT)
 | 
|---|
| 49 |  . S X=$G(^OR(100,+IFN,0)) D SET(X,ACT)
 | 
|---|
| 50 |  Q
 | 
|---|
| 51 | SET(X,ACT) ;
 | 
|---|
| 52 |  I $P(X,"^",2)'=ORVP K ^TMP("ORBEFORE",$J,IFN) Q
 | 
|---|
| 53 |  I +X,PKG=$P(X,"^",14) D
 | 
|---|
| 54 |  . N VAL1,VAL2
 | 
|---|
| 55 |  . S VAL1=$S($L($G(FIELD1)):$$VALUE^ORCSAVE2(+X,FIELD1),1:1)
 | 
|---|
| 56 |  . S:'$L(VAL1) VAL1=0
 | 
|---|
| 57 |  . I $G(FIELD1)="START",'VAL1 S VAL1=+$P($G(^OR(100,+IFN,0)),"^",8)
 | 
|---|
| 58 |  . S VAL2=$S($L($G(FIELD2)):$$VALUE^ORCSAVE2(+X,FIELD2),1:1)
 | 
|---|
| 59 |  . S:'$L(VAL2) VAL2=0
 | 
|---|
| 60 |  . S ^TMP("ORAFTER",$J,VAL1,VAL2,+X_$S(ACT:";"_ACT,1:""))=""
 | 
|---|
| 61 |  Q
 | 
|---|