- %ZISG2 ;SFISC/AC -- Device Handler Prototype
- ;;8.0T3
- LOAD ;LOAD TMP ARRAY
- S %=$G(^$E("WINDOW")) I $L(%) S %PARENT("PARENT")=%
- I '$D(XGWIN) D PREP^XG
- D GET^XGCLOAD("ZISG DEVICE W1","ZISGDEV","TMP")
- D GET^XGCLOAD("ZISG DEVICE TRM","ZISGTRM","TMP")
- D GET^XGCLOAD("ZISG DEVICE SPL","ZISGSPL","TMP")
- D GET^XGCLOAD("ZISG DEVICE SDP","ZISGSDP","TMP")
- D GET^XGCLOAD("ZISG DEVICE HFS","ZISGHFS","TMP")
- D GET^XGCLOAD("ZISG DEVICE MT","ZISGMT","TMP")
- S TMP("ZISGDEV","G","QDTIME","TITLE")=""
- Q
- B1 ;OLD B1 CODE FROM ZISG ROUTINE
- ;;I '^$W("ZISGDEV","G","PROMPT","VISIBLE") D
- ;;.S ^$W("ZISGDEV","G","PROMPT","VALUE")=^$W("ZISGDEV","G","DEV","VALUE")
- ;;.S ^$W("ZISGDEV","G","PROMPT","VISIBLE")=1
- ;;.;S ^$W("ZISGDEV","G","QFRAME","VISIBLE")=0
- ;;E D
- ;;.S ^$W("ZISGDEV","G","PROMPT","VISIBLE")=0
- ;;.;S ^$W("ZISGDEV","G","QFRAME","VISIBLE")=1
- ;;.S ITEM=$O(^$W("ZISGDEV","G","PROMPT","VALUE",""))
- ;;.I ITEM S ^$W("ZISGDEV","G","DEV","VALUE")=^$W("ZISGDEV","G","PROMPT","CHOICE",ITEM)
- Q
- B2 ;;I '^$W("ZISGTRM","G","SUBTYPE","VISIBLE") D
- ;;.S ^$W("ZISGTRM","G","SUBTYPE","VALUE")=^$W("ZISGTRM","G","SUB","VALUE")
- ;;.;S ^$W("ZISGTRM","G","MARGIN","ACTIVE")=0
- ;;.S ^$W("ZISGTRM","G","SUBTYPE","VISIBLE")=1
- ;;E D
- ;;.S ^$W("ZISGTRM","G","SUBTYPE","VISIBLE")=0
- ;;.;S ^$W("ZISGTRM","G","MARGIN","ACTIVE")=1
- ;;.S ITEM=$O(^$W("ZISGTRM","G","SUBTYPE","VALUE",""))
- ;;.I ITEM S ^$W("ZISGTRM","G","SUB","VALUE")=^$W("ZISGTRM","G","SUBTYPE","CHOICE",ITEM)
- Q
- OK ;Callbak for OK button.
- N REF
- S REF=XGWIN_"("""_@XGEVENT@("WINDOW")_""",""G"")"
- S IOP=$S($G(@REF@("QUEUE","VALUE")):"Q;",1:"")
- I $G(@REF@("QUEUE","VALUE")),$G(@REF@("QTIME","VALUE"))="NOW"!($G(@REF@("QDTIME","TITLE"))="") S ZTDTH=$H
- S XGION=$S($D(@REF@("DEV","VALUE")):@REF@("DEV","VALUE"),1:"")
- I XGION="" D ^XGLMSG("E","You have not selected a device.") Q
- ;ENTER RETRIEVE TYPE INFO HERE:
- S XGDA=""
- I '$D(XGION) D
- .S XGION=$S($D(^$W("ZISGDEV","G","DEV","VALUE")):^$W("ZISGDEV","G","DEV","VALUE"),1:"")
- S:$G(XGION)]"" XGDA=$O(^%ZIS(1,"B",XGION,0))
- S XGIOT=$G(^%ZIS(1,+XGDA,"TYPE"))
- W !,"XGION==>>"_XGION
- W !,"XGIOT==>>"_XGIOT
- ;G @XGIOT
- TRM ;W:$D(@REF@("PROMPT","VALUE")) !,@REF@("PROMPT","VALUE"),@REF@("PROMPT","CHOICE",+$O(@REF@("PROMPT","VALUE","")))
- S REF=XGWIN_"(""ZISGTRM"",""G"")"
- W !,"REF==>>"_REF
- ;
- S XGIOST=$S($D(@REF@("SUB","VALUE")):@REF@("SUB","VALUE"),1:"")
- W !,"SUB==>>"_XGIOST
- ;W:$D(^$W("ZISGTRM","G","SUBTYPE","VALUE")) !,^$W("ZISGTRM","G","SUBTYPE","CHOICE",+$O(^$W("ZISGTRM","G","SUBTYPE","VALUE","")))
- ;W:$D(@REF@("SUBTYPE","VALUE")) !,@REF@("SUBTYPE","VALUE"),@REF@("PROMPT","CHOICE",+$O(@REF@("SUBTYPE","VALUE","")))
- ;
- S XGIOM=$S($D(@REF@("MARGINVAL","VALUE")):@REF@("MARGINVAL","VALUE"),1:"")
- W !,XGIOM
- S XGIOSL=$S($D(@REF@("PAGELENGTHVAL","VALUE")):@REF@("PAGELENGTHVAL","VALUE"),1:"")
- W !,XGIOSL
- W !,"ZTDTH==>>"_$G(ZTDTH)
- S IOP=IOP_XGION
- I XGIOT="SPL" S %=0 D Q:%
- .I '$D(DUZ) D ^XGLMSG("E","Your DUZ is not defined!") S %=1 Q
- .I $S($D(^VA(200,DUZ,"SPL")):$E(^("SPL"),1),1:"N")'["y" D
- ..D ^XGLMSG("E","You aren't an authorized SPOOLER user.") S %=1 Q
- I XGIOT="SPL" S IOP=IOP_";"_XGDOC
- S:XGIOST]"" IOP=IOP_";"_XGIOST
- S:XGIOM]""!(XGIOSL]"") IOP=IOP_";"_XGIOM_";"_XGIOSL
- W !,"IOP==>>"_IOP
- S %ZIS="Q" D ^%ZIS
- G ERRMSG:POP
- ;ESTOP
- D ESTO^XG
- Q
- ERRMSG ;Pop-up error message.
- D ^XGLMSG("E","THIS DEVICE IS BUSY")
- Q
- QTIME ;
- S X=^$W("ZISGDEV","G","QTIME","VALUE")
- D ASK I Y=-1 D DTHLP Q
- W !,"ZTDTH==>>"_ZTDTH
- N %H
- S %H=ZTDTH D YX^%DTC
- S Y="("_Y_")"
- S ^$W("ZISGDEV","G","QDTIME","TITLE")=Y
- Q
- ;
- ASK ;GET--ask for start time
- I $D(ZTQUEUED) D:ZTDTH]"" Q
- . S %DT="FRS",X=ZTDTH D ^%DT S ZTDTH=$$%H^%ZTLOAD2(+Y)
- . Q
- S %DT="RSX"
- I $D(ZTNOGO) D NEXT^XQ92 I X="" D Q
- .N %
- .S %="Output is never allowed for this option!"
- .D ^XGLMSG("W",%) S ZTDTH="" Q
- I $D(ZTNOGO) S Y=X,%DT="S" D DD^%DT S %DT("B")=Y,%DT="RSX"
- I $D(ZTNOGO),'$D(XQNOGO) D
- .N %
- .S %="Output from this option is restricted during certain times"
- .D ^XGLMSG("W",%)
- D ^%DT I $D(ZTNOGO) D
- .S ZT=Y,X=Y
- .D ^XQ92 S Y=ZT Q:X]""
- .N % S %="That is a restricted time!"
- .D ^XGLMSG("W",%)
- K %DT,%T,X5
- S ZTDTH=$$%H^%ZTLOAD2(+Y) Q
- Q
- DTHLP ;Help for Date input
- N I
- F I=1:1 S Y=$T(Z+I) Q:Y="" S %(I)=$P(Y,";",3,999)
- K ^$EVENT("OK")
- D ^XGLMSG("I",.%)
- W !,^$DI($PD,"FOCUS")
- S ^$DI($PD,"FOCUS")="ZISGDEV,QTIME"
- Q
- Z ;
- ;;Examples of Valid Dates:
- ;; JAN 20 1957 or 20 JAN 57 or 1/20/57 or 012057
- ;; T (for TODAY), T+1 (for TOMORROW), T+2, T+7, etc.
- ;; T-1 (for YESTERDAY), T-3W (for 3 WEEKS AGO), etc.
- ;;If the year is omitted, the computer uses the CURRENT YEAR.
- ;;If the date is omitted, the current date is assumed.
- ;;Follow the date with a time, such as JAN 20@10, T@10AM, 10:30, etc.
- ;;You may enter a time, such as NOON, MIDNIGHT or NOW.
- ;;Seconds may be entered as 10:30:30 or 103030AM.
- ;;Time is REQUIRED in this response.
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HZISG2 4968 printed Mar 13, 2025@21:19:50 Page 2
- %ZISG2 ;SFISC/AC -- Device Handler Prototype
- +1 ;;8.0T3
- LOAD ;LOAD TMP ARRAY
- +1 SET %=$GET(^$EXTRACT("WINDOW"))
- IF $LENGTH(%)
- SET %PARENT("PARENT")=%
- +2 IF '$DATA(XGWIN)
- DO PREP^XG
- +3 DO GET^XGCLOAD("ZISG DEVICE W1","ZISGDEV","TMP")
- +4 DO GET^XGCLOAD("ZISG DEVICE TRM","ZISGTRM","TMP")
- +5 DO GET^XGCLOAD("ZISG DEVICE SPL","ZISGSPL","TMP")
- +6 DO GET^XGCLOAD("ZISG DEVICE SDP","ZISGSDP","TMP")
- +7 DO GET^XGCLOAD("ZISG DEVICE HFS","ZISGHFS","TMP")
- +8 DO GET^XGCLOAD("ZISG DEVICE MT","ZISGMT","TMP")
- +9 SET TMP("ZISGDEV","G","QDTIME","TITLE")=""
- +10 QUIT
- B1 ;OLD B1 CODE FROM ZISG ROUTINE
- +1 ;;I '^$W("ZISGDEV","G","PROMPT","VISIBLE") D
- +2 ;;.S ^$W("ZISGDEV","G","PROMPT","VALUE")=^$W("ZISGDEV","G","DEV","VALUE")
- +3 ;;.S ^$W("ZISGDEV","G","PROMPT","VISIBLE")=1
- +4 ;;.;S ^$W("ZISGDEV","G","QFRAME","VISIBLE")=0
- +5 ;;E D
- +6 ;;.S ^$W("ZISGDEV","G","PROMPT","VISIBLE")=0
- +7 ;;.;S ^$W("ZISGDEV","G","QFRAME","VISIBLE")=1
- +8 ;;.S ITEM=$O(^$W("ZISGDEV","G","PROMPT","VALUE",""))
- +9 ;;.I ITEM S ^$W("ZISGDEV","G","DEV","VALUE")=^$W("ZISGDEV","G","PROMPT","CHOICE",ITEM)
- +10 QUIT
- B2 ;;I '^$W("ZISGTRM","G","SUBTYPE","VISIBLE") D
- +1 ;;.S ^$W("ZISGTRM","G","SUBTYPE","VALUE")=^$W("ZISGTRM","G","SUB","VALUE")
- +2 ;;.;S ^$W("ZISGTRM","G","MARGIN","ACTIVE")=0
- +3 ;;.S ^$W("ZISGTRM","G","SUBTYPE","VISIBLE")=1
- +4 ;;E D
- +5 ;;.S ^$W("ZISGTRM","G","SUBTYPE","VISIBLE")=0
- +6 ;;.;S ^$W("ZISGTRM","G","MARGIN","ACTIVE")=1
- +7 ;;.S ITEM=$O(^$W("ZISGTRM","G","SUBTYPE","VALUE",""))
- +8 ;;.I ITEM S ^$W("ZISGTRM","G","SUB","VALUE")=^$W("ZISGTRM","G","SUBTYPE","CHOICE",ITEM)
- +9 QUIT
- OK ;Callbak for OK button.
- +1 NEW REF
- +2 SET REF=XGWIN_"("""_@XGEVENT@("WINDOW")_""",""G"")"
- +3 SET IOP=$SELECT($GET(@REF@("QUEUE","VALUE")):"Q;",1:"")
- +4 IF $GET(@REF@("QUEUE","VALUE"))
- IF $GET(@REF@("QTIME","VALUE"))="NOW"!($GET(@REF@("QDTIME","TITLE"))="")
- SET ZTDTH=$HOROLOG
- +5 SET XGION=$SELECT($DATA(@REF@("DEV","VALUE")):@REF@("DEV","VALUE"),1:"")
- +6 IF XGION=""
- DO ^XGLMSG("E","You have not selected a device.")
- QUIT
- +7 ;ENTER RETRIEVE TYPE INFO HERE:
- +8 SET XGDA=""
- +9 IF '$DATA(XGION)
- Begin DoDot:1
- +10
- *** ERROR ***