Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: BEHORXPS

BEHORXPS.m

Go to the documentation of this file.
  1. BEHORXPS ;IHS/MSC/PLS - Prescription Print Support ;27-May-2010 07:04;PLS
  1. ;;1.1;BEH COMPONENTS;**009004**;Mar 20, 2007
  1. Q
  1. ; Called by BEHORXPS PSCRIPT
  1. ; Returns prescription text
  1. ; Input: ORIFN: IEN to Order File
  1. ; RXNUM: Prescription number (external)
  1. ; Output: Array of text
  1. PSCRIPT(DATA,ORIFN,RXNUM) ;EP
  1. N RX,RX1,ARAY,BEHOLOC,ORVP,CRXPR
  1. S DATA=$$TMPGBL^CIAVMRPC
  1. I '$G(ORIFN)!('$L(RXNUM)) S @DATA@(1)="Insufficient information to generate prescription printout!" Q
  1. S RX=$G(^OR(100,ORIFN,4))
  1. S RX1=$O(^PSRX("B",RXNUM,0))
  1. S ARAY(1)=ORIFN
  1. S BEHOLOC=+$P($G(^OR(100,ORIFN,0)),U,10)
  1. S CRXPR=$TR($$GET^XPAR("ALL","BEHORX SCRIPT CUSTOM FORMAT"),"~",U)
  1. I $L(CRXPR) D
  1. .D CAPTURE^CIAUHFS(CRXPR,DATA,80)
  1. E D
  1. .D CAPTURE^CIAUHFS("D GUI^BEHORXPS(.ARAY,BEHOLOC,""C"",1,1)",DATA,80)
  1. Q
  1. GUI(ARAY,DEVICE,FMT,LOC,TASK,ORTIMES) ;Silence of the Prints
  1. ;ARAY=Name of global storing list of orders or just the local aray
  1. ;@ARAY@(#)=ORIFN;DA of action - Array of orders to print
  1. ;DEVICE=printer (internal ptr value)
  1. ;FMT=C:Chart copy, L:Labels, R:Requisitions, S:Service copies W:Work copies
  1. ;LOC=Location (ORL)
  1. ;TASK=1 to not task, 0 or undefined to task (default)
  1. ; this affects the closing of devices in ^ORPR03
  1. ;ORTIMES=# of copies
  1. N ORPARAY,VAR
  1. S ORPARAY=$S($L($G(ARAY))&('$G(ARAY)):ARAY,1:"ARAY"),ARAY=ORPARAY
  1. Q:'$O(@ORPARAY@(0)) Q:'$D(IO) Q:'$D(FMT) Q:FMT="" Q:"CLRSW"'[FMT
  1. N ORAL,ORVP,X,ZTRTN
  1. K ^TMP("ORAL",$J)
  1. S ORVP=$$PAT^ORPR02(.ARAY),ORAL="^TMP(""ORAL"",$J)"
  1. I 'ORVP S VAR("ARAY")="" D EN^ORERR("GUI~ORPR02 called with invalid ORVP",,.VAR) Q
  1. I '$G(LOC) S LOC=$$LOC^ORPR02(.ARAY)
  1. D ARAY^ORPR02(.ARAY)
  1. I "WC"'[FMT K ARAY S ARAY=ORAL
  1. S X=0_"^"_$S(FMT="L":"Labels",FMT="R":"Requisitions",FMT="S":"Service Copies",FMT="C":"Chart Copies",FMT="W":"Work Copies",1:"")
  1. S ZTRTN="C1^BEHORXPS"
  1. D @ZTRTN
  1. Q
  1. C1 ; Chart Copy Print
  1. N ORIFN,OACTION,ORX,ORHEAD,ORFOOT,OROFMT,ORFMT,ORIOF,ORBOT,ORIOSL,ORXPND,ORFIRST1
  1. N ORAGE,ORDOB,ORL,ORNP,ORPNM,ORPV,ORSEX,ORSSN,ORTS,ORWARD
  1. ;S IOSL=56,IOM=80
  1. U IO
  1. D PAT^ORPR02(+ORVP)
  1. S ORHEAD=$$GET^XPAR("ALL","BEHORX SCRIPT HEADER",1,"I")
  1. S ORFOOT=$$GET^XPAR("ALL","BEHORX SCRIPT FOOTER",1,"I")
  1. S OROFMT=$$GET^XPAR("ALL","BEHORX SCRIPT FORMAT",1,"I")
  1. S ORIOSL=IOSL
  1. I ORFOOT,$D(^ORD(100.23,ORFOOT,0)) S ORBOT=$P(^(0),"^",2),ORIOSL=IOSL-ORBOT
  1. I ORHEAD D PRINT^ORPR00(ORHEAD,1,0,1)
  1. S ORIOF=IOF
  1. S IOF="!!"
  1. S ORFIRST1=1
  1. I OROFMT S ORFMT=OROFMT,ORCI=0 F S ORCI=$O(@ARAY@(ORCI)) Q:ORCI<1 S ORIFN=+@ARAY@(ORCI),OACTION=$P(@ARAY@(ORCI),";",2) D S ORFIRST1=0 Q:$G(OREND)
  1. . I '$L($G(^OR(100,ORIFN,0))) D EN^ORERR("PRESCRIPTION PRINT WITH INVALID ORIFN:"_ORIFN) Q
  1. . D CHT1^ORPR04
  1. . I 'OACTION D EN^ORERR("NO ACTION DEFINED FOR PRESCRIPTION PRINT ORIFN:"_ORIFN) Q
  1. . I '$D(^OR(100,ORIFN,8,OACTION)) D EN^ORERR("ACTION NODE ^(8) NOT SET FOR ORIFN:DA:"_ORIFN_":"_OACTION) Q
  1. . I '$D(ORRACT) S:'$P($G(^OR(100,ORIFN,8,OACTION,7)),"^") $P(^(7),"^",1,4)=1_"^"_$$NOW^XLFDT_"^"_DUZ_"^"_IO ;ORRACT is around if this is a reprint.
  1. I ORFOOT,'$G(OREND) D
  1. .S:IOF?1"!"."!" $P(IOF,"!",$S(ORIOSL>200:200,ORIOSL-$Y>1:ORIOSL-$Y,1:2))=""
  1. .D PRINT^ORPR00(ORFOOT,1)
  1. S IOF=ORIOF
  1. W @IOF
  1. Q