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

CIAVUTIO.m

Go to the documentation of this file.
  1. CIAVUTIO ;MSC/IND/DKM - VueCentric Host IO Support ;04-May-2006 08:19;DKM
  1. ;;1.1V2;VUECENTRIC FRAMEWORK;;Mar 20, 2007
  1. ;;Copyright 2000-2006, Medsphere Systems Corporation
  1. ;=================================================================
  1. ; Capture output to HFS and redirect to global
  1. OUTPUT(EXEC,ROOT,RM) ;
  1. D CAPTURE^CIAUHFS(.EXEC,.ROOT,.RM)
  1. Q
  1. ; Print report to specified device. Supports multiple calls to
  1. ; build large reports before printing. Specifying DEV parameter
  1. ; signals the report is complete and ready to print.
  1. ; CTL = Unique handle for this report. Pass 0 on initial call.
  1. ; RPT = Array containing block of report text
  1. ; DEV = IEN of output device (pass on final call only)
  1. ; or negative value to abort print
  1. ; TTL = Title of report (default=none)
  1. ; BRK = Line break placeholder (default=none)
  1. ; IND = Left indent (default=none)
  1. ; DATA = Unique handle assigned to this report or, if this is
  1. ; final call, the id # of the submitted task.
  1. PRINT(DATA,CTL,RPT,DEV,TTL,BRK,IND) ;
  1. N X,SB,$ET
  1. S SB="CIAVUTIO."_$S($G(CIA("UID")):CIA("UID"),1:"J"_$J)
  1. S $ET="",@$$TRAP^CIAUOS("PRERR^CIAVUTIO")
  1. I '$G(CTL) D ; Initialize report buffer
  1. .L +^XTMP(SB):5
  1. .S ^XTMP(SB,0)=$$FMADD^XLFDT(DT,2)_U_DT,CTL=$O(^(""),-1)+1,^(CTL)=""
  1. .L -^XTMP(SB)
  1. S DATA=CTL,X=$O(^XTMP(SB,CTL,""),-1)+1 ; X = current block #
  1. M ^XTMP(SB,CTL,X)=RPT ; Copy the current block
  1. Q:'$G(DEV)
  1. I DEV<0 K ^XTMP(SB,CTL)
  1. E S DATA=$$QUEUE^CIAUTSK("PRTASK^CIAVUTIO",$G(TTL,"Print Job #"_CTL),,"BRK^IND^CTL^SB","`"_+DEV)
  1. Q
  1. ; Entry point for tasked print job
  1. PRTASK N X,Y,Z,$ET
  1. U IO
  1. S IND=$$REPEAT^XLFSTR(" ",+$G(IND)),X=0,$ET="",@$$TRAP^CIAUOS("PRERR^CIAVUTIO")
  1. F S X=$O(^XTMP(SB,CTL,X)),Y=0 Q:'X D
  1. .F S Y=$O(^XTMP(SB,CTL,X,Y)) Q:'Y S Z=^(Y) D
  1. ..I $L(BRK),Z=BRK W @IOF,!
  1. ..E W IND,Z,!
  1. K ^XTMP(SB,CTL)
  1. S IO("C")=""
  1. D ^%ZISC
  1. S ZTREQ="@"
  1. Q
  1. ; Exception handler for print errors
  1. PRERR K ^XTMP(SB,CTL)
  1. D ^%ZTER
  1. Q
  1. ; Local printer is default?
  1. PRTISLCL(DATA,LOC) ;
  1. D PRTGETDF(.DATA,.LOC)
  1. S DATA=$S('$L(DATA):0,1:'DATA)
  1. Q
  1. ; Returns current default printer for user
  1. PRTGETDF(DATA,LOC) ;
  1. N IEN,DEV,ENT
  1. S ENT="ALL"
  1. S:$G(LOC) LOC=+LOC_";SC(",ENT=ENT_U_LOC
  1. S DATA=$$GET^XPAR(ENT,"CIAVUTIO DEFAULT PRINTER",1),IEN=+DATA
  1. S:IEN $P(DATA,";",2)=$P($G(^%ZIS(1,IEN,0)),U)
  1. Q
  1. ; Save new default printer for user
  1. PRTSETDF(DATA,DEV) ;
  1. D EN^XPAR("USR","CIAVUTIO DEFAULT PRINTER",1,DEV,.DATA)
  1. Q
  1. ; Return a subset of entries from the Device file
  1. ; DATA(n)=IEN;Name^DisplayName^Location^RMar^PLen
  1. DEVICE(DATA,FROM,DIR,MAX) ;
  1. N CNT,IEN,X,Y,X0,XLOC,XSEC,XTYPE,XSTYPE,XTIME,XOSD,MW,PL,DEV
  1. S CNT=0,MAX=$G(MAX,20)
  1. S:FROM[" <" FROM=$RE($P($RE(FROM),"< ",2))
  1. F Q:CNT'<MAX S FROM=$O(^%ZIS(1,"B",FROM),DIR),IEN=0 Q:FROM="" D
  1. .F S IEN=$O(^%ZIS(1,"B",FROM,IEN)) Q:'IEN D
  1. ..S DEV="",X0=$G(^%ZIS(1,IEN,0)),XLOC=$P($G(^(1)),U),XOSD=+$G(^(90)),MW=$G(^(91)),XSEC=$G(^(95)),XSTYPE=+$G(^("SUBTYPE")),XTIME=$P($G(^("TIME")),U),XTYPE=$P($G(^("TYPE")),U)
  1. ..Q:$E($G(^%ZIS(2,XSTYPE,0)))'="P" ; Printers only
  1. ..Q:"^TRM^HG^CHAN^OTH^"'[(U_XTYPE_U)
  1. ..Q:$P(X0,U,2)="0"!($P(X0,U,12)=2) ; Queuing allowed
  1. ..I XOSD,XOSD'>DT Q ; Out of Service
  1. ..I $L(XTIME) D Q:'$L(XTIME) ; Prohibited Times
  1. ...S Y=$P($H,",",2),Y=Y\60#60+(Y\3600*100),X=$P(XTIME,"-",2)
  1. ...S:X'<XTIME&(Y'>X&(Y'<XTIME))!(X<XTIME&(Y'<XTIME!(Y'>X))) XTIME=""
  1. ..I $L(XSEC),$G(DUZ(0))'="@",$TR(XSEC,$G(DUZ(0)))=XSEC Q
  1. ..S PL=$P(MW,U,3),MW=$P(MW,U),X=$G(^%ZIS(2,XSTYPE,1))
  1. ..S:'MW MW=$P(X,U)
  1. ..S:'PL PL=$P(X,U,3)
  1. ..S X=$P(X0,U)
  1. ..Q:$E(X,1,4)["NULL"
  1. ..S:X'=FROM X=FROM_" <"_X_">"
  1. ..S CNT=CNT+1,DATA(CNT)=IEN_";"_$P(X0,U)_U_X_U_XLOC_U_MW_U_PL
  1. Q
  1. ; Preopen code for tech support device
  1. TSOPEN S %ZIS("HFSNAME")=$$PWD^%ZISH_$$UFN^CIAU,%ZIS("HFSMODE")="W",%ZTYPE="HFS"
  1. S ^TMP("CIAVUTIO",$J)=%ZIS("HFSNAME")
  1. Q
  1. ; Postclose code for tech support device
  1. TSCLOSE N DATA,HFS,SUB
  1. S HFS=$G(^TMP("CIAVUTIO",$J)),SUB=$G(^($J,"SUB"),"VUECENTRIC TECH SUPPORT REQUEST")
  1. Q:'$L(HFS)
  1. K ^TMP("CIAVUTIO",$J) S DATA=$NA(^($J,1))
  1. I $$FTG^%ZISH(HFS,"",DATA,3) D
  1. .N XMTEXT,XMY,XMSUB,XMDUZ
  1. .S XMTEXT="^TMP(""CIAVUTIO"",$J,",XMDUZ=DUZ,XMY="G.VUECENTRIC TECH SUPPORT",XMSUB=SUB
  1. .D ^XMD
  1. K DATA,^TMP("CIAVUTIO",$J)
  1. S DATA(HFS)=""
  1. I $$DEL^%ZISH("","DATA")
  1. Q