1 | IVMUCHK2 ;ALB/MLI - Filter Routine to Validate IVM Center Tranmissions, Cont ; September 3, 1994
|
---|
2 | ;;Version 2.0 ; INCOME VERIFICATION MATCH ;**1**; 21-OCT-94
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | ; This routine is a continuation of IVMUCHK. It performs checks on incoming means test
|
---|
6 | ; transmissions to ensure they are accurate prior to their upload into DHCP.
|
---|
7 | ;
|
---|
8 | ;
|
---|
9 | ZIC(STRING,DEPIEN) ; check validity of ZIC segment
|
---|
10 | ;
|
---|
11 | ; Input: STRING as ZIC segment
|
---|
12 | ; DEPIEN as the IEN of the dependent in the array, if applicable
|
---|
13 | ;
|
---|
14 | ; Output: ERROR message or null
|
---|
15 | ;
|
---|
16 | N ERROR,FLAG
|
---|
17 | S ERROR="",X=$P(STRING,HLFS,2),FLAG=0
|
---|
18 | I $E(X,1,4)<1992!($E(X,1,2)>20)!($E(X,5,8)'="0000") S ERROR="Invalid Income Year in ZIC" G ZICQ
|
---|
19 | F I=3:1:20 I $$NUM($P(STRING,HLFS,I),7,2) S ERROR=$P($T(ZICFLD+I),";;",2)_" field content/length error" G:ERROR ZICQ
|
---|
20 | I ERROR]"" G ZICQ
|
---|
21 | I $G(DEPIEN) D I ERROR]"" G ZICQ
|
---|
22 | . F I=13,14 I $P(STRING,HLFS,I)]"" S ERROR="Dependents can't have medical or funeral expenses" Q
|
---|
23 | . I DEPIEN=SPOUSE,($P(STRING,HLFS,15)]"") S ERROR="No educational expenses for spouse" Q
|
---|
24 | . I DEPIEN'=SPOUSE D Q:ERROR]""
|
---|
25 | . . I $P(STRING,HLFS,15)&('$P(ARRAY(DEPIEN,"ZIR"),U,9)) S ERROR="Dependent Educational Exp. error-income not avail. to vet" Q
|
---|
26 | . . S X=$E($P(STRING,HLFS,2),1,4) D ^%DT S X=Y
|
---|
27 | . . I $P(STRING,HLFS,15)]"" S X=$P(^DG(43,1,"MT",X,0),U,17) I X'<$P(STRING,HLFS,9) S ERROR="Income does not exceed child exclusion amount-educational expense not allowed" Q
|
---|
28 | . . F I=16:1:20 I $P(STRING,HLFS,I)]"" S ERROR="No net worth figures allowed for dependent children"
|
---|
29 | I $P(STRING,HLFS,20)>$P(STRING,HLFS,19) S ERROR="Debts can't be greater than Other Property or Assets" G ZICQ
|
---|
30 | I 'DEP,$P(STRING,HLFS,14) S ERROR="Can't have funeral/burial expenses w/out dependents" G ZICQ
|
---|
31 | I '$G(DEPIEN) D I ERROR]"" G ZICQ
|
---|
32 | . I $P(ARRAY("ZMT"),HLFS,3)="C" Q
|
---|
33 | . S FLAG=0 F I=16:1:20 I $P(STRING,HLFS,I)]"" S FLAG=1 Q
|
---|
34 | . I 'FLAG,SPOUSE F I=16:1:20 I $P(ARRAY(SPOUSE,"ZIC"),HLFS,I)]"" S FLAG=1 Q
|
---|
35 | . I 'FLAG S ERROR="No property information exists for this test"
|
---|
36 | ZICQ Q ERROR
|
---|
37 | ;
|
---|
38 | ;
|
---|
39 | NUM(NUMBER,DIGIT,DECIMAL) ; function to determine if valid numeric value
|
---|
40 | ;
|
---|
41 | ; Input: NUMBER as data element to evaluate
|
---|
42 | ; DIGIT as number of digits allowed
|
---|
43 | ; DECIMAL as number of decimal places
|
---|
44 | ;
|
---|
45 | N ERROR
|
---|
46 | S ERROR=0
|
---|
47 | I NUMBER'?.N.1".".2N S ERROR=1 G NUMQ
|
---|
48 | I $L($P(NUMBER,".",1))>DIGIT S ERROR=1 G NUMQ
|
---|
49 | I NUMBER<0 S ERROR=1
|
---|
50 | NUMQ Q ERROR
|
---|
51 | ;
|
---|
52 | ;
|
---|
53 | ZICFLD ; ZIC field names
|
---|
54 | ;;
|
---|
55 | ;;INCOME YEAR
|
---|
56 | ;;SOCIAL SECURITY
|
---|
57 | ;;US CIVIL SERVICE
|
---|
58 | ;;US RAILROAD RETIREMENT
|
---|
59 | ;;MILITARY RETIREMENT
|
---|
60 | ;;UNEMPLOYMENT COMPENSATION
|
---|
61 | ;;OTHER RETIREMENT
|
---|
62 | ;;EMPLOYMENT INCOME
|
---|
63 | ;;INTEREST, DIVIDEND, ANNUITY
|
---|
64 | ;;WORKERS COMP/BLACK LUNG
|
---|
65 | ;;OTHER INCOME
|
---|
66 | ;;MEDICAL EXPENSES
|
---|
67 | ;;FUNERAL AND BURIAL EXPENSES
|
---|
68 | ;;EDUCATIONAL EXPENSES
|
---|
69 | ;;CASH AMOUNT IN BANK ACCOUNTS
|
---|
70 | ;;STOCKS AND BONDS
|
---|
71 | ;;REAL PROPERTY
|
---|
72 | ;;OTHER PROPERTY OR ASSETS
|
---|
73 | ;;DEBTS
|
---|