ORUHDR ; slc/dcm - Order entry display headers ;3/25/92 15:05 ;
;;3.0;ORDER ENTRY/RESULTS REPORTING;;Dec 17, 1997
OE ;Main Order Entry Header, expects ORUIEN (variable pointer)
;From: OR USER MENU
K ORDG S ORTIT="ORDER ENTRY",ORSTIT=""
S ORSTIT=$P(@("^"_$P(ORUIEN,";",2)_+ORUIEN_",0)"),"^",2),ORSTIT=$P(ORSTIT,"...")
D TIT,STIT3 W:'$G(ORANSI) ! D:$G(ORANSI) STIT2
K ORDG,ORPD,ORTIT,ORSTIT Q
OE2 ;Accept Orders Screen Header From: ORREV31
K ORDG S ORTIT="ORDER ENTRY"
D TIT I $D(ORSTIT),$L(ORSTIT) D STIT3 D:$G(ORANSI) STIT2
Q
EXT ;Detailed Display Header From: ORSED
Q:'$D(^OR(100,+$G(ORIFN),0))
N ORL,OROLD
S:'$D(ORTIT) ORTIT="DETAILED DISPLAY" S X=^OR(100,ORIFN,0),ORDG=$P(X,"^",11),ORDG=$P(^ORD(100.98,ORDG,0),"^",3),ORVP=$P(X,"^",2),Y=+ORVP D END^ORUDPA Q:'$D(ORPNM)
S:'$D(ORANSI) ORANSI=0 S:'$D(ORFT) ORFT=0 S:'$D(ORIO) ORIO="HOME"
I '$D(IOF) S IOP=ORIO D ^%ZIS Q:POP S X=0 X ^%ZOSF("RM") S (ORFT,ORANSI)=0
D TIT K ORDG,ORTIT Q
TIT ;General Header From: OROPRO
N ORCWAD S ORCWAD=""
I '$D(ORDG),$D(^OR(100,+$G(ORIFN),0)) D
. S ORDG=$P($G(^ORD(100.98,+$P($G(^OR(100,+$G(ORIFN),0)),U,11),0)),U,3)
I $L($T(CWAD^GMRPNOR1)),$D(ORVP) S ORCWAD=$$CWAD^GMRPNOR1(+ORVP) K GMRPCWAD
I $G(ORANSI) D:ORFT=0 ANSIH^ORPRS09 Q:ORFT=0 S ORFT=0 D ANSIR
;W !! F I=1:1:79 W "-"
S:'$D(XQORSPEW) XQORSPEW=0 W @IOF I $L($G(ORDG)),(ORTIT'[$G(ORDG)) S ORTIT=$G(ORDG)_" "_ORTIT
S X="" F I=1:1:$L(ORTIT) S X=X_" "_$E(ORTIT,I)
W $C(13),$$HON^ORU,$S($L(ORCWAD):"<"_ORCWAD_">",1:""),$$HOFF^ORU,?(80-($L(ORTIT)*2))/2,X,?(IOM-12),$$HON^ORU,$S(XQORSPEW:"Quick mode",1:""),$$HOFF^ORU
I $D(ORPNM),$D(ORSSN),$D(ORL),$D(ORDOB) D HDG
W ! F I=1:1:79 W "-"
I $G(ORANSI) K ORANSI("ST") S ORANSI("T")=$Y+2,ORANSI("B")=24,ORANSI("SL")=ORANSI("B")-ORANSI("T") D ANSIS,ANSIT
Q
STIT ;Print Sub-header
S ORSTIT=$P(@("^"_$P(ORUIEN,";",2)_+ORUIEN_",0)"),"^",2) W !
STIT1 W $C(13),?(40-($L(ORSTIT)\2)-4),"--- "_ORSTIT_" ---"
K ORSTIT Q
STIT2 I '$D(ORANSI("ST")) S ORANSI("T")=ORANSI("T")+1,ORANSI("SL")=ORANSI("SL")-1
D ANSIS,ANSIT
Q
STIT3 I $G(ORANSI),'$D(ORANSI("ST")) S ORANSI("ST")=ORANSI("T"),ORANSI("T")=ORANSI("T")+1,ORANSI("SL")=ORANSI("SL")-1
I $G(ORANSI) S DX=1,DY=ORANSI("ST") W @ORANSI("XY"),@ORANSI("EOLN")
W:'$G(ORANSI) ! D STIT1
Q
HDG ;PRINT HEADING
;I $D(VAIN("5")) S Y=+ORVP D END^ORUDPA
S X=" "_ORDOB_" ("_ORAGE_") "_"Wt (lb): "_$S($D(ORPD):ORPD,1:" ")
S X1=$S($G(ORL):$S($L($P(^SC(+ORL,0),"^",2)):$P(^(0),"^",2),1:$E($P(^(0),"^"),1,4)),1:"")_$S($L($G(ORL(1))):"/"_ORL(1),1:"")
W !,ORPNM_" "_ORSSN_" ",?(39-($L(X1)\2))," "_X1_" ",?(79-$L(X)),X
Q
PGBRK ;Call for page break
N I,X I $D(IOST),$E(IOST)["C" F I=$Y:1:IOSL-4 W !
PGBRK1 S OREND=0,X="" I $S($D(IOST):$E(IOST)["C",1:1) R !!,"Press return to continue or ""^"" to escape ",X:$S($D(DTIME):DTIME,1:300)
I X["^" S:X="^^" DIROUT=1 S OREND=1
Q
ANSIR ;Reset scroll region to full screen
W $C(27),$C(91),"1",$C(59),"24",$C(114),$C(13),#,$C(27),$C(91),$C(50),$C(74),$C(27),$C(91),$C(72)
Q
ANSIS ;Set scroll region
W $C(27),$C(91),ORANSI("T"),$C(59),ORANSI("B"),$C(114),$C(13)
S (DX,DY)=0 X ^%ZOSF("XY")
Q
ANSIT ;Move cursor to top of scroll region
S DX=1,DY=ORANSI("T") W @ORANSI("XY"),$C(13)
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HORUHDR 3239 printed Sep 02, 2024@19:19:47 Page 2
ORUHDR ; slc/dcm - Order entry display headers ;3/25/92 15:05 ;
+1 ;;3.0;ORDER ENTRY/RESULTS REPORTING;;Dec 17, 1997
OE ;Main Order Entry Header, expects ORUIEN (variable pointer)
+1 ;From: OR USER MENU
+2 KILL ORDG
SET ORTIT="ORDER ENTRY"
SET ORSTIT=""
+3 SET ORSTIT=$PIECE(@("^"_$PIECE(ORUIEN,";",2)_+ORUIEN_",0)"),"^",2)
SET ORSTIT=$PIECE(ORSTIT,"...")
+4 DO TIT
DO STIT3
if '$GET(ORANSI)
WRITE !
if $GET(ORANSI)
DO STIT2
+5 KILL ORDG,ORPD,ORTIT,ORSTIT
QUIT
OE2 ;Accept Orders Screen Header From: ORREV31
+1 KILL ORDG
SET ORTIT="ORDER ENTRY"
+2 DO TIT
IF $DATA(ORSTIT)
IF $LENGTH(ORSTIT)
DO STIT3
if $GET(ORANSI)
DO STIT2
+3 QUIT
EXT ;Detailed Display Header From: ORSED
+1 if '$DATA(^OR(100,+$GET(ORIFN),0))
QUIT
+2 NEW ORL,OROLD
+3 if '$DATA(ORTIT)
SET ORTIT="DETAILED DISPLAY"
SET X=^OR(100,ORIFN,0)
SET ORDG=$PIECE(X,"^",11)
SET ORDG=$PIECE(^ORD(100.98,ORDG,0),"^",3)
SET ORVP=$PIECE(X,"^",2)
SET Y=+ORVP
DO END^ORUDPA
if '$DATA(ORPNM)
QUIT
+4 if '$DATA(ORANSI)
SET ORANSI=0
if '$DATA(ORFT)
SET ORFT=0
if '$DATA(ORIO)
SET ORIO="HOME"
+5 IF '$DATA(IOF)
SET IOP=ORIO
DO ^%ZIS
if POP
QUIT
SET X=0
XECUTE ^%ZOSF("RM")
SET (ORFT,ORANSI)=0
+6 DO TIT
KILL ORDG,ORTIT
QUIT
TIT ;General Header From: OROPRO
+1 NEW ORCWAD
SET ORCWAD=""
+2 IF '$DATA(ORDG)
IF $DATA(^OR(100,+$GET(ORIFN),0))
Begin DoDot:1
+3 SET ORDG=$PIECE($GET(^ORD(100.98,+$PIECE($GET(^OR(100,+$GET(ORIFN),0)),U,11),0)),U,3)
End DoDot:1
+4 IF $LENGTH($TEXT(CWAD^GMRPNOR1))
IF $DATA(ORVP)
SET ORCWAD=$$CWAD^GMRPNOR1(+ORVP)
KILL GMRPCWAD
+5 IF $GET(ORANSI)
if ORFT=0
DO ANSIH^ORPRS09
if ORFT=0
QUIT
SET ORFT=0
DO ANSIR
+6 ;W !! F I=1:1:79 W "-"
+7 if '$DATA(XQORSPEW)
SET XQORSPEW=0
WRITE @IOF
IF $LENGTH($GET(ORDG))
IF (ORTIT'[$GET(ORDG))
SET ORTIT=$GET(ORDG)_" "_ORTIT
+8 SET X=""
FOR I=1:1:$LENGTH(ORTIT)
SET X=X_" "_$EXTRACT(ORTIT,I)
+9 WRITE $CHAR(13),$$HON^ORU,$SELECT($LENGTH(ORCWAD):"<"_ORCWAD_">",1:""),$$HOFF^ORU,?(80-($LENGTH(ORTIT)*2))/2,X,?(IOM-12),$$HON^ORU,$SELECT(XQORSPEW:"Quick mode",1:""),$$HOFF^ORU
+10 IF $DATA(ORPNM)
IF $DATA(ORSSN)
IF $DATA(ORL)
IF $DATA(ORDOB)
DO HDG
+11 WRITE !
FOR I=1:1:79
WRITE "-"
+12 IF $GET(ORANSI)
KILL ORANSI("ST")
SET ORANSI("T")=$Y+2
SET ORANSI("B")=24
SET ORANSI("SL")=ORANSI("B")-ORANSI("T")
DO ANSIS
DO ANSIT
+13 QUIT
STIT ;Print Sub-header
+1 SET ORSTIT=$PIECE(@("^"_$PIECE(ORUIEN,";",2)_+ORUIEN_",0)"),"^",2)
WRITE !
STIT1 WRITE $CHAR(13),?(40-($LENGTH(ORSTIT)\2)-4),"--- "_ORSTIT_" ---"
+1 KILL ORSTIT
QUIT
STIT2 IF '$DATA(ORANSI("ST"))
SET ORANSI("T")=ORANSI("T")+1
SET ORANSI("SL")=ORANSI("SL")-1
+1 DO ANSIS
DO ANSIT
+2 QUIT
STIT3 IF $GET(ORANSI)
IF '$DATA(ORANSI("ST"))
SET ORANSI("ST")=ORANSI("T")
SET ORANSI("T")=ORANSI("T")+1
SET ORANSI("SL")=ORANSI("SL")-1
+1 IF $GET(ORANSI)
SET DX=1
SET DY=ORANSI("ST")
WRITE @ORANSI("XY"),@ORANSI("EOLN")
+2 if '$GET(ORANSI)
WRITE !
DO STIT1
+3 QUIT
HDG ;PRINT HEADING
+1 ;I $D(VAIN("5")) S Y=+ORVP D END^ORUDPA
+2 SET X=" "_ORDOB_" ("_ORAGE_") "_"Wt (lb): "_$SELECT($DATA(ORPD):ORPD,1:" ")
+3 SET X1=$SELECT($GET(ORL):$SELECT($LENGTH($PIECE(^SC(+ORL,0),"^",2)):$PIECE(^(0),"^",2),1:$EXTRACT($PIECE(^(0),"^"),1,4)),1:"")_$SELECT($LENGTH($GET(ORL(1))):"/"_ORL(1),1:"")
+4 WRITE !,ORPNM_" "_ORSSN_" ",?(39-($LENGTH(X1)\2))," "_X1_" ",?(79-$LENGTH(X)),X
+5 QUIT
PGBRK ;Call for page break
+1 NEW I,X
IF $DATA(IOST)
IF $EXTRACT(IOST)["C"
FOR I=$Y:1:IOSL-4
WRITE !
PGBRK1 SET OREND=0
SET X=""
IF $SELECT($DATA(IOST):$EXTRACT(IOST)["C",1:1)
READ !!,"Press return to continue or ""^"" to escape ",X:$SELECT($DATA(DTIME):DTIME,1:300)
+1 IF X["^"
if X="^^"
SET DIROUT=1
SET OREND=1
+2 QUIT
ANSIR ;Reset scroll region to full screen
+1 WRITE $CHAR(27),$CHAR(91),"1",$CHAR(59),"24",$CHAR(114),$CHAR(13),#,$CHAR(27),$CHAR(91),$CHAR(50),$CHAR(74),$CHAR(27),$CHAR(91),$CHAR(72)
+2 QUIT
ANSIS ;Set scroll region
+1 WRITE $CHAR(27),$CHAR(91),ORANSI("T"),$CHAR(59),ORANSI("B"),$CHAR(114),$CHAR(13)
+2 SET (DX,DY)=0
XECUTE ^%ZOSF("XY")
+3 QUIT
ANSIT ;Move cursor to top of scroll region
+1 SET DX=1
SET DY=ORANSI("T")
WRITE @ORANSI("XY"),$CHAR(13)
+2 QUIT