- BDMFZIS ; cmi/anch/maw - DEVICE CALLS AND QUEUING ;
- ;;2.0;DIABETES MANAGEMENT SYSTEM;;AUG 11, 2006
- ;;ROUTINE USED AS CENTRAL POINT FOR ALL DEVICE HANDLING AND QUEUING
- ZIS ;EP;TO CALL DEVICE
- I $G(BDMBROWS) D Q
- .K BDMPRINT ;cmi/maw kill off so not hanging around
- .S DIR(0)="SO^P:PRINT Output;B:BROWSE Output on Screen"
- .S DIR("A")="Do you want to "
- .S DIR("B")="PRINT"
- .W !
- .D DIR^BDMFDIC
- .Q:$D(BDMQUIT)!$D(BDMOUT)
- .I $E($G(X))="P" S BDMPRINT=1 D ZIS1 Q ;cmi/maw 1/17/2006 to look for print select or not
- .I $E($G(Y))="B" D BROWSE Q
- ZIS1 ;EP;
- K DN
- S %ZIS="AEMNPQ"
- S ZIBH=$TR($H,",","")_$R(1000)
- W !
- D ^%ZIS
- I POP>0 D CLOSE Q
- S:$G(IOPAR)]"" %ZIS("IOPAR")=IOPAR
- S ZTSAVE("%ZIS*")=""
- S ZTSAVE("ZIBH")=""
- S ZTRTN="OPEN^BDMFZIS"
- I $D(IO("Q")),IO=IO(0)!$D(IO("S")) D G ZIS
- .W *7,*7
- .W !!,"CANNOT QUEUE TO HOME OR SLAVE DEVICE."
- I '$D(IO("Q")) D D CLOSE Q
- .I $E(IOST,1,2)="P-" D
- ..W !!,"...One moment please, while I complete your print request..."
- ..W !
- .D:$D(BDMRTN) @ZTRTN
- E D ZTLOAD
- Q
- CLOSE ;EP;TO CLOSE DEVICE
- D ^%ZISC
- K IOP,IOPAR,%ZIS,ZTSK,ZTQUEUED,ZTREQ
- Q
- ZTLOAD ;EP;TO CALL %ZTLOAD
- K BDMDR
- S ZTIO=ION
- S ZTSAVE("BDM*")=""
- D ^%ZTLOAD
- W !!,$S($G(ZTSK)]"":"Request queued!",1:"Request cancelled.")
- D CLOSE
- H 2
- Q
- OPEN ;EP;TO OPEN DEVICE AND PRINT SELECTED REPORT
- I '$D(ZTQUEUED)!(ION["HOST") S IOP=ION D ^%ZIS I POP S BDMQUIT="" Q
- U IO
- D @BDMRTN
- S:$D(ZTQUEUED) ZTREQ="@"
- D:'$D(ZTQUEUED) CLOSE
- Q
- HOST ;EP;TO OPEN HOST FILE
- ;%FN - FILE NAME REQUIRED
- ;BDMOP - 'R' FOR READ, 'W' FOR WRITE REQUIRED, 'M' FOR READ/WRITE
- Q:'$D(%FN)!'$D(BDMOP)
- S POP=1
- F BDMI=51:1:54 Q:'POP D
- .S (IOP,ION)=BDMI
- .S %ZIS("IOPAR")="("""_%FN_""":"""_BDMOP_""")"
- .D ^%ZIS
- I POP D G HOST:$G(BDMX)<2 S BDMQUIT="" Q
- .W !!,"Waiting for HOST FILE SERVER."
- .S BDMX=$G(BDMX)+1
- K IOP,POP
- Q
- BROWSE ;EP;TO BROWSE
- Q:$G(BDMRTN)=""
- S BDMFLD("BROWSE")=1
- D VIEWR^XBLM(BDMRTN)
- I $D(BDMQUIT) D Q
- .K BDMQUIT
- .W !!,"BROWSE function temporarily unavailable."
- .D ZIS1
- D CLEAR^VALM1
- Q
- BDMFZIS ; cmi/anch/maw - DEVICE CALLS AND QUEUING ;
- +1 ;;2.0;DIABETES MANAGEMENT SYSTEM;;AUG 11, 2006
- +2 ;;ROUTINE USED AS CENTRAL POINT FOR ALL DEVICE HANDLING AND QUEUING
- ZIS ;EP;TO CALL DEVICE
- +1 IF $GET(BDMBROWS)
- Begin DoDot:1
- +2 ;cmi/maw kill off so not hanging around
- KILL BDMPRINT
- +3 SET DIR(0)="SO^P:PRINT Output;B:BROWSE Output on Screen"
- +4 SET DIR("A")="Do you want to "
- +5 SET DIR("B")="PRINT"
- +6 WRITE !
- +7 DO DIR^BDMFDIC
- +8 IF $DATA(BDMQUIT)!$DATA(BDMOUT)
- QUIT
- +9 ;cmi/maw 1/17/2006 to look for print select or not
- IF $EXTRACT($GET(X))="P"
- SET BDMPRINT=1
- DO ZIS1
- QUIT
- +10 IF $EXTRACT($GET(Y))="B"
- DO BROWSE
- QUIT
- End DoDot:1
- QUIT
- ZIS1 ;EP;
- +1 KILL DN
- +2 SET %ZIS="AEMNPQ"
- +3 SET ZIBH=$TRANSLATE($HOROLOG,",","")_$RANDOM(1000)
- +4 WRITE !
- +5 DO ^%ZIS
- +6 IF POP>0
- DO CLOSE
- QUIT
- +7 IF $GET(IOPAR)]""
- SET %ZIS("IOPAR")=IOPAR
- +8 SET ZTSAVE("%ZIS*")=""
- +9 SET ZTSAVE("ZIBH")=""
- +10 SET ZTRTN="OPEN^BDMFZIS"
- +11 IF $DATA(IO("Q"))
- IF IO=IO(0)!$DATA(IO("S"))
- Begin DoDot:1
- +12 WRITE *7,*7
- +13 WRITE !!,"CANNOT QUEUE TO HOME OR SLAVE DEVICE."
- End DoDot:1
- GOTO ZIS
- +14 IF '$DATA(IO("Q"))
- Begin DoDot:1
- +15 IF $EXTRACT(IOST,1,2)="P-"
- Begin DoDot:2
- +16 WRITE !!,"...One moment please, while I complete your print request..."
- +17 WRITE !
- End DoDot:2
- +18 IF $DATA(BDMRTN)
- DO @ZTRTN
- End DoDot:1
- DO CLOSE
- QUIT
- +19 IF '$TEST
- DO ZTLOAD
- +20 QUIT
- CLOSE ;EP;TO CLOSE DEVICE
- +1 DO ^%ZISC
- +2 KILL IOP,IOPAR,%ZIS,ZTSK,ZTQUEUED,ZTREQ
- +3 QUIT
- ZTLOAD ;EP;TO CALL %ZTLOAD
- +1 KILL BDMDR
- +2 SET ZTIO=ION
- +3 SET ZTSAVE("BDM*")=""
- +4 DO ^%ZTLOAD
- +5 WRITE !!,$SELECT($GET(ZTSK)]"":"Request queued!",1:"Request cancelled.")
- +6 DO CLOSE
- +7 HANG 2
- +8 QUIT
- OPEN ;EP;TO OPEN DEVICE AND PRINT SELECTED REPORT
- +1 IF '$DATA(ZTQUEUED)!(ION["HOST")
- SET IOP=ION
- DO ^%ZIS
- IF POP
- SET BDMQUIT=""
- QUIT
- +2 USE IO
- +3 DO @BDMRTN
- +4 IF $DATA(ZTQUEUED)
- SET ZTREQ="@"
- +5 IF '$DATA(ZTQUEUED)
- DO CLOSE
- +6 QUIT
- HOST ;EP;TO OPEN HOST FILE
- +1 ;%FN - FILE NAME REQUIRED
- +2 ;BDMOP - 'R' FOR READ, 'W' FOR WRITE REQUIRED, 'M' FOR READ/WRITE
- +3 IF '$DATA(%FN)!'$DATA(BDMOP)
- QUIT
- +4 SET POP=1
- +5 FOR BDMI=51:1:54
- IF 'POP
- QUIT
- Begin DoDot:1
- +6 SET (IOP,ION)=BDMI
- +7 SET %ZIS("IOPAR")="("""_%FN_""":"""_BDMOP_""")"
- +8 DO ^%ZIS
- End DoDot:1
- +9 IF POP
- Begin DoDot:1
- +10 WRITE !!,"Waiting for HOST FILE SERVER."
- +11 SET BDMX=$GET(BDMX)+1
- End DoDot:1
- IF $GET(BDMX)<2
- GOTO HOST
- SET BDMQUIT=""
- QUIT
- +12 KILL IOP,POP
- +13 QUIT
- BROWSE ;EP;TO BROWSE
- +1 IF $GET(BDMRTN)=""
- QUIT
- +2 SET BDMFLD("BROWSE")=1
- +3 DO VIEWR^XBLM(BDMRTN)
- +4 IF $DATA(BDMQUIT)
- Begin DoDot:1
- +5 KILL BDMQUIT
- +6 WRITE !!,"BROWSE function temporarily unavailable."
- +7 DO ZIS1
- End DoDot:1
- QUIT
- +8 DO CLEAR^VALM1
- +9 QUIT