| 1 | ENPLV2 ;(WIRMFO)/SAB-PROJECT VALIDATION, VALIDATE ONE ENTRY ;1/27/98
 | 
|---|
| 2 |  ;;7.0;ENGINEERING;**23,28,49**;Aug 17, 1993
 | 
|---|
| 3 | IN ; entry point to validate file 6925 entry
 | 
|---|
| 4 |  ; input variables
 | 
|---|
| 5 |  ;   ENDA - ien
 | 
|---|
| 6 |  ;   ENTY - type of validation
 | 
|---|
| 7 |  ;          F - Five Year Facility Plan
 | 
|---|
| 8 |  ;          A - Application
 | 
|---|
| 9 |  ;          R - Progress Report
 | 
|---|
| 10 |  ;   ENFY   - current year of FYFP (only applies if ENTY="F")
 | 
|---|
| 11 |  ;   ENXMIT - true if transmission checks should be done
 | 
|---|
| 12 |  ; output variables
 | 
|---|
| 13 |  ;   ENV  - result
 | 
|---|
| 14 |  ;          1 - invalid
 | 
|---|
| 15 |  ;          2 - valid with warnings
 | 
|---|
| 16 |  ;          3 - valid
 | 
|---|
| 17 |  ;   ^TMP($J,"V",ENDA,1,ENL(ENS),0) = invalid detail text (if any)
 | 
|---|
| 18 |  ;   ^TMP($J,"V",ENDA,2,ENL(ENS),0) = warning detail text (if any)
 | 
|---|
| 19 |  ;
 | 
|---|
| 20 |  N ENBCI,ENFT,ENI,ENL,ENMCI,ENMSG,ENPCI,ENPN,ENPR,ENS,ENSTATI,ENX
 | 
|---|
| 21 |  N ENY,ENY0,ENY1,ENY19,ENY52
 | 
|---|
| 22 |  ;
 | 
|---|
| 23 |  K ^TMP($J,"V",ENDA)
 | 
|---|
| 24 |  S (ENL(1),ENL(2))=0
 | 
|---|
| 25 |  S ENV=3 ; assume valid
 | 
|---|
| 26 |  ;
 | 
|---|
| 27 |  S ENY0=$G(^ENG("PROJ",ENDA,0)),ENY1=$G(^ENG("PROJ",ENDA,1))
 | 
|---|
| 28 |  S ENY19=$G(^ENG("PROJ",ENDA,19)),ENY52=$G(^ENG("PROJ",ENDA,52))
 | 
|---|
| 29 |  S ENPN=$P(ENY0,U) ; project number
 | 
|---|
| 30 |  S ENMCI=$P(ENY0,U,4) ; medical center
 | 
|---|
| 31 |  S ENPR=$P(ENY0,U,6) ; program
 | 
|---|
| 32 |  S ENSTATI=$P(ENY1,U,3) ; status
 | 
|---|
| 33 |  S ENPCI=$P(ENY52,U) ; project category
 | 
|---|
| 34 |  S ENBCI=$P(ENY52,U,2) ; budget category
 | 
|---|
| 35 |  S ENFT=$P(ENY52,U,6) ; facility type
 | 
|---|
| 36 |  ;
 | 
|---|
| 37 |  ; check required fields
 | 
|---|
| 38 |  I $P(ENY0,U)="" S ENS=1,ENMSG="PROJECT NUMBER is required." D MSG
 | 
|---|
| 39 |  I $P(ENY0,U,3)="" S ENS=1,ENMSG="PROJECT TITLE is required." D MSG
 | 
|---|
| 40 |  I $P(ENY0,U,4)="" S ENS=1,ENMSG="MEDICAL CENTER is required." D MSG
 | 
|---|
| 41 |  I $P(ENY1,U,3)="" S ENS=1,ENMSG="STATUS is required." D MSG
 | 
|---|
| 42 |  I $P(ENY0,U,6)="" S ENS=1,ENMSG="PROGRAM is required." D MSG
 | 
|---|
| 43 |  I $P(ENY52,U,6)="" S ENS=1,ENMSG="FACILITY TYPE is required." D MSG
 | 
|---|
| 44 |  I $P(ENY52,U,1)="" S ENS=1,ENMSG="PROJECT CATEGORY is required." D MSG
 | 
|---|
| 45 |  I $P(ENY52,U,2)="" S ENS=1,ENMSG="BUDGET CATEGORY is required." D MSG
 | 
|---|
| 46 |  ;
 | 
|---|
| 47 |  I ENPN]"" D  ; project number checks
 | 
|---|
| 48 |  . I ENMCI]"" D
 | 
|---|
| 49 |  . . S ENX=$E($$GET1^DIQ(4,ENMCI_",",99),1,3)
 | 
|---|
| 50 |  . . I $P(ENPN,"-")'=ENX S ENS=2,ENMSG="MEDICAL CENTER's STATION NUMBER ("_ENX_") inconsistent with PROJECT NUMBER ("_ENPN_")." D MSG
 | 
|---|
| 51 |  . I ENPR]"" D
 | 
|---|
| 52 |  . . I "^NR^SL^LE^"[(U_ENPR_U),$L(ENPN,"-")'=3 S ENS=1,ENMSG="PROGRAM ("_ENPR_") inconsistent with format of PROJECT NUMBER ("_ENPN_")." D MSG
 | 
|---|
| 53 |  . . I "^MA^MI^MM^"[(U_ENPR_U),$L(ENPN,"-")'=2 S ENS=1,ENMSG="PROGRAM ("_ENPR_") inconsistent with format of PROJECT NUMBER ("_ENPN_")." D MSG
 | 
|---|
| 54 |  . I ENFT]"" D
 | 
|---|
| 55 |  . . I "89"[$E(ENPN),ENFT'="NCS" S ENS=1,ENMSG="FACILITY TYPE is not NCS but PROJECT NUMBER begins with "_$E(ENPN)_"." D MSG
 | 
|---|
| 56 |  . . I "89"'[$E(ENPN),ENFT="NCS" S ENS=1,ENMSG="FACILITY TYPE is NCS but PROJECT NUMBER begins with "_$E(ENPN)_"." D MSG
 | 
|---|
| 57 |  ;
 | 
|---|
| 58 |  I ENFT]"" D  ; facility type checks
 | 
|---|
| 59 |  . I ENPR]"" D
 | 
|---|
| 60 |  . . I ENFT="NCS","^MA^MI^SL^LE^"'[(U_ENPR_U) S ENS=1,ENMSG="PROGRAM ("_ENPR_") inconsistent with FACILITY TYPE ("_ENFT_")." D MSG
 | 
|---|
| 61 |  . . I ENFT="VHA","^MA^MI^MM^NR^SL^LE^"'[(U_ENPR_U) S ENS=1,ENMSG="PROGRAM ("_ENPR_") inconsistent with FACILITY TYPE ("_ENFT_")." D MSG
 | 
|---|
| 62 |  . . I ENFT="VBA","^MI^MM^NR^LE^"'[(U_ENPR_U) S ENS=1,ENMSG="PROGRAM ("_ENPR_") inconsistent with FACILITY TYPE ("_ENFT_")." D MSG
 | 
|---|
| 63 |  . I ENPCI]"" D
 | 
|---|
| 64 |  . . S ENX=$G(^OFM(7336.8,ENPCI,0)) I $P(ENX,U,6)'[ENFT S ENS=1,ENMSG="PROJECT CATEGORY ("_$P(ENX,U)_") inconsistent with FACILITY TYPE ("_ENFT_")." D MSG
 | 
|---|
| 65 |  . I ENBCI]"" D
 | 
|---|
| 66 |  . . S ENX=$G(^OFM(7336.9,ENBCI,0)) I $P(ENX,U,3)'[ENFT S ENS=1,ENMSG="BUDGET CATEGORY ("_$P(ENX,U)_") inconsistent with FACILITY TYPE ("_ENFT_")." D MSG
 | 
|---|
| 67 |  ;
 | 
|---|
| 68 |  D ^ENPLV3
 | 
|---|
| 69 |  D:ENTY="F" ^ENPLV4
 | 
|---|
| 70 |  D:ENTY="A" ^ENPLV5
 | 
|---|
| 71 |  D:ENTY="R" ^ENPLV7
 | 
|---|
| 72 |  ;
 | 
|---|
| 73 | EX ;
 | 
|---|
| 74 |  S:ENL(1) ^TMP($J,"V",ENDA,1,0)=U_U_ENL(1)_U_ENL(1)_U_DT
 | 
|---|
| 75 |  S:ENL(2) ^TMP($J,"V",ENDA,2,0)=U_U_ENL(2)_U_ENL(2)_U_DT
 | 
|---|
| 76 |  Q
 | 
|---|
| 77 | MSG ; save message
 | 
|---|
| 78 |  ; ENL(ENS) - last line used in array
 | 
|---|
| 79 |  ; ENMSG    - messsage
 | 
|---|
| 80 |  ; ENS      - severity (1,2) 1 invalid, 2 warning
 | 
|---|
| 81 |  I ENV>ENS S ENV=ENS
 | 
|---|
| 82 |  S ENL(ENS)=ENL(ENS)+1,^TMP($J,"V",ENDA,ENS,ENL(ENS),0)=ENMSG
 | 
|---|
| 83 |  Q
 | 
|---|
| 84 |  ;ENPLV2
 | 
|---|