Changeset 623 for WorldVistAEHR/trunk/r/KERNEL-XU-A4A7-USC-XG-XLF-XNOA-XPD-XQ-XVIR-ZI-ZOSF-ZOSV-ZT-ZU-%Z-XIP--XQAB--XUC--XUR--ZIN--ZTED/ZIS3.m
- Timestamp:
- Dec 4, 2009, 12:11:15 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
WorldVistAEHR/trunk/r/KERNEL-XU-A4A7-USC-XG-XLF-XNOA-XPD-XQ-XVIR-ZI-ZOSF-ZOSV-ZT-ZU-%Z-XIP--XQAB--XUC--XUR--ZIN--ZTED/ZIS3.m
r613 r623 1 %ZIS3 ;SFISC/AC,RWF -- DEVICE HANDLER(DEVICE TYPES & PARAMETERS) ;1/24/08 13:18 2 ;;8.0;KERNEL;**18,36,69,104,391,440**;JUL 10, 1995;Build 13 3 ;Per VHA Directive 2004-038, this routine should not be modified 4 ;Call with a Go from ^%ZIS2 5 I %ZIS'["T",$G(^%ZIS(1,+%E,"POX"))]"" D XPOX^ZISX(%E) ;Pre-Open 6 I $D(%ZISQUIT) S POP=1 K %ZISQUIT 7 S %ZISCHK=1 8 ;I 'POP&(%ZISB)&(%ZTYPE'="RES")&(%ZTYPE'="OTH")&(%ZTYPE'="SDP")&(IO'["::") D DEVOK 9 ;See if need to lock. 10 K %ZISLOCK 11 I %ZIS'["T",+$G(^%ZIS(1,+%E,"GBL")) S %ZISLOCK=$NA(^%ZIS("lock",IO)) 12 ; 13 I 'POP G TRM:(%ZTYPE["TRM"),@(%ZTYPE_"^%ZIS6") ;Jump to next part 14 ; 15 Q ;%ZIS6 Returns here 16 ;See if need to un-lock. 17 I $D(%ZISUOUT) K %ZISUOUT,%ZISHP,%ZISHPOP Q 18 I $D(%ZISHPOP)&$S(IO="":1,1:'$D(IO(1,IO))) D HGBSY^%ZIS2 Q 19 I POP S:%ZIS'["T" IO="" I $D(%ZISHG(0)),%ZIS'["D",'$D(%ZISHPOP) G HUNT^%ZIS2 20 Q ;Return to %ZIS1 21 ; 22 VTRM ;Virtual terminal type 23 TRM ;D OPEN^%ZIS4:'POP&(%ZISB&(%ZIS'["T")),MARGN:'POP,SETPAR:'POP ;Terminal type 24 D MARGN:'POP,SETPAR:'POP ;Terminal type// TEST CHANGE 25 I 'POP,%ZIS'["T",%ZISB=1,'$D(IOP),IO'=IO(0),'$D(IO("Q")),%ZIS["Q" D AQUE 26 W:'$D(IOP) ! 27 I '$D(IO("Q")),'POP,%ZISB,%ZIS'["T" D O^%ZIS4 28 G Q 29 DEVOK N X,Y,X1 ;Not sure this is needed 30 S X=IO,X1=%ZTYPE 31 D DEVOK^%ZOSV I Y=-99!(Y=0)!(Y=$J) Q 32 I Y>0 S POP=1 W:'$D(IOP)&('$D(%ZISHG(0))!(%IS["D")) !,$C(7),"[Device Unavailable]" Q 33 I Y=-1 S IO="",POP=1 W:'$D(IOP)&('$D(ZISHG(0))!(%IS["D")) !,$C(7),"[Device does not Exist or Unavailable]" Q 34 Q 35 ; 36 MARGN ;Get the margin and page length 37 S %A=$P(%Y,";",1) 38 I %A?1A.ANP D SUBIEN(.%A,1) I $D(^%ZIS(2,%A,1)) K %Z91 D ST(1) S %Y=$P(%Y,";",2,9),%ZISMY=$P(%ZISMY,";",2,9) G MARGN 39 I %A>3 S $P(%Z91,"^")=$S(%A>255:255,1:+%A) 40 I $P(%Y,";",2) S $P(%Z91,"^",3)=+$S($P(%Y,";",2)>65530:65530,1:$P(%Y,";",2)) ;Cache fix for $Y#65535 wrap 41 ; 42 ALTP I '$D(IO("P")) Q:%A>3 G ASKMAR:%ZTYPE["TRM" Q 43 S %X=$F(IO("P"),"M") I %X S %A=+$E(IO("P"),%X,99),$P(%Z91,"^")=$S(%A>255:255,1:%A) 44 S %X=$F(IO("P"),"L") I %X S $P(%Z91,"^",3)=+$E(IO("P"),%X,99) 45 Q:%A>3!(%ZTYPE'["TRM") 46 ASKMAR I %IS["M",'$D(IOP),$S(%E=%H:+$P(%Z,"^",3),1:1),$P(%Z,"^",4) W " Right Margin: " W:$P(%Z91,"^")]"" +%Z91,"// " 47 E Q 48 D SBR^%ZIS1 I '$D(DTOUT)&'$D(DUOUT) S:%X=""&($P(%Z91,"^")]"") %X=+%Z91 G ASKMAR:%X'?1.N S $P(%Z91,"^")=$S(%X>255:255,1:%X) Q 49 S POP=1 I %ZISB&(%ZTYPE["TRM")&(IO'=IO(0)) C IO K IO(1,IO) Q 50 Q 51 SETPAR S:$L(%ZISOPAR)&($E(%ZISOPAR)'="(") %ZISOPAR="("_%ZISOPAR_")" 52 Q 53 AQUE ;Ask about Queueing 54 W ! S %=$S($D(IO("Q")):1,1:2),U="^",%ZISDTIM=60 55 I $D(IO("Q")) W !,"Previously, you have selected queueing." 56 W !,"Do you "_$S($D(IO("Q")):"STILL ",1:"")_"want your output QUEUED" 57 D YN^%ZIS1 K %ZISDTIM G AQUE:%=0 Q:$D(IO("Q")) 58 I %=-1 S POP=1,%ZISHPOP=1,%ZISUOUT=1 C IO K IO(1,IO) Q 59 I %=1 S IO("Q")=1 C IO K IO(1,IO) Q 60 ;I %=2 K IO("Q") 61 Q 62 ST(%ZISTP) ; 63 S %ZISIOST(0)=%A,%ZISIOST=$P($G(^%ZIS(2,%A,0)),"^") 64 S:'$D(%Z91) %Z91=$P($G(^%ZIS(2,%A,1),"132^#^60^$C(8)"),"^",1,4),$P(%Z91,"^",5)=$G(^("XY")) 65 Q:%ZISTP 66 STP N %B ;%E is a pointer to the Device file 67 S %B=$G(^%ZIS(1,%E,91)) 68 S:$P(%B,"^")]"" $P(%Z91,"^")=+%B S:$P(%B,"^",3)]"" $P(%Z91,"^",3)=$P(%B,"^",3) ;S $P(%Z91,"^",5)=$G(^%ZIS(2,%ZISIOST(0),"XY")) 69 Q 70 SUBIEN(%1,%) ;Return Subtype ien. %1 is call by Ref. 71 N %XX,%YY 72 I $D(^%ZIS(2,"B",%1))>9 S %1=+$O(^%ZIS(2,"B",%1,0)) Q 73 I '$G(%) S X="" Q 74 S %XX=%1 D 2^%ZIS5 S %1=+%YY 75 Q 76 SUBTYPE(%A) ;Called from %ZISH 77 N %ZISIOST,%Z91 78 S:$G(%A)="" %A="P-OTHER" 79 D SUBIEN(.%A),ST(1) 80 S IOM=$P(%Z91,U,1),IOF=$P(%Z91,U,2),IOSL=$P(%Z91,U,3),IOST=%ZISIOST,IOST(0)=%ZISIOST(0),IOBS="$C(8)" 81 S:IOST="" IOST="P-OTHER",IOST(0)=0 82 Q 1 %ZIS3 ;SFISC/AC,RWF -- DEVICE HANDLER(DEVICE TYPES & PARAMETERS) ;10/06/2005 13:23 2 ;;8.0;KERNEL;**18,36,69,104,391**;JUL 10, 1995 3 I %ZIS'["T",$G(^%ZIS(1,+%E,"POX"))]"" D XPOX^ZISX(%E) 4 I $D(%ZISQUIT) S POP=1 K %ZISQUIT 5 S %ZISCHK=1 6 I 'POP&(%ZISB)&(%ZTYPE'="RES")&(%ZTYPE'="OTH")&(%ZTYPE'="SDP")&(IO'["::") D DEVOK 7 G Q:POP 8 G @%ZTYPE:(%ZTYPE["TRM"),@(%ZTYPE_"^%ZIS6") ;Jump to next part 9 ; 10 Q I $D(%ZISUOUT) K %ZISUOUT,%ZISHP,%ZISHPOP Q 11 I $D(%ZISHPOP)&$S(IO="":1,1:'$D(IO(1,IO))) D HGBSY^%ZIS2 Q 12 I POP S:%IS'["T" IO="" I $D(%ZISHG(0)),%IS'["D",'$D(%ZISHPOP) G HUNT^%ZIS2 13 Q 14 VTRM ;Virtual terminal type 15 TRM D OPEN^%ZIS4:'POP&(%ZISB&(%IS'["T")),MARGN:'POP,SETPAR:'POP ;Terminal type 16 I 'POP,%IS'["T",%ZISB=1,'$D(IOP),IO'=IO(0),'$D(IO("Q")),%IS["Q" D AQUE 17 W:'$D(IOP) ! I '$D(IO("Q")) D O^%ZIS4:'POP&(%ZISB&(%IS'["T")) 18 G Q 19 DEVOK N X,Y,X1 20 S X=IO,X1=%ZTYPE 21 D DEVOK^%ZOSV I Y=-99!(Y=0)!(Y=$J) Q 22 I Y>0 S POP=1 W:'$D(IOP)&('$D(%ZISHG(0))!(%IS["D")) !,*7,"[Device Unavailable]" Q 23 I Y=-1 S IO="",POP=1 W:'$D(IOP)&('$D(ZISHG(0))!(%IS["D")) !,*7,"[Device does not Exist or Unavailable]" Q 24 Q 25 ; 26 MARGN ;Get the margin and page length 27 S %A=$P(%Y,";",1) 28 I %A?1A.ANP D SUBIEN(.%A,1) I $D(^%ZIS(2,%A,1)) K %Z91 D ST(1) S %Y=$P(%Y,";",2,9),%ZISMY=$P(%ZISMY,";",2,9) G MARGN 29 I %A>3 S $P(%Z91,"^")=$S(%A>255:255,1:+%A) 30 I $P(%Y,";",2) S $P(%Z91,"^",3)=+$S($P(%Y,";",2)>65530:65530,1:$P(%Y,";",2)) ;Cache fix for $Y#65535 wrap 31 ; 32 ALTP I '$D(IO("P")) Q:%A>3 G ASKMAR:%ZTYPE["TRM" Q 33 S %X=$F(IO("P"),"M") I %X S %A=+$E(IO("P"),%X,99),$P(%Z91,"^")=$S(%A>255:255,1:%A) 34 S %X=$F(IO("P"),"L") I %X S $P(%Z91,"^",3)=+$E(IO("P"),%X,99) 35 Q:%A>3!(%ZTYPE'["TRM") 36 ASKMAR I %IS["M",'$D(IOP),$S(%E=%H:+$P(%Z,"^",3),1:1),$P(%Z,"^",4) W " Right Margin: " W:$P(%Z91,"^")]"" +%Z91,"// " 37 E Q 38 D SBR^%ZIS1 I '$D(DTOUT)&'$D(DUOUT) S:%X=""&($P(%Z91,"^")]"") %X=+%Z91 G ASKMAR:%X'?1.N S $P(%Z91,"^")=$S(%X>255:255,1:%X) Q 39 S POP=1 I %ZISB&(%ZTYPE["TRM")&(IO'=IO(0)) C IO K IO(1,IO) Q 40 Q 41 SETPAR S:%ZISOPAR]""&($A(%ZISOPAR)-40) %ZISOPAR="("_%ZISOPAR_")" 42 Q 43 AQUE W ! S %=$S($D(IO("Q")):1,1:2),U="^",%ZISDTIM=60 44 I $D(IO("Q")) W !,"Previously, you have selected queueing." 45 W !,"Do you "_$S($D(IO("Q")):"STILL ",1:"")_"want your output QUEUED" 46 D YN^%ZIS1 K %ZISDTIM G AQUE:%=0 Q:$D(IO("Q")) 47 I %=-1 S POP=1,%ZISHPOP=1,%ZISUOUT=1 C IO K IO(1,IO) Q 48 I %=1 S IO("Q")=1 C IO K IO(1,IO) Q 49 Q 50 ST(%ZISTP) ; 51 S %ZISIOST(0)=%A,%ZISIOST=$P($G(^%ZIS(2,%A,0)),"^") 52 S:'$D(%Z91) %Z91=$P($G(^%ZIS(2,%A,1),"132^#^60^$C(8)"),"^",1,4),$P(%Z91,"^",5)=$G(^("XY")) 53 Q:%ZISTP 54 STP N %B ;%E is a pointer to the Device file 55 S %B=$G(^%ZIS(1,%E,91)) 56 S:$P(%B,"^")]"" $P(%Z91,"^")=+%B S:$P(%B,"^",3)]"" $P(%Z91,"^",3)=$P(%B,"^",3) ;S $P(%Z91,"^",5)=$G(^%ZIS(2,%ZISIOST(0),"XY")) 57 Q 58 SUBIEN(%1,%) ;Return Subtype ien. %1 is call by Ref. 59 N %XX,%YY 60 I $D(^%ZIS(2,"B",%1))>9 S %1=+$O(^%ZIS(2,"B",%1,0)) Q 61 I '$G(%) S X="" Q 62 S %XX=%1 D 2^%ZIS5 S %1=+%YY 63 Q 64 SUBTYPE(%A) ;Called from %ZISH 65 N %ZISIOST,%Z91 66 S:$G(%A)="" %A="P-OTHER" 67 D SUBIEN(.%A),ST(1) 68 S IOM=$P(%Z91,U,1),IOF=$P(%Z91,U,2),IOSL=$P(%Z91,U,3),IOST=%ZISIOST,IOST(0)=%ZISIOST(0),IOBS="$C(8)" 69 S:IOST="" IOST="P-OTHER",IOST(0)=0 70 Q 71
Note:
See TracChangeset
for help on using the changeset viewer.