- BDMLLTZ ; IHS/CMI/LAB - DEVICE CALLS AND QUEUING ;
- ;;2.0;DIABETES MANAGEMENT SYSTEM;**3**;JUN 14, 2007
- ;;ROUTINE USED AS CENTRAL POINT FOR ALL DEVICE HANDLING AND QUEUING
- ZIS ;call to XBDBQUE
- W ! S DIR(0)="S^P:PRINT Output;B:BROWSE Output on Screen",DIR("A")="Do you wish to",DIR("B")="P" K DA D ^DIR K DIR
- I $D(DIRUT) D XIT Q
- S BDMOPT=Y
- I Y="B" D BROWSE,XIT Q
- S XBRP="CPRINT^BDMLLT",XBRC="",XBRX="EXIT^BDMLLT",XBNS="BDM"
- D ^XBDBQUE
- D XIT
- Q
- BROWSE ;
- S XBRP="VIEWR^XBLM(""CPRINT^BDMLLT"")"
- S XBRC="",XBRX="EXIT^BDMLLT",XBIOP=0 D ^XBDBQUE
- Q
- ZISX ;EP;TO CALL DEVICE
- D Q
- .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^BDMLLTD
- .Q:$D(BDMLLTQT)!$D(BDMLLTOT)
- .I $E($G(X))="P" D ZIS1 Q
- .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^BDMLLTZ"
- 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(BDMLRTN) @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 BDMLLTDR
- S ZTIO=ION
- S ZTSAVE("ACM*")=""
- 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 BDMLLTQT="" Q
- U IO
- D @BDMLRTN
- S:$D(ZTQUEUED) ZTREQ="@"
- D:'$D(ZTQUEUED) CLOSE
- Q
- HOST ;EP;TO OPEN HOST FILE
- ;%FN - FILE NAME REQUIRED
- ;BDMLLTOP - 'R' FOR READ, 'W' FOR WRITE REQUIRED, 'M' FOR READ/WRITE
- Q:'$D(%FN)!'$D(BDMLLTOP)
- S POP=1
- F BDMLI=51:1:54 Q:'POP D
- .S (IOP,ION)=BDMLI
- .S %ZIS("IOPAR")="("""_%FN_""":"""_BDMLLTOP_""")"
- .D ^%ZIS
- I POP D G HOST:$G(BDMLLTX)<2 S BDMLLTQT="" Q
- .W !!,"Waiting for HOST FILE SERVER."
- .S BDMLLTX=$G(BDMLLTX)+1
- K IOP,POP
- Q
- BROWSE1 ;EP;TO BROWSE
- Q:$G(BDMLRTN)=""
- S BDMLFLD("BROWSE")=1
- D VIEWR^XBLM(BDMLRTN)
- I $D(BDMLLTQT) D Q
- .K BDMLLTQT
- .W !!,"BROWSE function temporarily unavailable."
- .D ZIS1
- D CLEAR^VALM1
- Q
- XIT ;
- D EN^XBVK("BDML")
- Q
- BDMLLTZ ; IHS/CMI/LAB - DEVICE CALLS AND QUEUING ;
- +1 ;;2.0;DIABETES MANAGEMENT SYSTEM;**3**;JUN 14, 2007
- +2 ;;ROUTINE USED AS CENTRAL POINT FOR ALL DEVICE HANDLING AND QUEUING
- ZIS ;call to XBDBQUE
- +1 WRITE !
- SET DIR(0)="S^P:PRINT Output;B:BROWSE Output on Screen"
- SET DIR("A")="Do you wish to"
- SET DIR("B")="P"
- KILL DA
- DO ^DIR
- KILL DIR
- +2 IF $DATA(DIRUT)
- DO XIT
- QUIT
- +3 SET BDMOPT=Y
- +4 IF Y="B"
- DO BROWSE
- DO XIT
- QUIT
- +5 SET XBRP="CPRINT^BDMLLT"
- SET XBRC=""
- SET XBRX="EXIT^BDMLLT"
- SET XBNS="BDM"
- +6 DO ^XBDBQUE
- +7 DO XIT
- +8 QUIT
- BROWSE ;
- +1 SET XBRP="VIEWR^XBLM(""CPRINT^BDMLLT"")"
- +2 SET XBRC=""
- SET XBRX="EXIT^BDMLLT"
- SET XBIOP=0
- DO ^XBDBQUE
- +3 QUIT
- ZISX ;EP;TO CALL DEVICE
- +1 Begin DoDot:1
- +2 SET DIR(0)="SO^P:PRINT Output;B:BROWSE Output on Screen"
- +3 SET DIR("A")="Do you want to "
- +4 SET DIR("B")="PRINT"
- +5 WRITE !
- +6 DO DIR^BDMLLTD
- +7 IF $DATA(BDMLLTQT)!$DATA(BDMLLTOT)
- QUIT
- +8 IF $EXTRACT($GET(X))="P"
- DO ZIS1
- QUIT
- +9 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^BDMLLTZ"
- +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(BDMLRTN)
- 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 BDMLLTDR
- +2 SET ZTIO=ION
- +3 SET ZTSAVE("ACM*")=""
- +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 BDMLLTQT=""
- QUIT
- +2 USE IO
- +3 DO @BDMLRTN
- +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 ;BDMLLTOP - 'R' FOR READ, 'W' FOR WRITE REQUIRED, 'M' FOR READ/WRITE
- +3 IF '$DATA(%FN)!'$DATA(BDMLLTOP)
- QUIT
- +4 SET POP=1
- +5 FOR BDMLI=51:1:54
- IF 'POP
- QUIT
- Begin DoDot:1
- +6 SET (IOP,ION)=BDMLI
- +7 SET %ZIS("IOPAR")="("""_%FN_""":"""_BDMLLTOP_""")"
- +8 DO ^%ZIS
- End DoDot:1
- +9 IF POP
- Begin DoDot:1
- +10 WRITE !!,"Waiting for HOST FILE SERVER."
- +11 SET BDMLLTX=$GET(BDMLLTX)+1
- End DoDot:1
- IF $GET(BDMLLTX)<2
- GOTO HOST
- SET BDMLLTQT=""
- QUIT
- +12 KILL IOP,POP
- +13 QUIT
- BROWSE1 ;EP;TO BROWSE
- +1 IF $GET(BDMLRTN)=""
- QUIT
- +2 SET BDMLFLD("BROWSE")=1
- +3 DO VIEWR^XBLM(BDMLRTN)
- +4 IF $DATA(BDMLLTQT)
- Begin DoDot:1
- +5 KILL BDMLLTQT
- +6 WRITE !!,"BROWSE function temporarily unavailable."
- +7 DO ZIS1
- End DoDot:1
- QUIT
- +8 DO CLEAR^VALM1
- +9 QUIT
- XIT ;
- +1 DO EN^XBVK("BDML")
- +2 QUIT