ENCTBAR ;(WASH ISC)/RGY,DH-Send IRL Code to Bar Code Reader ;2.25.97
;;7.0;ENGINEERING;**9,32,35**;Aug 17, 1993
S:'$D(ENCTID) ENCTID="" S:ENCTID]"" ENCTID=$O(^PRCT(446.4,"C",ENCTID,"")) I ENCTID="" S DIC="^PRCT(446.4,",DIC(0)="QEAM" D ^DIC G:Y<0 Q S ENCTID=+Y
DEV ;
N TIME
W:'$D(IOP) !!,"OK, enter the device to which the bar code reader is connected.",!
D ^%ZIS G:POP Q
S ENCTEON=^%ZOSF("EON"),ENCTEOFF=^%ZOSF("EOFF"),ENCTTYPE=^%ZOSF("TYPE-AHEAD"),ENCTOPEN=$G(^%ZIS(2,IOST(0),10)),ENCTCLOS=$G(^%ZIS(2,IOST(0),11))
U IO D OFF D WARN^ENCTMES1 R X:DTIME G:X="^" Q
D ON S ENCT=+$P(^PRCT(446.4,ENCTID,0),"^",9)_"^2" D SPC^ENCTLAB H 3
S TIME=$P($H,",",2)
; for janus readers
N ENCTJNUS
I $TR($P($G(^PRCT(446.6,+$P($G(^PRCT(446.4,ENCTID,0)),"^",9),0)),"^"),"janus","JANUS")["JANUS" S ENCTJNUS=1
F LN=0:0 S LN=$O(^PRCT(446.4,ENCTID,1,LN)) Q:'LN I $D(^(LN,0)) S X=^(0) D LN I X]"" W:$G(ENCTJNUS) $C(15) W X W:$G(ENCTJNUS) $C(22) W ! D:$G(ENCTJNUS)
. D OFF W *0
. D ON
S ENCT=+$P(^PRCT(446.4,ENCTID,0),"^",9)_"^3" D SPC^ENCTLAB
F I=1:1:5 R ENX(I):5 Q:'$T
D OFF,^%ZISC
W !!,"Download time: "_($P($H,",",2)-TIME)_" sec."
I $G(ENX(1))=$C(30) W !,"DOWNLOAD SUCCESSFUL, you may now disconnect the bar code reader.",!!
Q D HOME^%ZIS K LN,POP,ENCTID,ENSTA,DIC,I,J,K,IOP
Q
;
LN ;
S X=$P(X,"::") F Y=$L(X):-1:0 Q:$E(X,Y)'=" " S X=$E(X,1,Y-1)
I '$D(COL1) S:X["|" X=$P(X,"|")_@$P(X,"|",2)_$P(X,"|",3)
Q
;
ON X ENCTOPEN U IO X ENCTEOFF,ENCTTYPE
Q
;
OFF X ENCTCLOS,ENCTEON U IO(0)
Q
;
COM ;Entry point to allow the alignment of IRL comments in Barcode Program file
S DIC="^PRCT(446.4,",DIC(0)="QEAM" D ^DIC G:Y<0 Q2 S ENCTID=+Y
S X="At what character do you want comments to begin?^35^^30,35,40,45,50^COM^ENCTMES1" D ^ENCTQUES G:X="^" Q2 S COL1=X
F LN=0:0 S LN=$O(^PRCT(446.4,ENCTID,1,LN)) Q:'LN I $D(^(LN,0)) S X=^(0),Y=COL1 D CON S ^PRCT(446.4,ENCTID,1,LN,0)=Y W "."
W "... Done"
Q2 K COL1,LN,ENCTID Q
CON ;X=IRL TEXT,Y=COLUMN TO START COMMENTS, Can be called from Fileman
S COL=Y,(LN1,Y)=X G:X'["::" Q3 D LN F Y=0:0 Q:COL-3<$L(X) S X=X_" "
S:$A($E(X,$L(X)))>32 X=X_" " S Y=X_"::"_$P(LN1,"::",2)
Q3 K LN1,COL Q
IDENT ; Called by input transform for IDENTIFIER (446.4,.02)
I $D(^PRCT(446.4,"C",X)),$O(^(X,""))'=DA S X=$O(^("")) W !,"This IDENTIFIER already exists for ",$S($D(^PRCT(446.4,+X,0)):$P(^(0),"^"),1:X)," !" K X Q
I '$D(^DIC(9.4,"C",$E(X,1,$L(X)-2))) W !,"The PACKAGE NAME SPACE '",$E(X,1,$L(X)-2),"' does not exist !" K X
Q
;ENCTBAR
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HENCTBAR 2519 printed Sep 02, 2024@18:37:28 Page 2
ENCTBAR ;(WASH ISC)/RGY,DH-Send IRL Code to Bar Code Reader ;2.25.97
+1 ;;7.0;ENGINEERING;**9,32,35**;Aug 17, 1993
+2 if '$DATA(ENCTID)
SET ENCTID=""
if ENCTID]""
SET ENCTID=$ORDER(^PRCT(446.4,"C",ENCTID,""))
IF ENCTID=""
SET DIC="^PRCT(446.4,"
SET DIC(0)="QEAM"
DO ^DIC
if Y<0
GOTO Q
SET ENCTID=+Y
DEV ;
+1 NEW TIME
+2 if '$DATA(IOP)
WRITE !!,"OK, enter the device to which the bar code reader is connected.",!
+3 DO ^%ZIS
if POP
GOTO Q
+4 SET ENCTEON=^%ZOSF("EON")
SET ENCTEOFF=^%ZOSF("EOFF")
SET ENCTTYPE=^%ZOSF("TYPE-AHEAD")
SET ENCTOPEN=$GET(^%ZIS(2,IOST(0),10))
SET ENCTCLOS=$GET(^%ZIS(2,IOST(0),11))
+5 USE IO
DO OFF
DO WARN^ENCTMES1
READ X:DTIME
if X="^"
GOTO Q
+6 DO ON
SET ENCT=+$PIECE(^PRCT(446.4,ENCTID,0),"^",9)_"^2"
DO SPC^ENCTLAB
HANG 3
+7 SET TIME=$PIECE($HOROLOG,",",2)
+8 ; for janus readers
+9 NEW ENCTJNUS
+10 IF $TRANSLATE($PIECE($GET(^PRCT(446.6,+$PIECE($GET(^PRCT(446.4,ENCTID,0)),"^",9),0)),"^"),"janus","JANUS")["JANUS"
SET ENCTJNUS=1
+11 FOR LN=0:0
SET LN=$ORDER(^PRCT(446.4,ENCTID,1,LN))
if 'LN
QUIT
IF $DATA(^(LN,0))
SET X=^(0)
DO LN
IF X]""
if $GET(ENCTJNUS)
WRITE $CHAR(15)
WRITE X
if $GET(ENCTJNUS)
WRITE $CHAR(22)
WRITE !
if $GET(ENCTJNUS)
Begin DoDot:1
+12 DO OFF
WRITE *0
+13 DO ON
End DoDot:1
+14 SET ENCT=+$PIECE(^PRCT(446.4,ENCTID,0),"^",9)_"^3"
DO SPC^ENCTLAB
+15 FOR I=1:1:5
READ ENX(I):5
if '$TEST
QUIT
+16 DO OFF
DO ^%ZISC
+17 WRITE !!,"Download time: "_($PIECE($HOROLOG,",",2)-TIME)_" sec."
+18 IF $GET(ENX(1))=$CHAR(30)
WRITE !,"DOWNLOAD SUCCESSFUL, you may now disconnect the bar code reader.",!!
Q DO HOME^%ZIS
KILL LN,POP,ENCTID,ENSTA,DIC,I,J,K,IOP
+1 QUIT
+2 ;
LN ;
+1 SET X=$PIECE(X,"::")
FOR Y=$LENGTH(X):-1:0
if $EXTRACT(X,Y)'=" "
QUIT
SET X=$EXTRACT(X,1,Y-1)
+2 IF '$DATA(COL1)
if X["|"
SET X=$PIECE(X,"|")_@$PIECE(X,"|",2)_$PIECE(X,"|",3)
+3 QUIT
+4 ;
ON XECUTE ENCTOPEN
USE IO
XECUTE ENCTEOFF
XECUTE ENCTTYPE
+1 QUIT
+2 ;
OFF XECUTE ENCTCLOS
XECUTE ENCTEON
USE IO(0)
+1 QUIT
+2 ;
COM ;Entry point to allow the alignment of IRL comments in Barcode Program file
+1 SET DIC="^PRCT(446.4,"
SET DIC(0)="QEAM"
DO ^DIC
if Y<0
GOTO Q2
SET ENCTID=+Y
+2 SET X="At what character do you want comments to begin?^35^^30,35,40,45,50^COM^ENCTMES1"
DO ^ENCTQUES
if X="^"
GOTO Q2
SET COL1=X
+3 FOR LN=0:0
SET LN=$ORDER(^PRCT(446.4,ENCTID,1,LN))
if 'LN
QUIT
IF $DATA(^(LN,0))
SET X=^(0)
SET Y=COL1
DO CON
SET ^PRCT(446.4,ENCTID,1,LN,0)=Y
WRITE "."
+4 WRITE "... Done"
Q2 KILL COL1,LN,ENCTID
QUIT
CON ;X=IRL TEXT,Y=COLUMN TO START COMMENTS, Can be called from Fileman
+1 SET COL=Y
SET (LN1,Y)=X
if X'["
GOTO Q3
DO LN
FOR Y=0:0
if COL-3<$LENGTH(X)
QUIT
SET X=X_" "
+2 if $ASCII($EXTRACT(X,$LENGTH(X)))>32
SET X=X_" "
SET Y=X_"::"_$PIECE(LN1,"::",2)
Q3 KILL LN1,COL
QUIT
IDENT ; Called by input transform for IDENTIFIER (446.4,.02)
+1 IF $DATA(^PRCT(446.4,"C",X))
IF $ORDER(^(X,""))'=DA
SET X=$ORDER(^(""))
WRITE !,"This IDENTIFIER already exists for ",$SELECT($DATA(^PRCT(446.4,+X,0)):$PIECE(^(0),"^"),1:X)," !"
KILL X
QUIT
+2 IF '$DATA(^DIC(9.4,"C",$EXTRACT(X,1,$LENGTH(X)-2)))
WRITE !,"The PACKAGE NAME SPACE '",$EXTRACT(X,1,$LENGTH(X)-2),"' does not exist !"
KILL X
+3 QUIT
+4 ;ENCTBAR