-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMDSCHRGPREPOST.sas
207 lines (189 loc) · 5.23 KB
/
MDSCHRGPREPOST.sas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
/**************************************************************************************************************************/
/* Macro MDSCHRGPREPOST */
/* Last updated: 10/01/2018; */
/* Last Run: 10/20/2018; */
/* This SAS macro creates three datasets: */
/* 1)getmdspre: contains the mds assessment before fall claim */
/* 2)getmdspost: contains three mds assessment following fall claim */
/* 3)hosprecord: contains fall claims for patients who fell during their nh stay */
/**************************************************************************************************************************/
%macro MDSCHRGPREPOST;
data _getmdspre(keep=bene_id get_n_claims_mds)
_getmdspost(keep=bene_id get_n_claims_mds)
hosprecord(keep=
BENE_ID
N_CLAIMS_MDS
SORTDT
AD_DGNS
BSF_AGE
BSF_CNTY_CD
BSF_CREC
BSF_DOB
BSF_DOD
BSF_RTI
BSF_OREC
BSF_RACE
BSF_RFRNC_YR
BSF_SEX
BSF_STATE_CD
BSF_ZIP
CVRLVLDT
D
DGNSCD1-DGNSCD25
DGNSECD1-DGNSECD12
DUAL_ELG_01-DUAL_ELG_12
DUAL_STUS_CD_01-DUAL_STUS_CD_12
DISQUALIFIED
DRG_CD
DXECODE_VALUE
DXINJURY_I
DXINJURY_VALUE
ECODE_I
ECODE_VALUE
ESRD_IND
FALL_IN
H_ADMSNDT
H_AGE_CNT
H_DSCHRGCD
H_DSCHRGDT
H_DSTNTNCD
H_PRVDRNUM
H_LOSCNT
HMO_IND_12
R
SSLSSNF
primary_dx);
set nhout.mds_claims_fallin;
if r="H" then do;
output hosprecord;
*locate previous mds assessment before fall claim;
get_n_claims_mds = n_claims_mds - 1;
output _getmdspre;
*locate three following mds assessment before fall claim;
get_n_claims_mds = n_claims_mds + 1;
output _getmdspost;
get_n_claims_mds = n_claims_mds + 2;
output _getmdspost;
get_n_claims_mds = n_claims_mds + 3;
output _getmdspost;
end;
run;
*get mds assessment before fall claim;
proc sql;
create table getmdspre as select
P.*,
M.*
from _getmdspre as P,
nhout.mds_claims_fallin(drop=
SORTDT
AD_DGNS
BSF_AGE
BSF_CNTY_CD
BSF_CREC
BSF_DOB
BSF_DOD
BSF_OREC
BSF_RACE
BSF_RFRNC_YR
BSF_SEX
BSF_STATE_CD
BSF_ZIP
BSF_RTI
CVRLVLDT
D
DGNSCD1-DGNSCD25
DGNSECD1-DGNSECD12
DUAL_ELG_01-DUAL_ELG_12
DUAL_STUS_CD_01-DUAL_STUS_CD_12
DISQUALIFIED
DRG_CD
DXECODE_VALUE
DXINJURY_I
DXINJURY_VALUE
ECODE_I
ECODE_VALUE
ESRD_IND
FALL_IN
H_ADMSNDT
H_AGE_CNT
H_DSCHRGCD
H_DSCHRGDT
H_DSTNTNCD
H_PRVDRNUM
H_LOSCNT
HMO_IND_12
PREV_A2000
PREV_A2100
PREV_A0310F
PREV_M_TRGT_DT
R
SSLSSNF
primary_dx) as M
where (P.BENE_ID = M.BENE_ID and P.GET_N_CLAIMS_MDS = M.N_CLAIMS_MDS);
quit;
*get three mds assessment following fall claim;
proc sql;
create table getmdspost as select
PO.*,
M.*
from _getmdspost as PO,
nhout.mds_claims_fallin(drop=
SORTDT
AD_DGNS
BSF_AGE
BSF_CNTY_CD
BSF_CREC
BSF_DOB
BSF_DOD
BSF_OREC
BSF_RACE
BSF_RFRNC_YR
BSF_SEX
BSF_STATE_CD
BSF_ZIP
BSF_RTI
CVRLVLDT
D
DGNSCD1-DGNSCD25
DGNSECD1-DGNSECD12
DUAL_ELG_01-DUAL_ELG_12
DUAL_STUS_CD_01-DUAL_STUS_CD_12
DISQUALIFIED
DRG_CD
DXECODE_VALUE
DXINJURY_I
DXINJURY_VALUE
ECODE_I
ECODE_VALUE
ESRD_IND
FALL_IN
H_ADMSNDT
H_AGE_CNT
H_DSCHRGCD
H_DSCHRGDT
H_DSTNTNCD
H_PRVDRNUM
H_LOSCNT
HMO_IND_12
PREV_A2000
PREV_A2100
PREV_A0310F
PREV_M_TRGT_DT
R
SSLSSNF
primary_dx) as M
where (PO.BENE_ID = M.BENE_ID and PO.GET_N_CLAIMS_MDS = M.N_CLAIMS_MDS);
quit;
data nhout.getmdspre;
set getmdspre;
run;
data nhout.getmdspost;
set getmdspost;
run;
*hosprecord contains fall claims for patients who fell during their nh stay;
data nhout.hosprecord;
set hosprecord;
length uniqueid $30.;
uniqueid=bene_id || left(h_admsndt);
run;
%mend MDSCHRGPREPOST;