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

VPSRLBLS.m

Go to the documentation of this file.
  1. VPSRLBLS ;DALOIFO/GT,SLOIFO/BT - PATIENT LABELS RPC;07/15/14 15:30
  1. ;;1.0;VA POINT OF SERVICE (KIOSKS);**4**;Jul 15,2014;Build 27
  1. ;;Per VHA Directive 2004-038, this routine should not be modified.
  1. ;
  1. ; External Reference DBIA#
  1. ; ------------------------
  1. ; #10035 - ^DPT( references (Supported)
  1. ; #2119 - OPEN^%ZISUTL, USE^%ZISUTL, CLOSE^%ZISUTL (Supported)
  1. ; #5904 - START^DGPLBL call (Private)
  1. ;
  1. QUIT
  1. ;
  1. PRINT(VPSRSLT,VPSTYP,VPSNUM,VPSLOC,VPSLBCNT,VPSLPL,VPSIO) ;VPS PRINT PATIENT LABEL
  1. ;This RPC provide a patient demographics label that includes Patient Name,SSN,
  1. ;DOB and an optional inpatient location (ward and bed).
  1. ;INPUT
  1. ; VPSTYP Patients ID Type - SSN or DFN OR ICN OR VIC/CAC (REQUIRED)
  1. ; VPSNUM Parameter Value - patient SSN OR DFN OR ICN OR VIC/CAC (REQUIRED)
  1. ; VPSLOC include location flag (0 or 1)
  1. ; VPSLBCNT label count from 1 to 250
  1. ; VPSLPL lines per label can contain (6-25)
  1. ; VPSIO output device name
  1. ;OUTPUT
  1. ; VPSRSLT 0 (Successful)
  1. ; -1^Failure Message
  1. ;
  1. ; -- Get DFN based on Patienr ID Type and Value pair
  1. S VPSRSLT=$$GETDFN^VPSPRINT($G(VPSTYP),$G(VPSNUM))
  1. QUIT:+VPSRSLT=-1 VPSRSLT
  1. N VPSDFN S VPSDFN=VPSRSLT
  1. ;
  1. ; -- Check Input parameters
  1. S VPSRSLT=$$VALIDATE(VPSDFN,$G(VPSLOC),$G(VPSLBCNT),$G(VPSLPL),$G(VPSIO))
  1. QUIT:+VPSRSLT=-1
  1. ;
  1. ; -- Setup handle for output device and open the device.
  1. D OPEN^%ZISUTL("PATIENTLABEL",VPSIO)
  1. I POP S VPSRSLT=-1_U_"DEVICE IN USE - TRY AGAIN LATER" QUIT
  1. ;
  1. ; -- Print Wristband
  1. D USE^%ZISUTL("PATIENTLABEL")
  1. N $ETRAP,$ESTACK S $ETRAP="D ETRAP^VPSRLBLS QUIT"
  1. N DGDFNS S DGDFNS(VPSDFN)=""
  1. N DGLOC S DGLOC=VPSLOC
  1. N DGLBCNT S DGLBCNT=VPSLBCNT
  1. N DGLPL S DGLPL=VPSLPL
  1. N VPSSSN S VPSSSN=$P(^DPT(VPSDFN,0),U,9)
  1. D START^DGPLBL ; All the DG vars are required
  1. ;
  1. ; -- close output devcie
  1. D CLOSE^%ZISUTL("PATIENTLABEL")
  1. ;
  1. S VPSRSLT=0
  1. QUIT VPSRSLT
  1. ;
  1. VALIDATE(VPSDFN,DGLOC,DGLBCNT,DGLPL,VPSIO) ; Check Input Parameters
  1. ;INPUT
  1. ; VPSDFN Patient DFN (Must be VALID)
  1. ; DGLOC include location flag (0 or 1)
  1. ; DGLBCNT label count from 1 to 250
  1. ; DGLPL lines per label can contain (6-25)
  1. ; VPSIO output device ien
  1. ;RETURN
  1. ; successful : ""
  1. ; failed : -1^exception message
  1. ;
  1. ; -- check Include Ward Location input parameter
  1. QUIT:$G(DGLOC)="" "-1"_U_"INPUT PARAMETER 'INCLUDE WARD LOCATION FLAG' NOT SENT"
  1. QUIT:(DGLOC<0)!(DGLOC>1) "-1"_U_"INVALID VALUE FOR 'INCLUDE WARD LOCATION FLAG'. VALID NUMBER SHOULD BE 0 OR 1"
  1. ;
  1. ; -- check label count
  1. QUIT:$G(DGLBCNT)="" "-1"_U_"INPUT PARAMETER 'LABEL COUNT' NOT SENT"
  1. QUIT:(DGLBCNT<1)!(DGLBCNT>250) "-1"_U_"INVALID VALUE FOR 'LABEL COUNT'. VALID NUMBER IS BETWEEN 1 to 250"
  1. ;
  1. ; -- check number of lines/label
  1. QUIT:$G(DGLPL)="" "-1"_U_"INPUT PARAMETER 'LINES/LABEL' NOT SENT"
  1. QUIT:(DGLPL<6)!(DGLPL>25) "-1"_U_"INVALID VALUE FOR 'LINES/LABEL'. VALID NUMBER IS BETWEEN 6 to 25"
  1. ;
  1. ; -- check device
  1. N MSG S MSG=$$DEVEXIST^VPSPRINT($G(VPSIO))
  1. QUIT:+MSG=-1 MSG
  1. ;
  1. QUIT ""
  1. ;
  1. ETRAP ; ERROR TRAP during printing patient label
  1. S VPSRSLT="-1^"_$$EC^%ZOSV
  1. D CLOSE^%ZISUTL("PATIENTLABEL")
  1. QUIT