1 | VAQDBIP7 ;ALB/JRP - CONTINUATION FOR VAQDBIP4: 3/17/2004
|
---|
2 | ;;1.5;PATIENT DATA EXCHANGE;**13,42**;NOV 17, 1993
|
---|
3 | INSURE ;INSURANCE EXTRACTION (ALL NON-EXPIRED)
|
---|
4 | ; DECLARATIONS DONE IN VAQDBIP4
|
---|
5 | ;GET LIST OF FIELDS TO EXTRACT
|
---|
6 | S TMP=$T(INSURE+1^VAQDBII1)
|
---|
7 | S FLDS(1)=$TR($P(TMP,";",4),",",";")
|
---|
8 | S TMP=$T(INSURE+2^VAQDBII1)
|
---|
9 | S FLDS(2)=$TR($P(TMP,";",4),",",";")
|
---|
10 | S TMP=$T(INSURE+3^VAQDBII1)
|
---|
11 | S FLDS(3)=$TR($P(TMP,";",4),",",";")
|
---|
12 | ;ENCRYPT PATIENT NAME (ID FOR INSURANCE COMPANY & GROUP PLAN)
|
---|
13 | S STRING=$P($$PATINFO^VAQUTL1(DFN),U,1)
|
---|
14 | S ENCSTR=STRING
|
---|
15 | I $$NCRPFLD^VAQUTL2(2,.01) X ENCRYPT
|
---|
16 | S NAME=ENCSTR
|
---|
17 | N VAQINS
|
---|
18 | ;DETERMINE IF COVERED BY HEALTH INSURANCE & ENCRYPT
|
---|
19 | ;S TMP=$$INSUR^IBBAPI(DFN,DT,"R",.VAQINS,"1,2,3,4,5,6,8,10,11,12,13,14,18") ; Get all active (not expired) insurance, reimbursable or not
|
---|
20 | S TMP=$$INSUR^IBBAPI(DFN,"","ARB",.VAQINS,"1,2,3,4,5,6,8,10,11,12,13,14,18") ; Get all insurance, expired or not, reimbursable or not
|
---|
21 | S STRING=$S(TMP:"YES",1:"NO")
|
---|
22 | S ENCSTR=STRING
|
---|
23 | I $$NCRPFLD^VAQUTL2(2,.3192) X ENCRYPT
|
---|
24 | ;GET SEQUENCE NUMBER & STORE INFO
|
---|
25 | S SEQ=$$GETSEQ^VAQDBIP(ARRAY,2,.3192)
|
---|
26 | S @ARRAY@("ID",2,.3192,SEQ)=NAME
|
---|
27 | S @ARRAY@("VALUE",2,.3192,SEQ)=ENCSTR
|
---|
28 | ;EXTRACT DATA
|
---|
29 | K ^UTILITY("DIQ1",$J)
|
---|
30 | S TMP=0
|
---|
31 | F S TMP=$O(VAQINS("IBBAPI","INSUR",TMP)) Q:'TMP D
|
---|
32 | .;EXTRACT INSURANCE INFO
|
---|
33 | .;Prior to patch *42, we took the info directly from file 2.
|
---|
34 | .;Now we get it from the IB API call.
|
---|
35 | .;PATIENT (#2) file
|
---|
36 | .;INSURANCE TYPE (#2.312) Subfile API field equivalent
|
---|
37 | .;------------------------------------------ --------------------
|
---|
38 | .;.01 INSURANCE TYPE (ptr to file 36) 1 insurance company name
|
---|
39 | .;.18 GROUP PLAN (ptr to file 355.3) --
|
---|
40 | .;1 SUBSCRIBER ID 14 subscriber ID
|
---|
41 | .;2 *GROUP NUMBER --
|
---|
42 | .;3 INSURANCE EXPIRATION DATE 11 expiration date
|
---|
43 | .;6 WHOSE INSURANCE (v=vet;s=spouse;o=other)12 subscriber relationship
|
---|
44 | .;7 *RENEWAL DATE --
|
---|
45 | .;8 EFFECTIVE DATE OF POLICY 10 effective date
|
---|
46 | .;16 PT. RELATIONSHIP TO INSURED 12 subscriber relationship
|
---|
47 | .;17 NAME OF INSURED 13 subscriber name
|
---|
48 | .S ^UTILITY("DIQ1",$J,2.312,TMP,.01,"E")=$P(VAQINS("IBBAPI","INSUR",TMP,1),U,2)
|
---|
49 | .S ^UTILITY("DIQ1",$J,2.312,TMP,1,"E")=VAQINS("IBBAPI","INSUR",TMP,14)
|
---|
50 | .S ^UTILITY("DIQ1",$J,2.312,TMP,3,"E")=$$FMTE^XLFDT(VAQINS("IBBAPI","INSUR",TMP,11))
|
---|
51 | .I VAQINS("IBBAPI","INSUR",TMP,12)[U S ^UTILITY("DIQ1",$J,2.312,TMP,6,"E")=$P(VAQINS("IBBAPI","INSUR",TMP,12),U,2)
|
---|
52 | .E S ^UTILITY("DIQ1",$J,2.312,TMP,6,"E")=VAQINS("IBBAPI","INSUR",TMP,12)
|
---|
53 | .S ^UTILITY("DIQ1",$J,2.312,TMP,8,"E")=$$FMTE^XLFDT(VAQINS("IBBAPI","INSUR",TMP,10))
|
---|
54 | .S ^UTILITY("DIQ1",$J,2.312,TMP,16,"E")=^UTILITY("DIQ1",$J,2.312,TMP,6,"E")
|
---|
55 | .S ^UTILITY("DIQ1",$J,2.312,TMP,17,"E")=VAQINS("IBBAPI","INSUR",TMP,13)
|
---|
56 | .;EXTRACT INFO ABOUT INSURANCE COMPANY
|
---|
57 | .;Prior to patch *42, we took the info directly from file 36.
|
---|
58 | .;Now we get it from the IB API call.
|
---|
59 | .;INSURANCE COMPANY (#36) file API field equivalent
|
---|
60 | .;------------------------------------------ --------------------
|
---|
61 | .;.01 NAME 1 insurance company name
|
---|
62 | .;.111 STREET ADDRESS [LINE 1] 2 street address
|
---|
63 | .;.112 STREET ADDRESS [LINE 2] -
|
---|
64 | .;.113 STREET ADDRESS [LINE 3] -
|
---|
65 | .;.114 CITY 3 city
|
---|
66 | .;.115 STATE 4 state
|
---|
67 | .;.316 ZIP 5 zip
|
---|
68 | .;.131 PHONE NUMBER 6 phone number
|
---|
69 | .S ^UTILITY("DIQ1",$J,36,TMP,.01,"E")=$P(VAQINS("IBBAPI","INSUR",TMP,1),U,2)
|
---|
70 | .S ^UTILITY("DIQ1",$J,36,TMP,.111,"E")=VAQINS("IBBAPI","INSUR",TMP,2)
|
---|
71 | .S ^UTILITY("DIQ1",$J,36,TMP,.114,"E")=VAQINS("IBBAPI","INSUR",TMP,3)
|
---|
72 | .S ^UTILITY("DIQ1",$J,36,TMP,.115,"E")=$P(VAQINS("IBBAPI","INSUR",TMP,4),U,2)
|
---|
73 | .S ^UTILITY("DIQ1",$J,36,TMP,.316,"E")=VAQINS("IBBAPI","INSUR",TMP,5)
|
---|
74 | .S ^UTILITY("DIQ1",$J,36,TMP,.131,"E")=VAQINS("IBBAPI","INSUR",TMP,6)
|
---|
75 | .;EXTRACT INFO ABOUT GROUP PLAN
|
---|
76 | .;Prior to patch *42, we took the info directly from file 355.3.
|
---|
77 | .;Now we get it from the IB API call.
|
---|
78 | .;GROUP INSURANCE PLAN (#355.3) file API field equivalent
|
---|
79 | .;------------------------------------------ --------------------
|
---|
80 | .;.01 INSURANCE COMPANY (ptr to file 36) 1 insurance company name
|
---|
81 | .;.02 IS THIS A GROUP POLICY? (1=yes/0=no) -
|
---|
82 | .;.03 GROUP NAME 8 policy IEN and name
|
---|
83 | .;.04 GROUP NUMBER 18 policy number
|
---|
84 | .;.1 INDIVIDUAL POLICY PATIENT (ptr to file 2)-
|
---|
85 | .S ^UTILITY("DIQ1",$J,355.3,TMP,.01,"E")=$P(VAQINS("IBBAPI","INSUR",TMP,1),U,2)
|
---|
86 | .S ^UTILITY("DIQ1",$J,355.3,TMP,.03,"E")=$P(VAQINS("IBBAPI","INSUR",TMP,8),U,2)
|
---|
87 | .S ^UTILITY("DIQ1",$J,355.3,TMP,.04,"E")=VAQINS("IBBAPI","INSUR",TMP,18)
|
---|
88 | .;GET SEQUENCE NUMBER FOR INSURANCE
|
---|
89 | .S SEQ=$$GETSEQ^VAQDBIP(ARRAY,2.312,.01)
|
---|
90 | .;ENCRYPT COMPANY NAME
|
---|
91 | .S STRING=$G(^UTILITY("DIQ1",$J,2.312,TMP,.01,"E"))
|
---|
92 | .S ENCSTR=STRING
|
---|
93 | .I $$NCRPFLD^VAQUTL2(2.312,.01) X ENCRYPT
|
---|
94 | .S PRIME=ENCSTR
|
---|
95 | .;STORE COMPANY NAME/ID
|
---|
96 | .S @ARRAY@("ID",2.312,.01,SEQ)=NAME
|
---|
97 | .S @ARRAY@("VALUE",2.312,.01,SEQ)=PRIME
|
---|
98 | .F X=1:1:$L(FLDS(1),";") D
|
---|
99 | ..S Z=$P(FLDS(1),";",X)
|
---|
100 | ..Q:(Z=.01)
|
---|
101 | ..;STORE ID (COMPANY NAME)
|
---|
102 | ..S @ARRAY@("ID",2.312,Z,SEQ)=PRIME
|
---|
103 | ..;ENCRYPT/STORE VALUE
|
---|
104 | ..S STRING=$G(^UTILITY("DIQ1",$J,2.312,TMP,Z,"E"))
|
---|
105 | ..S ENCSTR=STRING
|
---|
106 | ..I $$NCRPFLD^VAQUTL2(2.312,Z) X ENCRYPT
|
---|
107 | ..S @ARRAY@("VALUE",2.312,Z,SEQ)=ENCSTR
|
---|
108 | .;GET SEQUENCE NUMBER FOR COMPANY
|
---|
109 | .S SEQ=$$GETSEQ^VAQDBIP(ARRAY,36,.01)
|
---|
110 | .;ENCRYPT COMPANY NAME
|
---|
111 | .S STRING=$G(^UTILITY("DIQ1",$J,36,TMP,.01,"E"))
|
---|
112 | .S ENCSTR=STRING
|
---|
113 | .I $$NCRPFLD^VAQUTL2(36,.01) X ENCRYPT
|
---|
114 | .S PRIME=ENCSTR
|
---|
115 | .;STORE COMPANY NAME/ID
|
---|
116 | .S @ARRAY@("ID",36,.01,SEQ)=NAME
|
---|
117 | .S @ARRAY@("VALUE",36,.01,SEQ)=PRIME
|
---|
118 | .F X=1:1:$L(FLDS(2),";") D
|
---|
119 | ..S Z=$P(FLDS(2),";",X)
|
---|
120 | ..Q:(Z=.01)
|
---|
121 | ..;STORE ID (COMPANY NAME)
|
---|
122 | ..S @ARRAY@("ID",36,Z,SEQ)=PRIME
|
---|
123 | ..;ENCRYPT/STORE VALUE
|
---|
124 | ..S STRING=$G(^UTILITY("DIQ1",$J,36,TMP,Z,"E"))
|
---|
125 | ..S ENCSTR=STRING
|
---|
126 | ..I $$NCRPFLD^VAQUTL2(36,Z) X ENCRYPT
|
---|
127 | ..S @ARRAY@("VALUE",36,Z,SEQ)=ENCSTR
|
---|
128 | .;GET SEQUENCE NUMBER FOR GROUP PLAN
|
---|
129 | .S SEQ=$$GETSEQ^VAQDBIP(ARRAY,355.3,.01)
|
---|
130 | .;ENCRYPT PLAN NAME
|
---|
131 | .S STRING=$G(^UTILITY("DIQ1",$J,355.3,TMP,.01,"E"))
|
---|
132 | .S ENCSTR=STRING
|
---|
133 | .I $$NCRPFLD^VAQUTL2(355.3,.01) X ENCRYPT
|
---|
134 | .S PRIME=ENCSTR
|
---|
135 | .;STORE PLAN NAME/ID
|
---|
136 | .S @ARRAY@("ID",355.3,.01,SEQ)=NAME
|
---|
137 | .S @ARRAY@("VALUE",355.3,.01,SEQ)=PRIME
|
---|
138 | .F X=1:1:$L(FLDS(3),";") D
|
---|
139 | ..S Z=$P(FLDS(3),";",X)
|
---|
140 | ..Q:(Z=.01)
|
---|
141 | ..;STORE ID (PLAN NAME)
|
---|
142 | ..S @ARRAY@("ID",355.3,Z,SEQ)=PRIME
|
---|
143 | ..;ENCRYPT/STORE VALUE
|
---|
144 | ..S STRING=$G(^UTILITY("DIQ1",$J,355.3,TMP,Z,"E"))
|
---|
145 | ..S ENCSTR=STRING
|
---|
146 | ..I $$NCRPFLD^VAQUTL2(355.3,Z) X ENCRYPT
|
---|
147 | ..S @ARRAY@("VALUE",355.3,Z,SEQ)=ENCSTR
|
---|
148 | .K ^UTILITY("DIQ1",$J)
|
---|
149 | Q
|
---|