1 | DG53177P ;ALB/SEK - VALIDATE ELIGIBILITY CODE FILES ROUTINE; 20 JULY 1998
|
---|
2 | ;;5.3;Registration;**177**;Aug 13, 1993
|
---|
3 | ;
|
---|
4 | ; This routine will validate entries in the MAS ELIGIBILITY CODE
|
---|
5 | ; file (#8.1) and the ELIGIBILITY CODE file (#8).
|
---|
6 | ;
|
---|
7 | ; The MAS ELIGIBILITY CODE file will be checked to see that there
|
---|
8 | ; are 21 entries with the correct internal entry number (IEN),
|
---|
9 | ; name, and inactive flag.
|
---|
10 | ; Discrepancies will be printed.
|
---|
11 | ;
|
---|
12 | ; If discrepancies are found in the MAS ELIGIBILITY CODE file, the
|
---|
13 | ; ELIGIBILITY CODE file is not checked and the user is asked to
|
---|
14 | ; correct the discrepancies and rerun this routine (D ^DG53177P).
|
---|
15 | ;
|
---|
16 | ; The following checks will be done on the ELIGIBILITY CODE file:
|
---|
17 | ; . Each entry (MAS ELIGIBILITY CODE field) points to an entry in
|
---|
18 | ; the MAS ELIGIBILITY CODE file. Discrepancies will be printed.
|
---|
19 | ; . Inactive entry points to an active entry in the MAS ELIGIBILITY.
|
---|
20 | ; All occurrences will be printed with a message stating this may
|
---|
21 | ; be correct, just listing for further review.
|
---|
22 | ; . Active entry points to an inactive entry in the MAS ELIGIBILITY.
|
---|
23 | ; Occurrences will be printed.
|
---|
24 | ;
|
---|
25 | ;
|
---|
26 | ; Checking the MAS ELIGIBILITY CODE file (#8.1)
|
---|
27 | EN ;
|
---|
28 | D BMES^XPDUTL(">>> Checking the internal entry number(IEN), name, and activity")
|
---|
29 | D MES^XPDUTL(" of the 21 entries in the MAS ELIGIBILITY CODE file (#8.1).")
|
---|
30 | N DG1,DG2,DGACT,DGIEN,DGN,DGNAME,DGS,DGSACT,DGX,DGX1
|
---|
31 | K DGERR
|
---|
32 | S DGN=0
|
---|
33 | F DG1=1:1 S DGX=$P($T(DATA+DG1),";;",2) G:DGX="QUIT" PRINT D
|
---|
34 | .S DGIEN=$P(DGX,"^"),DGNAME=$P(DGX,"^",2),DGACT=$P(DGX,"^",3)
|
---|
35 | .S DGS=$G(^DIC(8.1,DGIEN,0)) I DGS']"" S DGN=DGN+1,DGERR(DGN)=DGX_";" Q
|
---|
36 | .I DGNAME'=$P(DGS,"^")!(DGACT'=$P(DGS,"^",7)) D Q
|
---|
37 | ..S DGN=DGN+1,DGERR(DGN)=DGX_";A"
|
---|
38 | ..Q
|
---|
39 | .Q
|
---|
40 | ;
|
---|
41 | PRINT ; Print MAS ELIGIBILITY CODE file discrepancies
|
---|
42 | G:'DGN NODEZ
|
---|
43 | D BMES^XPDUTL(" The following discrepancies were found:")
|
---|
44 | F DG2=1:1:DGN D
|
---|
45 | .S DGX=$P($G(DGERR(DG2)),";")
|
---|
46 | .S DGIEN=$P(DGX,"^"),DGNAME=$P(DGX,"^",2),DGACT=$P(DGX,"^",3)
|
---|
47 | .S DGX1=$P($G(DGERR(DG2)),";",2) I DGX1="" D Q
|
---|
48 | ..D MES^XPDUTL("Missing IEN of "_DGIEN_" - "_DGNAME_" and "_$S(DGACT:"inactive",1:"active"))
|
---|
49 | ..Q
|
---|
50 | .D MES^XPDUTL("IEN of "_DGIEN_" should be "_DGNAME_" and "_$S(DGACT:"inactive",1:"active"))
|
---|
51 | .Q
|
---|
52 | ;
|
---|
53 | NODEZ ; check ^DIC(8.1,0 for 21 entries
|
---|
54 | I $P($G(^DIC(8.1,0)),"^",4)>21 D G CORR
|
---|
55 | .D BMES^XPDUTL(" The number of entries in the MAS ELIGIBILITY CODE file is greater than 21")
|
---|
56 | ;
|
---|
57 | I 'DGN D BMES^XPDUTL(" MAS ELIGIBILITY CODE file (#8.1) is correct.") G CHECK
|
---|
58 | ;
|
---|
59 | CORR D BMES^XPDUTL(">>> Please correct the discrepancies in the MAS ELIGIBILITY CODE file")
|
---|
60 | D MES^XPDUTL(" and rerun DG53177P (D ^DG53177P)")
|
---|
61 | G QUIT
|
---|
62 | ;
|
---|
63 | CHECK ; Checking the ELIGIBILITY CODE file (#8)
|
---|
64 | ;
|
---|
65 | D BMES^XPDUTL(">>> Checking the entries in the ELIGIBILITY CODE file (#8).")
|
---|
66 | N DG1,DG2,DGP,DGACT,DGN,DGSACT
|
---|
67 | ;
|
---|
68 | ; Each entry (MAS ELIGIBILITY CODE field) must point to an entry in
|
---|
69 | ; the MAS ELIGIBILITY CODE file.
|
---|
70 | ;
|
---|
71 | S DGN=0,DG1=0
|
---|
72 | F S DG1=$O(^DIC(8,DG1)) G:'DG1 PRINT1 D
|
---|
73 | .S DG2=$G(^DIC(8,DG1,0)) Q:DG2=""
|
---|
74 | .S DGP=$P(DG2,"^",9)
|
---|
75 | .I DGP<1!(DGP>21) S DGN=DGN+1,DGERR(1,DGN)=DG1_"^"_$P(DG2,"^") Q
|
---|
76 | .S DGACT=$P($P($T(DATA+DGP),";;",2),"^",3)
|
---|
77 | .S DGSACT=$P(DG2,"^",7)
|
---|
78 | .I DGSACT=1&(DGACT'=1) S DGN=DGN+1,DGERR(2,DGN)=DG1_"^"_$P(DG2,"^") Q
|
---|
79 | .I DGSACT'=1&(DGACT=1) S DGN=DGN+1,DGERR(3,DGN)=DG1_"^"_$P(DG2,"^") Q
|
---|
80 | .Q
|
---|
81 | ;
|
---|
82 | PRINT1 ; Print ELIGIBILITY CODE file discrepancies
|
---|
83 | I 'DGN D G QUIT
|
---|
84 | . D BMES^XPDUTL(" ELIGIBILITY CODE file (#8) is correct.")
|
---|
85 | . D BMES^XPDUTL(" Validation has completed with no discrepancies found")
|
---|
86 | .Q
|
---|
87 | ;
|
---|
88 | N DG1,DG2
|
---|
89 | S DG1=0
|
---|
90 | F S DG1=$O(DGERR(DG1)) Q:'DG1 D
|
---|
91 | .D @$S(DG1=1:"ERR1",DG1=2:"ERR2",1:"ERR3")
|
---|
92 | .S DG2=0
|
---|
93 | .F S DG2=$O(DGERR(DG1,DG2)) Q:'DG2 D
|
---|
94 | ..D MES^XPDUTL(" IEN= "_$P(DGERR(DG1,DG2),"^")_" NAME= "_$P(DGERR(DG1,DG2),"^",2))
|
---|
95 | ..Q
|
---|
96 | G QUIT1
|
---|
97 | ;
|
---|
98 | ERR1 D BMES^XPDUTL(" The following entries do not point to an entry in the")
|
---|
99 | D MES^XPDUTL(" MAS ELIGIBILITY CODE file:")
|
---|
100 | Q
|
---|
101 | ;
|
---|
102 | ERR2 D BMES^XPDUTL(" The following inactive entries point to an active")
|
---|
103 | D MES^XPDUTL(" entry in the MAS ELIGIBILITY CODE file:")
|
---|
104 | D MES^XPDUTL(" These may be correct, just listing for further review.")
|
---|
105 | Q
|
---|
106 | ;
|
---|
107 | ERR3 D BMES^XPDUTL(" The following active entries point to an inactive")
|
---|
108 | D MES^XPDUTL(" entry in the MAS ELIGIBILITY CODE file:")
|
---|
109 | Q
|
---|
110 | ;
|
---|
111 | QUIT1 D BMES^XPDUTL(">>> Please correct the discrepancies in the ELIGIBILITY CODE file")
|
---|
112 | D MES^XPDUTL(" and rerun DG53177P (D ^DG53177P)")
|
---|
113 | ;
|
---|
114 | QUIT K DGERR
|
---|
115 | Q
|
---|
116 | ;
|
---|
117 | DATA ; IEN^NAME^INACTIVE of MAS ELIGIBILIY CODE file (#8.1)
|
---|
118 | ;;1^SERVICE CONNECTED 50% to 100%
|
---|
119 | ;;2^AID & ATTENDANCE
|
---|
120 | ;;3^SC LESS THAN 50%
|
---|
121 | ;;4^NSC, VA PENSION
|
---|
122 | ;;5^NSC
|
---|
123 | ;;6^OTHER FEDERAL AGENCY
|
---|
124 | ;;7^ALLIED VETERAN
|
---|
125 | ;;8^HUMANITARIAN EMERGENCY
|
---|
126 | ;;9^SHARING AGREEMENT
|
---|
127 | ;;10^REIMBURSABLE INSURANCE
|
---|
128 | ;;11^DOM. PATIENT^1
|
---|
129 | ;;12^CHAMPVA
|
---|
130 | ;;13^COLLATERAL OF VET.
|
---|
131 | ;;14^EMPLOYEE
|
---|
132 | ;;15^HOUSEBOUND
|
---|
133 | ;;16^MEXICAN BORDER WAR
|
---|
134 | ;;17^WORLD WAR I
|
---|
135 | ;;18^PRISONER OF WAR
|
---|
136 | ;;19^TRICARE/CHAMPUS
|
---|
137 | ;;20^MEDICARE^1
|
---|
138 | ;;21^CATASTROPHICALLY DISABLED
|
---|
139 | ;;QUIT
|
---|