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

PSBOBZ.m

Go to the documentation of this file.
  1. PSBOBZ ;BIRMINGHAM/TTH-BAR CODE LABELS (MAIN) ;26-Feb-2013 11:55;PLS
  1. ;;3.0;BAR CODE MED ADMIN;**2,1015**;Mar 2004;Build 62
  1. ;;Per VHA Directive 2004-038 (or future revisions regarding same), this routine should not be modified.
  1. ;
  1. ; Reference/IA
  1. ; ^%ZIS(2/3435
  1. ; File 50/221
  1. ;
  1. ; Modified - IHS/MSC/PLS - 02/07/2013 - Line EN+24
  1. EN ;
  1. N PSBI,PSBIENS,PSBQTY,PSBDOSE,PSBDRUG,PSBNAME,PSBNODE3,PSBWARD,PSBLOT,PSBBAR,PSBTLE,SL
  1. N PSBEXP,PSBFD,PSBMFG,PSBCB,PSBFB,PSBFCB,PSBCNT,PSBANS,PSBORD,PSBPRE,PSBX,PSBY,PSBSYM,TEXT
  1. ;
  1. N PSBXX,PSBYY,PSBCODE
  1. S PSBXX=0 F S PSBXX=$O(^%ZIS(2,IOST(0),55,PSBXX)) Q:'PSBXX S PSBYY=$G(^(PSBXX,0)) I PSBYY]"" S PSBX=$P(PSBYY,"^"),PSBY=^(1),PSBCODE(PSBX)=PSBY
  1. ;
  1. ;The PSBRPT variable and PSBRPT(.3) array are set in the PSBO routine. It is the internal
  1. ;entry number from the BCMA REPORT REQUEST file (#53.69). This entry is created
  1. ;when the user submits the completed ScreenMan form from the Label Print option.
  1. ;
  1. ;
  1. S PSBIENS=PSBRPT_","
  1. S PSBBAR=$P($P($G(PSBRPT(.3)),U,1),"~",2)
  1. S PSBPRE=$$GET^XPAR("DIV","PSB DEFAULT BARCODE PREFIX")
  1. S:PSBPRE]"" PSBBAR=PSBPRE_$S(PSBPRE?1.N:"-",1:"")_PSBBAR
  1. S PSBDRUG=$P($P($G(PSBRPT(.3)),U,1),"~",1)
  1. S PSBQTY=+$P($G(PSBRPT(.3)),U,5)
  1. S:PSBQTY PSBDRUG=PSBDRUG_" (Qty: "_PSBQTY_")"
  1. I PSBQTY=0 S PSBDRUG=PSBDRUG_" (Qty: )"
  1. S PSBDOSE=$P($G(PSBRPT(.3)),U,9)
  1. I PSBDOSE]"" S PSBDOSE="Dose:"_PSBDOSE
  1. I PSBDOSE="" S PSBDOSE="Dose:"
  1. S PSBNAME=$$GET1^DIQ(53.69,PSBIENS,.12)
  1. ;IHS/MSC/PLS - 02/07/13
  1. ;I PSBNAME]"" S PSBNAME=PSBNAME_" ("_$E($$GET1^DIQ(53.69,PSBIENS,.121),6,9)_")"
  1. I PSBNAME]"" S PSBNAME=PSBNAME_" ("_$S(DUZ("AG")="I":$$HRN^AUPNPAT($P($G(^PSB(53.69,+PSBIENS,.1)),U,2),$P(^(0),U,4)),1:$E($$GET1^DIQ(53.69,PSBIENS,.121),6,9))_")"
  1. I PSBNAME="" S PSBNAME="Patient:"
  1. S PSBWARD=$$GET1^DIQ(53.69,PSBIENS,.122)
  1. I PSBWARD]"" S PSBWARD="Ward: "_PSBWARD
  1. I PSBWARD="" S PSBWARD="Ward: "
  1. S PSBLOT=$P($G(PSBRPT(.3)),U,2)
  1. I PSBLOT]"" S PSBLOT="Lot: "_PSBLOT
  1. I PSBLOT="" S PSBLOT="Lot: "
  1. S PSBFD=$P($G(PSBRPT(.3)),U,3)
  1. S PSBEXP=$$FMTE^XLFDT(PSBFD,5)
  1. I PSBEXP]"" S PSBEXP="Exp: "_PSBEXP
  1. I PSBEXP="" S PSBEXP="Exp: "
  1. S PSBMFG=$P($G(PSBRPT(.3)),U,4)
  1. I PSBMFG]"" S PSBMFG="Mfg: "_PSBMFG
  1. I PSBMFG="" S PSBMFG="Mfg: "
  1. S PSBFB=$P($G(PSBRPT(.3)),U,6) I PSBFB="" S PSBFB="_____"
  1. S PSBCB=$P($G(PSBRPT(.3)),U,7) I PSBCB="" S PSBCB="_____"
  1. S PSBFCB=PSBFB_"/"_PSBCB
  1. F PSBCNT=1:1:+$P(PSBRPT(.3),U,8) D LABEL
  1. Q
  1. ;
  1. LABEL ;Get Barcode Label Type
  1. ;Barcode Type
  1. S PSBSYM=$$GET^XPAR("DIV","PSB DEFAULT BARCODE FORMAT",,"E")
  1. ;
  1. INIT ;Initialize barcode printer
  1. I $D(PSBCODE("FI")) X PSBCODE("FI")
  1. I $D(PSBCODE("FI1")) X PSBCODE("FI1")
  1. I $D(PSBCODE("FI2")) X PSBCODE("FI2")
  1. ;
  1. ;Additional format settings
  1. I PSBSYM]"",$D(PSBCODE("SBF")) X PSBCODE("SBF")
  1. I PSBSYM="",$D(PSBCODE("EBF")) X PSBCODE("EBF")
  1. ;
  1. D START ;execute control codes to start label
  1. D PRINT ;execute control codes to print label
  1. ;
  1. ;Print Barcode Strip
  1. ;If barcode type is defined.
  1. I PSBSYM]"",$D(PSBCODE("SB")) S TEXT=PSBBAR X PSBCODE("SB")
  1. ;If barcode type is not define.
  1. I PSBSYM="",$D(PSBCODE("SB")) S TEXT="*NO BARCODE TYPE*" X PSBCODE("SB")
  1. ;
  1. END ; Close Label or End of Label
  1. I $G(PSBCODE("EL"))]"" X PSBCODE("EL")
  1. H 2
  1. Q
  1. ;
  1. START ;Start Label Print Process
  1. I $G(PSBCODE("SL"))]"" X PSBCODE("SL")
  1. Q
  1. ;
  1. PRINT ;Print barcode label
  1. ;
  1. I PSBDRUG]"" S PSBTLE="PSBDRUG",TEXT="Drug: "_PSBDRUG D PROCESS
  1. I PSBDOSE]"" S PSBTLE="PSBDOSE",TEXT=PSBDOSE D PROCESS
  1. I PSBNAME]"" S PSBTLE="PSBNAME",TEXT=PSBNAME D PROCESS
  1. I PSBWARD]"" S PSBTLE="PSBWARD",TEXT=PSBWARD D PROCESS
  1. I PSBLOT]"" S PSBTLE="PSBLOT",TEXT=PSBLOT D PROCESS
  1. I PSBEXP]"" S PSBTLE="PSBEXP",TEXT=PSBEXP D PROCESS
  1. I PSBMFG]"" S PSBTLE="PSBMFG",TEXT=PSBMFG D PROCESS
  1. I PSBFCB]"" S PSBTLE="PSBFCB",TEXT="Filled/Checked By: "_PSBFCB D PROCESS
  1. Q
  1. ;
  1. PROCESS ;Process control code and field data.
  1. I $D(PSBCODE("STF")) X PSBCODE("STF")
  1. I $D(PSBCODE("ST")) X PSBCODE("ST")
  1. Q
  1. ;
  1. INPTR ;Input transform for DRUG field (#.31) in file 53.69.
  1. N PSBIAD,PSBDEA,D,Y
  1. K:$L(X)>40!($L(X)<1) X I $D(X) D
  1. .S X=$TR(X,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
  1. .N DIC S DIC="^PSDRUG(",DIC(0)="EQNM",D="B^C^VAPN^VAC^NDC^XATC"
  1. .S DIC("S")="I (($P($G(^PSDRUG(+Y,2)),U,3)[""I"")!($P($G(^(2)),U,3)[""U"")),(('$G(^PSDRUG(+Y,""I"")))!(DT'>$G(^(""I""))))"
  1. .D:+X'>0 MIX^DIC1
  1. .D:+X>0 ^DIC
  1. .S:+Y>0 X=$$GET1^DIQ(50,+Y_",",.01)_"~"_+Y K:+Y<1 X
  1. Q