[613] | 1 | EASEZC1 ;ALB/jap - Compare 1010EZ Data with VistA Database ;10/16/00 13:08
|
---|
| 2 | ;;1.0;ENROLLMENT APPLICATION SYSTEM;**1,51**;Mar 15, 2001
|
---|
| 3 | ;
|
---|
| 4 | EN(EASAPP,EASDFN) ;this entry point is called as soon as user has selected an Application
|
---|
| 5 | ;
|
---|
| 6 | ;input
|
---|
| 7 | ; EASAPP = application ien in file #712
|
---|
| 8 | ; EASDFN = ien in file #2; if 0, then application not yet linked to file #2
|
---|
| 9 | ;output
|
---|
| 10 | ; ^TMP("EZDATA" where
|
---|
| 11 | ; ^TMP("EZDATA",$J,ien_file711)=file#^subfile#^field#^data_id
|
---|
| 12 | ; ^TMP("EZDATA",$J,ien_file711,multiple,1)=ezdata^accept_flag^subien_subfile712.01
|
---|
| 13 | ; ^TMP("EZDATA",$J,ien_file711,multiple,2)=vista_data^link_ien
|
---|
| 14 | ;
|
---|
| 15 | N IEN,KEY,SUBIEN,ACCEPT,FFF,LINK,MULTIPLE,ORIG,UPD,X,Y,C2711KEY
|
---|
| 16 | ;don't continue if passed in dfn doesn't match link
|
---|
| 17 | I $G(EASDFN),$P($G(^EAS(712,EASAPP,0)),U,10)'=EASDFN S EASDFN="" Q
|
---|
| 18 | ;don't continue if link to file #2 not available
|
---|
| 19 | I '$G(EASDFN) S EASDFN=+$P($G(^EAS(712,EASAPP,0)),U,10)
|
---|
| 20 | ;if applicant is new to database, user accept/not accept of data elements is constrained
|
---|
| 21 | S EASEZNEW=$P(^EAS(712,EASAPP,0),U,11)
|
---|
| 22 | ;display/file/print varies with version
|
---|
| 23 | S EASVRSN=$$VERSION^EASEZU4(EASAPP) ;alb/cmf/51
|
---|
| 24 | ;
|
---|
| 25 | ; setup local mapping array
|
---|
| 26 | D LOCAL711^EASEZU2
|
---|
| 27 | ;need this for later
|
---|
| 28 | S C2711KEY=+$$KEY711^EASEZU1("TYPE OF BENEFIT-ENROLLMENT")
|
---|
| 29 | ;correlate #712 data with tmp mapping array
|
---|
| 30 | S SUBIEN=0 F S SUBIEN=$O(^EAS(712,EASAPP,10,SUBIEN)) Q:'SUBIEN D
|
---|
| 31 | .S X=^EAS(712,EASAPP,10,SUBIEN,0)
|
---|
| 32 | .S (IEN,KEY)=$P(X,U,1),MULTIPLE=$P(X,U,2),ACCEPT=$P(X,U,3),FFF=$P(^TMP("EZDATA",$J,IEN),U,1,3)
|
---|
| 33 | .S X=$G(^EAS(712,EASAPP,10,SUBIEN,1)),ORIG=$P(X,U,1),UPD=$P(X,U,2)
|
---|
| 34 | .;if link exists, it is pointer to Vista database record for an existing patient
|
---|
| 35 | .; or possibly a 'new' patient (i.e., this applicant's data), if this is done post filing
|
---|
| 36 | .S LINK=$P($G(^EAS(712,EASAPP,10,SUBIEN,2)),U,2)
|
---|
| 37 | .;eliminate some garbage from web app
|
---|
| 38 | .I (ORIG="-")!(ORIG="--")!(ORIG="//") S ORIG=""
|
---|
| 39 | .Q:((ORIG="")&(UPD=""))
|
---|
| 40 | .I UPD="" S ^TMP("EZDATA",$J,IEN,MULTIPLE,1)=ORIG_U_ACCEPT_U_SUBIEN
|
---|
| 41 | .E S ^TMP("EZDATA",$J,IEN,MULTIPLE,1)=UPD_U_ACCEPT_U_SUBIEN
|
---|
| 42 | .;if this applicant is new to VistA database, there is no existing patient data for comparison
|
---|
| 43 | .;just pickup name,ssn,dob anyway;
|
---|
| 44 | .I EASEZNEW,EASDFN D
|
---|
| 45 | ..S F=$P(FFF,U,1),SF=$P(FFF,U,2),FD=$P(FFF,U,3)
|
---|
| 46 | ..I F=2,SF=2 I (FD=.01)!(FD=.02)!(FD=.03)!(FD=.09) S LINK=EASDFN
|
---|
| 47 | ..K F,SF,FD
|
---|
| 48 | .;if link to database exists then get VistA data into tmp array
|
---|
| 49 | .I 'LINK,$P(FFF,U,1)=2 S LINK=EASDFN
|
---|
| 50 | .I LINK D
|
---|
| 51 | ..S X=$$GET(LINK,FFF) S:X=-1 X="" S ^TMP("EZDATA",$J,IEN,MULTIPLE,2)=X_U_LINK
|
---|
| 52 | ..;special for file #27.11 (Enrollment) data
|
---|
| 53 | ..I KEY=C2711KEY D
|
---|
| 54 | ...S CUR=$P($G(^EAS(712,EASAPP,10,SUBIEN,2)),U,2)
|
---|
| 55 | ...D ENR(CUR,.VDATA) K CUR
|
---|
| 56 | ...S ^TMP("EZDATA",$J,IEN,MULTIPLE,2)=VDATA_U_LINK K VDATA
|
---|
| 57 | ..I $G(^TMP("EZDATA",$J,IEN,MULTIPLE,1))="" S ^TMP("EZDATA",$J,IEN,MULTIPLE,1)=U_ACCEPT_U_SUBIEN
|
---|
| 58 | D C206^EASEZC3 ;alb/cmf/51 special for ethnicity multiple
|
---|
| 59 | D C202^EASEZC3 ;alb/cmf/51 special for race multiple
|
---|
| 60 | ;set 'transformed' data into ^TMP("EZDISP" array
|
---|
| 61 | D SORT^EASEZC3(EASAPP)
|
---|
| 62 | Q
|
---|
| 63 | ;
|
---|
| 64 | GET(EASLINK,EASFFF) ;get data from existing Patient database
|
---|
| 65 | ;input EASLINK = IEN(s) needed
|
---|
| 66 | ; format: file_ien;subfile_ien
|
---|
| 67 | ; EASFFF = field # for file or subfile
|
---|
| 68 | ; format: file#^subfile#^field#
|
---|
| 69 | ;output RTR = data obtained from Patient database; external format;
|
---|
| 70 | ; OR -1 if invalid input
|
---|
| 71 | ;
|
---|
| 72 | N FILE,SUBFILE,FIELD,RTR,ARRAY,DA,DR,DIC,DIQ,X,Y
|
---|
| 73 | S FILE=$P(EASFFF,U,1),SUBFILE=$P(EASFFF,U,2),FIELD=$P(EASFFF,U,3)
|
---|
| 74 | I ('FILE)!('FIELD) Q -1
|
---|
| 75 | I SUBFILE,SUBFILE'=FILE,EASLINK'[";" Q -1
|
---|
| 76 | I EASLINK[";",SUBFILE="" Q -1
|
---|
| 77 | ;
|
---|
| 78 | I (SUBFILE="")!(SUBFILE=FILE) D
|
---|
| 79 | .;data in main file
|
---|
| 80 | .S DIQ="ARRAY",DIQ(0)="E",DA=EASLINK,DR=FIELD,DIC=FILE
|
---|
| 81 | .D EN^DIQ1
|
---|
| 82 | .S RTR=$G(ARRAY(FILE,EASLINK,FIELD,"E"))
|
---|
| 83 | I SUBFILE'="",SUBFILE'=FILE D
|
---|
| 84 | .;data in subfile
|
---|
| 85 | .;in this case EASLINK = file_ien;subfile_ien
|
---|
| 86 | .S DIQ="ARRAY",DIQ(0)="E",DA=$P(EASLINK,";",1),DIC=FILE
|
---|
| 87 | .;get field # for subfile
|
---|
| 88 | .S DR=$O(^DD(FILE,"SB",SUBFILE,0))
|
---|
| 89 | .S DR(SUBFILE)=FIELD,DA(SUBFILE)=$P(EASLINK,";",2)
|
---|
| 90 | .D EN^DIQ1
|
---|
| 91 | .S RTR=$G(ARRAY(SUBFILE,$P(EASLINK,";",2),FIELD,"E"))
|
---|
| 92 | Q RTR
|
---|
| 93 | ;
|
---|
| 94 | ;
|
---|
| 95 | C2 ;get data from file #2 into local array L711
|
---|
| 96 | ;there are alot of fields; quickest just to order thru local mapping file
|
---|
| 97 | ;
|
---|
| 98 | N KEY,MAP,VDATA,EASAEL
|
---|
| 99 | ;2nd subscript for array is always 1 (no multiples)
|
---|
| 100 | S KEY=0 F S KEY=$O(^TMP("EZDATA",$J,KEY)) Q:'KEY S MAP=^TMP("EZDATA",$J,KEY) I ($P(MAP,U,1)=2)&($P(MAP,U,2)=2) D
|
---|
| 101 | .S EASAEL=$P($G(^TMP("EZDATA",$J,KEY,1,1)),U,3)
|
---|
| 102 | .S VDATA=$$GET(EASDFN,MAP)
|
---|
| 103 | .Q:VDATA=-1 Q:VDATA=""
|
---|
| 104 | .;special handling for field #.362
|
---|
| 105 | .I ($P(MAP,U,1)=5)="I;14D3." D
|
---|
| 106 | ..I VDATA["IN LIEU OF VA COMP" S VDATA="YES"
|
---|
| 107 | ..I VDATA="YES, RECEIVING MILITARY RETIREMENT" S VDATA="NO"
|
---|
| 108 | .;ien to #711 is 1st subscript of local array is
|
---|
| 109 | .S ^TMP("EZDATA",$J,KEY,1,2)=VDATA
|
---|
| 110 | .;if data exists in 1010EZ then insert link to file #2
|
---|
| 111 | .I EASAEL D LINKUP^EASEZU1(EASAPP,EASAEL,EASDFN)
|
---|
| 112 | .;if data does not exist in 1010EZ add subrecord to hold link
|
---|
| 113 | .I 'EASAEL D ADD71201^EASEZU1(EASAPP,KEY,EASDFN,1)
|
---|
| 114 | Q
|
---|
| 115 | ;
|
---|
| 116 | C201 ;get data in Alias subfile #2.01 into local array L711
|
---|
| 117 | ; using ien(s) local array ALIAS
|
---|
| 118 | ;
|
---|
| 119 | ;for Alias name(s) - if other name on 1010EZ doesn't match any on file
|
---|
| 120 | ; then it will be auto-accepted; comparision only with matching name if any.
|
---|
| 121 | N X,M,B,ADATA,VDATA,KEY,EASAEL
|
---|
| 122 | S KEY=+$$KEY711^EASEZU1("APPLICANT OTHER NAME")
|
---|
| 123 | S M=0 F S M=$O(^TMP("EZDATA",$J,KEY,M)) Q:'M D
|
---|
| 124 | .S ADATA=$P(^TMP("EZDATA",$J,KEY,M,1),U,1)
|
---|
| 125 | .S B=0 F S B=$O(ALIAS(B)) Q:'B D
|
---|
| 126 | ..S VDATA=$$GET(ALIAS(B),^TMP("EZDATA",$J,KEY)) Q:VDATA=-1
|
---|
| 127 | ..I VDATA=ADATA D
|
---|
| 128 | ...S ^TMP("EZDATA",$J,KEY,M,2)=VDATA
|
---|
| 129 | ...S EASAEL=$P(^TMP("EZDATA",$J,KEY,M,1),U,3)
|
---|
| 130 | ...;only insert link if data exists in 1010EZ
|
---|
| 131 | ...I EASAEL D LINKUP^EASEZU1(EASAPP,EASAEL,ALIAS(B))
|
---|
| 132 | Q
|
---|
| 133 | ;
|
---|
| 134 | C2101 ;get data in Disposition subfile #2.101 into local array L711
|
---|
| 135 | ; using ien(s) local array DISPOS
|
---|
| 136 | ;
|
---|
| 137 | ;display data on most recent registration if any
|
---|
| 138 | ;2nd subscript of local array always 1 (no multiples)
|
---|
| 139 | N B,X,FLD,KEY,ADATA,VDATA,EASAEL
|
---|
| 140 | S FLD=0 F S FLD=$O(^TMP("EZINDEX","A",2,2.101,FLD)) Q:FLD="" D
|
---|
| 141 | .S KEY=$O(^TMP("EZINDEX","A",2,2.101,FLD,0))
|
---|
| 142 | .S ADATA=$G(^TMP("EZDATA",$J,KEY,1,1))
|
---|
| 143 | .S VDATA=$$GET(DISPOS(1),^TMP("EZDATA",$J,KEY))
|
---|
| 144 | .Q:VDATA=-1 Q:VDATA=""
|
---|
| 145 | .S ^TMP("EZDATA",$J,KEY,1,2)=VDATA
|
---|
| 146 | .S EASAEL=$P($G(^TMP("EZDATA",$J,KEY,1,1)),U,3)
|
---|
| 147 | .;if data exists in 1010EZ then insert link
|
---|
| 148 | .I EASAEL D LINKUP^EASEZU1(EASAPP,EASAEL,DISPOS(1)) Q
|
---|
| 149 | .;if data does not exist in 1010EZ add subrecord to hold link
|
---|
| 150 | .I 'EASAEL D ADD71201^EASEZU1(EASAPP,KEY,DISPOS(1),1)
|
---|
| 151 | Q
|
---|
| 152 | ;
|
---|
| 153 | C2711 ;get data in Current Enrollment #27.11 into local array L711
|
---|
| 154 | ; using ien(s) local array ENROLL
|
---|
| 155 | ;
|
---|
| 156 | ;2nd subscript of local array always 1 (no multiples)
|
---|
| 157 | N X,M,B,ADATA,CUR,DGENR,VDATA,KEY,EASAEL
|
---|
| 158 | S KEY=+$$KEY711^EASEZU1("TYPE OF BENEFIT-ENROLLMENT")
|
---|
| 159 | S CUR=$G(ENROLL(1)),VDATA=""
|
---|
| 160 | Q:CUR=-1
|
---|
| 161 | Q:CUR=""
|
---|
| 162 | D ENR(CUR,.VDATA)
|
---|
| 163 | S ^TMP("EZDATA",$J,KEY,1,2)=VDATA
|
---|
| 164 | S EASAEL=$P($G(^TMP("EZDATA",$J,KEY,1,1)),U,3)
|
---|
| 165 | ;if data exists in 1010EZ then insert link
|
---|
| 166 | I EASAEL D LINKUP^EASEZU1(EASAPP,EASAEL,CUR)
|
---|
| 167 | ;if data does not exist in 1010EZ add subrecord to hold link
|
---|
| 168 | I 'EASAEL D ADD71201^EASEZU1(EASAPP,KEY,CUR,1)
|
---|
| 169 | Q
|
---|
| 170 | ;
|
---|
| 171 | ENR(CUR,VDATA) ;get data for current enrollment from VistA database
|
---|
| 172 | ;input CUR = pointer to file #27.11
|
---|
| 173 | N DGENCAT
|
---|
| 174 | S VDATA=""
|
---|
| 175 | I $$GET^DGENA(CUR,.DGENR) D
|
---|
| 176 | .I $G(DGENR("STATUS"))=10!($G(DGENR("STATUS"))=19)!($G(DGENR("STATUS"))=20) D Q
|
---|
| 177 | ..S VDATA=$S($G(DGENR("STATUS")):$$EXT^DGENU("STATUS",DGENR("STATUS")),1:"")
|
---|
| 178 | .S DGENCAT=$$CATEGORY^DGENA4(+EASDFN)
|
---|
| 179 | .S DGENCAT=$$EXTERNAL^DILFD(27.15,.02,"",DGENCAT)
|
---|
| 180 | .S VDATA=$S($G(DGENR("PRIORITY")):$$EXT^DGENU("PRIORITY",DGENR("PRIORITY")),1:"")
|
---|
| 181 | .S VDATA=VDATA_$S($G(DGENR("SUBGRP"))="":"",1:$$EXT^DGENU("SUBGRP",$G(DGENR("SUBGRP"))))
|
---|
| 182 | .S VDATA=VDATA_" | "_DGENCAT
|
---|
| 183 | Q
|
---|
| 184 | ;
|
---|
| 185 | C408 ;get data from financial files into tmp mapping array
|
---|
| 186 | ; using ien(s) local array INCREL
|
---|
| 187 | ;if no iens for veteran then nothing at all; exit
|
---|
| 188 | I $G(INCREL(408,"V",1))="" Q
|
---|
| 189 | ;link EZ applicant to veteran data
|
---|
| 190 | D A408^EASEZC2
|
---|
| 191 | ;link EZ spouse to spouse data
|
---|
| 192 | D SP408^EASEZC2
|
---|
| 193 | ;link EZ child to child/dependent data
|
---|
| 194 | D C1N408^EASEZC2
|
---|
| 195 | Q
|
---|