%ZISG ;Device Handler prototype ;2/18/93 16:30
;;8.0T3
S $ZT="ERR^%ZISG"
D LOAD^%ZISG2
D INIT
K TMP("ZISGDEV","PARENT")
I $D(%PARENT) S TMP("ZISGDEV","PARENT")=%PARENT("PARENT")
S TMP("ZISGDEV","G","QFRAME","VISIBLE")=1
M ^$WINDOW("ZISGDEV")=TMP("ZISGDEV")
;D M^XG("ZISGDEV",$NA(TMP("ZISGDEV")))
;I $G(^%ZOSF("OS"))["VAX DSM" ESTART 0 ;NEEDED FOR VAX DSM
;D ESTA^XG(0)
D B1
ESTART
W !,"THIS IS THE LINE AFTER ESTART COMMAND IN ^%ZISG"
;D ESTA^XG()
ERR ;K ^$W("ZISGDEV")
;D K^XG("ZISGTRM")
;D K^XG("ZISGDEV")
W !,"$ZE="_$ZE
W !,"$EC="_$EC
W !,"$EREF="_$EREF
K:$D(^$W("ZISGMT")) ^$W("ZISGMT")
K:$D(^$W("ZISGHFS")) ^$W("ZISGHFS")
K:$D(^$W("ZISGSDP")) ^$W("ZISGSDP")
K:$D(^$W("ZISGSPL")) ^$W("ZISGSPL")
K:$D(^$W("ZISGTRM")) ^$W("ZISGTRM")
K:$D(^$W("ZISGDEV")) ^$W("ZISGDEV")
W !,"$D(%PARENT)="_$D(%PARENT)
;I '$D(%PARENT) D CLEAN^XG
Q
B1 ;***VADIMS MWAPI/KWAPI INTERFACE***
I '@XGWIN@("ZISGDEV","G","PROMPT","VISIBLE") D
.;D S^XG("ZISGDEV","G","PROMPT","VALUE",@XGWIN@("ZISGDEV","G","DEV","VALUE"))
.S DEV=@XGWIN@("ZISGDEV","G","DEV","VALUE")
.I DEV]"" D
..S ITEM=$$DEVITEM(DEV)
..I ITEM]"" D
...D S^XG("ZISGDEV","G","PROMPT","VALUE",ITEM,"")
...D S^XG("ZISGDEV","G","PROMPT","TOPSHOW",ITEM)
.D S^XG("ZISGDEV","G","PROMPT","VISIBLE",1)
.;S ^$W("ZISGDEV","G","QFRAME","VISIBLE")=0
E D
.D S^XG("ZISGDEV","G","PROMPT","VISIBLE",0)
.;S ^$W("ZISGDEV","G","QFRAME","VISIBLE")=1
.S ITEM=$O(@XGWIN@("ZISGDEV","G","PROMPT","VALUE",""))
.I ITEM D
..D S^XG("ZISGDEV","G","DEV","VALUE",@XGWIN@("ZISGDEV","G","PROMPT","CHOICE",ITEM))
..S XGION=@XGWIN@("ZISGDEV","G","PROMPT","CHOICE",ITEM)
Q
PROMPT ;PROMPT CALLBACK
D B1
N ITEM,VALUE
S ITEM=$O(^$W("ZISGDEV","G","PROMPT","VALUE",""))
S VALUE=^$W("ZISGDEV","G","PROMPT","CHOICE",ITEM)
W !,"ION==>>"_VALUE
S DA=$O(^%ZIS(1,"B",VALUE,0))
Q:'DA
S XGIOST=$P($G(^%ZIS(2,+$G(^%ZIS(1,+DA,"SUBTYPE")),0)),"^")
S XGIOM=+$G(^%ZIS(1,+DA,91)),XGIOSL=$P($G(^(91)),"^",3)
Q
SELQ ;SELECT/DESELECT QUEUING
D S^XG("ZISGDEV","G","QTIME","ACTIVE",1)
Q
DSELQ D S^XG("ZISGDEV","G","QTIME","ACTIVE",0)
Q
DEV ; Callback for DEV item.
N REF,ITEM
S REF="^$W("""_^$EVENT("WINDOW")_""",""G"")"
W !,^$W("ZISGDEV","G","DEV","VALUE")
S DEV=^$W("ZISGDEV","G","DEV","VALUE")
I DEV]"" D
.N %,%1
.K ^$W("ZISGDEV","G","PROMPT","VALUE")
.F %=1:1 Q:'$D(^$W("ZISGDEV","G","PROMPT","CHOICE",%))!(DEV="") D
..S %1=^$W("ZISGDEV","G","PROMPT","CHOICE",%)
..I %1=DEV S ^$W("ZISGDEV","G","PROMPT","VALUE",%)="" S DEV="" Q
..I %1]DEV S ^$W("ZISGDEV","G","PROMPT","TOPSHOW")=% S DEV="" Q
S XGION=$S($D(@REF@("DEV","VALUE")):@REF@("DEV","VALUE"),1:"")
Q
DEVITEM(X) ;
N %,%1,Y S Y=""
K ^$W("ZISGDEV","G","PROMPT","VALUE")
F %=1:1 Q:'$D(^$W("ZISGDEV","G","PROMPT","CHOICE",%))!(X="") D
.S %1=^$W("ZISGDEV","G","PROMPT","CHOICE",%)
.I %1=X!(%1]X) S Y=% S X="" Q
Q Y
SETST ;Set subtype
Q
SUB ; Callback for SUB item
Q
OK ;Callbak for OK button.
G OK^%ZISG2
MSGOK ;
K ^$W("MESSAGE")
ESTOP
Q
MORE ; Callback for advanced setup.
Q
HELP ;Callback for help.
D ^XGLMSG("I","Help is not available at this time.")
Q
EXIT ; Callback for exit item in menu
S IOP="^" D ^%ZIS
;ESTOP
D ESTO^XG
QUIT
INIT ;create names of devices into ACDEV
N %,%1,%2
K TMP("ZISGDEV","G","PROMPT","CHOICE")
S %1="" F %=1:1 S %1=$O(^%ZIS(1,"B",%1)) Q:%1']"" F %2=0:0 S %2=$O(^%ZIS(1,"B",%1,%2)) Q:%2'>0 S TMP("ZISGDEV","G","PROMPT","CHOICE",%)=%1
Q
;
QTIME ;
G QTIME^%ZISG2