Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: DGQEMP

DGQEMP.m

Go to the documentation of this file.
  1. DGQEMP ;RWA/SLC-DHW/OKC-ALB/MIR - EMBOSSER PRINT;04/02/85 5:48 PM ; 11 Feb 86 10:04 AM
  1. ;;5.3;Registration;**1015**;Aug 13, 1993;Build 21
  1. ;
  1. ;DGEMBTYP = device type (1 for embosser, 2 for addressograph, and 0 for plain printer
  1. ;
  1. EN S %ZIS="",IOP="HOME" D ^%ZIS S DGI=$O(^DIC(39.3,"B",ION,0)),DGEMBTYP=0 K IOP,%ZIS
  1. I DGI,$D(^DIC(39.3,DGI,0)) S DGEMBTYP=$P(^(0),"^",2)
  1. I DGEMBTYP<0!(DGEMBTYP>2) G Q
  1. K DGFORMAT,CARD S (DGCOUNT,DGTRY,DGSOFT,DGHARD,DGUNK)=0
  1. PRINT S:'$D(DGQUAN) DGQUAN=1 S ERR=0 D @(DGEMBTYP)
  1. I ERR S DGTRY=DGTRY+1 D MAIL G:'REC&(DGTRY'>2) PRINT D HOLD^DGQEMA1
  1. ;
  1. ;update file statistics
  1. ;
  1. I 'DGI G Q
  1. I '$D(^DIC(39.3,DGI,1,0)) S ^DIC(39.3,DGI,1,0)="^39.31A^^"
  1. S X="" I $D(^DIC(39.3,DGI,1,DT,0)) S X=^(0)
  1. S DGNUM=$P(X,"^",1),DGSOFER=$P(X,"^",2),DGHER=$P(X,"^",3),DGUKER=$P(X,"^",4)
  1. S DIC="^DIC(39.3,"_DGI_",1,"
  1. I '$D(^DIC(39.3,DGI,1,DT)) S DINUM=DT,DIC(0)="L",DA(1)=DGI,X=DGCOUNT D ^DIC
  1. I $D(^DIC(39.3,DGI,1,DT)) S DIE=DIC,DA=DT,DR=".01///"_(DGCOUNT+DGNUM)_";1///"_(DGSOFT+DGSOFER)_";2///"_(DGHARD+DGHER)_";3///"_(DGUNK+DGUKER) D ^DIE
  1. ;I DGCOUNT<DGQUAN S DGQUAN=DGQUAN-DGCOUNT G PRINT
  1. Q D KILL^%ZTLOAD K DFN,DGCOUNT,DGCT,DGEMBTYP,DGHARD,DGF,DGFORMAT,DGHER,DGI,DGLINE,DGNUM,DGQUAN,DGSOFER,DGSOFT,DGTRY,DGUKER,DGUNK,ERR,F,FM,I,J,K,POP,REC,X,XMB,XMDUZ,Y
  1. K DA,DIC,DIE,DINUM
  1. Q
  1. MAIL I $L($P(^DIC(39.1,DGTYP,0),"^",5)),$P(^(0),"^",5)="Y" S XMY(DUZ)=""
  1. S XMDUZ=.5,XMB=$S(REC:"DG EMBOSSER1",1:"DG EMBOSSER"),XMB($S(REC:1,1:2))=$S($D(^DPT(+DFN,0)):$P(^(0),"^",1),1:"UNSPECIFIED")
  1. I 'REC S XMB(1)=$P(^DIC(39.1,DGTYP,0),"^",1)
  1. D ^XMB
  1. K XMB,XMDUZ Q
  1. ;
  1. ;
  1. BATCH ;process cards in hold status
  1. F DGCD=0:0 S DGCD=$O(^DIC(39.1,DGTYP,"HOLD",DGCD)) Q:'DGCD I $D(^(DGCD,0)) S DFN=+^(0),DGQUAN=$P(^(0),"^",2) D TEXT
  1. S DIK="^DIC(39.1,"_DGTYP_",""HOLD"",",DA(1)=DGTYP F DA=0:0 S DA=$O(^DIC(39.1,DGTYP,"HOLD",DA)) Q:'DA D ^DIK
  1. K DA,DIK,DGCD,DGTYP Q
  1. ;
  1. TEXT ;get text from cards in hold
  1. F K=1:1:9 I $D(^DIC(39.1,DGTYP,"HOLD",DGCD,1,K,0)) S DGLINE(K)=^(0)
  1. I $D(DGLINE(1)) D EN ;print card
  1. Q
  1. ;
  1. ;
  1. ;WARNING!!!
  1. ;This section prints the patient data cards and interacts with the
  1. ;embosser and addressograph
  1. ;
  1. ;Line tags:
  1. ; 0 - for plain printer
  1. ; 1 - for embosser
  1. ; 2 - for addressograph
  1. ;
  1. ;
  1. 0 ;plain paper printer
  1. F I=1:1:DGQUAN S DGCOUNT=DGCOUNT+1 W:I>1 !!!!!! F L=1:1:9 I $D(DGLINE(L)) W !,DGLINE(L)
  1. W @IOF
  1. Q
  1. ;
  1. ;
  1. 1 ;embosser
  1. S (REC,F,K,X)=0,DGF=2 X ^%ZOSF("EOFF"),^%ZOSF("TYPE-AHEAD")
  1. S FM=$S($D(DGFORMAT):9,1:0)
  1. F I=1:1 R *X:0 Q:'$T
  1. A0 R *X:30 S X=$C(X) I X="" S DGUNK=1 G ERR
  1. I FM=1 S FM=2 G S1:X="B",H1:X="H",X1:X'="C" S DGFORMAT=1 G A0
  1. G A1:X="A",H1:X="H",S1:X="B",X1
  1. ;
  1. A1 G S2:'FM D SB1 S REC=1
  1. F I=1:1:DGQUAN R *X:200 S X=$C(X) G S1:X="B",H1:X="H",X1:X'="C" S K=K+1
  1. G END
  1. S1 G ERR:F>DGF R *X:30 S X=$C(X),F=F+1,DGSOFT=DGSOFT+1 G H1:X="H",ERR:X'="A"
  1. S2 D SB2 S FM=1 G A0
  1. H1 S DGHARD=DGHARD+1 G ERR
  1. X1 S DGUNK=DGUNK+1 G ERR:F>DGF S F=F+1 G A0
  1. ERR S ERR=1
  1. END S DGCOUNT=K Q
  1. SB1 W "#DCC##REP#",DGQUAN,"#EMB#" F L=1:1:9 Q:'$D(DGLINE(L)) W DGLINE(L),""""
  1. W "#END#@@@@@@" Q
  1. SB2 W "#DCL#080400 1#FC1#1550 2#FC1#1400 3#FC1#1250"
  1. W " 4#FC1#1100 5#FC1#0950 6#FC1#0800 7#FC1#0650"
  1. W " 8#FC1#0500 9#FC1#0350#END#@@@@@@" Q
  1. ;
  1. ;
  1. 2 ;addressograph
  1. F I=1:1:DGQUAN D ADD S DGCOUNT=DGCOUNT+1
  1. Q
  1. ADD F L=1:1:12 W *0
  1. W "<" F L=1:1:9 Q:'$D(DGLINE(L)) W !,"+00000",(L-1),"0",DGLINE(L)
  1. W ">" Q