1 | PXRMOBJ ;SLC/JVS - PXRM OBJECT AND GUI EVAL FOR GEC ;7/14/05 07:34
|
---|
2 | ;;2.0;CLINICAL REMINDERS;**4**;Feb 04, 2005;Build 21
|
---|
3 | ;
|
---|
4 | Q
|
---|
5 | ;
|
---|
6 | STAT(DFN) ;Status Object
|
---|
7 | N STATUS,CNT,I,MISSING,CMARRAY,K
|
---|
8 | S CNT=0
|
---|
9 | D STATUS^PXRMOBJX(DFN,.STATUS,.MISSING)
|
---|
10 | K ^TMP("PXRMOBJSTATUS",$J)
|
---|
11 | S CMARRAY="^TMP(""PXRMOBJSTATUS"",$J)"
|
---|
12 | S I=0 F S I=$O(STATUS(I)) Q:I="" D
|
---|
13 | .S K=0 F S K=$O(STATUS(I,K)) Q:K="" D
|
---|
14 | ..S ^TMP("PXRMOBJSTATUS",$J,$$UP,0)=STATUS(I,K)
|
---|
15 | S ^TMP("PXRMOBJSTATUS",$J,$$UP,0)=""
|
---|
16 | Q "~@"_$NA(@CMARRAY)
|
---|
17 | ;
|
---|
18 | UP() ;
|
---|
19 | S CNT=CNT+1
|
---|
20 | Q CNT
|
---|
21 | ;
|
---|
22 | DEM(DFN) ;
|
---|
23 | Q:DFN=""
|
---|
24 | N X,ARY
|
---|
25 | N ZIP,DATA
|
---|
26 | D GET
|
---|
27 | K ^TMP("PXRMOBJ",$J)
|
---|
28 | S CMARRAY="^TMP(""PXRMOBJ"",$J)"
|
---|
29 | S ^TMP("PXRMOBJ",$J,1,0)=""
|
---|
30 | S ^TMP("PXRMOBJ",$J,2,0)=" Name: "_DATA("NAME")_" "_"Gender: "_DATA("SEX")
|
---|
31 | S ^TMP("PXRMOBJ",$J,3,0)=" DOB: "_DATA("DOB")_" "_"Age:"_DATA("AGE")
|
---|
32 | S ^TMP("PXRMOBJ",$J,4,0)=" Marital Status: "_DATA("MARSTAT")
|
---|
33 | S ^TMP("PXRMOBJ",$J,5,0)=" Address: "_DATA("STRAD1")
|
---|
34 | I DATA("STRAD2")'="" S ^TMP("PXRMOBJ",$J,6,0)=" "_DATA("STRAD2")
|
---|
35 | I DATA("STRAD3")'="" S ^TMP("PXRMOBJ",$J,7,0)=" "_DATA("STRAD3")
|
---|
36 | S ^TMP("PXRMOBJ",$J,8,0)=" "_DATA("CITY")_" "_DATA("STATE")_" "_ZIP
|
---|
37 | S ^TMP("PXRMOBJ",$J,9,0)=" H Phone: "_DATA("PHONER")
|
---|
38 | S ^TMP("PXRMOBJ",$J,10,0)=" W Phone: "_DATA("PHONEW")
|
---|
39 | S ^TMP("PXRMOBJ",$J,11,0)=" Service Connected %: "_DATA("SERCON")
|
---|
40 | S ^TMP("PXRMOBJ",$J,12,0)=" LTC Co-Pay Status: "_DATA("STATUS")
|
---|
41 | I DATA("STATUS DATE")'["<No Test>" D
|
---|
42 | .S ^TMP("PXRMOBJ",$J,13,0)=" LTC Date Tested: "_DATA("STATUS DATE")
|
---|
43 | I $D(DATA("WHY")) D
|
---|
44 | .S ^TMP("PXRMOBJ",$J,13,0)=" Reason: "_DATA("WHY")
|
---|
45 | S ^TMP("PXRMOBJ",$J,14,0)=""
|
---|
46 | ; NODE MUST END WITH ZERO SUBSCRIPT
|
---|
47 | ; @CMARRAY@(CNT,0)=TEXT
|
---|
48 | D EXIT
|
---|
49 | Q "~@"_$NA(@CMARRAY)
|
---|
50 | ;
|
---|
51 | GET ; Get data from file
|
---|
52 | N FIELDS,STATUS,DFN2,STAT
|
---|
53 | ;DBIA #11
|
---|
54 | ;S DFN=75
|
---|
55 | S FIELDS=".01;.02;.03;.033;.05;.111;.1112;.112;.113;.114;.115;.116;.131;.132;.302;.3621;.3622;.3624;.3626;.3627;.3628;.3629;.36295"
|
---|
56 | D GETS^DIQ(2,DFN,FIELDS,"ER","^TMP(""PXRMGECOBJ"",$J)")
|
---|
57 | ;
|
---|
58 | S ARY="^TMP(""PXRMGECOBJ"",$J,2)",DFN2=DFN_","
|
---|
59 | ;
|
---|
60 | S DATA("AGE")=@ARY@(DFN2,"AGE","E")
|
---|
61 | S DATA("AMOUNTAA")=@ARY@(DFN2,"AMOUNT OF AID & ATTENDANCE","E")
|
---|
62 | S DATA("AMOUNTGI")=@ARY@(DFN2,"AMOUNT OF GI INSURANCE","E")
|
---|
63 | S DATA("AMOUNTHO")=@ARY@(DFN2,"AMOUNT OF HOUSEBOUND","E")
|
---|
64 | S DATA("AMOUNTOT")=@ARY@(DFN2,"AMOUNT OF OTHER INCOME","E")
|
---|
65 | S DATA("AMOUNTOR")=@ARY@(DFN2,"AMOUNT OF OTHER RETIREMENT","E")
|
---|
66 | S DATA("AMOUNTSS")=@ARY@(DFN2,"AMOUNT OF SSI","E")
|
---|
67 | S DATA("AMOUNTVA")=@ARY@(DFN2,"AMOUNT OF VA PENSION","E")
|
---|
68 | S DATA("CITY")=@ARY@(DFN2,"CITY","E")
|
---|
69 | S DATA("DOB")=@ARY@(DFN2,"DATE OF BIRTH","E")
|
---|
70 | S DATA("MARSTAT")=@ARY@(DFN2,"MARITAL STATUS","E")
|
---|
71 | S DATA("NAME")=@ARY@(DFN2,"NAME","E")
|
---|
72 | S DATA("PHONER")=@ARY@(DFN2,"PHONE NUMBER [RESIDENCE]","E")
|
---|
73 | S DATA("PHONEW")=@ARY@(DFN2,"PHONE NUMBER [WORK]","E")
|
---|
74 | S DATA("SERCON")=@ARY@(DFN2,"SERVICE CONNECTED PERCENTAGE","E")
|
---|
75 | S DATA("SEX")=@ARY@(DFN2,"SEX","E")
|
---|
76 | S DATA("STATE")=@ARY@(DFN2,"STATE","E")
|
---|
77 | S DATA("STRAD1")=@ARY@(DFN2,"STREET ADDRESS [LINE 1]","E")
|
---|
78 | S DATA("STRAD2")=@ARY@(DFN2,"STREET ADDRESS [LINE 2]","E")
|
---|
79 | S DATA("STRAD3")=@ARY@(DFN2,"STREET ADDRESS [LINE 3]","E")
|
---|
80 | S DATA("TOTAL")=@ARY@(DFN2,"TOTAL ANNUAL VA CHECK AMOUNT","E")
|
---|
81 | S DATA("ZIP")=@ARY@(DFN2,"ZIP CODE","E")
|
---|
82 | S DATA("ZIP4")=@ARY@(DFN2,"ZIP+4","E")
|
---|
83 | S ZIP="" D
|
---|
84 | .I DATA("ZIP4")'="" S ZIP=DATA("ZIP4") Q
|
---|
85 | .I DATA("ZIP")'="" S ZIP=DATA("ZIP")
|
---|
86 | S DATA("SUM")=DATA("AMOUNTAA")+DATA("AMOUNTGI")+DATA("AMOUNTHO")+DATA("AMOUNTOT")+DATA("AMOUNTSS")+DATA("AMOUNTVA")
|
---|
87 | I DATA("SUM")=0 S DATA("SUM")=""
|
---|
88 | ;get LTC CO-PAY TEST status
|
---|
89 | S (DATA("STATUS"),DATA("STATUS DATE"))="<No Test>"
|
---|
90 | S STAT=$$EXMPT(DFN)
|
---|
91 | I STAT=0 S DATA("STATUS")="NON EXEMPT"
|
---|
92 | I STAT>0 S DATA("STATUS")="EXEMPT"
|
---|
93 | I STAT=1 S DATA("WHY")="Veteran has compensable SC disability."
|
---|
94 | I STAT=2 S DATA("WHY")="Veteran is single NSC pensioner."
|
---|
95 | ;DBIA #701
|
---|
96 | S STATUS=$$LST^EASECU(DFN,"",3) D
|
---|
97 | .I STATUS'="" D
|
---|
98 | ..S DATA("STATUS")=$P(STATUS,"^",3)
|
---|
99 | ..S DATA("STATUS DATE")=$$FMTE^XLFDT($P(STATUS,"^",2))
|
---|
100 | Q
|
---|
101 | ;
|
---|
102 | EXMPT(DFN) ;Check if veteran is exempt from LTC co-payments:
|
---|
103 | ; If the veteran has a compensable SC disability, OR
|
---|
104 | ; If the veteran is a single, NSC pensioner not in receipt of A&A
|
---|
105 | ; and HB benefits
|
---|
106 | ; Input -- DFN Patient IEN
|
---|
107 | ; Output -- 0 = veteran not exempt
|
---|
108 | ; 1 = veteran has compensable SC disability
|
---|
109 | ; 2 = veteran is single NSC pensioner (no A&A, HB)
|
---|
110 | N X,Y,ELG
|
---|
111 | S Y=0
|
---|
112 | ; if service connected percentage is greater than 10% OR service
|
---|
113 | ; connected percentage is less than 10% and annual VA
|
---|
114 | ; check amount is greater than 0, then exempt type 1
|
---|
115 | S X=$G(^DPT(DFN,.36)),ELG=$P($G(^DIC(8,+X,0)),U,9)
|
---|
116 | I ELG=1!($P($G(^DPT(DFN,.3)),U,2)'<10) S Y=1 G EXMPTQ
|
---|
117 | I ELG=3,$P($G(^DPT(DFN,.3)),U,2)<10,$P($G(^DPT(DFN,.362)),U,20)>0 S Y=1
|
---|
118 | G EXMPTQ
|
---|
119 | ; if Service Connected quit
|
---|
120 | I $P($G(^DPT(DFN,.3)),U)="Y" G EXMPTQ
|
---|
121 | ; if Marital Status = 'Married' or 'Separated' quit
|
---|
122 | S X=$P($G(^DIC(11,+$P($G(^DPT(DFN,0)),U,5),0)),U,3)
|
---|
123 | I "^M^S^"[("^"_X_"^") G EXMPTQ
|
---|
124 | ; if not receiving VA pension quit
|
---|
125 | S X=$G(^DPT(DFN,.362)) I $P(X,U,14)'="Y" G EXMPTQ
|
---|
126 | ; if receiving A&A or HP benefits quit
|
---|
127 | I $P(X,U,12)="Y"!($P(X,U,13)="Y") G EXMPTQ
|
---|
128 | S Y=2
|
---|
129 | EXMPTQ Q Y
|
---|
130 | ;
|
---|
131 | EXIT ;
|
---|
132 | K ^TMP("PXRMGECOBJ",$J)
|
---|