| [613] | 1 | IVMCMF ;ALB/RMM - INCOME TEST EDIT CHECK DRIVER ; 04/28/2005
 | 
|---|
 | 2 |  ;;2.0;INCOME VERIFICATION MATCH;**71,82,107**;21-OCT-94
 | 
|---|
 | 3 |  ;
 | 
|---|
 | 4 |  ; This routine will perform edit checks to validate income tests which
 | 
|---|
 | 5 |  ; are transmitted to VistA from the IVM Center. Any errors will be 
 | 
|---|
 | 6 |  ; recorded and will be added to the record in the ANNUAL MEANS TEST 
 | 
|---|
 | 7 |  ; File #408.31.
 | 
|---|
 | 8 |  ;
 | 
|---|
 | 9 |  ; This routine is called from IVMCM1.
 | 
|---|
 | 10 |  ;
 | 
|---|
 | 11 |  ; Required Input:
 | 
|---|
 | 12 |  ;   The global array ^TMP($J,"IVMCM" which contains the income test
 | 
|---|
 | 13 |  ;   The local variable IVMTYPE, which may be:
 | 
|---|
 | 14 |  ;       1 - Means Test
 | 
|---|
 | 15 |  ;       2 - Copay Test
 | 
|---|
 | 16 |  ;       4 - Long Term Care Test
 | 
|---|
 | 17 |  ;
 | 
|---|
 | 18 |  ; Output:
 | 
|---|
 | 19 |  ;   Array IVMERR as a list of error condition(s) found (free text)
 | 
|---|
 | 20 |  ;
 | 
|---|
 | 21 | EN(IVMERR) ; Entry point to begin edit checks.
 | 
|---|
 | 22 |  ;
 | 
|---|
 | 23 |  N ARRAY,DEP,I,IEN,SPOUSE,CNT,HLERR
 | 
|---|
 | 24 |  S (DEP,CNT)=1,SPOUSE=0
 | 
|---|
 | 25 |  I +$G(IVMTYPE)'>0 S CNT=CNT+1,IVMERR(CNT)="Income Test Type not Specified"
 | 
|---|
 | 26 |  ;
 | 
|---|
 | 27 |  ; Build strings for the veteran
 | 
|---|
 | 28 |  S ARRAY("PID")=$$CLEAR($G(^TMP($J,"IVMCM","PIDV")))
 | 
|---|
 | 29 |  S ARRAY("ZIC")=$$CLEAR($G(^TMP($J,"IVMCM","ZICV"))),$P(ARRAY("ZIC"),HLFS,21)=$$TOTAL^IVMCME(ARRAY("ZIC"))
 | 
|---|
 | 30 |  S ARRAY("ZIR")=$$CLEAR($G(^TMP($J,"IVMCM","ZIRV")))
 | 
|---|
 | 31 |  ;
 | 
|---|
 | 32 |  ; Build string for spouse as dependent
 | 
|---|
 | 33 |  S ARRAY(DEP,"ZDP")=$$CLEAR($G(^TMP($J,"IVMCM","ZDPS")))
 | 
|---|
 | 34 |  S ARRAY(DEP,"ZIC")=$$CLEAR($G(^TMP($J,"IVMCM","ZICS")))
 | 
|---|
 | 35 |  S ARRAY(DEP,"ZIR")=$$CLEAR($G(^TMP($J,"IVMCM","ZIRS")))
 | 
|---|
 | 36 |  D ADJ^IVMCME
 | 
|---|
 | 37 |  ;
 | 
|---|
 | 38 |  ; Build strings for children as dependents
 | 
|---|
 | 39 |  S IEN=0 F  S IEN=$O(^TMP($J,"IVMCM","ZDPC",IEN)) Q:'IEN  D
 | 
|---|
 | 40 |  . S DEP=DEP+1
 | 
|---|
 | 41 |  . S ARRAY(DEP,"ZDP")=$$CLEAR($G(^TMP($J,"IVMCM","ZDPC",IEN)))
 | 
|---|
 | 42 |  . S ARRAY(DEP,"ZIC")=$$CLEAR($G(^TMP($J,"IVMCM","ZICC",IEN)))
 | 
|---|
 | 43 |  . S ARRAY(DEP,"ZIR")=$$CLEAR($G(^TMP($J,"IVMCM","ZIRC",IEN)))
 | 
|---|
 | 44 |  . D ADJ^IVMCME
 | 
|---|
 | 45 |  ;
 | 
|---|
 | 46 |  ; - build income test string and check for errors
 | 
|---|
 | 47 |  S ARRAY("ZMT")=$$CLEAR($G(^TMP($J,"IVMCM","ZMT"_IVMTYPE)))
 | 
|---|
 | 48 |  ;
 | 
|---|
 | 49 |  I '$$UPLDOK() S HLERR="Income Test not Uploaded",OK2UPLD=0 D ACK^IVMPREC Q
 | 
|---|
 | 50 |  ;
 | 
|---|
 | 51 |  ; Check Income Test before applying consistency checks
 | 
|---|
 | 52 |  ; - If AGREED TO PAY DEDUCTIBLE is NO
 | 
|---|
 | 53 |  ; - or DECLINES TO GIVE INCOME INFO and AGREED TO PAY DEDUCTIBLE are YES
 | 
|---|
 | 54 |  ; Quit, the consistency checks are unnecessary.
 | 
|---|
 | 55 |  N APD,DTGII S APD=$P(ARRAY("ZMT"),U,11),DTGII=$P(ARRAY("ZMT"),U,14)
 | 
|---|
 | 56 |  I APD=0!(APD=1&(DTGII=1)) Q
 | 
|---|
 | 57 |  ;
 | 
|---|
 | 58 |  D CHECK
 | 
|---|
 | 59 | ENQ Q
 | 
|---|
 | 60 |  ;
 | 
|---|
 | 61 | CLEAR(NODE) ; Convert HLQ to NULL
 | 
|---|
 | 62 |  N I
 | 
|---|
 | 63 |  F I=1:1:$L(NODE,HLFS) I $P(NODE,HLFS,I)=HLQ S $P(NODE,HLFS,I)=""
 | 
|---|
 | 64 |  Q NODE
 | 
|---|
 | 65 |  ;
 | 
|---|
 | 66 | CHECK ; Check validity of transmission data
 | 
|---|
 | 67 |  N IEN
 | 
|---|
 | 68 |  I "^1^2^4^"[("^"_IVMTYPE_"^") D ZMT^IVMCMF2(ARRAY("ZMT"))
 | 
|---|
 | 69 |  D ZIR^IVMCMF1(ARRAY("ZIR"))
 | 
|---|
 | 70 |  ;
 | 
|---|
 | 71 |  S IEN="" F  S IEN=$O(ARRAY(IEN)) Q:'IEN  D
 | 
|---|
 | 72 |  . D ZDP^IVMCMF2(ARRAY(IEN,"ZDP"))
 | 
|---|
 | 73 |  . D ZIC^IVMCMF1(ARRAY(IEN,"ZIC"),IEN)
 | 
|---|
 | 74 |  . D ZIR^IVMCMF1(ARRAY(IEN,"ZIR"),IEN)
 | 
|---|
 | 75 | CHECKQ Q
 | 
|---|
 | 76 |  ;
 | 
|---|
 | 77 | UPLDOK() ; Check if the test is complete and OK to upload
 | 
|---|
 | 78 |  ; Quit if not a valid test type
 | 
|---|
 | 79 |  I "^1^2^3^4^"'[(U_IVMTYPE_U) Q 0
 | 
|---|
 | 80 |  ;
 | 
|---|
 | 81 |  ; Check the Income Test Status
 | 
|---|
 | 82 |  N DGSTAT S DGSTAT=$P(ARRAY("ZMT"),U,3)
 | 
|---|
 | 83 |  I IVMTYPE=1,"^C^A^G^N^P^"'[(U_DGSTAT_U) Q 0
 | 
|---|
 | 84 |  I IVMTYPE=2,"^M^E^L^"'[(U_DGSTAT_U) Q 0
 | 
|---|
 | 85 |  I IVMTYPE=4,"^0^1^"'[(U_DGSTAT_U) Q 0
 | 
|---|
 | 86 |  ;
 | 
|---|
 | 87 |  ; Check if the test has been completed
 | 
|---|
 | 88 |  I IVMTYPE'=3,+$P(ARRAY("ZMT"),U,10)'>0 Q 0
 | 
|---|
 | 89 |  Q 1
 | 
|---|