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

XUSER2.m

Go to the documentation of this file.
  1. XUSER2 ;ISF/RWF - New Person File Utilities ;02/01/2012
  1. ;;8.0;KERNEL;**267,251,344,534,580,765**;Jul 10, 1995;Build 3
  1. ;Per VHA Directive 2004-038, this routine should not be modified.
  1. Q
  1. VALDEA(X,F) ;Check for a valid DEA#
  1. ;Returns 0 for NOT Valid, 1 for Valid
  1. ;F = 1 for Facility DEA check.
  1. N VAPR,VADUP,VADUPNAM,VASTER
  1. S $P(VASTER,"*",80)="*"
  1. I $D(X) K:$L(X)>9!($L(X)<9)!'(X?2U7N) X
  1. S F=$G(F)
  1. I $D(X),'F,$D(DA),$D(^VA(200,"PS1",X)) D
  1. . S VADUP=0,VAPR=0 F S VAPR=$O(^VA(200,"PS1",X,VAPR)) Q:'VAPR I VAPR'=DA S VADUP=VAPR
  1. . I VADUP D K X
  1. .. D EN^DDIOL($C(7)_$E(VASTER,1,70))
  1. .. D EN^DDIOL($C(7)_" DEA number "_X_" has already been assigned to another provider:")
  1. .. S VADUPNAM=$P($G(^VA(200,+VADUP,0)),U)
  1. .. D EN^DDIOL($C(7)_" NAME: "_$G(VADUPNAM))
  1. .. D EN^DDIOL($C(7)_" IEN: "_VADUP)
  1. .. D EN^DDIOL($C(7)_$E(VASTER,1,70))
  1. .. D EN^DDIOL($C(7)_"Please check the number entered.")
  1. I $D(X),'F,$D(DA),$E(X,2)'=$E($P(^VA(200,DA,0),"^")) D EN^DDIOL($C(7)_"WARNING: DEA# FORMAT MISMATCH -- CHECK SECOND LETTER")
  1. I $D(X),'$$DEANUM(X) D EN^DDIOL($C(7)_"CAN'T FILE: DEA# FORMAT MISMATCH -- NUMERIC ALGORITHM FAILED") K X
  1. Q $D(X)
  1. ;
  1. DEANUM(X) ;Check DEA # part
  1. N VA1,VA2
  1. S VA1=$E(X,3)+$E(X,5)+$E(X,7)+(2*($E(X,4)+$E(X,6)+$E(X,8)))
  1. S VA1=VA1#10,VA2=$E(X,9)
  1. Q VA1=VA2
  1. ;
  1. VANUM ;Check that the VA# is not Active for anybody else. Called from ^DD(200,53.3,0)
  1. ;Needs DA, DT and X
  1. Q:'$D(X)!'$D(DA)
  1. N %
  1. I $D(^VA(200,"PS2",X)) D
  1. . S %=0
  1. . F S %=$O(^VA(200,"PS2",X,%)) Q:'% I %'=DA,$S('$P($G(^VA(200,%,"PS")),"^",4):1,1:$P(^("PS"),"^",4)'<DT) K X Q
  1. . Q
  1. I '$D(X) D EN^DDIOL($C(7)_"That VA# is in active use. ","","!,?5")
  1. Q
  1. ;
  1. GETUPN(RET) ;Get SUBJECT ALTERNATIVE NAME for PIV card check. -p580
  1. S RET=$P($G(^VA(200,DUZ,501)),U,2)
  1. Q
  1. ;
  1. SETUPN(RET,V) ;Set the SUBJECT ALTERNATIVE NAME from the PIV card. -p580
  1. N FDA,ERR
  1. S RET=0,FDA(200,DUZ_",",501.2)=V
  1. D FILE^DIE("KE","FDA","ERR") I '$D(ERR) S RET=1
  1. Q
  1. ;
  1. REQ(XUV,XUFLAG) ;Called from forms:
  1. ; XUEXISTING USER, XUNEW USER, XUREACT USER, XU-CLINICAL TRAINEE
  1. ;from the:
  1. ; - Form-level pre-action
  1. ; - Post action on change for "Is this person a Clinical Trainee?"
  1. ;In:
  1. ; XUV = 1 if user is a clinical trainee; 0 otherwise
  1. ; If XUV is not passed, its value is obtained from the
  1. ; CLINICAL CORE TRAINEE(#12.6).
  1. ; XUFLAG = 1 if called from the XU-CLINICAL TRAINEE form;
  1. ; otherwise, called from the other forms
  1. ;
  1. N BLOCK,PAGE,FIELD,F126
  1. ; BLOCK = Block
  1. ; PAGE = Page number
  1. ; FIELD = Field number
  1. I $G(XUFLAG) S BLOCK="XU-CLINICAL TRAINEE 1",PAGE=1
  1. E D
  1. . S BLOCK="XUEXISTING USER TRAINEE"
  1. . S PAGE=5
  1. ;
  1. I $G(XUV)="" D ;Value not Passed get current value
  1. . N ZERR
  1. . S XUV=$$GET^DDSVAL(200,DA,"CLINICAL CORE TRAINEE",.ZERR,"I")
  1. . S XUV=$S(XUV="N":0,XUV="":0,1:1)
  1. S F126=XUV
  1. ;
  1. ;CURRENT DEGREE LEVEL 12.1
  1. ;PROGRAM OF STUDY 12.2
  1. ;LAST TRAINING MONTH & YEAR 12.3
  1. ;VHA TRAINING FACILITY 12.4
  1. ;DATE HL7 TRAINEE RECORD BUILT 12.5
  1. ;CLINICAL CORE TRAINEE 12.6
  1. ;DATE NO LONGER TRAINEE 12.7
  1. ;START OF TRAINING 12.8
  1. ;
  1. I F126 D Q ;Logic for when field 12.6 equals YES or Null
  1. . N FIELD
  1. . ;Make fields required
  1. . F FIELD="12.2F","12.4F" D REQ^DDSUTL(FIELD,BLOCK,PAGE,1)
  1. . ;Delete value in field 12.7 & make it uneditable
  1. . S FIELD=12.7 D PUT^DDSVAL(200,DA,FIELD,"@","","I")
  1. . S FIELD="12.7F" D UNED^DDSUTL(FIELD,BLOCK,PAGE,1)
  1. . D REQ^DDSUTL(FIELD,BLOCK,PAGE,0)
  1. . ;Make the following fields editable
  1. . F FIELD="12.1F","12.2F","12.3F","12.4F","12.8F" D UNED^DDSUTL(FIELD,BLOCK,PAGE,0)
  1. . Q
  1. I 'F126 D Q ;Logic for when field 12.6 equals NO
  1. . N FIELD,ZERR,F122,F127
  1. . S F122=$$GET^DDSVAL(200,DA,12.2,.ZERR,"I")
  1. . S F127=$$GET^DDSVAL(200,DA,12.7,.ZERR,"I")
  1. . I F122="" D Q ;Not a trainee, probably a mistake
  1. .. ;Make fields not required
  1. .. F FIELD="12.2F","12.4F" D REQ^DDSUTL(FIELD,BLOCK,PAGE,0)
  1. .. ;Make field uneditable
  1. .. F FIELD="12.1F","12.2F","12.3F","12.4F","12.7F","12.8F" D UNED^DDSUTL(FIELD,BLOCK,PAGE,1)
  1. .. Q
  1. . I F122]"",F127]"" Q
  1. . ;Make fields not required
  1. . F FIELD="12.2F","12.4F" D REQ^DDSUTL(FIELD,BLOCK,PAGE,0)
  1. . ;Make the following field required & editable
  1. . S FIELD="12.7F" D REQ^DDSUTL(FIELD,BLOCK,PAGE,1)
  1. . S FIELD="12.7F" D UNED^DDSUTL(FIELD,BLOCK,PAGE,0)
  1. . ;Don't allow editing of the following fields
  1. . F FIELD="12.1F","12.2F","12.3F","12.4F","12.8F" D UNED^DDSUTL(FIELD,BLOCK,PAGE,1)
  1. . Q
  1. Q