1 | EASEZPVI ;ALB/AMA; GATHER VISTA INSURANCE DATA TO PRINT FROM DG OPTIONS ; 06 Jul 2005 1:45 PM
|
---|
2 | ;;1.0;ENROLLMENT APPLICATION SYSTEM;**57**;Mar 15, 2001
|
---|
3 | ;
|
---|
4 | Q
|
---|
5 | ;
|
---|
6 | INSUR(EASDFN) ;GET INSURANCE DATA
|
---|
7 | ; INPUT:
|
---|
8 | ; EASDFN - POINTER TO THE PATIENT FILE
|
---|
9 | ;
|
---|
10 | ;IF THEY EXIST, FIND INSURANCE COMPANY NAME(S), ADDRESS,
|
---|
11 | ;CITY, STATE, ZIP, PHONE, GROUP CODE(S), POLICY NUMBER(S),
|
---|
12 | ;NAME(S) OF INSURED, MEDICARE PART A/B, AND EFFECTIVE DATE(S)
|
---|
13 | ;
|
---|
14 | N KEY,VDATA,MULTIPLE,INDA,IENS,INSUR,INSORT,FLD,TYPE,IEN,INPTR,NAME
|
---|
15 | N STREET,CITY,STPTR,STATE,ZIP,PHONE,GRPCD,POLNO,INNAME,KEYNM,M,CAT
|
---|
16 | S KEY=+$$KEY711^EASEZU1("APPLICANT HAS INSURANCE")
|
---|
17 | S VDATA=$$GET^EASEZC1(EASDFN,"2^2^.3192")
|
---|
18 | I (VDATA=-1)!(VDATA="") S ^TMP("EZDATA",$J,KEY,1,2)="UNKNOWN"
|
---|
19 | I (VDATA'=-1),(VDATA'="") S ^TMP("EZDATA",$J,KEY,1,2)=VDATA
|
---|
20 | Q:VDATA'="YES"
|
---|
21 | ;
|
---|
22 | S MULTIPLE=0
|
---|
23 | S INDA=0 F S INDA=$O(^DPT(EASDFN,.312,INDA)) Q:'INDA D
|
---|
24 | . D GETS^DIQ(2.312,INDA_","_EASDFN,"**","IE","INSUR")
|
---|
25 | S IENS="" F S IENS=$O(INSUR(2.312,IENS)) Q:IENS="" D
|
---|
26 | . S FLD=0 F S FLD=$O(INSUR(2.312,IENS,FLD)) Q:'FLD D
|
---|
27 | . . F TYPE="E","I" S INSORT(2.312,+IENS,FLD,TYPE)=$G(INSUR(2.312,IENS,FLD,TYPE))
|
---|
28 | K INSUR
|
---|
29 | S IEN=0 F S IEN=$O(INSORT(2.312,IEN)) Q:'IEN D
|
---|
30 | . Q:'$G(INSORT(2.312,IEN,.18,"I"))
|
---|
31 | . S INPTR=INSORT(2.312,IEN,.18,"I")
|
---|
32 | . Q:$$GET1^DIQ(355.3,INPTR,.11,"I") ;INACTIVE FLAG
|
---|
33 | . I DT'>$G(INSORT(2.312,IEN,3,"I")) Q ;INSUR EXPIRATION DATE
|
---|
34 | . S NAME=$G(INSORT(2.312,IEN,.18,"E"))
|
---|
35 | . S STREET=$$GET1^DIQ(36,INPTR,.111),CITY=$$GET1^DIQ(36,INPTR,.114)
|
---|
36 | . S STPTR=$$GET1^DIQ(36,INPTR,.115,"I"),STATE=$$GET1^DIQ(5,STPTR,1)
|
---|
37 | . S ZIP=$$GET1^DIQ(36,INPTR,.116),PHONE=$$GET1^DIQ(36,INPTR,.131)
|
---|
38 | . S GRPCD=$$GET1^DIQ(355.3,INPTR,.04),POLNO=$G(INSORT(2.312,IEN,1,"E"))
|
---|
39 | . S INNAME=$G(INSORT(2.312,IEN,17,"E"))
|
---|
40 | . S MULTIPLE=MULTIPLE+1
|
---|
41 | . I MULTIPLE=1 S KEYNM="APPLICANT",M=1
|
---|
42 | . E S KEYNM="OTHER(N)",M=MULTIPLE-1
|
---|
43 | . S KEY=+$$KEY711^EASEZU1(KEYNM_" INSURANCE COMPANY")
|
---|
44 | . I NAME]"" S ^TMP("EZDATA",$J,KEY,M,2)=NAME
|
---|
45 | . S KEY=+$$KEY711^EASEZU1(KEYNM_" INSURANCE ADDRESS")
|
---|
46 | . I STREET]"" S ^TMP("EZDATA",$J,KEY,M,2)=STREET
|
---|
47 | . S KEY=+$$KEY711^EASEZU1(KEYNM_" INSURANCE CITY")
|
---|
48 | . I CITY]"" S ^TMP("EZDATA",$J,KEY,M,2)=CITY
|
---|
49 | . S KEY=+$$KEY711^EASEZU1(KEYNM_" INSURANCE STATE")
|
---|
50 | . I STATE]"" S ^TMP("EZDATA",$J,KEY,M,2)=STATE
|
---|
51 | . S KEY=+$$KEY711^EASEZU1(KEYNM_" INSURANCE ZIP")
|
---|
52 | . I ZIP]"" S ^TMP("EZDATA",$J,KEY,M,2)=ZIP
|
---|
53 | . S KEY=+$$KEY711^EASEZU1(KEYNM_" INSURANCE PHONE")
|
---|
54 | . I PHONE]"" S ^TMP("EZDATA",$J,KEY,M,2)=PHONE
|
---|
55 | . S KEY=+$$KEY711^EASEZU1(KEYNM_" INSURANCE GROUP CODE")
|
---|
56 | . I GRPCD]"" S ^TMP("EZDATA",$J,KEY,M,2)=GRPCD
|
---|
57 | . S KEY=+$$KEY711^EASEZU1(KEYNM_" INSURANCE POLICY HOLDER")
|
---|
58 | . I INNAME]"" S ^TMP("EZDATA",$J,KEY,M,2)=INNAME
|
---|
59 | . S KEY=+$$KEY711^EASEZU1(KEYNM_" INSURANCE POLICY NUMBER")
|
---|
60 | . I POLNO]"" S ^TMP("EZDATA",$J,KEY,M,2)=POLNO
|
---|
61 | . ;
|
---|
62 | . I $$GET^EASEZC1(INPTR,"355.3^355.3^.09")="MEDICARE (M)" D
|
---|
63 | . . S CAT=$$GET^EASEZC1(INPTR,"355.3^355.3^.14")
|
---|
64 | . . I (CAT'="MEDICARE PART A"),(CAT'="MEDICARE PART B") Q
|
---|
65 | . . S KEY=+$$KEY711^EASEZU1(CAT)
|
---|
66 | . . S ^TMP("EZDATA",$J,KEY,M,2)="YES"
|
---|
67 | . . S VDATA=$$GET^EASEZC1(EASDFN_";"_INDA,"2^2.312^8")
|
---|
68 | . . Q:VDATA="" Q:VDATA=-1
|
---|
69 | . . S KEY=+$$KEY711^EASEZU1(CAT_" EFFECTIVE DATE")
|
---|
70 | . . S ^TMP("EZDATA",$J,KEY,M,2)=VDATA
|
---|
71 | ;
|
---|
72 | Q
|
---|
73 | ;
|
---|
74 | I408(EASDFN,MTDT,EASARRAY) ;retrieve ien(s) to files #408.12,#408.13,#408.21,#408.22
|
---|
75 | ; Modified from I408^EASEZI, called from V408^EASEZPV2
|
---|
76 | ;input EASDFN = ien to #2
|
---|
77 | ; MTDT = Means Test date
|
---|
78 | ;output EASARRAY = ien(s) to files; passed by reference
|
---|
79 | ; array(408,"V",1) = ien_#408.12^ien_#408.13^ien_#408.21^ien#408.22 ;veteran data
|
---|
80 | ; array(408,"S",1) = ien_#408.12^ien_#408.13^ien_#408.21^ien#408.22 ;spouse data
|
---|
81 | ; array(408,"C",multiple) = ien_#408.12^ien_#408.13^ien_#408.21^ien#408.22 ;child data
|
---|
82 | ;where ien_#408.13 = ien;global_root
|
---|
83 | ;
|
---|
84 | N Y,%F,X,%DT,MTDATE
|
---|
85 | N SUB1,SUB2,INCYR,DGINC,DGREL,DGINR
|
---|
86 | N I21,I22
|
---|
87 | ;
|
---|
88 | Q:'EASDFN
|
---|
89 | S Y=MTDT,%F=5,X=$$FMTE^XLFDT(Y,%F),X=+$P(X,"/",3)-1,%DT="P"
|
---|
90 | D ^%DT S MTDATE=Y
|
---|
91 | ;retrieve all associated 408 records; refer to api call for docu
|
---|
92 | I MTDT D ALL^DGMTU21(EASDFN,"VSC",MTDT)
|
---|
93 | ;massage "V" and "S" nodes for clear use in for loop below
|
---|
94 | S:$D(DGINC("V")) DGINC("V",1)=DGINC("V")
|
---|
95 | S:$D(DGINR("V")) DGINR("V",1)=DGINR("V")
|
---|
96 | S:$D(DGREL("V")) DGREL("V",1)=DGREL("V")
|
---|
97 | S:$D(DGINC("S")) DGINC("S",1)=DGINC("S")
|
---|
98 | S:$D(DGINR("S")) DGINR("S",1)=DGINR("S")
|
---|
99 | S:$D(DGREL("S")) DGREL("S",1)=DGREL("S")
|
---|
100 | ;
|
---|
101 | F SUB1="V","S","C" D
|
---|
102 | . Q:'$D(DGREL(SUB1))
|
---|
103 | . S SUB2=0
|
---|
104 | . F S SUB2=$O(DGREL(SUB1,SUB2)) Q:'SUB2 D
|
---|
105 | . . S EASARRAY(408,SUB1,SUB2)=DGREL(SUB1,SUB2)
|
---|
106 | . . S I21=$G(DGINC(SUB1,SUB2)) ; 408.21 ien
|
---|
107 | . . Q:'I21
|
---|
108 | . . S INCYR=$$GET1^DIQ(408.21,I21_",",.01,"I")
|
---|
109 | . . ;NOTE: The following two quit conditions are probably not
|
---|
110 | . . ; not necessary given the arrays being returned from
|
---|
111 | . . ; ALL^DGMTU21
|
---|
112 | . . Q:'MTDT
|
---|
113 | . . Q:(INCYR<MTDATE)
|
---|
114 | . . S I22=$G(DGINR(SUB1,SUB2)) ;408.22 ien
|
---|
115 | . . Q:$G(^DGMT(408.22,+I22,"MT"))=""
|
---|
116 | . . ;
|
---|
117 | . . ;NOTE: The following line of code is designed to throw away all
|
---|
118 | . . ; income/net worth figures when the dependent childs income
|
---|
119 | . . ; is NOT available to the patient. In the next release,
|
---|
120 | . . ; this will need to be changed to set EASARRAY with I21 and
|
---|
121 | . . ; I22 for all children and then screen the reporting of Child
|
---|
122 | . . ; income (not available to patient) in the report output code.
|
---|
123 | . . ; ASSUMING THAT THE NET WORTH IS COLLECTED WHEN IT IS NOT
|
---|
124 | . . ; AVAILABLE TO THE PATIENT. IF THAT IS NOT TRUE, LEAVE CODE.
|
---|
125 | . . ;
|
---|
126 | . . I SUB1="C" Q:(+$P($G(^DGMT(408.22,+I22,0)),"^",12))'=1
|
---|
127 | . . S EASARRAY(408,SUB1,SUB2)=EASARRAY(408,SUB1,SUB2)_U_I21_U_I22
|
---|
128 | Q
|
---|
129 | ;
|
---|