DGPLBL ;ALB/RPM - PATIENT INFORMATION LABELS ; 05/07/04 ;;5.3;Registration;**571**;Aug 13, 1993 ; ;This routine provides a generic patient demographics label ;print that includes Patient Name, SSN, DOB and an optional ;inpatient location (ward and bed). Support for various printer ;types (i.e. bar code, laser, etc.) is provided using the CONTROL ;CODES (#3.2055) subfile of the TERMINAL TYPE (#3.2) file. The ;control code mnemonics are documented in DBIA# 3435. ; Q ;no direct entry ; EN ;main entry point used by DG PRINT PATIENT LABEL option ; N DGDFNS ;selected patients array N DGIOCC ;control codes array N DGLBCNT ;label count N DGLPL ;lines per label N DGLOC ;include location flag (0 or 1) N DGQVAR ;queuing variables ; ;select list of patients to print Q:'$$SELPATS("DGDFNS") ; S DGLOC=$$ASK("Include Inpatient Location on Label","Y","YES","Answer YES to include the inpatient ward and bed location on the label") Q:(DGLOC<0) ; S DGLBCNT=$$ASK("Number of Labels per patient",1,"NO^1:250:0","Enter the number of labels to print per patient, from 1 to 250") Q:(DGLBCNT<0) ; S DGLPL=$$ASK("Number of Lines per Label",6,"NO^6:25:0","Enter the total number of lines that the label stock can contain (6-25)") Q:(DGLPL<0) ; ; ;init queued variables and select output device S DGQVAR("DGDFNS(")="" S DGQVAR("DGLBCNT")="" S DGQVAR("DGLPL")="" S DGQVAR("DGLOC")="" D EN^XUTMDEVQ("START^DGPLBL","DG PRINT PATIENT LABEL",.DGQVAR) Q ; START ;retrieve label field data and print labels ; ; Input: ; DGDFNS - array subscripted by pointer to PATIENT (#2) file ; DGLBCNT - number of labels to print per patient ; DGLPL - number of lines per label ; DGLOC - print ward location flag ; ; Output: ; none ; N DGDFN ;pointer to PATIENT file N DGI,DGJ ;generic counters N DGIOCC ;printer Control Codes N DGLN ;line array index N DGLNCNT ;line count N DGLINE ;line text ; ;initialize printer S DGIOCC=$$LOADCC(.DGIOCC) I DGIOCC,$G(DGIOCC("FI"))]"" X DGIOCC("FI") ;format initialize ; ;for each patient S DGDFN=0 F S DGDFN=$O(DGDFNS(DGDFN)) Q:'DGDFN D . ; . ;build text line array . S DGLNCNT=$$BLDLNAR(DGDFN,DGLOC,.DGLINE) . Q:'DGLNCNT . ; . ;print patient's labels . F DGI=1:1:DGLBCNT D . . I DGIOCC,$G(DGIOCC("SL"))]"" X DGIOCC("SL") ;start of label . . ;for each line . . F DGLN=1:1:DGLNCNT D . . . I DGIOCC,$G(DGIOCC("ST"))]"" X DGIOCC("ST") ;start text . . . I DGIOCC,$G(DGIOCC("STF"))]"" X DGIOCC("STF") ;start text field . . . W $G(DGLINE(DGLN)) . . . I DGIOCC,$G(DGIOCC("ETF"))]"" X DGIOCC("ETF") ;end text field . . . I DGIOCC,$G(DGIOCC("ET"))]"" X DGIOCC("ET") ;end text . . . I 'DGIOCC W ! . . I DGIOCC,$G(DGIOCC("EL"))]"" X DGIOCC("EL") ;end of label . . I 'DGIOCC,DGLNCNT