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

ADEPLBL.m

Go to the documentation of this file.
  1. ADEPLBL ; IHS/HQT/MJL - PRINT MAILING LABELS FROM SORT TEMPLATE ;07:21 PM [ 03/24/1999 9:04 AM ]
  1. ;;6.0;ADE;;APRIL 1999
  1. TEMP ;EP
  1. ;------->ENTER HERE TO SELECT SEARCH TEMPLATE
  1. K DUOUT,DTOUT,POP D TEMPL G:Y<1 END G START
  1. FILE ;EP
  1. ;------->ENTER HERE TO SELECT SPECIFIC PATIENT NAMES
  1. D ^ADEPLBL1 I $D(DUOUT)!($D(DTOUT)) G END
  1. START ;------->GET POINTER FILE INFO
  1. D POINT
  1. ;------->GET LABEL SIZE
  1. D SIZE
  1. I $D(DUOUT)!($D(DTOUT)) G END
  1. ;------->TEST LABEL
  1. D TLAB
  1. I $D(POP),POP G END
  1. I $D(DUOUT)!($D(DTOUT)) G END
  1. ;------->SELECT DEVICE
  1. D DEV
  1. G:POP END
  1. I $D(IO("Q")) K IO("Q") G END
  1. I $D(DUOUT)!($D(DTOUT)) G END
  1. ZTM ;EP
  1. ;------->PRINT LABELS (TASKMAN ENTRY)
  1. D PRINT
  1. ;------->END
  1. END K ADEAD1,ADEAD2,ADECNT,ADEDFN,ADEDIC,ADEFLD,ADEFN,ADEGL,ADEIOP,ADEJ,ADENAM,ADEPN,ADESIZ,ADETEM,ADEX,ADEY,^ADEUTL("ADEPLBL",$J)
  1. ;^ADEUTL("ADEPLBL", is a transient working global
  1. K ADELKPRN,ADELKDAT,Y,DIC,DIR,DR,DUOUT,DTOUT,ADELKERR
  1. D ^%ZISC
  1. I $D(ZTQUEUED) S ZTREQ="@"
  1. Q
  1. ;
  1. SIZE S:$D(^ADEUTL("ADEPLBL","SIZE")) ADESIZ=^ADEUTL("ADEPLBL","SIZE")
  1. S:'$D(ADESIZ) ADESIZ=9
  1. S DIR(0)="NA^4:20:0"
  1. S DIR("A")="Enter Number of Lines on Blank Mailing Label: "
  1. S DIR("B")=ADESIZ
  1. S DIR("?")="Enter the size (in horizontal lines) of the mailing label"
  1. D ^DIR
  1. I $D(DTOUT)!($D(DUOUT)) Q
  1. S ADESIZ=X
  1. S ^ADEUTL("ADEPLBL","SIZE")=ADESIZ ;^ADEUTL("ADEPLBL" is transient
  1. Q
  1. TEMPL K Y,DIC S DIC="^DIBT(",DIC(0)="AEQZ"
  1. S DIC("S")="D SCRN^ADEPLBL"
  1. D ^DIC
  1. Q:Y<1
  1. S ADETEM=+Y,ADEFN=$P(Y(0),U,4)
  1. Q
  1. POINT I ADEFN=9000001 S ADEFLD=".01",ADEPN="0;1",ADEGL="^AUPNPAT(" Q
  1. S ADEFLD=$O(^DD(9000001,0,"PT",ADEFN,0))
  1. S ADEPN=$P(^DD(ADEFN,ADEFLD,0),U,4)
  1. S ADEGL=^DIC(ADEFN,0,"GL")
  1. Q
  1. DEV K POP
  1. W !!,"Ready to print mailing labels for patient names stored in the "
  1. W !,$P(^DIBT(ADETEM,0),U)," Search Template"
  1. I $D(^DD(ADEFN,0,"NM")),$O(^DD(ADEFN,0,"NM",0))]"" W " of the ",$O(^DD(ADEFN,0,"NM",0))," File.",!
  1. E W ".",!
  1. W "Make sure labels are lined up on printer.",!
  1. S %ZIS="PQ" D ^%ZIS
  1. I $D(DUOUT)!($D(DTOUT)) W !,?5,"--Try Later" Q
  1. I $D(IO("Q"))&(($D(IO("S")))!($E(IOST)'="P")) W *7,!,"Please queue to system printers." K IO("Q") D ^%ZISC G DEV
  1. I $D(IO("Q")) D QUE
  1. Q
  1. QUE X ^%ZOSF("UCI") S ZTRTN="ZTM^ADEPLBL",ZTUCI=Y,ZTDESC="Print Mailing Labels"
  1. F ADEX="ADETEM","ADEFLD","ADEPN","ADEGL","ADESIZ" S ZTSAVE(ADEX)=""
  1. D ^%ZTLOAD
  1. K ZTDESC,ZTRTN,ZTSAVE,ZTSK,ZTUCI
  1. Q
  1. PRINT U IO
  1. K ^ADEUTL("ADEPLBL",$J)
  1. S ADEX=0
  1. F ADEY=0:0 S ADEX=$O(^DIBT(ADETEM,1,ADEX)) Q:'+ADEX D P2
  1. Q
  1. P2 S ADEDFN=ADEGL_ADEX_","_+ADEPN_")"
  1. S ADEDFN=$P(@ADEDFN,U,$P(ADEPN,";",2))
  1. Q:'$D(^DPT(ADEDFN,0))
  1. Q:$D(^ADEUTL("ADEPLBL",$J,ADEDFN))
  1. S ^ADEUTL("ADEPLBL",$J,ADEDFN)=""
  1. S (ADENAM,ADEAD1,ADEAD2)=""
  1. S DA=ADEDFN,DIC=2
  1. S DR=.01 K ADELKPRN D ^ADEDCLK S:$D(ADELKPRN) ADENAM=$P(ADELKPRN,",",2)_" "_$P(ADELKPRN,",") ;IHS/HMW **2**
  1. S DR=.111 K ADELKPRN D ^ADEDCLK S:$D(ADELKPRN) ADEAD1=ADELKPRN
  1. S DR=.114 K ADELKPRN D ^ADEDCLK S:$D(ADELKPRN) ADEAD2=ADELKPRN
  1. S DR=.115 K ADELKDAT D ^ADEDCLK I $D(ADELKDAT),ADELKDAT]"" S ADEAD2=ADEAD2_", "_$P(^DIC(5,ADELKDAT,0),U,2) ;IHS/HMW **2**
  1. S DR=.116 K ADELKPRN D ^ADEDCLK S:$D(ADELKPRN) ADEAD2=ADEAD2_" "_ADELKPRN
  1. W ADENAM,!,ADEAD1,!,ADEAD2,!
  1. F ADEJ=4:1:ADESIZ W ! ;W "LINE ",ADEJ,":",!
  1. Q
  1. SCRN ;EP
  1. ;SCREEN FOR USER SEARCH TEMPLATES ON FILES WITH POINTER TO PATIENT FILE
  1. I $P(^DIBT(Y,0),U,4)]"" S ADEFN=$P(^DIBT(Y,0),U,4)
  1. E Q
  1. I $P(^DIBT(Y,0),U,5)=DUZ
  1. E Q
  1. I $D(^DIBT(Y,1))
  1. E Q
  1. I ADEFN=9000001!($D(^DD(9000001,0,"PT",ADEFN)))
  1. Q
  1. TLAB K DUOUT,DTOUT
  1. W !!,"Do you want to print a test label"
  1. TL1 S %=1 D YN^DICN
  1. G:%=1 TL2
  1. I %Y["?" W !?5,"Answer Yes or No" G TLAB
  1. I %Y[U S DUOUT=1
  1. Q
  1. TL2 W !,"Line up labels on printer and select Device",!
  1. K POP S %ZIS="P" D ^%ZIS Q:POP Q:$D(DUOUT)!($D(DTOUT))
  1. U IO
  1. W "LINE 1: NAME",!,"LINE 2: STREET ADDRESS",!,"LINE 3: CITY, STATE ZIP",!
  1. F ADEJ=4:1:ADESIZ W "LINE ",ADEJ,":",!
  1. D ^%ZISC ;equivalent of a CR here
  1. TL3 W !!,"Print another test label"
  1. S %=1 D YN^DICN
  1. I %=1 D SIZE Q:$D(DUOUT)!($D(DTOUT)) G TL2
  1. I %Y["?" W !?5,"Answer Yes or NO" G TL3
  1. I %Y[U S DUOUT=1 Q
  1. Q