ORPRS02 ; slc/dcm - Jurasic Prints ;11/18/96 20:20
;;3.0;ORDER ENTRY/RESULTS REPORTING;**11,69,99,121,189**;Dec 17, 1997
DAY ; Process 24-hr Order Summary
N I,ORATTEND,ORTIT,ORPRES,ORSHORT,ORDG,ORGRP,ORSEL,ORSEQ
S OREND=0,ORTIT="DAILY ORDER SUMMARY",ORPRES=1,ORSHORT=$$SHORT
S ORDG=1,ORGRP("NAM")="ALL",ORGRP("ROOT")=1
D WRT
Q
RANGE ; Order Summary for Date/time Range
N I,ORATTEND,ORTIT,ORPRES,ORSHORT,ORDG,ORGRP,ORSEL,ORSEQ
S OREND=0,ORTIT="ORDER SUMMARY",ORPRES=1,ORSHORT=$$SHORT
S ORDG=1,ORGRP("NAM")="ALL",ORGRP("ROOT")=1
D WRT
Q
CUSTOM ; Customized Order Summary
N I,ORATTEND,ORTIT,ORSHORT,ORGRP,ORSEL,ORSEQ
S OREND=0,ORSHORT=$$SHORT
S ORGRP("NAM")=^ORD(100.98,ORDG,0),ORGRP("ROOT")=ORBUF,ORGRP("NAM")=$S($L($P(ORGRP("NAM"),"^",3)):$P(ORGRP("NAM"),"^",3),1:$E($P(ORGRP("NAM"),"^"),1,5))
S ORTIT=$P(ORPRES,";",2)_" for "_ORGRP("NAM")_" SERVICES"
D WRT
Q
CHART ; Set up call to print chart copy for patient
N OREND,OREARLY,ORLATE,DFN
S OREARLY=+$G(ORSSTRT),ORLATE=+$G(ORSSTOP)
S DFN=+ORVP D PATIENT^ORPRS06(DFN,OREARLY,ORLATE,IO,21,+$G(ORL))
Q
WORK ;Set up call for Work Copy patient summary
N OREND,OREARLY,ORLATE,DFN
S OREARLY=+$G(ORSSTRT),ORLATE=+$G(ORSSTOP)
S DFN=+ORVP D WORK^ORPRS06(DFN,OREARLY,ORLATE,IO)
Q
CONT ; Print Report
N ZTRTN,ZTDESC
S ZTRTN="WRT^ORPRS02",ZTDESC=ORTIT
D @ZTRTN
Q
WRT ;Entry point for Batch Processing
;Setup display group list, patient list, and process reports
N %,%H,%I,DFN,DX,DY,I,II,J,K,ODATE,ORAGE,ORDAD,ORDOB,ORFLAG,ORI,ORIFN
N ORL,ORLIST,ORLST,ORMD,ORNP,ORODT,ORPD,ORPNM,ORPV,ORREQ,ORSEX
N ORSSN,ORSTOP,ORSTRT,ORSTS,ORASTS,ORTERM,ORTM,ORTS,ORTX,ORUSER,ORWARD
N ORSLTR,ORAW,VA,VAROOT,X,X0,X1,X3,Y,Z
S ORAW=$S(+$$GET^XPAR("SYS","OR ORDER SUMMARY CONTEXT",1,"I"):"AW",1:"")
U IO
D EN^ORQ1(ORVP,ORDG,+ORPRES,0,+ORSSTRT,+ORSSTOP,0,1,ORAW,1)
N ORPI,ORPA,ORPN,X,ORPIFN
S ORPI=0 F S ORPI=$O(^TMP("ORR",$J,ORLIST,ORPI)) Q:'ORPI D
. S ORPIFN=+^TMP("ORR",$J,ORLIST,ORPI),ORPA=$P(^(ORPI),";",2)
. I $D(^OR(100,ORPIFN,8,ORPA,0)) S X=^(0),ORPN=$P(X,"^",12)
. I $G(ORPN),$D(^ORD(100.02,ORPN,1)),'$P(^(1),"^",3) K ^TMP("ORR",$J,ORLIST,ORPI)
I $$GET^XPAR("ALL","ORPF SUMMARY SORT FORWARD",1,"I") D SORT
D @$S(ORSHORT:"EN^ORPRS04",1:"EN^ORPRS03")
K ^TMP("ORR",$J,ORLIST)
I $D(ZTQUEUED) S ZTREQ="@"
Q
SHORT() ; Check whether user prefers condensed or expanded printout
Q +$$GET^XPAR("ALL","ORPF CONDENSED ORDER SUMMARY",1,"I")
;
SORT ;Re sort ^TMP("ORR",$J in inverse order
Q:'$D(^TMP("ORR",$J,ORLIST))
K ^TMP("ORRF",$J)
N I,C
S C=0,I=9999999
F S I=$O(^TMP("ORR",$J,ORLIST,I),-1) Q:I<1 S C=C+1,^TMP("ORRF",$J,C)=^(I)
K ^TMP("ORR",$J,ORLIST)
M ^TMP("ORR",$J,ORLIST)=^TMP("ORRF",$J)
K ^TMP("ORRF",$J)
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HORPRS02 2759 printed Sep 15, 2024@21:56:49 Page 2
ORPRS02 ; slc/dcm - Jurasic Prints ;11/18/96 20:20
+1 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**11,69,99,121,189**;Dec 17, 1997
DAY ; Process 24-hr Order Summary
+1 NEW I,ORATTEND,ORTIT,ORPRES,ORSHORT,ORDG,ORGRP,ORSEL,ORSEQ
+2 SET OREND=0
SET ORTIT="DAILY ORDER SUMMARY"
SET ORPRES=1
SET ORSHORT=$$SHORT
+3 SET ORDG=1
SET ORGRP("NAM")="ALL"
SET ORGRP("ROOT")=1
+4 DO WRT
+5 QUIT
RANGE ; Order Summary for Date/time Range
+1 NEW I,ORATTEND,ORTIT,ORPRES,ORSHORT,ORDG,ORGRP,ORSEL,ORSEQ
+2 SET OREND=0
SET ORTIT="ORDER SUMMARY"
SET ORPRES=1
SET ORSHORT=$$SHORT
+3 SET ORDG=1
SET ORGRP("NAM")="ALL"
SET ORGRP("ROOT")=1
+4 DO WRT
+5 QUIT
CUSTOM ; Customized Order Summary
+1 NEW I,ORATTEND,ORTIT,ORSHORT,ORGRP,ORSEL,ORSEQ
+2 SET OREND=0
SET ORSHORT=$$SHORT
+3 SET ORGRP("NAM")=^ORD(100.98,ORDG,0)
SET ORGRP("ROOT")=ORBUF
SET ORGRP("NAM")=$SELECT($LENGTH($PIECE(ORGRP("NAM"),"^",3)):$PIECE(ORGRP("NAM"),"^",3),1:$EXTRACT($PIECE(ORGRP("NAM"),"^"),1,5))
+4 SET ORTIT=$PIECE(ORPRES,";",2)_" for "_ORGRP("NAM")_" SERVICES"
+5 DO WRT
+6 QUIT
CHART ; Set up call to print chart copy for patient
+1 NEW OREND,OREARLY,ORLATE,DFN
+2 SET OREARLY=+$GET(ORSSTRT)
SET ORLATE=+$GET(ORSSTOP)
+3 SET DFN=+ORVP
DO PATIENT^ORPRS06(DFN,OREARLY,ORLATE,IO,21,+$GET(ORL))
+4 QUIT
WORK ;Set up call for Work Copy patient summary
+1 NEW OREND,OREARLY,ORLATE,DFN
+2 SET OREARLY=+$GET(ORSSTRT)
SET ORLATE=+$GET(ORSSTOP)
+3 SET DFN=+ORVP
DO WORK^ORPRS06(DFN,OREARLY,ORLATE,IO)
+4 QUIT
CONT ; Print Report
+1 NEW ZTRTN,ZTDESC
+2 SET ZTRTN="WRT^ORPRS02"
SET ZTDESC=ORTIT
+3 DO @ZTRTN
+4 QUIT
WRT ;Entry point for Batch Processing
+1 ;Setup display group list, patient list, and process reports
+2 NEW %,%H,%I,DFN,DX,DY,I,II,J,K,ODATE,ORAGE,ORDAD,ORDOB,ORFLAG,ORI,ORIFN
+3 NEW ORL,ORLIST,ORLST,ORMD,ORNP,ORODT,ORPD,ORPNM,ORPV,ORREQ,ORSEX
+4 NEW ORSSN,ORSTOP,ORSTRT,ORSTS,ORASTS,ORTERM,ORTM,ORTS,ORTX,ORUSER,ORWARD
+5 NEW ORSLTR,ORAW,VA,VAROOT,X,X0,X1,X3,Y,Z
+6 SET ORAW=$SELECT(+$$GET^XPAR("SYS","OR ORDER SUMMARY CONTEXT",1,"I"):"AW",1:"")
+7 USE IO
+8 DO EN^ORQ1(ORVP,ORDG,+ORPRES,0,+ORSSTRT,+ORSSTOP,0,1,ORAW,1)
+9 NEW ORPI,ORPA,ORPN,X,ORPIFN
+10 SET ORPI=0
FOR
SET ORPI=$ORDER(^TMP("ORR",$JOB,ORLIST,ORPI))
if 'ORPI
QUIT
Begin DoDot:1
+11 SET ORPIFN=+^TMP("ORR",$JOB,ORLIST,ORPI)
SET ORPA=$PIECE(^(ORPI),";",2)
+12 IF $DATA(^OR(100,ORPIFN,8,ORPA,0))
SET X=^(0)
SET ORPN=$PIECE(X,"^",12)
+13 IF $GET(ORPN)
IF $DATA(^ORD(100.02,ORPN,1))
IF '$PIECE(^(1),"^",3)
KILL ^TMP("ORR",$JOB,ORLIST,ORPI)
End DoDot:1
+14 IF $$GET^XPAR("ALL","ORPF SUMMARY SORT FORWARD",1,"I")
DO SORT
+15 DO @$SELECT(ORSHORT:"EN^ORPRS04",1:"EN^ORPRS03")
+16 KILL ^TMP("ORR",$JOB,ORLIST)
+17 IF $DATA(ZTQUEUED)
SET ZTREQ="@"
+18 QUIT
SHORT() ; Check whether user prefers condensed or expanded printout
+1 QUIT +$$GET^XPAR("ALL","ORPF CONDENSED ORDER SUMMARY",1,"I")
+2 ;
SORT ;Re sort ^TMP("ORR",$J in inverse order
+1 if '$DATA(^TMP("ORR",$JOB,ORLIST))
QUIT
+2 KILL ^TMP("ORRF",$JOB)
+3 NEW I,C
+4 SET C=0
SET I=9999999
+5 FOR
SET I=$ORDER(^TMP("ORR",$JOB,ORLIST,I),-1)
if I<1
QUIT
SET C=C+1
SET ^TMP("ORRF",$JOB,C)=^(I)
+6 KILL ^TMP("ORR",$JOB,ORLIST)
+7 MERGE ^TMP("ORR",$JOB,ORLIST)=^TMP("ORRF",$JOB)
+8 KILL ^TMP("ORRF",$JOB)
+9 QUIT