| [613] | 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 | 
|---|