├── .gitignore ├── Dockerfile ├── FIDDLE.R ├── FIDDLE ├── config-default.yaml ├── config.py ├── helpers.py ├── run.py └── steps.py ├── LICENSE ├── README.md ├── requirements.txt └── tests ├── icd_test ├── Run.ipynb └── input │ ├── config-0.yaml │ ├── config-1.yaml │ ├── config-2.yaml │ ├── data.csv │ ├── icd_test_data.csv │ └── pop.csv ├── icd_time_test ├── Run.ipynb └── input │ ├── config-0.yaml │ ├── config-1.yaml │ ├── config-2.yaml │ ├── data.csv │ ├── icd_test_data.csv │ └── pop.csv ├── large_test ├── Run.ipynb └── input │ ├── config-1-parallel.yaml │ ├── config-2-parallel.yaml │ ├── config-3-parallel.yaml │ ├── data.csv │ └── pop.csv └── small_test ├── Run-docker.ipynb ├── Run.ipynb ├── input ├── X_all.discretization.json ├── config-1.yaml ├── config-2-bins.yaml ├── config-2.yaml ├── config-3.yaml ├── data.csv ├── pop.csv └── s_all.discretization.json └── reference-1 ├── df_S.csv └── df_X.csv /.gitignore: -------------------------------------------------------------------------------- 1 | data/* 2 | **output**/ 3 | .ipynb_checkpoints 4 | *.png 5 | 6 | # Byte-compiled / optimized / DLL files 7 | __pycache__/ 8 | *.py[cod] 9 | 10 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.8 2 | WORKDIR /workdir 3 | 4 | COPY requirements.txt . 5 | RUN pip install -r requirements.txt 6 | 7 | COPY FIDDLE/ ./FIDDLE/ 8 | -------------------------------------------------------------------------------- /FIDDLE.R: -------------------------------------------------------------------------------- 1 | library(argparse) 2 | parser <- ArgumentParser(description=' ') 3 | parser$add_argument('--data_path', type="character") 4 | parser$add_argument('--population', type="character") 5 | parser$add_argument('--T_', type="double") 6 | parser$add_argument('--dt', type="double") 7 | parser$add_argument('--theta_1', type="double", default='0.001') 8 | parser$add_argument('--theta_2', type="double", default='0.001') 9 | parser$add_argument('--theta_freq', type="double", default='1.0') 10 | parser$add_argument('--stats_functions', nargs='+', type="character", default='min max mean' ) 11 | parser$add_argument('--binarize', type="integer", default='1', nargs='?', const=TRUE) 12 | args = parser$parse_args() 13 | 14 | cmd = paste0('python -m FIDDLE.run --data_path=', args$data_path, ' --population=', args$population, ' --T=', args$T_, ' --dt=' , args$dt, ' --theta_1=', args$theta_1, ' --theta_2=', args$theta_2, ' --theta_freq=', args$theta_freq, ' --stats_functions ', args$stats_functions) 15 | 16 | system(cmd) 17 | -------------------------------------------------------------------------------- /FIDDLE/config-default.yaml: -------------------------------------------------------------------------------- 1 | # Customize table headers 2 | column_names: 3 | ID: ID 4 | t: t 5 | var_name: variable_name 6 | var_value: variable_value 7 | 8 | parallel: yes 9 | n_jobs: 72 10 | batch_size: 100 11 | 12 | hierarchical_sep: ":" 13 | hierarchical_levels: [0, 1, 2] 14 | 15 | discretize: yes 16 | use_ordinal_encoding: no 17 | discretization: ~ 18 | 19 | value_types: 20 | # enter the feature type that you would like to override in the following format: 21 | FIRST_WARDID: Categorical 22 | MedA_AMOUNT: Numeric 23 | MedA_ROUTE: Categorical 24 | ICD9_CODE: hierarchical_ICD9 25 | -------------------------------------------------------------------------------- /FIDDLE/config.py: -------------------------------------------------------------------------------- 1 | import os, yaml 2 | import copy 3 | 4 | with open(os.path.join(os.path.dirname(__file__), 'config-default.yaml')) as f: 5 | config_default = yaml.safe_load(f) 6 | 7 | def load_config(fname): 8 | config = copy.deepcopy(config_default) 9 | if fname: 10 | config_custom = yaml.safe_load(open(fname, 'r')) 11 | for k, v in config_custom.items(): 12 | config[k] = v 13 | return config 14 | 15 | 16 | ID_col = 'ID' 17 | t_col = 't' 18 | var_col = 'variable_name' 19 | val_col = 'variable_value' 20 | 21 | if 'column_names' in config_default: 22 | ID_col = config_default['column_names'].get('ID', 'ID') 23 | t_col = config_default['column_names'].get('t', 't') 24 | var_col = config_default['column_names'].get('var_name', 'variable_name') 25 | val_col = config_default['column_names'].get('var_value', 'variable_value') 26 | else: 27 | pass 28 | -------------------------------------------------------------------------------- /FIDDLE/helpers.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | import numpy as np 3 | import scipy 4 | import sparse 5 | from collections import defaultdict 6 | from tqdm import tqdm 7 | 8 | from sklearn.feature_selection import VarianceThreshold 9 | import sklearn 10 | from collections import defaultdict 11 | 12 | try: 13 | from .config import * 14 | except: 15 | from config import * 16 | 17 | def print_header(*content, char='='): 18 | print() 19 | print(char * 80) 20 | print(*content) 21 | print(char * 80, flush=True) 22 | 23 | 24 | ###### 25 | # Hierarchical value type 26 | # - Currently supports parsing/mapping ICD9, ICD10; will add support for CPT, DRG 27 | # - Requires the user to specify which level(s) of the hierarchy to encode 28 | # - Each hierachical variable is mapped to multiple rows with string values after Pre-filter 29 | # as the first step of Transform, and will be treated as categorical variables 30 | ###### 31 | from icd9cms import icd9 32 | import icd10 33 | 34 | def map_icd_hierarchy(s, version=9): 35 | s = str(s) 36 | code9 = icd9.search(s) 37 | code10 = icd10.find(s) 38 | if code9 is None and code10 is None: 39 | raise Exception("Invalid ICD code", s) 40 | 41 | if version == 9: 42 | if code9 is not None: 43 | return list(reversed([code9.alt_code] + code9.ancestors())) 44 | else: 45 | raise Exception("Invalid ICD version", s) 46 | elif version == 10: 47 | if code10 is not None: 48 | return [code10.chapter, code10.block, code10.code[:3], code10.code] 49 | else: 50 | try: 51 | # Attempt to convert from version 9 to 10 52 | s_ = convert_icd_9_to_10(code9.alt_code) 53 | code = icd10.find(s_) 54 | if code is None: 55 | # Fall back to version 9 56 | return list(reversed([code9.alt_code] + code9.ancestors())) 57 | else: 58 | return [code.chapter, code.block, code.code[:3], code.code] 59 | except: 60 | warnings.warn('Conversion failed: ' + str(s)) 61 | return list(reversed([code9.alt_code] + code9.ancestors())) 62 | # raise Exception('Conversion error: ' + str(s)) 63 | else: 64 | raise Exception("Invalid ICD version", s) 65 | 66 | import warnings 67 | _df_icd_mapping = pd.read_csv('https://raw.githubusercontent.com/bhanratt/ICD9CMtoICD10CM/master/icd9to10dictionary.txt', sep='|', header=None, names=['ICD9', 'ICD10', 'Description']) 68 | _icd_mapping_9_to_10 = dict(_df_icd_mapping[['ICD9', 'ICD10']].values) 69 | def convert_icd_9_to_10(s): 70 | try: 71 | return str( 72 | _icd_mapping_9_to_10.get(s) or 73 | _icd_mapping_9_to_10.get(icd9.search(s).parent.alt_code) or 74 | _icd_mapping_9_to_10.get(icd9.search(s).parent.parent.alt_code) 75 | ) 76 | except: 77 | warnings.warn('Conversion failed: ' + str(s)) 78 | return s 79 | 80 | ###### 81 | # Transform 82 | ###### 83 | 84 | def get_unique_variables(df): 85 | return sorted(df[var_col].unique()) 86 | 87 | def get_frequent_numeric_variables(df_time_series, variables, threshold, args): 88 | output_dir = args.output_dir 89 | df_population = args.df_population 90 | T, dt = args.T, args.dt 91 | 92 | df_types = pd.read_csv(output_dir + 'value_types.csv').set_index(var_col)['value_type'] 93 | numeric_vars = [col for col in variables if df_types.get(col) == 'Numeric'] 94 | df_num_counts = calculate_variable_counts(df_time_series, df_population)[numeric_vars] #gets the count of each variable for each patient. 95 | variables_num_freq = df_num_counts.columns[df_num_counts.mean() >= threshold * np.floor(T/dt)] 96 | return variables_num_freq 97 | 98 | def calculate_variable_counts(df_data, df_population): 99 | """ 100 | df_data in raw format with four columns 101 | """ 102 | df = df_data.copy() 103 | df['count'] = 1 104 | df_count = df[[ID_col, var_col, 'count']].groupby([ID_col, var_col]).count().unstack(1, fill_value=0) 105 | df_count.columns = df_count.columns.droplevel() 106 | df_count = df_count.reindex(df_population.index, fill_value=0) 107 | ## Slower version 108 | # df_count = df[['ID', 'variable_name', 'count']].pivot_table(index='ID', columns='variable_name', aggfunc='count', fill_value=0) 109 | return df_count 110 | 111 | def select_dtype(df, dtype, dtypes=None): 112 | if dtypes is None: 113 | ## Need to assert dtypes are not all objects 114 | assert not all(df.dtypes == 'object') 115 | if dtype == 'mask': 116 | return df.select_dtypes('bool') 117 | elif dtype == '~mask': 118 | return df.select_dtypes(exclude='bool') 119 | else: 120 | ## Need to assert df.columns and dtypes.index are the same 121 | if dtype == 'mask': 122 | return df.loc[:, (dtypes == 'bool')].astype(bool) 123 | elif dtype == '~mask': 124 | return df.loc[:, (dtypes != 'bool')] 125 | else: 126 | assert False 127 | return 128 | 129 | 130 | def compute_bin_edges(x, q): 131 | # ignore strings when performing qcut 132 | z = x.copy() 133 | z = z.apply(make_float) 134 | m = z.apply(np.isreal) 135 | bin_edges = None 136 | if z.loc[m].dropna().nunique() > 1: # when more than one numeric values 137 | if z.loc[m].dropna().nunique() == 2: 138 | pass 139 | else: 140 | bin_edges = list(np.unique(np.nanpercentile(z.loc[m].astype(float).values, np.linspace(0, 100, q+1)))) 141 | return (x.name, bin_edges) 142 | 143 | def smart_qcut_dummify_parallel(first_arg): 144 | return smart_qcut_dummify(*first_arg) 145 | 146 | def smart_qcut_dummify(x, bin_edges, use_ordinal_encoding=False): 147 | # ignore strings when performing qcut 148 | z = x.copy() 149 | z = z.apply(make_float) 150 | m = z.apply(np.isreal) 151 | if z.loc[m].dropna().nunique() > 1: # when more than one unique numeric values 152 | if z.loc[m].dropna().nunique() == 2: # when only two unique numeric values 153 | out = pd.get_dummies(x, prefix=x.name) 154 | else: 155 | if use_ordinal_encoding: 156 | col_names = ['{}>{}'.format(z.name, bin_edge) for bin_edge in bin_edges[:-1]] 157 | out = pd.DataFrame(0, z.index, col_names) 158 | for i, bin_edge in enumerate(bin_edges[:-1]): 159 | out.loc[m, col_names[i]] = (z.loc[m] > bin_edge).astype(int) 160 | out = pd.concat([out, pd.get_dummies(z.where(~m, np.nan), prefix=z.name)], axis=1) 161 | else: 162 | # bin_edges = np.nanpercentile(z.loc[m].astype(float).to_numpy(), [0, 20, 40, 60, 80, 100]) 163 | # bin_edges = np.unique(bin_edges) 164 | # z.loc[m] = pd.cut(z.loc[m].to_numpy(), bin_edges, duplicates='drop') 165 | z.loc[m] = pd.cut(z.loc[m].astype(float).to_numpy(), bin_edges, duplicates='drop', include_lowest=True) 166 | out = pd.get_dummies(z, prefix=z.name) 167 | else: 168 | out = pd.get_dummies(x, prefix=x.name) 169 | return out 170 | 171 | def smart_dummify_impute(x): 172 | x = x.copy() 173 | x = x.apply(make_float) 174 | m = x.apply(np.isreal) 175 | if x.loc[m].dropna().nunique() == 0: # all string values 176 | return pd.get_dummies(x, prefix=x.name, prefix_sep=':') 177 | else: 178 | x = pd.DataFrame(x) 179 | x = x.fillna(x.mean()) # simple mean imputation 180 | return x 181 | 182 | def make_float(v): 183 | if v is None: 184 | return np.nan 185 | try: 186 | return float(v) 187 | except ValueError: 188 | return v 189 | assert False 190 | 191 | def is_numeric(v): 192 | if v is None: 193 | return np.nan 194 | try: 195 | float(v) 196 | return True 197 | except ValueError: 198 | return False 199 | assert False 200 | 201 | 202 | ###### 203 | # Time-series internals 204 | ###### 205 | 206 | def _get_time_bins(T, dt): 207 | # Defines the boundaries of time bins [0, dt, 2*dt, ..., k*dt] 208 | # where k*dt <= T and (k+1)*dt > T 209 | return np.arange(0, dt*(np.floor(T/dt)+1), dt) 210 | 211 | def _get_time_bins_index(T, dt): 212 | return pd.cut([], _get_time_bins(T, dt), right=False).categories 213 | 214 | def pivot_event_table(df): 215 | df = df.copy() 216 | 217 | # Handle cases where the same variable is recorded multiple times with the same timestamp 218 | # Adjust the timestamps by epsilon so that all timestamps are unique 219 | eps = 1e-6 220 | m_dups = df.duplicated([t_col, var_col], keep=False) 221 | df_dups = df[m_dups].copy() 222 | for v, df_v in df_dups.groupby(var_col): 223 | df_dups.loc[df_v.index, t_col] += eps * np.arange(len(df_v)) 224 | 225 | df = pd.concat([df[~m_dups], df_dups]) 226 | assert not df.duplicated([t_col, var_col], keep=False).any() 227 | 228 | return pd.pivot_table(df, val_col, t_col, var_col, 'first') 229 | 230 | def presence_mask(df_i, variables, T, dt): 231 | # for each itemid 232 | # for each time bin, whether there is real measurement 233 | if len(df_i) == 0: 234 | mask_i = pd.DataFrame().reindex(index=_get_time_bins_index(T, dt), columns=list(variables), fill_value=False) 235 | else: 236 | mask_i = df_i.groupby( 237 | pd.cut(df_i.index, _get_time_bins(T, dt), right=False) 238 | ).apply(lambda x: x.notnull().any()) 239 | mask_i = mask_i.reindex(columns=variables, fill_value=False) 240 | 241 | mask_i.columns = [str(col) + '_mask' for col in mask_i.columns] 242 | return mask_i 243 | 244 | def get_delta_time(mask_i): 245 | a = 1 - mask_i 246 | b = a.cumsum() 247 | c = mask_i.cumsum() 248 | dt_i = b - b.where(~a.astype(bool)).ffill().fillna(0).astype(int) 249 | 250 | # the delta time for itemid's for which there are no measurements must be 0 251 | # or where there's no previous measurement and no imputation 252 | dt_i[c == 0] = 0 253 | 254 | dt_i.columns = [str(col).replace('_mask', '_delta_time') for col in dt_i.columns] 255 | return dt_i 256 | 257 | def impute_ffill(df, columns, T, dt, mask=None): 258 | if len(df) == 0: 259 | return pd.DataFrame().reindex(columns=columns, fill_value=np.nan) 260 | 261 | if mask is None: 262 | mask = presence_mask(df, columns) 263 | 264 | # Calculate time bins, sorted by time 265 | df_bin = df.copy() 266 | df_bin.index = pd.cut(df_bin.index, _get_time_bins(T, dt), right=False) 267 | 268 | # Compute the values used for imputation 269 | ## Collapse duplicate time bins, keeping latest values for each time bin 270 | df_imp = df_bin.ffill() 271 | df_imp = df_imp[~df_imp.index.duplicated(keep='last')] 272 | ## Reindex to make sure every time bin exists 273 | df_imp = df_imp.reindex(_get_time_bins_index(T, dt)) 274 | ## Forward fill the missing time bins 275 | df_imp = df_imp.ffill() 276 | 277 | df_ff = df_imp 278 | df_ff[mask.to_numpy()] = np.nan 279 | df_ff.index = df_ff.index.mid ## Imputed values lie at the middle of a time bin 280 | df_ff = pd.concat([df, df_ff]).dropna(how='all') 281 | df_ff.sort_index(inplace=True) 282 | return df_ff 283 | 284 | def most_recent_values(df_i, columns, T, dt): 285 | df_bin = df_i.copy() 286 | df_bin.index = pd.cut(df_bin.index, _get_time_bins(T, dt), right=False) 287 | df_v = df_bin.groupby(level=0).last() 288 | df_v.columns = [str(col) + '_value' for col in df_v.columns] 289 | df_v = df_v.reindex(_get_time_bins_index(T, dt)) 290 | return df_v 291 | 292 | def summary_statistics(df_i, columns, stats_functions, T, dt): 293 | # e.g. stats_functions=['mean', 'min', 'max'] 294 | if len(columns) == 0: 295 | return pd.DataFrame().reindex(_get_time_bins_index(T, dt)) 296 | else: 297 | # Encode statistics for numeric, frequent variables 298 | df_numeric = df_i[columns] 299 | df = df_numeric.copy().astype(float) 300 | df.index = pd.cut(df.index, _get_time_bins(T, dt), right=False) 301 | df_v = df.reset_index().groupby('index').agg(stats_functions) 302 | df_v.columns = list(map('_'.join, df_v.columns.values)) 303 | df_v = df_v.reindex(_get_time_bins_index(T, dt)) 304 | return df_v 305 | 306 | def check_imputed_output(df_v): 307 | # Check imputation is successful 308 | ## If column is all null -> OK 309 | ## If column is all non-null -> OK 310 | ## If column has some null -> should only occur at the beginning 311 | not_null = df_v.notnull().all() 312 | all_null = df_v.isnull().all() 313 | cols_to_check = list(df_v.columns[~(not_null | all_null)]) 314 | 315 | for col in cols_to_check: 316 | x = df_v[col].to_numpy() 317 | last_null_idx = np.argmax(np.where(pd.isnull(x))) # Find index of last nan 318 | assert pd.isnull(x[:(last_null_idx+1)]).all() # all values up to here are nan 319 | assert (~pd.isnull(x[(last_null_idx+1):])).all() # all values after here are not nan 320 | return 321 | 322 | 323 | ###### 324 | # Post-filter: feature selection classes 325 | ###### 326 | try: 327 | from sklearn.feature_selection._base import SelectorMixin 328 | except: 329 | from sklearn.feature_selection.base import SelectorMixin 330 | 331 | class FrequencyThreshold_temporal( 332 | sklearn.base.BaseEstimator, 333 | SelectorMixin 334 | ): 335 | def __init__(self, threshold=0., L=None): 336 | assert L is not None 337 | self.threshold = threshold 338 | self.L = L 339 | 340 | def fit(self, X, y=None): 341 | # Reshape to be 3-dimensional array 342 | NL, D = X.shape 343 | X = X.reshape((int(NL/self.L), self.L, D)) 344 | 345 | # Collapse time dimension, generating NxD matrix 346 | X_notalways0 = X.any(axis=1) 347 | X_notalways1 = (1-X).any(axis=1) 348 | 349 | self.freqs_notalways0 = np.mean(X_notalways0, axis=0) 350 | self.freqs_notalways1 = np.mean(X_notalways1, axis=0) 351 | return self 352 | 353 | def _get_support_mask(self): 354 | mask = np.logical_and( 355 | self.freqs_notalways0 > self.threshold, 356 | self.freqs_notalways1 > self.threshold, 357 | ) 358 | if hasattr(mask, "toarray"): 359 | mask = mask.toarray() 360 | if hasattr(mask, "todense"): 361 | mask = mask.todense() 362 | return mask 363 | 364 | # Keep only first feature in a pairwise perfectly correlated feature group 365 | class CorrelationSelector( 366 | sklearn.base.BaseEstimator, 367 | SelectorMixin, 368 | ): 369 | def __init__(self): 370 | super().__init__() 371 | 372 | def fit(self, X, y=None): 373 | if hasattr(X, "to_scipy_sparse"): # sparse matrix 374 | X = X.to_scipy_sparse() 375 | 376 | # Calculate correlation matrix 377 | # Keep only lower triangular matrix 378 | if scipy.sparse.issparse(X): 379 | self.corr_matrix = sparse_corrcoef(X.T) 380 | else: 381 | self.corr_matrix = np.corrcoef(X.T) 382 | np.fill_diagonal(self.corr_matrix, 0) 383 | self.corr_matrix *= np.tri(*self.corr_matrix.shape) 384 | 385 | # get absolute value 386 | corr = abs(self.corr_matrix) 387 | 388 | # coefficient close to 1 means perfectly correlated 389 | # Compare each feature to previous feature (smaller index) to see if they have correlation of 1 390 | to_drop = np.isclose(corr, 1.0).sum(axis=1).astype(bool) 391 | self.to_keep = ~to_drop 392 | 393 | return self 394 | 395 | def _get_support_mask(self): 396 | return self.to_keep 397 | 398 | def get_feature_aliases(self, feature_names): 399 | feature_names = [str(n) for n in feature_names] 400 | corr_matrix = self.corr_matrix 401 | flags = np.isclose(abs(corr_matrix), 1.0) 402 | alias_map = defaultdict(list) 403 | for i in range(1, corr_matrix.shape[0]): 404 | for j in range(i): 405 | if flags[i,j]: 406 | if np.isclose(corr_matrix[i,j], 1.0): 407 | alias_map[feature_names[j]].append(feature_names[i]) 408 | elif np.isclose(corr_matrix[i,j], -1.0): 409 | alias_map[feature_names[j]].append('~{' + feature_names[i] + '}') 410 | else: 411 | assert False 412 | 413 | # Only save alias for first in the list 414 | break 415 | return dict(alias_map) 416 | 417 | # https://stackoverflow.com/questions/19231268/correlation-coefficients-for-sparse-matrix-in-python 418 | def sparse_corrcoef(A, B=None): 419 | if B is not None: 420 | A = sparse.vstack((A, B), format='csr') 421 | 422 | A = A.astype(np.float64) 423 | n = A.shape[1] 424 | 425 | # Compute the covariance matrix 426 | rowsum = A.sum(1) 427 | centering = rowsum.dot(rowsum.T.conjugate()) / n 428 | C = (A.dot(A.T.conjugate()) - centering) / (n - 1) 429 | 430 | # The correlation coefficients are given by 431 | # C_{i,j} / sqrt(C_{i} * C_{j}) 432 | d = np.diag(C) 433 | coeffs = C / np.sqrt(np.outer(d, d)) 434 | 435 | return np.array(coeffs) 436 | -------------------------------------------------------------------------------- /FIDDLE/run.py: -------------------------------------------------------------------------------- 1 | import pandas as pd 2 | import numpy as np 3 | import pickle 4 | import time 5 | import os 6 | import yaml 7 | import json 8 | import argparse 9 | 10 | import FIDDLE.config as FIDDLE_config 11 | import FIDDLE.steps as FIDDLE_steps 12 | 13 | def main(): 14 | ###### 15 | # User arguments 16 | ###### 17 | parser = argparse.ArgumentParser(description='') 18 | 19 | # Files 20 | parser.add_argument('--data_fname', type=str, required=True) 21 | parser.add_argument('--population_fname',type=str, required=True) 22 | parser.add_argument('--output_dir', type=str, required=True) 23 | parser.add_argument('--config_fname', type=str, required=False) 24 | 25 | # Settings 26 | parser.add_argument('--T', type=float, required=True) 27 | parser.add_argument('--dt', type=float, required=True) 28 | parser.add_argument('--theta_1', type=float, default=0.001) 29 | parser.add_argument('--theta_2', type=float, default=0.001) 30 | parser.add_argument('--theta_freq', type=float, default=1.0) 31 | parser.add_argument('--stats_functions', nargs='+', default=['min', 'max', 'mean']) 32 | 33 | # Debug 34 | parser.add_argument('--N', type=int, required=False) 35 | parser.add_argument('--Ds', nargs='+', type=int) 36 | parser.add_argument('--no_prefilter', dest='prefilter', action='store_false') 37 | parser.add_argument('--no_postfilter', dest='postfilter', action='store_false') 38 | parser.set_defaults(prefilter=True, postfilter=True) 39 | 40 | args = parser.parse_args() 41 | 42 | 43 | ###### 44 | # Load files 45 | ###### 46 | 47 | data_fname = args.data_fname 48 | if data_fname.endswith('.p' or '.pickle'): 49 | df_data = pd.read_pickle(data_fname) 50 | elif data_fname.endswith('.csv'): 51 | df_data = pd.read_csv(data_fname) 52 | else: 53 | raise NotImplementedError 54 | 55 | df_population = args.df_population = pd.read_csv(args.population_fname).set_index('ID').sort_index() 56 | config = FIDDLE_config.load_config(args.config_fname) 57 | 58 | 59 | ## Arguments settings 60 | output_dir = args.output_dir 61 | if not output_dir.endswith('/'): 62 | output_dir += '/' 63 | 64 | T = args.T 65 | dt = args.dt 66 | theta_1 = args.theta_1 67 | theta_2 = args.theta_2 68 | theta_freq = args.theta_freq 69 | stats_functions = args.stats_functions 70 | 71 | args.hierarchical_sep = config.get('hierarchical_sep', ':') 72 | args.hierarchical_levels = config.get('hierarchical_levels', []) 73 | args.value_type_override = config.get('value_types', {}) 74 | 75 | args.discretize = config.get('discretize', True) 76 | args.use_ordinal_encoding = config.get('use_ordinal_encoding', False) 77 | 78 | args.S_discretization_bins = None 79 | args.X_discretization_bins = None 80 | S_discretization_bins = config.get('S_discretization_bins') 81 | X_discretization_bins = config.get('X_discretization_bins') 82 | if S_discretization_bins: 83 | args.S_discretization_bins = json.load(open(S_discretization_bins, 'r')) 84 | if X_discretization_bins: 85 | args.X_discretization_bins = json.load(open(X_discretization_bins, 'r')) 86 | 87 | args.parallel = config.get('parallel', False) 88 | args.n_jobs = config.get('n_jobs', 1) 89 | args.batch_size = config.get('batch_size', 100) 90 | 91 | N = args.N = args.N or len(df_population) 92 | df_population = df_population.iloc[:args.N] 93 | L = args.L = int(np.floor(T/dt)) 94 | 95 | print('Input:') 96 | print(' Data :', args.data_fname) 97 | print(' Population:', args.population_fname) 98 | print(' Config :', args.config_fname) 99 | print() 100 | print('Output directory:', args.output_dir) 101 | print() 102 | print('Input arguments:') 103 | print(' {:<6} = {}'.format('T', T)) 104 | print(' {:<6} = {}'.format('dt', dt)) 105 | print(' {:<6} = {}'.format('\u03B8\u2081', theta_1)) 106 | print(' {:<6} = {}'.format('\u03B8\u2082', theta_2)) 107 | print(' {:<6} = {}'.format('\u03B8_freq', theta_freq)) 108 | print(' {:<6} = {} {}'.format('k', len(stats_functions), stats_functions)) 109 | print() 110 | print('{} = {}'.format('discretize', {False: 'no', True: 'yes'}[args.discretize])) 111 | if args.discretize: 112 | print(' S discretization bins:', S_discretization_bins or 'to be computed from data') 113 | print(' X discretization bins:', X_discretization_bins or 'to be computed from data') 114 | print() 115 | print('N = {}'.format(N)) 116 | print('L = {}'.format(L)) 117 | print('', flush=True) 118 | 119 | 120 | ###### 121 | # Main 122 | ###### 123 | df_population[[]].to_csv(output_dir + 'IDs.csv') 124 | 125 | if args.prefilter: 126 | FIDDLE_steps.print_header('1) Pre-filter') 127 | df_data = FIDDLE_steps.pre_filter(df_data, theta_1, df_population, args) 128 | df_data.to_csv(output_dir + 'pre-filtered.csv', index=False) 129 | 130 | FIDDLE_steps.print_header('2) Transform; 3) Post-filter') 131 | df_data, df_types = FIDDLE_steps.parse_variable_data_type(df_data, args) 132 | df_time_invariant, df_time_series = FIDDLE_steps.split_by_timestamp_type(df_data) 133 | 134 | # Process time-invariant data 135 | S, S_feature_names, S_feature_aliases = FIDDLE_steps.process_time_invariant(df_time_invariant, args) 136 | 137 | # Process time-dependent data 138 | X, X_feature_names, X_feature_aliases = FIDDLE_steps.process_time_dependent(df_time_series, args) 139 | 140 | if __name__ == '__main__': 141 | main() 142 | -------------------------------------------------------------------------------- /FIDDLE/steps.py: -------------------------------------------------------------------------------- 1 | """ 2 | FIDDLE Preprocessing steps 3 | 1. Pre-filter 4 | 2. Transform 5 | 3. Post-filter 6 | """ 7 | try: 8 | from .helpers import * 9 | except: 10 | from helpers import * 11 | import time 12 | import json 13 | import joblib 14 | import multiprocessing 15 | 16 | def pre_filter(df, threshold, df_population, args): 17 | T = int(args.T) 18 | theta_1 = args.theta_1 19 | df_population = args.df_population 20 | 21 | # Remove rows not in population 22 | print('Remove rows not in population') 23 | df = df[df['ID'].isin(df_population.index)] 24 | 25 | # Remove rows with t outside of [0, T) 26 | print('Remove rows with t outside of [0, {}]'.format(T)) 27 | df = df[pd.isnull(df[t_col]) | ((0 <= df[t_col]) & (df[t_col] < T))] 28 | 29 | # Data table should not contain duplicate rows with any numerical values 30 | # Check for inconsistencies 31 | var_names = [v for v, ty in args.value_type_override.items() if 'hierarchical' in ty.lower() or 'categorical' in ty.lower()] 32 | df_tmp = df[~df[var_col].isin(var_names)] 33 | dups = df_tmp.duplicated(subset=[ID_col, t_col, var_col], keep=False) 34 | df_dups = df_tmp[dups] 35 | if any(dups) and any(is_numeric(v) for v in df_dups[val_col] if not pd.isnull(v)): 36 | print(df_dups.head()) 37 | raise Exception('Inconsistent numerical values recorded') 38 | 39 | # Remove variables that occur too rarely as defined by the threshold 40 | print('Remove rare variables (<= {})'.format(threshold)) 41 | 42 | ## Calculate overall occurrence rate of each variable based on IDs 43 | df_count = calculate_variable_counts(df, df_population) # (N x |var|) table of counts 44 | df_bool = df_count.astype(bool) # convert counts to boolean 45 | 46 | ## Keep variables that are recorded for more than threshold fraction of IDs 47 | variables_keep = df_bool.columns[df_bool.mean(axis=0) > threshold] 48 | df_out = df[df[var_col].isin(variables_keep)] 49 | assert set(variables_keep) == set(df_out[var_col].unique()) 50 | 51 | variables = sorted(df_bool.columns) 52 | variables_remove = sorted(set(variables) - set(variables_keep)) 53 | print('Total variables :', len(variables)) 54 | print('Rare variables :', len(variables_remove)) 55 | print('Remaining variables :', len(variables_keep)) 56 | print('# rows (original) :', len(df)) 57 | print('# rows (filtered) :', len(df_out)) 58 | return df_out 59 | 60 | 61 | def parse_variable_data_type(df_data, args): 62 | # 1. parse hierarchical values (e.g. ICD codes) into strings 63 | # 2. automatically detect value types, respecting user override, and set dtypes in DataFrames 64 | # 3. pre-map duplicated non-numerical values into multiple categorical variables 65 | output_dir = args.output_dir 66 | df = df_data 67 | assert val_col in df.columns 68 | print_header('*) Detecting and parsing value types', char='-') 69 | 70 | ## 1. Hierarchical values 71 | var_names = [v for v, ty in args.value_type_override.items() if 'hierarchical' in ty.lower()] 72 | if len(var_names) == 0: # No hierarchical values 73 | pass 74 | else: 75 | print('Parsing hierarchical values') 76 | for var_name in var_names: 77 | var_type = args.value_type_override[var_name] 78 | df_var = df.loc[df[var_col] == var_name, val_col] 79 | if var_type.lower() == 'hierarchical_icd': 80 | # need to figure out ICD version 81 | raise NotImplementedError 82 | elif var_type.lower() == 'hierarchical_icd9': 83 | df_var = df_var.apply(lambda s: map_icd_hierarchy(s, version=9)) 84 | elif var_type.lower() == 'hierarchical_icd10': 85 | df_var = df_var.apply(lambda s: map_icd_hierarchy(s, version=10)) 86 | else: 87 | df_var = df_var.apply(lambda s: s.split(hierarchical_sep)) 88 | 89 | # Assign mapped values back to original df 90 | df.loc[df[var_col] == var_name, val_col] = df_var 91 | 92 | # Only encode selected levels 93 | df_nonhier = df[~df[var_col].isin(var_names)] 94 | df_hier = df[df[var_col].isin(var_names)] 95 | df_hier_levels = [] 96 | for hier_level in args.hierarchical_levels: 97 | # encode level if available 98 | df_hier_level = df_hier.copy() 99 | df_hier_level[val_col] = df_hier_level[val_col].apply(lambda h: h[min(hier_level, len(h))]) 100 | df_hier_levels.append(df_hier_level) 101 | df_hier_levels = pd.concat(df_hier_levels).drop_duplicates() 102 | 103 | # Combine hierarchical and non-hierarchical data 104 | df = pd.concat([df_nonhier, df_hier_levels]) 105 | 106 | ## 2. Detect value types 107 | data_types = [] 108 | 109 | # Collect the unique values of each variable 110 | # values_by_variable: dict(variable_name -> [value1, value2, ...]) 111 | d = df[[var_col, val_col]].drop_duplicates().sort_values(by=[var_col, val_col]) 112 | values_by_variable = defaultdict(list) 113 | for n,v in zip(d[var_col], d[val_col]): 114 | values_by_variable[n].append(v) 115 | 116 | # Determine type of each variable 117 | for variable, values in sorted(values_by_variable.items()): 118 | # Manual override type in config 119 | if variable in args.value_type_override: 120 | data_types.append((variable, args.value_type_override[variable])) 121 | # Force categorical values to be a string 122 | if args.value_type_override[variable] == 'Categorical' and \ 123 | any(is_numeric(v) for v in values if not pd.isnull(v)): 124 | m_var = df[var_col] == variable 125 | df.loc[m_var, val_col] = df.loc[m_var, val_col].apply(lambda s: '_' + str(s)) 126 | else: 127 | if len(values) == 1 and pd.isnull(values[0]): 128 | data_types.append((variable, 'None')) 129 | elif all(is_numeric(v) for v in values if not pd.isnull(v)): 130 | data_types.append((variable, 'Numeric')) 131 | elif any(is_numeric(v) for v in values if not pd.isnull(v)): 132 | data_types.append((variable, 'Numeric + Categorical')) 133 | else: 134 | data_types.append((variable, 'Categorical')) 135 | 136 | df_types = pd.DataFrame(data_types, columns=['variable_name', 'value_type']) 137 | df_types[var_col] = df_types[var_col].astype(str) 138 | df_types = df_types.set_index(var_col) 139 | fpath = output_dir + 'value_types.csv' 140 | df_types.to_csv(fpath, quoting=1) 141 | print('Saved as:', fpath) 142 | 143 | ## 3. Pre-map duplicated non-numerical values to separate variables 144 | var_names = [v for v, ty in data_types if 'numeric' not in ty.lower() and 'none' not in ty.lower()] 145 | df_non_num = df[df[var_col].isin(var_names)].copy() 146 | dup_ = df_non_num.duplicated(subset=[ID_col, t_col, var_col], keep=False) 147 | df_non_num_dup = df_non_num[dup_].copy() 148 | dup_var_names = df_non_num_dup[var_col].unique() 149 | df_non_num_dup[var_col] = df_non_num_dup[var_col].astype(str) + ':' + df_non_num_dup[val_col].astype(str) 150 | df_non_num_dup[val_col] = 1 151 | df_non_num.loc[dup_, :] = df_non_num_dup 152 | df.loc[df[var_col].isin(var_names), :] = df_non_num 153 | 154 | return df, df_types['value_type'] 155 | 156 | 157 | def split_by_timestamp_type(df): 158 | print_header('*) Separate time-invariant and time-dependent', char='-') 159 | 160 | variables_inv = df[pd.isnull(df[t_col])][var_col].unique() # Invariant variables have t = NULL 161 | df_time_invariant = df[df[var_col].isin(variables_inv)] 162 | df_time_series = df[~df[var_col].isin(variables_inv)] 163 | 164 | print('Variables (time-invariant):', len(variables_inv)) 165 | print('Variables (time-dependent):', df[var_col].nunique() - len(variables_inv)) 166 | print('# rows (time-invariant):', len(df_time_invariant)) 167 | print('# rows (time-dependent):', len(df_time_series)) 168 | return df_time_invariant, df_time_series 169 | 170 | 171 | def process_time_invariant(df_data_time_invariant, args): 172 | if len(df_data_time_invariant) == 0: 173 | return None, None, None 174 | 175 | output_dir = args.output_dir 176 | df_population = args.df_population 177 | theta_2 = args.theta_2 178 | 179 | ############## 180 | print_header('2-A) Transform time-invariant data', char='-') 181 | dir_path = output_dir + '/' 182 | start_time = time.time() 183 | 184 | ## Create Nxd^ table 185 | df_time_invariant = transform_time_invariant_table(df_data_time_invariant, df_population) 186 | df_time_invariant[[]].to_csv(dir_path + 'S.ID.csv') 187 | print('Time elapsed: %f seconds' % (time.time() - start_time)) 188 | 189 | ## Discretize 190 | S_all, S_all_feature_names, S_discretization_bins = map_time_invariant_features(df_time_invariant, args) 191 | sparse.save_npz(dir_path + 'S_all.npz', S_all) 192 | json.dump(list(S_all_feature_names), open(dir_path + 'S_all.feature_names.json', 'w'), sort_keys=True) 193 | json.dump(S_discretization_bins, open(dir_path + 'S_all.discretization.json', 'w')) 194 | 195 | print('Time elapsed: %f seconds' % (time.time() - start_time)) 196 | 197 | if args.postfilter: 198 | ############## 199 | print_header('3-A) Post-filter time-invariant data', char='-') 200 | 201 | ## Filter 202 | S, S_feature_names, S_feature_aliases = post_filter_time_invariant(S_all, S_all_feature_names, theta_2) 203 | print('Time elapsed: %f seconds' % (time.time() - start_time)) 204 | 205 | ## Save output 206 | print() 207 | print('Output') 208 | print('S: shape={}, density={:.3f}'.format(S.shape, S.density)) 209 | sparse.save_npz(dir_path + 'S.npz', S) 210 | 211 | with open(dir_path + 'S.feature_names.json', 'w') as f: 212 | json.dump(list(S_feature_names), f, sort_keys=True) 213 | with open(dir_path + 'S.feature_aliases.json', 'w') as f: 214 | json.dump(S_feature_aliases, f, sort_keys=True) 215 | 216 | print('Total time: %f seconds' % (time.time() - start_time)) 217 | print('', flush=True) 218 | return S, S_feature_names, S_feature_aliases 219 | else: 220 | return S_all, S_all_feature_names, None 221 | 222 | 223 | def process_time_dependent(df_data_time_series, args): 224 | if len(df_data_time_series) == 0: 225 | return None, None, None 226 | 227 | output_dir = args.output_dir 228 | theta_2 = args.theta_2 229 | 230 | ############## 231 | print_header('2-B) Transform time-dependent data', char='-') 232 | dir_path = output_dir + '/' 233 | start_time = time.time() 234 | 235 | ## Create NxLxD^ table 236 | df_time_series, dtypes_time_series = transform_time_series_table(df_data_time_series, args) 237 | print('Time elapsed: %f seconds' % (time.time() - start_time)) 238 | 239 | ## Save intermediate files 240 | joblib.dump(df_time_series, output_dir + 'df_time_series.joblib') 241 | joblib.dump(dtypes_time_series, output_dir + 'dtypes_time_series.joblib') 242 | df_time_series[[]].to_csv(dir_path + 'X.ID,t_range.csv') 243 | 244 | ## Map variables to features 245 | X_all, X_all_feature_names, X_discretization_bins = map_time_series_features(df_time_series, dtypes_time_series, args) 246 | sparse.save_npz(dir_path + 'X_all.npz', X_all) 247 | json.dump(list(X_all_feature_names), open(dir_path + 'X_all.feature_names.json', 'w'), sort_keys=True) 248 | json.dump(X_discretization_bins, open(dir_path + 'X_all.discretization.json', 'w')) 249 | 250 | print('Time elapsed: %f seconds' % (time.time() - start_time)) 251 | 252 | if args.postfilter: 253 | ############## 254 | print_header('3-B) Post-filter time-dependent data', char='-') 255 | print(X_all.shape, X_all.density) 256 | 257 | ## Filter features 258 | X, X_feature_names, X_feature_aliases = post_filter_time_series(X_all, X_all_feature_names, theta_2, args) 259 | print(X.shape, X.density) 260 | print('Time elapsed: %f seconds' % (time.time() - start_time)) 261 | 262 | ## Save output 263 | print() 264 | print('Output') 265 | print('X: shape={}, density={:.3f}'.format(X.shape, X.density)) 266 | sparse.save_npz(dir_path + 'X.npz', X) 267 | with open(dir_path + 'X.feature_names.json', 'w') as f: 268 | json.dump(list(X_feature_names), f, sort_keys=True) 269 | with open(dir_path + 'X.feature_aliases.json', 'w') as f: 270 | json.dump(X_feature_aliases, f, sort_keys=True) 271 | 272 | print('Total time: %f seconds' % (time.time() - start_time)) 273 | print('', flush=True) 274 | return X, X_feature_names, X_feature_aliases 275 | else: 276 | return X_all, X_all_feature_names, None 277 | 278 | 279 | ###### 280 | # Time-invariant routines 281 | ###### 282 | def transform_time_invariant_table(df_in, df_population): 283 | df_in = df_in.copy() 284 | 285 | # Recorded Value (np.nan if not recorded) 286 | df_value = pd.pivot_table(df_in, val_col, ID_col, var_col, 'last', np.nan) 287 | df_value = df_value.reindex(index=df_population.index, fill_value=np.nan) 288 | df_value.columns = [str(col) + '_value' for col in df_value.columns] 289 | 290 | print('(N \u00D7 ^d) table :\t', df_value.shape) 291 | print('number of missing entries :\t', '{} out of {} total'.format(df_value.isna().sum().sum(), df_value.size)) 292 | return df_value 293 | 294 | def map_time_invariant_features(df, args): 295 | # Categorical -> binary features 296 | # Numeric -> binary/float-valued features 297 | discretization_bins = None 298 | if args.discretize: 299 | discretization_bins = args.S_discretization_bins 300 | if discretization_bins is None: 301 | discretization_bins = [compute_bin_edges(df[col], q=5) for col in df.columns] 302 | discretization_bins = dict(discretization_bins) 303 | 304 | out = [smart_qcut_dummify(df[col], discretization_bins[col], use_ordinal_encoding=args.use_ordinal_encoding) for col in df.columns] 305 | time_invariant_features = pd.concat(out, axis=1) 306 | feature_names_all = time_invariant_features.columns.values 307 | sdf = time_invariant_features.astype(pd.SparseDtype(int, fill_value=0)) 308 | S_ = sparse.COO(sdf.sparse.to_coo()) 309 | else: 310 | # Split a mixed column into numeric and string columns 311 | for col in df.columns: 312 | col_data = df[col] 313 | col_is_numeric = [is_numeric(v) for v in col_data if not pd.isnull(v)] 314 | if not all(col_is_numeric) and any(col_is_numeric): # have mixed type values 315 | numeric_mask = col_data.apply(is_numeric) 316 | df[col+'_str'] = df[col].copy() 317 | df.loc[~numeric_mask, col] = np.nan 318 | df.loc[numeric_mask, col+'_str'] = np.nan 319 | 320 | out = [smart_dummify_impute(df[col]) for col in df.columns] 321 | time_invariant_features = pd.concat(out, axis=1) 322 | feature_names_all = time_invariant_features.columns.values 323 | sdf = time_invariant_features.astype(pd.SparseDtype(float, fill_value=0)) 324 | S_ = sparse.COO(sdf.sparse.to_coo()) 325 | 326 | print() 327 | print('Output') 328 | print('S_all, binary features :\t', S_.shape) 329 | return S_, feature_names_all, discretization_bins 330 | 331 | def post_filter_time_invariant(S_, S_feature_names_all, threshold): 332 | # Filter features (optional) 333 | assert S_.shape[1] == len(S_feature_names_all) 334 | feature_names_0 = S_feature_names_all 335 | S0 = S_.to_scipy_sparse() 336 | print('Original :', len(feature_names_0)) 337 | 338 | ## Remove nearly-constant features (with low variance) 339 | ## a binary feature is removed if =0 (or =1) for >th fraction of examples 340 | ## i.e., variance <= (th * (1 - th)) 341 | sel_rare = VarianceThreshold(threshold=(threshold * (1 - threshold))) 342 | S1 = sel_rare.fit_transform(S0) 343 | feature_names_1 = feature_names_0[sel_rare.get_support()] 344 | print('Nearly-constant:', len(feature_names_0) - len(feature_names_1)) 345 | 346 | ## Keep only first of pairwise perfectly correlated features 347 | sel_corr = CorrelationSelector() 348 | S2 = sel_corr.fit_transform(S1) 349 | feature_names_2 = feature_names_1[sel_corr.get_support()] 350 | feature_aliases = sel_corr.get_feature_aliases(feature_names_1) 351 | print('Correlated :', len(feature_names_1) - len(feature_names_2)) 352 | 353 | S = sparse.COO(S2) 354 | feature_names = feature_names_2 355 | assert S.shape[1] == len(feature_names) 356 | 357 | return S, feature_names, feature_aliases 358 | 359 | 360 | ###### 361 | # Time-series routines 362 | ###### 363 | def func_encode_single_time_series(i, g, variables, variables_num_freq, T, dt, stats_functions, impute=True): 364 | try: 365 | assert g.index.nunique() == 1 366 | assert g.index.unique()[0] == i 367 | # non-frequent 368 | variables_non = sorted(set(variables) - set(variables_num_freq)) 369 | if len(variables_non) > 0: 370 | variables_non = sorted(set(variables) - set(variables_num_freq)) 371 | df_j = pivot_event_table(g).reindex(columns=variables_non).sort_index() 372 | df_values_j = most_recent_values(df_j, variables, T, dt) 373 | df_out = df_values_j 374 | 375 | if len(variables_num_freq) > 0: 376 | # frequent 377 | # we're only producing mask, ffill, and statistics if the data is measured frequently enough 378 | df_i = pivot_event_table(g).reindex(columns=variables_num_freq).sort_index() 379 | mask_i = presence_mask(df_i, variables_num_freq, T, dt) 380 | delta_t_i = get_delta_time(mask_i) 381 | df_i = impute_ffill(df_i, variables_num_freq, T, dt, mask_i) 382 | df_stats_i = summary_statistics(df_i, variables_num_freq, stats_functions, T, dt) 383 | df_values_i = most_recent_values(df_i, variables, T, dt) 384 | if impute: 385 | check_imputed_output(df_values_i) 386 | check_imputed_output(df_stats_i) 387 | 388 | df_out = df_out.join([mask_i, delta_t_i, df_values_i, df_stats_i]) 389 | except: 390 | print(i) 391 | raise Exception(i) 392 | return i, df_out 393 | 394 | def divide_chunks(l, n): 395 | # looping till length l 396 | for i in range(0, len(l), n): 397 | yield l[i:i + n] 398 | 399 | def form_batches_of_examples(df_in, args, batch_size): 400 | grouped = df_in.set_index(ID_col) 401 | IDs = list(grouped.index.unique()) 402 | batches_IDs = list(divide_chunks(IDs, batch_size)) 403 | batches = [grouped.loc[chunk] for chunk in batches_IDs] 404 | return batches, batches_IDs 405 | 406 | def process_batch_time_series(first_arg): 407 | batch, batch_IDs, args = first_arg 408 | variables, variables_num_freq = args.variables, args.variables_num_freq 409 | out = dict( 410 | func_encode_single_time_series(i, batch.loc[i:i], variables, variables_num_freq, args.T, args.dt, args.stats_functions) 411 | for i in batch_IDs 412 | ) 413 | return out 414 | 415 | def transform_time_series_table(df_in, args): 416 | output_dir = args.output_dir 417 | theta_freq = args.theta_freq 418 | stats_functions = args.stats_functions 419 | N, L = args.N, args.L 420 | df_population = args.df_population 421 | parallel = args.parallel 422 | 423 | ## TODO: asserts shape of df_in 424 | 425 | # Determine all unique variable names 426 | variables = get_unique_variables(df_in) 427 | assert df_in[var_col].nunique() == len(variables) 428 | print('Total variables :', len(variables)) 429 | 430 | # Determine frequent variables -> we'll calculate statistics, mask, and delta_time only on these 431 | variables_num_freq = get_frequent_numeric_variables(df_in, variables, theta_freq, args) 432 | print('Frequent variables :', list(variables_num_freq)) 433 | print('{} = {}'.format('M\u2081', len(variables_num_freq))) 434 | print('{} = {}'.format('M\u2082', len(variables) - len(variables_num_freq))) 435 | print('{} = {} {}'.format('k ', len(stats_functions), stats_functions)) 436 | 437 | print() 438 | print('Transforming each example...') 439 | args.variables = variables 440 | args.variables_num_freq = variables_num_freq 441 | 442 | # Encode time series table for each patient 443 | if args.parallel: 444 | batches, batches_IDs = form_batches_of_examples(df_in, args, batch_size=args.batch_size) 445 | print('Batches of size {}: '.format(args.batch_size), len(batches)) 446 | pool = multiprocessing.Pool(args.n_jobs) 447 | out = list(tqdm(pool.imap_unordered( 448 | process_batch_time_series, 449 | zip(batches, batches_IDs, [args]*len(batches))), total=len(batches) 450 | )) 451 | pool.close() 452 | pool.join() 453 | 454 | out = dict((key, d[key]) for d in out for key in d) 455 | print() 456 | print('Parallel processing done', flush=True) 457 | 458 | else: 459 | grouped = list(df_in.groupby(ID_col)) 460 | out = dict( 461 | func_encode_single_time_series(i, g.set_index(ID_col), variables, variables_num_freq, args.T, args.dt, args.stats_functions) 462 | for i, g in tqdm(grouped[:N]) 463 | ) 464 | 465 | # Handle IDs not in the table 466 | df_original = list(out.values())[0] 467 | df_copy = pd.DataFrame().reindex_like(df_original) 468 | for i, j in df_original.dtypes.iteritems(): 469 | if i.endswith('_mask'): 470 | assert j == bool 471 | df_copy[i] = False 472 | df_copy[i] = df_copy[i].astype(bool) 473 | if i.endswith('_delta_time'): 474 | df_copy[i] = 0 475 | df_copy[i] = df_copy[i].astype(int) 476 | if j == 'object': 477 | df_copy[i] = df_copy[i].astype('object') 478 | 479 | for ID in df_population.index.values[:N]: 480 | if ID not in out: 481 | out[ID] = df_copy.copy() 482 | 483 | out = {ID: out[ID] for ID in df_population.index.values[:N]} 484 | assert len(out) == N 485 | D_timeseries = out 486 | 487 | # check each example have identical LxD table structure 488 | ID0 = sorted(D_timeseries.keys())[0] 489 | df0 = D_timeseries[ID0] 490 | for ID, df_i in D_timeseries.items(): 491 | pd.testing.assert_index_equal(df_i.index, df0.index) 492 | pd.testing.assert_index_equal(df_i.columns, df0.columns) 493 | 494 | D_timeseries = out 495 | D_ = len(list(D_timeseries.values())[0].columns) 496 | 497 | # (N*L)xD^ table 498 | ## Create MultiIndex of (ID, time_bin) 499 | index = sum([ 500 | [(ID, t_) for t_ in list(df_.index)] 501 | for ID, df_ in sorted(D_timeseries.items()) 502 | ], []) 503 | index = pd.Index(index, names=['ID', 't_range']) 504 | assert len(index) == N * L 505 | 506 | ## Assume all dataframes have the same columns, used after concatenation 507 | columns = list(sorted(D_timeseries.items())[0][1].columns) 508 | columns = np.array(columns) 509 | dtypes = sorted(D_timeseries.items())[0][1].dtypes 510 | 511 | ## Convert each df to a numpy array 512 | ## Concatenate **sorted** numpy arrays (faster than calling pd.concat) 513 | feature_values = [(ID, df_.to_numpy()) for ID, df_ in sorted(D_timeseries.items())] 514 | time_series = np.concatenate([feat_val[1] for feat_val in feature_values]) 515 | assert time_series.shape == (len(index), len(columns)) 516 | 517 | df_time_series = pd.DataFrame(data=time_series, index=index, columns=columns) 518 | 519 | # Print metadata 520 | print('DONE: Transforming each example...') 521 | ## Freq: Count missing entries using mask 522 | ts_mask = df_time_series[[col for col in df_time_series if col.endswith('_mask')]] 523 | ts_mask.columns = [col.replace('_mask', '') for col in ts_mask.columns] 524 | print('(freq) number of missing entries :\t', 525 | '{} out of {}={} total'.format( 526 | (1-ts_mask).astype(int).sum().sum(), 527 | '\u00D7'.join(str(i) for i in [N,L,ts_mask.shape[1]]), ts_mask.size)) 528 | 529 | ## Freq: Count imputed entries using mask and dt 530 | ts_delta_time = df_time_series[[col for col in df_time_series if col.endswith('_delta_time')]] 531 | ts_delta_time.columns = [col.replace('_delta_time', '') for col in ts_delta_time.columns] 532 | 533 | imputed = (1-ts_mask).astype(bool) & (ts_delta_time > 0) 534 | print('(freq) number of imputed entries :\t', 535 | '{}'.format(imputed.sum().sum(), ts_delta_time.size)) 536 | imputed.sum().rename('count').to_csv(output_dir + '/' + 'freq_imputed.csv') 537 | 538 | not_imputed = (1-ts_mask).astype(bool) & (ts_delta_time == 0) 539 | print('(freq) number of not imputed entries :\t', 540 | '{}'.format(not_imputed.sum().sum(), ts_delta_time.size)) 541 | not_imputed.sum().rename('count').to_csv(output_dir + '/' + 'freq_not_imputed.csv') 542 | 543 | ## Non-Freq: Count missing entries 544 | non_freq_cols = sorted([c + '_value' for c in set(variables) - set(variables_num_freq)]) 545 | non_freqs = df_time_series[non_freq_cols] 546 | print('(non-freq) number of missing entries :\t', 547 | '{} out of {}={} total'.format( 548 | non_freqs.isna().sum().sum(), 549 | '\u00D7'.join(str(i) for i in [N,L,non_freqs.shape[1]]), non_freqs.size)) 550 | 551 | print() 552 | print('(N \u00D7 L \u00D7 ^D) table :\t', (N, L, len(columns))) 553 | return df_time_series, dtypes 554 | 555 | def map_time_series_features(df_time_series, dtypes, args): 556 | N, L = args.N, args.L 557 | 558 | df_time_series = df_time_series.dropna(axis='columns', how='all').sort_index() 559 | 560 | print('Discretizing features...') 561 | ts_mask = select_dtype(df_time_series, 'mask', dtypes) 562 | ts_mixed = select_dtype(df_time_series, '~mask', dtypes) 563 | assert len(ts_mixed.columns) + len(ts_mask.columns) == len(df_time_series.columns) 564 | ts_feature_mask = ts_mask.astype(int) 565 | ts_mixed_cols = [ts_mixed[col] for col in ts_mixed.columns] 566 | 567 | print() 568 | discretization_bins = None 569 | if args.discretize: 570 | dtype = int 571 | print('Processing', len(ts_mixed_cols), 'non-boolean variable columns...') 572 | 573 | discretization_bins = args.X_discretization_bins 574 | if discretization_bins is None: 575 | print(' Computing bin edges for numeric variables...') 576 | discretization_bins = [compute_bin_edges(col_data, q=5) for col_data in tqdm(ts_mixed_cols)] 577 | discretization_bins = dict(discretization_bins) 578 | else: 579 | print(' Usng predetermined bin edges for numeric variables...') 580 | 581 | print(' Discretizing variables to binary features') 582 | if args.parallel: 583 | pool = multiprocessing.Pool(args.n_jobs) 584 | out = list(tqdm(pool.imap_unordered( 585 | smart_qcut_dummify_parallel, 586 | [(col_data, discretization_bins[col_data.name], args.use_ordinal_encoding) for col_data in ts_mixed_cols]), total=len(ts_mixed_cols) 587 | )) 588 | pool.close() 589 | pool.join() 590 | else: 591 | out = [smart_qcut_dummify(col_data, discretization_bins[col_data.name], use_ordinal_encoding=args.use_ordinal_encoding) for col_data in tqdm(ts_mixed_cols)] 592 | else: 593 | dtype = float 594 | df = ts_mixed.copy() 595 | 596 | # Split a mixed column into numeric and string columns 597 | for col in df.columns: 598 | col_data = df[col] 599 | col_is_numeric = [is_numeric(v) for v in col_data if not pd.isnull(v)] 600 | if not all(col_is_numeric) and any(col_is_numeric): # have mixed type values 601 | numeric_mask = col_data.apply(is_numeric) 602 | df[col+'_str'] = df[col].copy() 603 | df.loc[~numeric_mask, col] = np.nan 604 | df.loc[numeric_mask, col+'_str'] = np.nan 605 | 606 | ts_mixed_cols = [df[col] for col in df.columns] 607 | 608 | print('Discretizing categorical features...') 609 | if args.parallel: 610 | pool = multiprocessing.Pool(args.n_jobs) 611 | out = list(tqdm(pool.imap_unordered( 612 | smart_dummify_impute, [(col_data) for col_data in ts_mixed_cols]), total=len(ts_mixed_cols) 613 | )) 614 | pool.close() 615 | pool.join() 616 | else: 617 | out = [smart_dummify_impute(col_data) for col_data in tqdm(ts_mixed_cols)] 618 | 619 | out = [ts_feature_mask, *out] 620 | D_all = sum(len(df_i.columns) for df_i in out) 621 | X_all_feature_names = np.asarray(sum([list(df_i.columns) for df_i in out], [])) 622 | X_dense = np.concatenate([df_i.values for df_i in out], axis=1).astype(dtype) 623 | X_all = sparse.COO(X_dense) 624 | 625 | print('Finished discretizing features') 626 | assert X_all.shape[0] == N * L 627 | X_all = X_all.reshape((N, L, D_all)) 628 | 629 | print() 630 | print('Output') 631 | print('X_all: shape={}, density={:.3f}'.format(X_all.shape, X_all.density)) 632 | return X_all, X_all_feature_names, discretization_bins 633 | 634 | def post_filter_time_series(X_all, feature_names_all, threshold, args): 635 | N, L = args.N, args.L 636 | assert X_all.shape[0] == N 637 | assert X_all.shape[1] == L 638 | # assert X_all.dtype == int 639 | start_time = time.time() 640 | 641 | X0 = X_all 642 | feature_names_0 = feature_names_all 643 | print('Original :', len(feature_names_0)) 644 | 645 | ## Remove nearly-constant features (with low variance) 646 | sel_const = FrequencyThreshold_temporal(threshold=threshold, L=L) 647 | sel_const.fit(X0.reshape((N*L, -1))) 648 | m_ts_const = sel_const.get_support() 649 | assert len(m_ts_const) == X0.shape[-1] 650 | X1 = X0[:, :, m_ts_const] 651 | feature_names_1 = feature_names_0[m_ts_const] 652 | print('Nearly-constant:', len(feature_names_0) - len(feature_names_1)) 653 | print('*** time: ', time.time() - start_time) 654 | 655 | ## Keep only first of pairwise perfectly correlated features 656 | sel_ts_corr = CorrelationSelector() 657 | sel_ts_corr.fit(X1.reshape((N*L, -1))) 658 | m_ts_corr = sel_ts_corr.get_support() 659 | assert len(m_ts_corr) == X1.shape[-1] 660 | X2 = X1[:, :, m_ts_corr] 661 | feature_names_2 = feature_names_1[m_ts_corr] 662 | feature_aliases = sel_ts_corr.get_feature_aliases(feature_names_1) 663 | print('Correlated :', len(feature_names_1) - len(feature_names_2)) 664 | print('*** time: ', time.time() - start_time) 665 | 666 | X = sparse.COO(X2) 667 | feature_names = feature_names_2 668 | assert X.shape == (N, L, len(feature_names)) 669 | 670 | ## Save output 671 | print() 672 | print('Output') 673 | print('X: shape={}, density={:.3f}'.format(X.shape, X.density)) 674 | 675 | return X, feature_names, feature_aliases 676 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 MLD3 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # FIDDLE 2 | 3 | FIDDLE – FlexIble Data-Driven pipeLinE – is a preprocessing pipeline that transforms structured EHR data into feature vectors that can be used with ML algorithms, relying on only a small number of user-defined arguments. 4 | 5 | Try a quick demo here: [tiny.cc/FIDDLE-demo](https://tiny.cc/FIDDLE-demo) 6 | 7 | Contributions and feedback are welcome; please submit issues on the GitHub site: https://github.com/MLD3/FIDDLE/issues. 8 | 9 | To enhance reproducibility, we have released [preprocessed features for MIMIC-III and eICU](https://physionet.org/content/mimic-eicu-fiddle-feature/1.0.0/) and [accompanying code](https://github.com/MLD3/FIDDLE-experiments/tree/jamia-replication) for the experiments in the paper. Refer to more details on these linked websites. 10 | 11 | If you use FIDDLE in your research, please cite the following publication: 12 | 13 | ``` 14 | @article{FIDDLE, 15 | author = {Tang, Shengpu and Davarmanesh, Parmida and Song, Yanmeng and Koutra, Danai and Sjoding, Michael W and Wiens, Jenna}, 16 | title = "{Democratizing EHR analyses with FIDDLE: a flexible data-driven preprocessing pipeline for structured clinical data}", 17 | journal = {Journal of the American Medical Informatics Association}, 18 | year = {2020}, 19 | month = {10}, 20 | doi = {10.1093/jamia/ocaa139}, 21 | } 22 | ``` 23 | 24 | ## System Requirements 25 | 26 | ### Pip 27 | Requires python 3.7 or above (older versions may still work but have not been tested). Required packages and versions are listed in `requirements.txt`. Run the following command to install the required packages. 28 | ```bash 29 | pip install -r requirements.txt 30 | ``` 31 | 32 | ### Docker 33 | To build the docker image, run the following command: 34 | ```bash 35 | docker build -t fiddle-v020 . 36 | ``` 37 | Refer to the notebook `tests/small_test/Run-docker.ipynb` for an example to run FIDDLE in docker. 38 | 39 | 40 | ## Usage Notes 41 | FIDDLE generates feature vectors based on data within the observation period $t\in[0,T]$. This feature representation can be used to make predictions of adverse outcomes at t=T. More specifically, FIDDLE outputs a set of binary feature vectors for each example $i$, $\{(s_i,x_i)\ \text{for}\ i=1 \dots N\}$ where $s_i \in \mathbb{R}^d$ contains time-invariant features and $x_i \in \mathbb{R}^{L \times D}$ contains time-dependent features. 42 | 43 | Input: 44 | - formatted EHR data: `.csv` or `.p`/`.pickle` file, a table with 4 columns \[`ID`, `t`, `variable_name`, `variable_value`\] 45 | - population file: a list of unique `ID`s you want processed 46 | - the output feature matrix will correspond to IDs in lexicographically sorted order 47 | - config file: 48 | - specifies additional settings by providing a custom `config.yaml` file 49 | - a default config file is located at `FIDDLE/config-default.yaml` 50 | - arguments: 51 | - T: The time of prediction; time-dependent features will be generated using data in $t\in[0,T]$. 52 | - dt: the temporal granularity at which to "window" time-dependent data. 53 | - theta_1: The threshold for Pre-filter. 54 | - theta_2: The threshold for Post-filter. 55 | - theta_freq: The threshold at which we deem a variable “frequent” (for which summary statistics will be calculated). 56 | - stats_functions: A set of 𝐾 statistics functions (e.g., min, max, mean). Each function is used to calculate a summary value using all recordings within a single time bin. These functions are only applicable to “frequent” variables as determined by theta_freq. 57 | 58 | Output: The generated features and associated metadata are located in `{data_path}/`: 59 | 60 | - `s.npz`: a sparse array of shape (N, d) 61 | - `X.npz`: a sparse tensor of shape (N, L, D) 62 | - `s.feature_names.json`: names of _d_ time-invariant features 63 | - `X.feature_names.json`: names of _D_ time-series features 64 | - `x.feature_aliases.json`: aliases of duplicated time-invariant features 65 | - `X.feature_aliases.json`: aliases of duplicated time-series features 66 | 67 | 68 | To load the generated features: 69 | ```python 70 | X = sparse.load_npz('{data_path}/X.npz'.format(data_path=...)).todense() 71 | s = sparse.load_npz('{data_path}/s.npz'.format(data_path=...)).todense() 72 | ``` 73 | 74 | 75 | Example usage: 76 | ```bash 77 | python -m FIDDLE.run \ 78 | --data_path='./tests/small_test/' \ 79 | --population='./tests/small_test/pop.csv' \ 80 | --T=24 --dt=5 \ 81 | --theta_1=0.001 --theta_2=0.001 --theta_freq=1 \ 82 | --stats_functions 'min' 'max' 'mean' 83 | ``` 84 | 85 | ## Guidelines on argument settings 86 | The user-defined arguments of FIDDLE include: T, dt, theta_1, theta_2, theta_freq, and K statistics functions. The settings of these arguments could affect the features and how they can be used. We provided reasonable default values in the implementation, and here list some practical considerations: (i) prediction time and frequency, (ii) temporal density of data, and (iii) class balance. 87 | 88 | (i) The prediction time and frequency determine the appropriate settings for T and dt. The risk stratification tasks we considered all involve a single prediction at the end of a fixed prediction window. It is thus most reasonable to set T to be the length of prediction window. Another possible formulation is to make multiple predictions where each prediction depends on only data from the past (not the future), using models like LSTM or fully convolutional networks. In that case, for example, if a prediction needs to be made every 4 hours over a 48-hour period, then T should be 48 hours, whereas dt should be at most 4 hours. 89 | 90 | (ii) The temporal density of data, that is, how often the variables are usually measured, also affects the setting of dt. This can be achieved by plotting a histogram of recording frequency. In our case, we observed that the maximum hourly frequency is ~1.2 times, which suggests dt should not be smaller than 1 hour. While most variables are recorded on average <0.1 time per hour (most of the time not recorded), the 6 vital signs are recorded slightly >1 time per hour. Thus, given that in the ICU, vital signs are usually collected once per hour, we set dt=1. This also implies the setting of θ_freq to be 1. Besides determining the value for dt from context (how granular we want to encode the data), we can also sweep the range (if there are sufficient computational resources and time) given the prediction frequency and the temporal density of data. 91 | 92 | (iii) We recommend setting θ12=θ and be conservative to avoid removing information that could be potentially useful. For binary classification, the rule-of-the-thumb we suggest is to set θ to be about 1/100 of the minority class. For example, our cohorts consist of ~10% positive cases, so setting θ=0.001 is appropriate, whereas for a cohort with only 1% positive cases, then θ=0.0001 is more appropriate. Given sufficient computational resources and time, the value of θ can also be swept and optimized. 93 | 94 | Finally, for the summary statistics functions, we included by default the most basic statistics functions are minimum, maximum, and mean. If on average, we expect more than one value per time bin, then we can also include higher order statistics such as standard deviation and linear slope. 95 | 96 | 97 | ## Experiments 98 | 99 | In this repository, we release FIDDLE as a standalone software. In order to show the flexibility and utility of FIDDLE, we conducted several experiments using data from MIMIC-III and eICU. The code to reproduce the results are located at https://github.com/MLD3/FIDDLE-experiments. The experiments were performed using FIDDLE v0.1.0 and reported in the JAMIA paper; bug fixes and new functionalities have since been implemented and may affect the numerical results. 100 | 101 | 102 | ## Publications & Resources 103 | - Title: Democratizing EHR analyses with FIDDLE: a flexible data-driven preprocessing pipeline for structured clinical data. 104 | - Authors: Shengpu Tang, Parmida Davarmanesh, Yanmeng Song, Danai Koutra, Michael W. Sjoding, and Jenna Wiens. 105 | - Published in JAMIA (Journal of the American Medical Informatics Association), October 2020: [article link](https://doi.org/10.1093/jamia/ocaa139) 106 | - Previously presented at MLHC 2019 ([Machine Learning for Healthcare](https://www.mlforhc.org/)) as a [clinical abstract](https://www.mlforhc.org/s/Sjoding-jete.pdf) 107 | - News coverage on HealthcareITNews: [link](https://www.healthcareitnews.com/news/new-framework-helps-streamline-ehr-data-extraction) 108 | - [Poster](https://www.dropbox.com/s/5rid9x12w6f8u50/MLHC%202019%20-%20FIDDLE%20poster.pdf?dl=0) | [Slides](https://www.dropbox.com/s/e6e1tfen2ae85hn/FIDDLE%20-%20MiCHAMP%2020200110%20final.pptx?dl=0) 109 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | pyyaml>=5.3 2 | numpy>=1.19 3 | pandas>=1.1 4 | sparse>=0.11 5 | scikit-learn>=0.23 6 | tqdm>=4.50 7 | joblib>=0.16 8 | icd9cms==0.2.1 9 | icd10-cm==0.0.4 10 | -------------------------------------------------------------------------------- /tests/icd_test/input/config-0.yaml: -------------------------------------------------------------------------------- 1 | hierarchical_sep: ':' 2 | hierarchical_levels: [0] 3 | -------------------------------------------------------------------------------- /tests/icd_test/input/config-1.yaml: -------------------------------------------------------------------------------- 1 | hierarchical_sep: ':' 2 | hierarchical_levels: [0,1] 3 | -------------------------------------------------------------------------------- /tests/icd_test/input/config-2.yaml: -------------------------------------------------------------------------------- 1 | hierarchical_sep: ':' 2 | hierarchical_levels: [0,1,2] 3 | -------------------------------------------------------------------------------- /tests/icd_test/input/data.csv: -------------------------------------------------------------------------------- 1 | ID,t,variable_name,variable_value 2 | 172335,,ICD9_CODE,40301 3 | 172335,,ICD9_CODE,486 4 | 172335,,ICD9_CODE,58281 5 | 172335,,ICD9_CODE,5855 6 | 172335,,ICD9_CODE,4254 7 | 172335,,ICD9_CODE,2762 8 | 172335,,ICD9_CODE,7100 9 | 172335,,ICD9_CODE,2767 10 | 172335,,ICD9_CODE,7243 11 | 172335,,ICD9_CODE,45829 12 | 172335,,ICD9_CODE,2875 13 | 172335,,ICD9_CODE,28521 14 | 172335,,ICD9_CODE,28529 15 | 172335,,ICD9_CODE,27541 16 | 173633,,ICD9_CODE,40301 17 | 173633,,ICD9_CODE,5856 18 | 173633,,ICD9_CODE,58381 19 | 173633,,ICD9_CODE,7100 20 | 173633,,ICD9_CODE,5589 21 | 173633,,ICD9_CODE,2875 22 | 173633,,ICD9_CODE,28521 23 | 173633,,ICD9_CODE,45829 24 | 173633,,ICD9_CODE,32723 25 | 173633,,ICD9_CODE,22804 26 | 173633,,ICD9_CODE,33829 27 | 173633,,ICD9_CODE,78900 28 | 173633,,ICD9_CODE,79092 29 | 173633,,ICD9_CODE,V4511 30 | 174105,,ICD9_CODE,53100 31 | 174105,,ICD9_CODE,41071 32 | 174105,,ICD9_CODE,2859 33 | 174105,,ICD9_CODE,41401 34 | 174105,,ICD9_CODE,725 35 | 109976,,ICD9_CODE,1915 36 | 109976,,ICD9_CODE,3314 37 | 109976,,ICD9_CODE,53081 38 | 178393,,ICD9_CODE,41401 39 | 178393,,ICD9_CODE,4111 40 | 178393,,ICD9_CODE,48283 41 | 178393,,ICD9_CODE,2859 42 | 178393,,ICD9_CODE,2720 43 | 178393,,ICD9_CODE,3051 44 | 114585,,ICD9_CODE,1940 45 | 114585,,ICD9_CODE,1977 46 | 114585,,ICD9_CODE,2553 47 | 114585,,ICD9_CODE,4240 48 | 114585,,ICD9_CODE,5845 49 | 114585,,ICD9_CODE,99859 50 | 114585,,ICD9_CODE,6822 51 | 114585,,ICD9_CODE,5119 52 | 114585,,ICD9_CODE,5990 53 | 114585,,ICD9_CODE,4280 54 | 114585,,ICD9_CODE,34982 55 | 114585,,ICD9_CODE,4019 56 | 114585,,ICD9_CODE,V1000 57 | 114585,,ICD9_CODE,V453 58 | 114585,,ICD9_CODE,V5865 59 | 114585,,ICD9_CODE,0413 60 | 114585,,ICD9_CODE,2518 61 | 114585,,ICD9_CODE,E9320 62 | 127203,,ICD9_CODE,V3001 63 | 127203,,ICD9_CODE,V053 64 | 127203,,ICD9_CODE,V290 65 | 140784,,ICD9_CODE,5715 66 | 140784,,ICD9_CODE,7895 67 | 140784,,ICD9_CODE,07054 68 | 140784,,ICD9_CODE,2875 69 | 140784,,ICD9_CODE,4280 70 | 140784,,ICD9_CODE,2851 71 | 140784,,ICD9_CODE,2765 72 | 140784,,ICD9_CODE,4019 73 | 140784,,ICD9_CODE,25000 74 | 164853,,ICD9_CODE,570 75 | 164853,,ICD9_CODE,07044 76 | 164853,,ICD9_CODE,5712 77 | 164853,,ICD9_CODE,5849 78 | 164853,,ICD9_CODE,5724 79 | 164853,,ICD9_CODE,5118 80 | 164853,,ICD9_CODE,2867 81 | 164853,,ICD9_CODE,51882 82 | 164853,,ICD9_CODE,2875 83 | 164853,,ICD9_CODE,0389 84 | 164853,,ICD9_CODE,486 85 | 164853,,ICD9_CODE,2800 86 | 164853,,ICD9_CODE,2639 87 | 164853,,ICD9_CODE,2761 88 | 164853,,ICD9_CODE,2767 89 | 164853,,ICD9_CODE,99592 90 | 164853,,ICD9_CODE,30393 91 | 164853,,ICD9_CODE,4019 92 | 164853,,ICD9_CODE,5723 93 | 164853,,ICD9_CODE,25000 94 | 164853,,ICD9_CODE,2449 95 | 164853,,ICD9_CODE,1122 96 | 147035,,ICD9_CODE,V3000 97 | 147035,,ICD9_CODE,V053 98 | 135738,,ICD9_CODE,88122 99 | 135738,,ICD9_CODE,9032 100 | 135738,,ICD9_CODE,9033 101 | 135738,,ICD9_CODE,9551 102 | 135738,,ICD9_CODE,9555 103 | 135738,,ICD9_CODE,9552 104 | 135738,,ICD9_CODE,E956 105 | 135738,,ICD9_CODE,30590 106 | 188923,,ICD9_CODE,V3000 107 | 188923,,ICD9_CODE,V053 108 | 188923,,ICD9_CODE,V290 109 | 135750,,ICD9_CODE,V3000 110 | 135750,,ICD9_CODE,7452 111 | 135750,,ICD9_CODE,7622 112 | 195632,,ICD9_CODE,41011 113 | 195632,,ICD9_CODE,41401 114 | 195632,,ICD9_CODE,4019 115 | 195632,,ICD9_CODE,25000 116 | 195632,,ICD9_CODE,3051 117 | 112906,,ICD9_CODE,4412 118 | 112906,,ICD9_CODE,486 119 | 112906,,ICD9_CODE,496 120 | 112906,,ICD9_CODE,07070 121 | 112906,,ICD9_CODE,4478 122 | 112906,,ICD9_CODE,41402 123 | 112906,,ICD9_CODE,41401 124 | 112906,,ICD9_CODE,4019 125 | 112906,,ICD9_CODE,2720 126 | 134369,,ICD9_CODE,44021 127 | 134369,,ICD9_CODE,5849 128 | 134369,,ICD9_CODE,5854 129 | 134369,,ICD9_CODE,5990 130 | 134369,,ICD9_CODE,9971 131 | 134369,,ICD9_CODE,4400 132 | 134369,,ICD9_CODE,40390 133 | 134369,,ICD9_CODE,2749 134 | 134369,,ICD9_CODE,496 135 | 134369,,ICD9_CODE,45829 136 | 134369,,ICD9_CODE,42731 137 | 134369,,ICD9_CODE,V1046 138 | 134369,,ICD9_CODE,V1011 139 | 134369,,ICD9_CODE,V1209 140 | 134369,,ICD9_CODE,V090 141 | 138376,,ICD9_CODE,56983 142 | 138376,,ICD9_CODE,56089 143 | 138376,,ICD9_CODE,49121 144 | 138376,,ICD9_CODE,99859 145 | 138376,,ICD9_CODE,0389 146 | 138376,,ICD9_CODE,99592 147 | 138376,,ICD9_CODE,99831 148 | 138376,,ICD9_CODE,486 149 | 138376,,ICD9_CODE,5849 150 | 138376,,ICD9_CODE,5854 151 | 138376,,ICD9_CODE,2639 152 | 138376,,ICD9_CODE,42833 153 | 138376,,ICD9_CODE,40390 154 | 138376,,ICD9_CODE,42731 155 | 138376,,ICD9_CODE,4280 156 | 138376,,ICD9_CODE,41400 157 | 138376,,ICD9_CODE,V4581 158 | 138376,,ICD9_CODE,V1046 159 | 138376,,ICD9_CODE,V1011 160 | 172461,,ICD9_CODE,43331 161 | 172461,,ICD9_CODE,99812 162 | 172461,,ICD9_CODE,436 163 | 172461,,ICD9_CODE,43320 164 | 172461,,ICD9_CODE,4019 165 | 172461,,ICD9_CODE,2720 166 | 172461,,ICD9_CODE,49390 167 | 172461,,ICD9_CODE,41401 168 | 172461,,ICD9_CODE,V4581 169 | 157348,,ICD9_CODE,99671 170 | 157348,,ICD9_CODE,4241 171 | 157348,,ICD9_CODE,42731 172 | 157348,,ICD9_CODE,4168 173 | 157348,,ICD9_CODE,2449 174 | 176860,,ICD9_CODE,V3101 175 | 176860,,ICD9_CODE,76503 176 | 176860,,ICD9_CODE,769 177 | 176860,,ICD9_CODE,7793 178 | 176860,,ICD9_CODE,7742 179 | 176860,,ICD9_CODE,7707 180 | 176860,,ICD9_CODE,76524 181 | 176860,,ICD9_CODE,77081 182 | 176860,,ICD9_CODE,77981 183 | 176860,,ICD9_CODE,7470 184 | 176860,,ICD9_CODE,7766 185 | 176860,,ICD9_CODE,7726 186 | 176860,,ICD9_CODE,77989 187 | 176860,,ICD9_CODE,36221 188 | 176860,,ICD9_CODE,V290 189 | 176860,,ICD9_CODE,V053 190 | 141647,,ICD9_CODE,19889 191 | 141647,,ICD9_CODE,1972 192 | 141647,,ICD9_CODE,V103 193 | 180872,,ICD9_CODE,V3001 194 | 180872,,ICD9_CODE,74689 195 | 180872,,ICD9_CODE,7661 196 | 180872,,ICD9_CODE,V053 197 | 180872,,ICD9_CODE,V290 198 | 180872,,ICD9_CODE,V293 199 | 164174,,ICD9_CODE,85300 200 | 164174,,ICD9_CODE,78039 201 | 164174,,ICD9_CODE,E8889 202 | 113323,,ICD9_CODE,99859 203 | 113323,,ICD9_CODE,99831 204 | 113323,,ICD9_CODE,5185 205 | 113323,,ICD9_CODE,9971 206 | 113323,,ICD9_CODE,42731 207 | 113323,,ICD9_CODE,73028 208 | 113323,,ICD9_CODE,25000 209 | 113323,,ICD9_CODE,53081 210 | 113323,,ICD9_CODE,41400 211 | 113323,,ICD9_CODE,V4581 212 | 198214,,ICD9_CODE,41071 213 | 198214,,ICD9_CODE,4280 214 | 198214,,ICD9_CODE,2851 215 | 198214,,ICD9_CODE,41401 216 | 198214,,ICD9_CODE,25060 217 | 198214,,ICD9_CODE,3572 218 | 198214,,ICD9_CODE,2720 219 | 198214,,ICD9_CODE,53081 220 | 171781,,ICD9_CODE,V3001 221 | 171781,,ICD9_CODE,77214 222 | 171781,,ICD9_CODE,76518 223 | 171781,,ICD9_CODE,76528 224 | 171781,,ICD9_CODE,V053 225 | 160192,,ICD9_CODE,430 226 | 160192,,ICD9_CODE,78039 227 | 160192,,ICD9_CODE,2761 228 | 160192,,ICD9_CODE,3051 229 | 191817,,ICD9_CODE,41071 230 | 191817,,ICD9_CODE,41401 231 | 191817,,ICD9_CODE,496 232 | 191817,,ICD9_CODE,5990 233 | 191817,,ICD9_CODE,4400 234 | 191817,,ICD9_CODE,2939 235 | 191817,,ICD9_CODE,2749 236 | 191817,,ICD9_CODE,4439 237 | 191817,,ICD9_CODE,4019 238 | 191817,,ICD9_CODE,2720 239 | 191817,,ICD9_CODE,V1582 240 | 167887,,ICD9_CODE,3963 241 | 167887,,ICD9_CODE,41401 242 | 167887,,ICD9_CODE,4019 243 | 167887,,ICD9_CODE,53081 244 | 167887,,ICD9_CODE,3659 245 | 167887,,ICD9_CODE,2449 246 | 167887,,ICD9_CODE,4439 247 | 192180,,ICD9_CODE,135 248 | 192180,,ICD9_CODE,34982 249 | 192180,,ICD9_CODE,5990 250 | 192180,,ICD9_CODE,311 251 | 192180,,ICD9_CODE,E9352 252 | 199634,,ICD9_CODE,72141 253 | 199634,,ICD9_CODE,135 254 | 199634,,ICD9_CODE,496 255 | 199634,,ICD9_CODE,2148 256 | 199634,,ICD9_CODE,V5865 257 | 199634,,ICD9_CODE,72401 258 | 199634,,ICD9_CODE,53081 259 | 199634,,ICD9_CODE,4019 260 | 199634,,ICD9_CODE,25000 261 | 184644,,ICD9_CODE,4375 262 | 184644,,ICD9_CODE,486 263 | 184644,,ICD9_CODE,2720 264 | 184644,,ICD9_CODE,4019 265 | 151583,,ICD9_CODE,41401 266 | 151583,,ICD9_CODE,5185 267 | 151583,,ICD9_CODE,42731 268 | 151583,,ICD9_CODE,42732 269 | 151583,,ICD9_CODE,25060 270 | 151583,,ICD9_CODE,3572 271 | 151583,,ICD9_CODE,24290 272 | 151583,,ICD9_CODE,2720 273 | 151583,,ICD9_CODE,60000 274 | 151583,,ICD9_CODE,V4582 275 | 151583,,ICD9_CODE,V1582 276 | 105764,,ICD9_CODE,1890 277 | 172056,,ICD9_CODE,03811 278 | 172056,,ICD9_CODE,99591 279 | 172056,,ICD9_CODE,30400 280 | 172056,,ICD9_CODE,1120 281 | 172056,,ICD9_CODE,5111 282 | 172056,,ICD9_CODE,7895 283 | 172056,,ICD9_CODE,71107 284 | 172056,,ICD9_CODE,71104 285 | 143430,,ICD9_CODE,80012 286 | 143430,,ICD9_CODE,30500 287 | 143430,,ICD9_CODE,30560 288 | 143430,,ICD9_CODE,E8147 289 | 143430,,ICD9_CODE,8730 290 | 143430,,ICD9_CODE,7812 291 | 143430,,ICD9_CODE,37854 292 | 143430,,ICD9_CODE,9518 293 | 104518,,ICD9_CODE,V3000 294 | 104518,,ICD9_CODE,76519 295 | 104518,,ICD9_CODE,76528 296 | 104518,,ICD9_CODE,77089 297 | 104518,,ICD9_CODE,7742 298 | 104518,,ICD9_CODE,7793 299 | 104518,,ICD9_CODE,7678 300 | 104518,,ICD9_CODE,7661 301 | 104518,,ICD9_CODE,V053 302 | 104518,,ICD9_CODE,V293 303 | 155252,,ICD9_CODE,431 304 | 155252,,ICD9_CODE,2449 305 | 155252,,ICD9_CODE,4019 306 | 155252,,ICD9_CODE,2948 307 | 155252,,ICD9_CODE,311 308 | 186474,,ICD9_CODE,9982 309 | 186474,,ICD9_CODE,2768 310 | 186474,,ICD9_CODE,4019 311 | 186474,,ICD9_CODE,2449 312 | 186474,,ICD9_CODE,2851 313 | 186474,,ICD9_CODE,311 314 | 108329,,ICD9_CODE,042 315 | 108329,,ICD9_CODE,486 316 | 108329,,ICD9_CODE,4254 317 | 108329,,ICD9_CODE,2762 318 | 108329,,ICD9_CODE,5849 319 | 108329,,ICD9_CODE,570 320 | 108329,,ICD9_CODE,5859 321 | 108329,,ICD9_CODE,2848 322 | 108329,,ICD9_CODE,2875 323 | 108329,,ICD9_CODE,4280 324 | 108329,,ICD9_CODE,2859 325 | 170467,,ICD9_CODE,042 326 | 170467,,ICD9_CODE,486 327 | 170467,,ICD9_CODE,4254 328 | 170467,,ICD9_CODE,42820 329 | 170467,,ICD9_CODE,4280 330 | 170467,,ICD9_CODE,5849 331 | 170467,,ICD9_CODE,5859 332 | 170467,,ICD9_CODE,2639 333 | 170467,,ICD9_CODE,2848 334 | 170467,,ICD9_CODE,2761 335 | 170467,,ICD9_CODE,2859 336 | 170467,,ICD9_CODE,V141 337 | 170467,,ICD9_CODE,V071 338 | 190201,,ICD9_CODE,V3001 339 | 190201,,ICD9_CODE,76517 340 | 190201,,ICD9_CODE,76407 341 | 190201,,ICD9_CODE,7756 342 | 190201,,ICD9_CODE,7742 343 | 190201,,ICD9_CODE,7793 344 | 190201,,ICD9_CODE,76528 345 | 190201,,ICD9_CODE,7764 346 | 178596,,ICD9_CODE,V3001 347 | 178596,,ICD9_CODE,7454 348 | 178596,,ICD9_CODE,V053 349 | 111944,,ICD9_CODE,9695 350 | 111944,,ICD9_CODE,2762 351 | 111944,,ICD9_CODE,29590 352 | 111944,,ICD9_CODE,E9503 353 | 111944,,ICD9_CODE,2859 354 | 111944,,ICD9_CODE,2662 355 | 156857,,ICD9_CODE,V3000 356 | 156857,,ICD9_CODE,769 357 | 156857,,ICD9_CODE,7466 358 | 156857,,ICD9_CODE,7742 359 | 156857,,ICD9_CODE,2762 360 | 156857,,ICD9_CODE,77981 361 | 156857,,ICD9_CODE,76519 362 | 156857,,ICD9_CODE,76528 363 | 156857,,ICD9_CODE,76719 364 | 156857,,ICD9_CODE,V290 365 | 156857,,ICD9_CODE,7470 366 | 156857,,ICD9_CODE,74689 367 | 194730,,ICD9_CODE,41001 368 | 194730,,ICD9_CODE,9982 369 | 194730,,ICD9_CODE,5990 370 | 194730,,ICD9_CODE,41401 371 | 194730,,ICD9_CODE,4019 372 | 194730,,ICD9_CODE,2720 373 | 194730,,ICD9_CODE,V1042 374 | 194730,,ICD9_CODE,V1582 375 | 182637,,ICD9_CODE,V3001 376 | 182637,,ICD9_CODE,7660 377 | 182637,,ICD9_CODE,V053 378 | 182637,,ICD9_CODE,V290 379 | 182637,,ICD9_CODE,V293 380 | 112086,,ICD9_CODE,4241 381 | 112086,,ICD9_CODE,9973 382 | 112086,,ICD9_CODE,5180 383 | 112086,,ICD9_CODE,5990 384 | 112086,,ICD9_CODE,99709 385 | 112086,,ICD9_CODE,3558 386 | 112086,,ICD9_CODE,4019 387 | 112086,,ICD9_CODE,2720 388 | 112086,,ICD9_CODE,25000 389 | 112086,,ICD9_CODE,53081 390 | 112086,,ICD9_CODE,5533 391 | 112086,,ICD9_CODE,V1582 392 | 142768,,ICD9_CODE,41061 393 | 142768,,ICD9_CODE,4280 394 | 142768,,ICD9_CODE,41401 395 | 142768,,ICD9_CODE,2720 396 | 142768,,ICD9_CODE,2721 397 | 142768,,ICD9_CODE,2740 398 | 100536,,ICD9_CODE,96500 399 | 100536,,ICD9_CODE,042 400 | 100536,,ICD9_CODE,07054 401 | 100536,,ICD9_CODE,5715 402 | 100536,,ICD9_CODE,30401 403 | 100536,,ICD9_CODE,2848 404 | 100536,,ICD9_CODE,9694 405 | 100536,,ICD9_CODE,E8502 406 | 100536,,ICD9_CODE,E8532 407 | 181542,,ICD9_CODE,41011 408 | 181542,,ICD9_CODE,4271 409 | 181542,,ICD9_CODE,41401 410 | 181542,,ICD9_CODE,42689 411 | 115385,,ICD9_CODE,80416 412 | 115385,,ICD9_CODE,87342 413 | 115385,,ICD9_CODE,E916 414 | 175016,,ICD9_CODE,431 415 | 175016,,ICD9_CODE,20210 416 | 175016,,ICD9_CODE,4019 417 | 110641,,ICD9_CODE,V3001 418 | 110641,,ICD9_CODE,76519 419 | 110641,,ICD9_CODE,76528 420 | 110641,,ICD9_CODE,V502 421 | 158569,,ICD9_CODE,43310 422 | 158569,,ICD9_CODE,39891 423 | 158569,,ICD9_CODE,3963 424 | 158569,,ICD9_CODE,40391 425 | 158569,,ICD9_CODE,70715 426 | 158569,,ICD9_CODE,53081 427 | 158569,,ICD9_CODE,2720 428 | 158569,,ICD9_CODE,25000 429 | 158569,,ICD9_CODE,4148 430 | 120969,,ICD9_CODE,1919 431 | 166401,,ICD9_CODE,1919 432 | 166401,,ICD9_CODE,3484 433 | 166401,,ICD9_CODE,78701 434 | 166401,,ICD9_CODE,56400 435 | 112077,,ICD9_CODE,0389 436 | 112077,,ICD9_CODE,486 437 | 112077,,ICD9_CODE,V4281 438 | 112077,,ICD9_CODE,23875 439 | 112077,,ICD9_CODE,42731 440 | 112077,,ICD9_CODE,41400 441 | 112077,,ICD9_CODE,3004 442 | 112077,,ICD9_CODE,2724 443 | 112077,,ICD9_CODE,2449 444 | 112077,,ICD9_CODE,60001 445 | 112077,,ICD9_CODE,78843 446 | 112077,,ICD9_CODE,32723 447 | 112077,,ICD9_CODE,3320 448 | 112077,,ICD9_CODE,3051 449 | 112077,,ICD9_CODE,V1079 450 | 112077,,ICD9_CODE,V4581 451 | 112077,,ICD9_CODE,V433 452 | 112077,,ICD9_CODE,99591 453 | 112077,,ICD9_CODE,5853 454 | 116630,,ICD9_CODE,4241 455 | 116630,,ICD9_CODE,20280 456 | 116630,,ICD9_CODE,V4282 457 | 116630,,ICD9_CODE,99811 458 | 116630,,ICD9_CODE,3320 459 | 116630,,ICD9_CODE,30000 460 | 116630,,ICD9_CODE,53081 461 | 116630,,ICD9_CODE,60000 462 | 116630,,ICD9_CODE,E8798 463 | 116630,,ICD9_CODE,41401 464 | 116630,,ICD9_CODE,4412 465 | 190243,,ICD9_CODE,74561 466 | 190243,,ICD9_CODE,4240 467 | 190659,,ICD9_CODE,V3101 468 | 190659,,ICD9_CODE,76515 469 | 190659,,ICD9_CODE,76524 470 | 190659,,ICD9_CODE,769 471 | 190659,,ICD9_CODE,7707 472 | 190659,,ICD9_CODE,7775 473 | 190659,,ICD9_CODE,7742 474 | 190659,,ICD9_CODE,77211 475 | 190659,,ICD9_CODE,77081 476 | 190659,,ICD9_CODE,7766 477 | 190659,,ICD9_CODE,V290 478 | 190659,,ICD9_CODE,V053 479 | 123010,,ICD9_CODE,86113 480 | 123010,,ICD9_CODE,5119 481 | 123010,,ICD9_CODE,4239 482 | 123010,,ICD9_CODE,E966 483 | 188646,,ICD9_CODE,V3101 484 | 188646,,ICD9_CODE,7742 485 | 188646,,ICD9_CODE,76516 486 | 188646,,ICD9_CODE,76527 487 | 188646,,ICD9_CODE,22801 488 | 188646,,ICD9_CODE,V290 489 | 121205,,ICD9_CODE,20008 490 | 121205,,ICD9_CODE,2765 491 | 121205,,ICD9_CODE,5559 492 | 121205,,ICD9_CODE,99812 493 | 121205,,ICD9_CODE,51881 494 | 121205,,ICD9_CODE,4470 495 | 121205,,ICD9_CODE,135 496 | 121205,,ICD9_CODE,53100 497 | 121205,,ICD9_CODE,2866 498 | 142807,,ICD9_CODE,76502 499 | 142807,,ICD9_CODE,77181 500 | 142807,,ICD9_CODE,2762 501 | 142807,,ICD9_CODE,769 502 | 142807,,ICD9_CODE,7707 503 | 142807,,ICD9_CODE,77211 504 | 142807,,ICD9_CODE,7742 505 | 142807,,ICD9_CODE,7766 506 | 142807,,ICD9_CODE,36221 507 | 160481,,ICD9_CODE,V3000 508 | 160481,,ICD9_CODE,76503 509 | 160481,,ICD9_CODE,769 510 | 160481,,ICD9_CODE,77181 511 | 160481,,ICD9_CODE,7742 512 | 160481,,ICD9_CODE,76523 513 | 160481,,ICD9_CODE,7766 514 | 160481,,ICD9_CODE,77081 515 | 160481,,ICD9_CODE,77981 516 | 160481,,ICD9_CODE,7470 517 | 160481,,ICD9_CODE,36221 518 | 160481,,ICD9_CODE,2707 519 | 140037,,ICD9_CODE,33520 520 | 140037,,ICD9_CODE,51884 521 | 140037,,ICD9_CODE,486 522 | 140037,,ICD9_CODE,42731 523 | 140037,,ICD9_CODE,4019 524 | 140037,,ICD9_CODE,60000 525 | 140037,,ICD9_CODE,42789 526 | 140037,,ICD9_CODE,2859 527 | 183686,,ICD9_CODE,2761 528 | 183686,,ICD9_CODE,7234 529 | 183686,,ICD9_CODE,4240 530 | 183686,,ICD9_CODE,4589 531 | 183686,,ICD9_CODE,07999 532 | 183686,,ICD9_CODE,4019 533 | 183686,,ICD9_CODE,42789 534 | 183686,,ICD9_CODE,78841 535 | 160891,,ICD9_CODE,4260 536 | 170324,,ICD9_CODE,85181 537 | 170324,,ICD9_CODE,8072 538 | 170324,,ICD9_CODE,V461 539 | 170324,,ICD9_CODE,86402 540 | 170324,,ICD9_CODE,86509 541 | 170324,,ICD9_CODE,4538 542 | 170324,,ICD9_CODE,5185 543 | 170324,,ICD9_CODE,4821 544 | 170324,,ICD9_CODE,8604 545 | 127870,,ICD9_CODE,41401 546 | 127870,,ICD9_CODE,4241 547 | 127870,,ICD9_CODE,4111 548 | 127870,,ICD9_CODE,42731 549 | 127870,,ICD9_CODE,2720 550 | 127870,,ICD9_CODE,4019 551 | 127870,,ICD9_CODE,4401 552 | 188606,,ICD9_CODE,4373 553 | 188606,,ICD9_CODE,2449 554 | 187373,,ICD9_CODE,41401 555 | 187373,,ICD9_CODE,4139 556 | 187373,,ICD9_CODE,4019 557 | 187373,,ICD9_CODE,2720 558 | 187373,,ICD9_CODE,7820 559 | 187373,,ICD9_CODE,V1083 560 | 187373,,ICD9_CODE,6000 561 | 153952,,ICD9_CODE,99602 562 | 153952,,ICD9_CODE,4241 563 | 153952,,ICD9_CODE,4411 564 | 153952,,ICD9_CODE,4260 565 | 153952,,ICD9_CODE,42731 566 | 175533,,ICD9_CODE,51881 567 | 175533,,ICD9_CODE,5070 568 | 175533,,ICD9_CODE,48240 569 | 175533,,ICD9_CODE,5121 570 | 175533,,ICD9_CODE,5185 571 | 175533,,ICD9_CODE,4275 572 | 175533,,ICD9_CODE,3481 573 | 175533,,ICD9_CODE,78003 574 | 175533,,ICD9_CODE,2762 575 | 195700,,ICD9_CODE,V3000 576 | 195700,,ICD9_CODE,769 577 | 195700,,ICD9_CODE,7742 578 | 195700,,ICD9_CODE,7793 579 | 195700,,ICD9_CODE,76517 580 | 195700,,ICD9_CODE,76526 581 | 195700,,ICD9_CODE,75261 582 | 195700,,ICD9_CODE,75263 583 | 195700,,ICD9_CODE,V290 584 | 130744,,ICD9_CODE,1983 585 | 130744,,ICD9_CODE,431 586 | 130744,,ICD9_CODE,1623 587 | 130744,,ICD9_CODE,486 588 | 130744,,ICD9_CODE,4019 589 | 130744,,ICD9_CODE,V1582 590 | 130744,,ICD9_CODE,78321 591 | 130744,,ICD9_CODE,2559 592 | 133550,,ICD9_CODE,431 593 | 133550,,ICD9_CODE,1983 594 | 133550,,ICD9_CODE,1629 595 | 133550,,ICD9_CODE,4275 596 | 133550,,ICD9_CODE,4019 597 | 164025,,ICD9_CODE,V3001 598 | 164025,,ICD9_CODE,7756 599 | 164025,,ICD9_CODE,76408 600 | 164025,,ICD9_CODE,76529 601 | 164025,,ICD9_CODE,7746 602 | 164025,,ICD9_CODE,V502 603 | 164025,,ICD9_CODE,7784 604 | 128744,,ICD9_CODE,7806 605 | 128744,,ICD9_CODE,486 606 | 128744,,ICD9_CODE,4280 607 | 128744,,ICD9_CODE,3334 608 | 161160,,ICD9_CODE,5070 609 | 161160,,ICD9_CODE,0389 610 | 163353,,ICD9_CODE,V3001 611 | 163353,,ICD9_CODE,V053 612 | 163353,,ICD9_CODE,V290 613 | 145834,,ICD9_CODE,0389 614 | 145834,,ICD9_CODE,78559 615 | 145834,,ICD9_CODE,5849 616 | 145834,,ICD9_CODE,4275 617 | 145834,,ICD9_CODE,41071 618 | 145834,,ICD9_CODE,4280 619 | 145834,,ICD9_CODE,6826 620 | 145834,,ICD9_CODE,4254 621 | 145834,,ICD9_CODE,2639 622 | 185777,,ICD9_CODE,042 623 | 185777,,ICD9_CODE,1363 624 | 185777,,ICD9_CODE,7994 625 | 185777,,ICD9_CODE,2763 626 | 185777,,ICD9_CODE,7907 627 | 185777,,ICD9_CODE,5715 628 | 185777,,ICD9_CODE,04111 629 | 185777,,ICD9_CODE,V090 630 | 185777,,ICD9_CODE,E9317 631 | 178980,,ICD9_CODE,V3000 632 | 178980,,ICD9_CODE,V053 633 | 178980,,ICD9_CODE,V290 634 | 107064,,ICD9_CODE,40391 635 | 107064,,ICD9_CODE,4440 636 | 107064,,ICD9_CODE,9972 637 | 107064,,ICD9_CODE,2766 638 | 107064,,ICD9_CODE,2767 639 | 107064,,ICD9_CODE,2859 640 | 107064,,ICD9_CODE,2753 641 | 107064,,ICD9_CODE,V1582 642 | 118037,,ICD9_CODE,V3001 643 | 118037,,ICD9_CODE,V053 644 | 118037,,ICD9_CODE,V290 645 | 159514,,ICD9_CODE,V3001 646 | 159514,,ICD9_CODE,7706 647 | 159514,,ICD9_CODE,7746 648 | 159514,,ICD9_CODE,V290 649 | 159514,,ICD9_CODE,V502 650 | 159514,,ICD9_CODE,V053 651 | 150750,,ICD9_CODE,431 652 | 150750,,ICD9_CODE,5070 653 | 150750,,ICD9_CODE,4280 654 | 150750,,ICD9_CODE,5849 655 | 150750,,ICD9_CODE,2765 656 | 150750,,ICD9_CODE,4019 657 | 184167,,ICD9_CODE,V3000 658 | 184167,,ICD9_CODE,7742 659 | 184167,,ICD9_CODE,76525 660 | 184167,,ICD9_CODE,76515 661 | 184167,,ICD9_CODE,V290 662 | 194540,,ICD9_CODE,1913 663 | 112213,,ICD9_CODE,1570 664 | 112213,,ICD9_CODE,57410 665 | 112213,,ICD9_CODE,9971 666 | 112213,,ICD9_CODE,4275 667 | 112213,,ICD9_CODE,99811 668 | 112213,,ICD9_CODE,4019 669 | 112213,,ICD9_CODE,5680 670 | 112213,,ICD9_CODE,55321 671 | 112213,,ICD9_CODE,E8782 672 | 143045,,ICD9_CODE,41401 673 | 143045,,ICD9_CODE,4111 674 | 143045,,ICD9_CODE,25000 675 | 143045,,ICD9_CODE,4019 676 | 143045,,ICD9_CODE,2720 677 | 103251,,ICD9_CODE,V3000 678 | 103251,,ICD9_CODE,V290 679 | 103251,,ICD9_CODE,V502 680 | 103251,,ICD9_CODE,V053 681 | 103251,,ICD9_CODE,V721 682 | 161087,,ICD9_CODE,4239 683 | 161087,,ICD9_CODE,5119 684 | 161087,,ICD9_CODE,78551 685 | 161087,,ICD9_CODE,4589 686 | 161087,,ICD9_CODE,311 687 | 161087,,ICD9_CODE,7220 688 | 161087,,ICD9_CODE,71946 689 | 161087,,ICD9_CODE,2724 690 | 194023,,ICD9_CODE,7455 691 | 194023,,ICD9_CODE,45829 692 | 194023,,ICD9_CODE,V1259 693 | 194023,,ICD9_CODE,2724 694 | 188822,,ICD9_CODE,25080 695 | 188822,,ICD9_CODE,78039 696 | 188822,,ICD9_CODE,29633 697 | 188822,,ICD9_CODE,V5867 698 | 188822,,ICD9_CODE,E9323 699 | 188822,,ICD9_CODE,V5869 700 | 188822,,ICD9_CODE,47829 701 | 188822,,ICD9_CODE,78057 702 | 188822,,ICD9_CODE,78321 703 | 188822,,ICD9_CODE,4019 704 | 188822,,ICD9_CODE,4264 705 | 188822,,ICD9_CODE,2720 706 | 188822,,ICD9_CODE,V170 707 | 109235,,ICD9_CODE,80502 708 | 109235,,ICD9_CODE,5990 709 | 109235,,ICD9_CODE,5964 710 | 109235,,ICD9_CODE,E8809 711 | 109235,,ICD9_CODE,8220 712 | 109235,,ICD9_CODE,73300 713 | 109235,,ICD9_CODE,2948 714 | 109235,,ICD9_CODE,4019 715 | 109235,,ICD9_CODE,44321 716 | 157681,,ICD9_CODE,41401 717 | 157681,,ICD9_CODE,4111 718 | 157681,,ICD9_CODE,25000 719 | 157681,,ICD9_CODE,2724 720 | 157681,,ICD9_CODE,4019 721 | 109451,,ICD9_CODE,41071 722 | 109451,,ICD9_CODE,78551 723 | 109451,,ICD9_CODE,5781 724 | 109451,,ICD9_CODE,5849 725 | 109451,,ICD9_CODE,40391 726 | 109451,,ICD9_CODE,4280 727 | 109451,,ICD9_CODE,4592 728 | 109451,,ICD9_CODE,5070 729 | 109451,,ICD9_CODE,42731 730 | 109451,,ICD9_CODE,4271 731 | 109451,,ICD9_CODE,41401 732 | 109451,,ICD9_CODE,25000 733 | 109451,,ICD9_CODE,28521 734 | 109451,,ICD9_CODE,1122 735 | 109451,,ICD9_CODE,2720 736 | 109451,,ICD9_CODE,2749 737 | 109451,,ICD9_CODE,V1046 738 | 109451,,ICD9_CODE,43889 739 | 111970,,ICD9_CODE,0388 740 | 111970,,ICD9_CODE,78552 741 | 111970,,ICD9_CODE,40391 742 | 111970,,ICD9_CODE,42731 743 | 111970,,ICD9_CODE,70709 744 | 111970,,ICD9_CODE,5119 745 | 111970,,ICD9_CODE,6823 746 | 111970,,ICD9_CODE,99859 747 | 111970,,ICD9_CODE,00845 748 | 111970,,ICD9_CODE,5720 749 | 111970,,ICD9_CODE,99592 750 | 111970,,ICD9_CODE,V0980 751 | 111970,,ICD9_CODE,25000 752 | 111970,,ICD9_CODE,2859 753 | 111970,,ICD9_CODE,43889 754 | 111970,,ICD9_CODE,2749 755 | 111970,,ICD9_CODE,41401 756 | 111970,,ICD9_CODE,185 757 | 111970,,ICD9_CODE,4439 758 | 111970,,ICD9_CODE,2449 759 | 111970,,ICD9_CODE,E8788 760 | 165315,,ICD9_CODE,9678 761 | 165315,,ICD9_CODE,9693 762 | 165315,,ICD9_CODE,E9502 763 | 165315,,ICD9_CODE,E9503 764 | 165315,,ICD9_CODE,3488 765 | 165315,,ICD9_CODE,29620 766 | 165315,,ICD9_CODE,4019 767 | 124321,,ICD9_CODE,2252 768 | 124321,,ICD9_CODE,3485 769 | 124321,,ICD9_CODE,78039 770 | 124321,,ICD9_CODE,4241 771 | 124321,,ICD9_CODE,4019 772 | 124321,,ICD9_CODE,2720 773 | 124321,,ICD9_CODE,2724 774 | 124321,,ICD9_CODE,V4581 775 | 124321,,ICD9_CODE,V4579 776 | 124321,,ICD9_CODE,V1582 777 | 152223,,ICD9_CODE,41401 778 | 152223,,ICD9_CODE,4111 779 | 152223,,ICD9_CODE,4241 780 | 152223,,ICD9_CODE,V4582 781 | 152223,,ICD9_CODE,2724 782 | 152223,,ICD9_CODE,4019 783 | 152223,,ICD9_CODE,60000 784 | 152223,,ICD9_CODE,3899 785 | 161859,,ICD9_CODE,41041 786 | 161859,,ICD9_CODE,41401 787 | 161859,,ICD9_CODE,53081 788 | 161859,,ICD9_CODE,25000 789 | 129635,,ICD9_CODE,41071 790 | 129635,,ICD9_CODE,25011 791 | 129635,,ICD9_CODE,41401 792 | 129635,,ICD9_CODE,4019 793 | 197661,,ICD9_CODE,99604 794 | 197661,,ICD9_CODE,4271 795 | 197661,,ICD9_CODE,4280 796 | 197661,,ICD9_CODE,42731 797 | 197661,,ICD9_CODE,41401 798 | 197661,,ICD9_CODE,412 799 | 197661,,ICD9_CODE,5939 800 | 197661,,ICD9_CODE,2720 801 | 197661,,ICD9_CODE,60000 802 | 134931,,ICD9_CODE,V3000 803 | 134931,,ICD9_CODE,7706 804 | 134931,,ICD9_CODE,V290 805 | 134931,,ICD9_CODE,V053 806 | 162569,,ICD9_CODE,41401 807 | 162569,,ICD9_CODE,4111 808 | 162569,,ICD9_CODE,496 809 | 162569,,ICD9_CODE,412 810 | 162569,,ICD9_CODE,25000 811 | 162569,,ICD9_CODE,2720 812 | 162569,,ICD9_CODE,4263 813 | 162569,,ICD9_CODE,30029 814 | 162569,,ICD9_CODE,V1582 815 | 162569,,ICD9_CODE,V4582 816 | 162569,,ICD9_CODE,V174 817 | 104557,,ICD9_CODE,99674 818 | 104557,,ICD9_CODE,4160 819 | 104557,,ICD9_CODE,4111 820 | 104557,,ICD9_CODE,4281 821 | 104557,,ICD9_CODE,4271 822 | 104557,,ICD9_CODE,41401 823 | 104557,,ICD9_CODE,4019 824 | 104557,,ICD9_CODE,2720 825 | 104557,,ICD9_CODE,5939 826 | 128652,,ICD9_CODE,3453 827 | 128652,,ICD9_CODE,20190 828 | 128652,,ICD9_CODE,515 829 | 128652,,ICD9_CODE,486 830 | 128652,,ICD9_CODE,4019 831 | 128652,,ICD9_CODE,36250 832 | 128652,,ICD9_CODE,E9331 833 | 128652,,ICD9_CODE,4371 834 | 175413,,ICD9_CODE,5191 835 | 175413,,ICD9_CODE,496 836 | 175413,,ICD9_CODE,42731 837 | 175413,,ICD9_CODE,4538 838 | 175413,,ICD9_CODE,53081 839 | 175413,,ICD9_CODE,78057 840 | 175413,,ICD9_CODE,4019 841 | 175413,,ICD9_CODE,27801 842 | 176176,,ICD9_CODE,0389 843 | 176176,,ICD9_CODE,4928 844 | 176176,,ICD9_CODE,49390 845 | 115799,,ICD9_CODE,41071 846 | 115799,,ICD9_CODE,4280 847 | 115799,,ICD9_CODE,4254 848 | 115799,,ICD9_CODE,42731 849 | 115799,,ICD9_CODE,9971 850 | 115799,,ICD9_CODE,4260 851 | 115799,,ICD9_CODE,41401 852 | 115799,,ICD9_CODE,E8790 853 | 144319,,ICD9_CODE,42789 854 | 144319,,ICD9_CODE,42822 855 | 144319,,ICD9_CODE,4263 856 | 144319,,ICD9_CODE,41401 857 | 144319,,ICD9_CODE,V5861 858 | 144319,,ICD9_CODE,4280 859 | 144319,,ICD9_CODE,2449 860 | 144319,,ICD9_CODE,3659 861 | 166707,,ICD9_CODE,3962 862 | 166707,,ICD9_CODE,4260 863 | 166707,,ICD9_CODE,2875 864 | 166707,,ICD9_CODE,9971 865 | 166707,,ICD9_CODE,42731 866 | 166707,,ICD9_CODE,42732 867 | 166707,,ICD9_CODE,41401 868 | 166707,,ICD9_CODE,4019 869 | 166707,,ICD9_CODE,2449 870 | 166707,,ICD9_CODE,25000 871 | 166707,,ICD9_CODE,71590 872 | 122659,,ICD9_CODE,99831 873 | 122659,,ICD9_CODE,99811 874 | 122659,,ICD9_CODE,41511 875 | 122659,,ICD9_CODE,4538 876 | 122659,,ICD9_CODE,99672 877 | 122659,,ICD9_CODE,496 878 | 122659,,ICD9_CODE,41401 879 | 122659,,ICD9_CODE,V4581 880 | 122659,,ICD9_CODE,4019 881 | 122659,,ICD9_CODE,60000 882 | 122659,,ICD9_CODE,53081 883 | 122659,,ICD9_CODE,V1051 884 | 165660,,ICD9_CODE,55321 885 | 165660,,ICD9_CODE,41511 886 | 165660,,ICD9_CODE,5185 887 | 165660,,ICD9_CODE,486 888 | 165660,,ICD9_CODE,99739 889 | 165660,,ICD9_CODE,5180 890 | 165660,,ICD9_CODE,41400 891 | 165660,,ICD9_CODE,496 892 | 165660,,ICD9_CODE,4019 893 | 165660,,ICD9_CODE,60000 894 | 165660,,ICD9_CODE,30000 895 | 165660,,ICD9_CODE,V1051 896 | 182104,,ICD9_CODE,41401 897 | 182104,,ICD9_CODE,4111 898 | 182104,,ICD9_CODE,496 899 | 182104,,ICD9_CODE,4019 900 | 182104,,ICD9_CODE,3051 901 | 182104,,ICD9_CODE,53081 902 | 182104,,ICD9_CODE,60000 903 | 182104,,ICD9_CODE,V1051 904 | 182104,,ICD9_CODE,5968 905 | 188670,,ICD9_CODE,41071 906 | 188670,,ICD9_CODE,4280 907 | 188670,,ICD9_CODE,496 908 | 188670,,ICD9_CODE,53551 909 | 188670,,ICD9_CODE,2851 910 | 188670,,ICD9_CODE,486 911 | 188670,,ICD9_CODE,41401 912 | 188670,,ICD9_CODE,25000 913 | 188670,,ICD9_CODE,42789 914 | 185910,,ICD9_CODE,60883 915 | 185910,,ICD9_CODE,0389 916 | 185910,,ICD9_CODE,99592 917 | 185910,,ICD9_CODE,5849 918 | 185910,,ICD9_CODE,4280 919 | 185910,,ICD9_CODE,42731 920 | 185910,,ICD9_CODE,9982 921 | 185910,,ICD9_CODE,9974 922 | 185910,,ICD9_CODE,5601 923 | 185910,,ICD9_CODE,6084 924 | 185910,,ICD9_CODE,E8708 925 | 185910,,ICD9_CODE,41400 926 | 185910,,ICD9_CODE,V4581 927 | 106266,,ICD9_CODE,V3000 928 | 106266,,ICD9_CODE,769 929 | 106266,,ICD9_CODE,7742 930 | 106266,,ICD9_CODE,2765 931 | 106266,,ICD9_CODE,7708 932 | 106266,,ICD9_CODE,76519 933 | 106266,,ICD9_CODE,V290 934 | 106266,,ICD9_CODE,V058 935 | 106266,,ICD9_CODE,V053 936 | 101757,,ICD9_CODE,1917 937 | 101757,,ICD9_CODE,5185 938 | 101757,,ICD9_CODE,5130 939 | 101757,,ICD9_CODE,48241 940 | 101757,,ICD9_CODE,5070 941 | 101757,,ICD9_CODE,70705 942 | 101757,,ICD9_CODE,1124 943 | 101757,,ICD9_CODE,496 944 | 101757,,ICD9_CODE,48282 945 | 101757,,ICD9_CODE,78820 946 | 101757,,ICD9_CODE,5121 947 | 101757,,ICD9_CODE,70703 948 | 101757,,ICD9_CODE,3485 949 | 101757,,ICD9_CODE,V1005 950 | 101757,,ICD9_CODE,V1047 951 | 101757,,ICD9_CODE,4019 952 | 101757,,ICD9_CODE,2859 953 | 101757,,ICD9_CODE,3051 954 | 101757,,ICD9_CODE,7099 955 | 119203,,ICD9_CODE,42741 956 | 119203,,ICD9_CODE,4280 957 | 119203,,ICD9_CODE,41400 958 | 119203,,ICD9_CODE,412 959 | 119203,,ICD9_CODE,4019 960 | 119203,,ICD9_CODE,43820 961 | 119203,,ICD9_CODE,43819 962 | 146828,,ICD9_CODE,8052 963 | 146828,,ICD9_CODE,5180 964 | 146828,,ICD9_CODE,E8210 965 | 181750,,ICD9_CODE,41401 966 | 181750,,ICD9_CODE,4139 967 | 181750,,ICD9_CODE,5960 968 | 181750,,ICD9_CODE,42731 969 | 181750,,ICD9_CODE,3968 970 | 181750,,ICD9_CODE,4019 971 | 181750,,ICD9_CODE,2720 972 | 181750,,ICD9_CODE,78057 973 | 181750,,ICD9_CODE,V173 974 | 181750,,ICD9_CODE,4439 975 | 157907,,ICD9_CODE,8249 976 | 157907,,ICD9_CODE,9984 977 | 157907,,ICD9_CODE,8730 978 | 157907,,ICD9_CODE,87344 979 | 157907,,ICD9_CODE,9110 980 | 157907,,ICD9_CODE,9130 981 | 157907,,ICD9_CODE,E8122 982 | 157907,,ICD9_CODE,3051 983 | 144073,,ICD9_CODE,5768 984 | 144073,,ICD9_CODE,20300 985 | 144073,,ICD9_CODE,99659 986 | 144073,,ICD9_CODE,99811 987 | 144073,,ICD9_CODE,2851 988 | 144073,,ICD9_CODE,2809 989 | 144073,,ICD9_CODE,2811 990 | 144073,,ICD9_CODE,22809 991 | 190539,,ICD9_CODE,4241 992 | 190539,,ICD9_CODE,42731 993 | 190539,,ICD9_CODE,4280 994 | 190539,,ICD9_CODE,496 995 | 190539,,ICD9_CODE,2939 996 | 190539,,ICD9_CODE,40390 997 | 190539,,ICD9_CODE,56409 998 | 190539,,ICD9_CODE,311 999 | 190539,,ICD9_CODE,V4582 1000 | 190539,,ICD9_CODE,412 1001 | 190539,,ICD9_CODE,2724 1002 | 132761,,ICD9_CODE,V3000 1003 | 132761,,ICD9_CODE,7746 1004 | 132761,,ICD9_CODE,7661 1005 | 132761,,ICD9_CODE,V290 1006 | 132761,,ICD9_CODE,V293 1007 | 196010,,ICD9_CODE,V3000 1008 | 196010,,ICD9_CODE,V502 1009 | 196010,,ICD9_CODE,V053 1010 | 196010,,ICD9_CODE,V290 1011 | 190797,,ICD9_CODE,7907 1012 | 190797,,ICD9_CODE,78039 1013 | 190797,,ICD9_CODE,5849 1014 | 190797,,ICD9_CODE,58089 1015 | 190797,,ICD9_CODE,5712 1016 | 190797,,ICD9_CODE,07054 1017 | 190797,,ICD9_CODE,04111 1018 | 190797,,ICD9_CODE,5728 1019 | 190797,,ICD9_CODE,2841 1020 | 155385,,ICD9_CODE,41021 1021 | 155385,,ICD9_CODE,30562 1022 | 155385,,ICD9_CODE,41401 1023 | 155385,,ICD9_CODE,4019 1024 | 155385,,ICD9_CODE,53081 1025 | 138795,,ICD9_CODE,V3001 1026 | 138795,,ICD9_CODE,V290 1027 | 138795,,ICD9_CODE,V053 1028 | 190665,,ICD9_CODE,43310 1029 | 190665,,ICD9_CODE,4280 1030 | 190665,,ICD9_CODE,2720 1031 | 190665,,ICD9_CODE,4019 1032 | 190665,,ICD9_CODE,2449 1033 | 190665,,ICD9_CODE,25000 1034 | 190665,,ICD9_CODE,V1011 1035 | 190665,,ICD9_CODE,41400 1036 | 190665,,ICD9_CODE,V4582 1037 | 190665,,ICD9_CODE,V4502 1038 | 181711,,ICD9_CODE,1983 1039 | 181711,,ICD9_CODE,1628 1040 | 181711,,ICD9_CODE,53140 1041 | 181711,,ICD9_CODE,2761 1042 | 181711,,ICD9_CODE,4280 1043 | 181711,,ICD9_CODE,78039 1044 | 181711,,ICD9_CODE,2720 1045 | 181711,,ICD9_CODE,4019 1046 | 162774,,ICD9_CODE,V3001 1047 | 162774,,ICD9_CODE,7661 1048 | 162774,,ICD9_CODE,V053 1049 | 162774,,ICD9_CODE,V290 1050 | 162774,,ICD9_CODE,V293 1051 | 177285,,ICD9_CODE,V3000 1052 | 177285,,ICD9_CODE,2161 1053 | 177285,,ICD9_CODE,V053 1054 | 177285,,ICD9_CODE,V290 1055 | 104130,,ICD9_CODE,5990 1056 | 104130,,ICD9_CODE,40391 1057 | 104130,,ICD9_CODE,5856 1058 | 104130,,ICD9_CODE,25080 1059 | 104130,,ICD9_CODE,0414 1060 | 104130,,ICD9_CODE,4589 1061 | 104130,,ICD9_CODE,311 1062 | 104130,,ICD9_CODE,2948 1063 | 104130,,ICD9_CODE,78701 1064 | 104130,,ICD9_CODE,2449 1065 | 104130,,ICD9_CODE,V4501 1066 | 104130,,ICD9_CODE,28529 1067 | 198892,,ICD9_CODE,V3401 1068 | 198892,,ICD9_CODE,76518 1069 | 198892,,ICD9_CODE,76527 1070 | 176332,,ICD9_CODE,20280 1071 | 176332,,ICD9_CODE,2880 1072 | 176332,,ICD9_CODE,2875 1073 | 176332,,ICD9_CODE,5781 1074 | 176332,,ICD9_CODE,2851 1075 | 176332,,ICD9_CODE,2639 1076 | 176332,,ICD9_CODE,9998 1077 | 176332,,ICD9_CODE,5790 1078 | 176332,,ICD9_CODE,6930 1079 | 189535,,ICD9_CODE,20280 1080 | 189535,,ICD9_CODE,2848 1081 | 189535,,ICD9_CODE,99685 1082 | 189535,,ICD9_CODE,56983 1083 | 189535,,ICD9_CODE,5672 1084 | 189535,,ICD9_CODE,2762 1085 | 189535,,ICD9_CODE,0389 1086 | 189535,,ICD9_CODE,99591 1087 | 189535,,ICD9_CODE,2763 1088 | 189535,,ICD9_CODE,7994 1089 | 189535,,ICD9_CODE,1120 1090 | 189535,,ICD9_CODE,2765 1091 | 189535,,ICD9_CODE,4589 1092 | 189535,,ICD9_CODE,42731 1093 | 189535,,ICD9_CODE,2554 1094 | 189535,,ICD9_CODE,3510 1095 | 189535,,ICD9_CODE,0880 1096 | 116009,,ICD9_CODE,1125 1097 | 116009,,ICD9_CODE,03849 1098 | 116009,,ICD9_CODE,7100 1099 | 116009,,ICD9_CODE,99591 1100 | 116009,,ICD9_CODE,2859 1101 | 116009,,ICD9_CODE,7140 1102 | 195961,,ICD9_CODE,71945 1103 | 195961,,ICD9_CODE,4280 1104 | 195961,,ICD9_CODE,496 1105 | 195961,,ICD9_CODE,57420 1106 | 195961,,ICD9_CODE,4148 1107 | 195961,,ICD9_CODE,E8889 1108 | 195961,,ICD9_CODE,E8498 1109 | 195961,,ICD9_CODE,7808 1110 | 195961,,ICD9_CODE,2948 1111 | 195961,,ICD9_CODE,3079 1112 | 172056,,ICD9_CODE,4210 1113 | 126055,,ICD9_CODE,V4511 1114 | 126055,,ICD9_CODE,34590 1115 | 126055,,ICD9_CODE,56400 1116 | 126055,,ICD9_CODE,28521 1117 | 126055,,ICD9_CODE,79092 1118 | 126055,,ICD9_CODE,32723 1119 | 126055,,ICD9_CODE,51889 1120 | 126055,,ICD9_CODE,78659 1121 | 126055,,ICD9_CODE,78060 1122 | 126055,,ICD9_CODE,7821 1123 | 126055,,ICD9_CODE,4168 1124 | 126055,,ICD9_CODE,V1251 1125 | 126055,,ICD9_CODE,V5861 1126 | 128755,,ICD9_CODE,4372 1127 | 128755,,ICD9_CODE,78039 1128 | 128755,,ICD9_CODE,7100 1129 | 128755,,ICD9_CODE,40391 1130 | 128755,,ICD9_CODE,4251 1131 | 128755,,ICD9_CODE,2859 1132 | 131345,,ICD9_CODE,40301 1133 | 131345,,ICD9_CODE,58281 1134 | 131345,,ICD9_CODE,4254 1135 | 131345,,ICD9_CODE,7100 1136 | 131345,,ICD9_CODE,2875 1137 | 131345,,ICD9_CODE,78702 1138 | 131345,,ICD9_CODE,E9426 1139 | 131345,,ICD9_CODE,9596 1140 | 131345,,ICD9_CODE,E9289 1141 | 131345,,ICD9_CODE,4589 1142 | 131345,,ICD9_CODE,2859 1143 | 131345,,ICD9_CODE,V1251 1144 | 131345,,ICD9_CODE,5856 1145 | 131345,,ICD9_CODE,V451 1146 | 131345,,ICD9_CODE,5990 1147 | 131345,,ICD9_CODE,2767 1148 | 131345,,ICD9_CODE,2762 1149 | 131345,,ICD9_CODE,2753 1150 | 131345,,ICD9_CODE,27541 1151 | 131345,,ICD9_CODE,58881 1152 | 131376,,ICD9_CODE,40301 1153 | 131376,,ICD9_CODE,5856 1154 | 131376,,ICD9_CODE,58281 1155 | 131376,,ICD9_CODE,4254 1156 | 131376,,ICD9_CODE,3643 1157 | 131376,,ICD9_CODE,2841 1158 | 131376,,ICD9_CODE,78959 1159 | 131376,,ICD9_CODE,33829 1160 | 131376,,ICD9_CODE,78900 1161 | 131376,,ICD9_CODE,7100 1162 | 131376,,ICD9_CODE,2875 1163 | 131376,,ICD9_CODE,28521 1164 | 131376,,ICD9_CODE,32723 1165 | 131376,,ICD9_CODE,44389 1166 | 131376,,ICD9_CODE,28529 1167 | 131376,,ICD9_CODE,53190 1168 | 131376,,ICD9_CODE,34590 1169 | 131376,,ICD9_CODE,V5861 1170 | 131376,,ICD9_CODE,V1251 1171 | 131376,,ICD9_CODE,V1254 1172 | 135923,,ICD9_CODE,40301 1173 | 135923,,ICD9_CODE,5856 1174 | 135923,,ICD9_CODE,4251 1175 | 135923,,ICD9_CODE,7100 1176 | 135923,,ICD9_CODE,79902 1177 | 135923,,ICD9_CODE,E9352 1178 | 135923,,ICD9_CODE,2875 1179 | 135923,,ICD9_CODE,28521 1180 | 135923,,ICD9_CODE,78909 1181 | 135923,,ICD9_CODE,32723 1182 | 135923,,ICD9_CODE,3004 1183 | 135923,,ICD9_CODE,V4511 1184 | 135923,,ICD9_CODE,V1251 1185 | 135923,,ICD9_CODE,V5861 1186 | 135923,,ICD9_CODE,V4589 1187 | 136572,,ICD9_CODE,2766 1188 | 136572,,ICD9_CODE,5856 1189 | 136572,,ICD9_CODE,40301 1190 | 136572,,ICD9_CODE,4254 1191 | 136572,,ICD9_CODE,4239 1192 | 136572,,ICD9_CODE,28529 1193 | 136572,,ICD9_CODE,2767 1194 | 136572,,ICD9_CODE,7100 1195 | 136572,,ICD9_CODE,78909 1196 | 136572,,ICD9_CODE,33829 1197 | 136572,,ICD9_CODE,4589 1198 | 136572,,ICD9_CODE,53190 1199 | 136572,,ICD9_CODE,34590 1200 | 136572,,ICD9_CODE,311 1201 | 136572,,ICD9_CODE,V1251 1202 | 136572,,ICD9_CODE,V4512 1203 | 137510,,ICD9_CODE,40301 1204 | 137510,,ICD9_CODE,5856 1205 | 137510,,ICD9_CODE,3643 1206 | 137510,,ICD9_CODE,4254 1207 | 137510,,ICD9_CODE,4239 1208 | 137510,,ICD9_CODE,2766 1209 | 137510,,ICD9_CODE,7100 1210 | 137510,,ICD9_CODE,58381 1211 | 137510,,ICD9_CODE,V4512 1212 | 137510,,ICD9_CODE,V1581 1213 | 137510,,ICD9_CODE,V642 1214 | 137510,,ICD9_CODE,78904 1215 | 137510,,ICD9_CODE,V4511 1216 | 137510,,ICD9_CODE,2875 1217 | 137510,,ICD9_CODE,28529 1218 | 137510,,ICD9_CODE,V1251 1219 | 137510,,ICD9_CODE,V5861 1220 | 137510,,ICD9_CODE,4439 1221 | 137510,,ICD9_CODE,V4578 1222 | 137510,,ICD9_CODE,V0254 1223 | 139061,,ICD9_CODE,40301 1224 | 139061,,ICD9_CODE,58281 1225 | 139061,,ICD9_CODE,5855 1226 | 139061,,ICD9_CODE,5990 1227 | 139061,,ICD9_CODE,4254 1228 | 139061,,ICD9_CODE,7100 1229 | 139061,,ICD9_CODE,7243 1230 | 139061,,ICD9_CODE,2767 1231 | 139061,,ICD9_CODE,2875 1232 | 139061,,ICD9_CODE,79092 1233 | 139061,,ICD9_CODE,25200 1234 | 139061,,ICD9_CODE,28529 1235 | 139061,,ICD9_CODE,V1251 1236 | 140167,,ICD9_CODE,40301 1237 | 140167,,ICD9_CODE,5856 1238 | 140167,,ICD9_CODE,99656 1239 | 140167,,ICD9_CODE,4251 1240 | 140167,,ICD9_CODE,4239 1241 | 140167,,ICD9_CODE,9951 1242 | 140167,,ICD9_CODE,78909 1243 | 140167,,ICD9_CODE,7100 1244 | 140167,,ICD9_CODE,2874 1245 | 140167,,ICD9_CODE,28521 1246 | 140167,,ICD9_CODE,3004 1247 | 140167,,ICD9_CODE,32723 1248 | 140167,,ICD9_CODE,V1251 1249 | 140167,,ICD9_CODE,V5865 1250 | 140167,,ICD9_CODE,V5861 1251 | 140167,,ICD9_CODE,E8781 1252 | 140167,,ICD9_CODE,E9426 1253 | 147469,,ICD9_CODE,40301 1254 | 147469,,ICD9_CODE,5856 1255 | 147469,,ICD9_CODE,34839 1256 | 147469,,ICD9_CODE,58281 1257 | 147469,,ICD9_CODE,5990 1258 | 147469,,ICD9_CODE,2762 1259 | 147469,,ICD9_CODE,3643 1260 | 147469,,ICD9_CODE,2839 1261 | 147469,,ICD9_CODE,7100 1262 | 147469,,ICD9_CODE,V1251 1263 | 147469,,ICD9_CODE,V5861 1264 | 147469,,ICD9_CODE,7842 1265 | 147469,,ICD9_CODE,2767 1266 | 147469,,ICD9_CODE,61172 1267 | 147469,,ICD9_CODE,2875 1268 | 147469,,ICD9_CODE,27541 1269 | 147469,,ICD9_CODE,2753 1270 | 151240,,ICD9_CODE,40301 1271 | 151240,,ICD9_CODE,5856 1272 | 151240,,ICD9_CODE,4254 1273 | 151240,,ICD9_CODE,4239 1274 | 151240,,ICD9_CODE,7100 1275 | 151240,,ICD9_CODE,58381 1276 | 151240,,ICD9_CODE,2767 1277 | 151240,,ICD9_CODE,78701 1278 | 151240,,ICD9_CODE,78791 1279 | 151240,,ICD9_CODE,2753 1280 | 151240,,ICD9_CODE,28529 1281 | 151240,,ICD9_CODE,78904 1282 | 151240,,ICD9_CODE,33829 1283 | 151240,,ICD9_CODE,2875 1284 | 151240,,ICD9_CODE,44389 1285 | 151240,,ICD9_CODE,V0254 1286 | 151240,,ICD9_CODE,V5861 1287 | 151240,,ICD9_CODE,V4512 1288 | 151240,,ICD9_CODE,V4511 1289 | 151240,,ICD9_CODE,V1581 1290 | 155726,,ICD9_CODE,40301 1291 | 155726,,ICD9_CODE,5856 1292 | 155726,,ICD9_CODE,58281 1293 | 155726,,ICD9_CODE,4254 1294 | 155726,,ICD9_CODE,78959 1295 | 155726,,ICD9_CODE,2875 1296 | 155726,,ICD9_CODE,4592 1297 | 155726,,ICD9_CODE,2841 1298 | 155726,,ICD9_CODE,7100 1299 | 155726,,ICD9_CODE,78900 1300 | 155726,,ICD9_CODE,33819 1301 | 155726,,ICD9_CODE,33829 1302 | 155726,,ICD9_CODE,53190 1303 | 155726,,ICD9_CODE,53081 1304 | 155726,,ICD9_CODE,311 1305 | 155726,,ICD9_CODE,28521 1306 | 155726,,ICD9_CODE,28529 1307 | 155726,,ICD9_CODE,34590 1308 | 155726,,ICD9_CODE,73399 1309 | 155726,,ICD9_CODE,32723 1310 | 155726,,ICD9_CODE,44389 1311 | 155726,,ICD9_CODE,62211 1312 | 155726,,ICD9_CODE,V4512 1313 | 155726,,ICD9_CODE,V1251 1314 | 155726,,ICD9_CODE,V5861 1315 | 158943,,ICD9_CODE,2766 1316 | 158943,,ICD9_CODE,5856 1317 | 158943,,ICD9_CODE,40301 1318 | 158943,,ICD9_CODE,58281 1319 | 158943,,ICD9_CODE,4592 1320 | 158943,,ICD9_CODE,4239 1321 | 158943,,ICD9_CODE,99662 1322 | 158943,,ICD9_CODE,7907 1323 | 158943,,ICD9_CODE,28981 1324 | 158943,,ICD9_CODE,4254 1325 | 158943,,ICD9_CODE,4251 1326 | 158943,,ICD9_CODE,78900 1327 | 158943,,ICD9_CODE,5990 1328 | 158943,,ICD9_CODE,2762 1329 | 158943,,ICD9_CODE,78659 1330 | 158943,,ICD9_CODE,33829 1331 | 158943,,ICD9_CODE,7100 1332 | 158943,,ICD9_CODE,V4512 1333 | 158943,,ICD9_CODE,2875 1334 | 158943,,ICD9_CODE,28521 1335 | 158943,,ICD9_CODE,2767 1336 | 158943,,ICD9_CODE,04104 1337 | 158943,,ICD9_CODE,E8791 1338 | 158943,,ICD9_CODE,04112 1339 | 158943,,ICD9_CODE,32723 1340 | 158943,,ICD9_CODE,V1251 1341 | 158943,,ICD9_CODE,V5861 1342 | 158995,,ICD9_CODE,96509 1343 | 158995,,ICD9_CODE,5856 1344 | 158995,,ICD9_CODE,40301 1345 | 158995,,ICD9_CODE,58281 1346 | 158995,,ICD9_CODE,4466 1347 | 158995,,ICD9_CODE,4254 1348 | 158995,,ICD9_CODE,2762 1349 | 158995,,ICD9_CODE,7100 1350 | 158995,,ICD9_CODE,2875 1351 | 158995,,ICD9_CODE,78097 1352 | 158995,,ICD9_CODE,45829 1353 | 158995,,ICD9_CODE,E8502 1354 | 158995,,ICD9_CODE,2767 1355 | 158995,,ICD9_CODE,28521 1356 | 158995,,ICD9_CODE,32723 1357 | 158995,,ICD9_CODE,3004 1358 | 158995,,ICD9_CODE,72992 1359 | 158995,,ICD9_CODE,V4512 1360 | 158995,,ICD9_CODE,V5861 1361 | 158995,,ICD9_CODE,V1251 1362 | 161950,,ICD9_CODE,40301 1363 | 161950,,ICD9_CODE,5856 1364 | 161950,,ICD9_CODE,78959 1365 | 161950,,ICD9_CODE,4251 1366 | 161950,,ICD9_CODE,7100 1367 | 161950,,ICD9_CODE,7840 1368 | 161950,,ICD9_CODE,28521 1369 | 161950,,ICD9_CODE,30000 1370 | 161950,,ICD9_CODE,78659 1371 | 161950,,ICD9_CODE,V1251 1372 | 161950,,ICD9_CODE,V5861 1373 | 161950,,ICD9_CODE,V4511 1374 | 161950,,ICD9_CODE,V4578 1375 | 164029,,ICD9_CODE,40301 1376 | 164029,,ICD9_CODE,7100 1377 | 164029,,ICD9_CODE,5856 1378 | 164029,,ICD9_CODE,V4983 1379 | 164029,,ICD9_CODE,58381 1380 | 164029,,ICD9_CODE,3643 1381 | 166018,,ICD9_CODE,4010 1382 | 166018,,ICD9_CODE,5856 1383 | 166018,,ICD9_CODE,58281 1384 | 166018,,ICD9_CODE,4254 1385 | 166018,,ICD9_CODE,2841 1386 | 166018,,ICD9_CODE,7100 1387 | 166018,,ICD9_CODE,2875 1388 | 166018,,ICD9_CODE,2859 1389 | 166018,,ICD9_CODE,V451 1390 | 166018,,ICD9_CODE,V4589 1391 | 166018,,ICD9_CODE,V4569 1392 | 170149,,ICD9_CODE,4538 1393 | 170149,,ICD9_CODE,5856 1394 | 170149,,ICD9_CODE,40301 1395 | 170149,,ICD9_CODE,4592 1396 | 170149,,ICD9_CODE,58281 1397 | 170149,,ICD9_CODE,4254 1398 | 170149,,ICD9_CODE,2841 1399 | 170149,,ICD9_CODE,7100 1400 | 170149,,ICD9_CODE,28521 1401 | 170149,,ICD9_CODE,2767 1402 | 170149,,ICD9_CODE,25200 1403 | 170149,,ICD9_CODE,45829 1404 | 170149,,ICD9_CODE,78701 1405 | 170149,,ICD9_CODE,2874 1406 | 170149,,ICD9_CODE,79500 1407 | 170149,,ICD9_CODE,78909 1408 | 170149,,ICD9_CODE,2518 1409 | 170149,,ICD9_CODE,E9320 1410 | 158689,,ICD9_CODE,E8500 1411 | 158689,,ICD9_CODE,E8543 1412 | 158689,,ICD9_CODE,E8541 1413 | 158689,,ICD9_CODE,E8498 1414 | 158689,,ICD9_CODE,3051 1415 | 130546,,ICD9_CODE,430 1416 | 130546,,ICD9_CODE,5070 1417 | 130546,,ICD9_CODE,2720 1418 | 130546,,ICD9_CODE,4019 1419 | 130546,,ICD9_CODE,43320 1420 | 129886,,ICD9_CODE,0389 1421 | 105501,,ICD9_CODE,9971 1422 | 105501,,ICD9_CODE,4271 1423 | 105501,,ICD9_CODE,78551 1424 | 105501,,ICD9_CODE,4280 1425 | 105501,,ICD9_CODE,5849 1426 | 105501,,ICD9_CODE,3963 1427 | 105501,,ICD9_CODE,V667 1428 | 197430,,ICD9_CODE,57149 1429 | 197430,,ICD9_CODE,1550 1430 | 197430,,ICD9_CODE,25002 1431 | 197430,,ICD9_CODE,5715 1432 | 197430,,ICD9_CODE,5680 1433 | 197430,,ICD9_CODE,2720 1434 | 197430,,ICD9_CODE,4019 1435 | 197430,,ICD9_CODE,V4581 1436 | 197430,,ICD9_CODE,V5867 1437 | 197430,,ICD9_CODE,27800 1438 | 197430,,ICD9_CODE,41400 1439 | 197430,,ICD9_CODE,V1301 1440 | 197430,,ICD9_CODE,32723 1441 | 189521,,ICD9_CODE,41401 1442 | 189521,,ICD9_CODE,9971 1443 | 189521,,ICD9_CODE,4139 1444 | 189521,,ICD9_CODE,42731 1445 | 189521,,ICD9_CODE,4019 1446 | 189521,,ICD9_CODE,2720 1447 | 189521,,ICD9_CODE,311 1448 | 189521,,ICD9_CODE,V4582 1449 | 175353,,ICD9_CODE,8822 1450 | 175353,,ICD9_CODE,85220 1451 | 175353,,ICD9_CODE,5185 1452 | 175353,,ICD9_CODE,99889 1453 | 175353,,ICD9_CODE,5070 1454 | 175353,,ICD9_CODE,9579 1455 | 175353,,ICD9_CODE,87342 1456 | 175353,,ICD9_CODE,E8150 1457 | 175353,,ICD9_CODE,2859 1458 | 116935,,ICD9_CODE,49322 1459 | 116935,,ICD9_CODE,51882 1460 | 116935,,ICD9_CODE,41071 1461 | 116935,,ICD9_CODE,42841 1462 | 116935,,ICD9_CODE,99812 1463 | 116935,,ICD9_CODE,5849 1464 | 116935,,ICD9_CODE,42731 1465 | 116935,,ICD9_CODE,4660 1466 | 116935,,ICD9_CODE,4589 1467 | 116935,,ICD9_CODE,41401 1468 | 116935,,ICD9_CODE,41402 1469 | 116935,,ICD9_CODE,2449 1470 | 116935,,ICD9_CODE,7921 1471 | 116935,,ICD9_CODE,25000 1472 | 116935,,ICD9_CODE,53081 1473 | 116935,,ICD9_CODE,2859 1474 | 149546,,ICD9_CODE,56985 1475 | 149546,,ICD9_CODE,41071 1476 | 149546,,ICD9_CODE,43411 1477 | 149546,,ICD9_CODE,5849 1478 | 149546,,ICD9_CODE,2851 1479 | 149546,,ICD9_CODE,34280 1480 | 149546,,ICD9_CODE,41402 1481 | 149546,,ICD9_CODE,42731 1482 | 149546,,ICD9_CODE,4280 1483 | 149546,,ICD9_CODE,40390 1484 | 149546,,ICD9_CODE,78451 1485 | 149546,,ICD9_CODE,25000 1486 | 149546,,ICD9_CODE,5859 1487 | 149546,,ICD9_CODE,2724 1488 | 149546,,ICD9_CODE,49320 1489 | 149546,,ICD9_CODE,53081 1490 | 149546,,ICD9_CODE,2449 1491 | 158975,,ICD9_CODE,1534 1492 | 158975,,ICD9_CODE,42821 1493 | 158975,,ICD9_CODE,1982 1494 | 158975,,ICD9_CODE,2639 1495 | 158975,,ICD9_CODE,5849 1496 | 158975,,ICD9_CODE,5601 1497 | 158975,,ICD9_CODE,99811 1498 | 158975,,ICD9_CODE,99813 1499 | 158975,,ICD9_CODE,42731 1500 | 158975,,ICD9_CODE,4280 1501 | 158975,,ICD9_CODE,40390 1502 | 158975,,ICD9_CODE,5853 1503 | 158975,,ICD9_CODE,4139 1504 | 158975,,ICD9_CODE,25000 1505 | 158975,,ICD9_CODE,53081 1506 | 158975,,ICD9_CODE,2449 1507 | 158975,,ICD9_CODE,49320 1508 | 158975,,ICD9_CODE,412 1509 | 158975,,ICD9_CODE,V4581 1510 | 158975,,ICD9_CODE,V1254 1511 | 158975,,ICD9_CODE,V4986 1512 | 158975,,ICD9_CODE,E8788 1513 | 158975,,ICD9_CODE,2800 1514 | 158975,,ICD9_CODE,45829 1515 | 158975,,ICD9_CODE,59971 1516 | 158975,,ICD9_CODE,E9342 1517 | 124271,,ICD9_CODE,0382 1518 | 124271,,ICD9_CODE,78552 1519 | 124271,,ICD9_CODE,51881 1520 | 124271,,ICD9_CODE,481 1521 | 124271,,ICD9_CODE,5849 1522 | 124271,,ICD9_CODE,78551 1523 | 124271,,ICD9_CODE,9982 1524 | 124271,,ICD9_CODE,1970 1525 | 124271,,ICD9_CODE,19889 1526 | 124271,,ICD9_CODE,99592 1527 | 124271,,ICD9_CODE,4239 1528 | 124271,,ICD9_CODE,2859 1529 | 117937,,ICD9_CODE,85300 1530 | 117937,,ICD9_CODE,9130 1531 | 117937,,ICD9_CODE,9100 1532 | 117937,,ICD9_CODE,30500 1533 | 117937,,ICD9_CODE,E8889 1534 | 190159,,ICD9_CODE,5712 1535 | 190159,,ICD9_CODE,45620 1536 | 190159,,ICD9_CODE,5780 1537 | 190159,,ICD9_CODE,51881 1538 | 190159,,ICD9_CODE,78559 1539 | 190159,,ICD9_CODE,5722 1540 | 190159,,ICD9_CODE,7895 1541 | 190159,,ICD9_CODE,45341 1542 | 190159,,ICD9_CODE,5990 1543 | 190159,,ICD9_CODE,5849 1544 | 190159,,ICD9_CODE,30500 1545 | 190159,,ICD9_CODE,2867 1546 | 190159,,ICD9_CODE,2761 1547 | 190159,,ICD9_CODE,2875 1548 | 190159,,ICD9_CODE,486 1549 | 190159,,ICD9_CODE,5997 1550 | 190159,,ICD9_CODE,8670 1551 | 190159,,ICD9_CODE,2639 1552 | 190159,,ICD9_CODE,2851 1553 | 190159,,ICD9_CODE,5723 1554 | 190159,,ICD9_CODE,34831 1555 | 190159,,ICD9_CODE,2738 1556 | 190159,,ICD9_CODE,5798 1557 | 190159,,ICD9_CODE,0701 1558 | 190159,,ICD9_CODE,3051 1559 | 190159,,ICD9_CODE,V1301 1560 | 190159,,ICD9_CODE,E8796 1561 | 193470,,ICD9_CODE,5712 1562 | 193470,,ICD9_CODE,45620 1563 | 193470,,ICD9_CODE,7895 1564 | 193470,,ICD9_CODE,2851 1565 | 193470,,ICD9_CODE,3575 1566 | 176189,,ICD9_CODE,4260 1567 | 176189,,ICD9_CODE,486 1568 | 176189,,ICD9_CODE,4240 1569 | 176189,,ICD9_CODE,2449 1570 | 176189,,ICD9_CODE,3310 1571 | 176189,,ICD9_CODE,29410 1572 | 176189,,ICD9_CODE,4168 1573 | 176189,,ICD9_CODE,2720 1574 | 176189,,ICD9_CODE,4019 1575 | 112013,,ICD9_CODE,60000 1576 | 112013,,ICD9_CODE,99811 1577 | 112013,,ICD9_CODE,2851 1578 | 112013,,ICD9_CODE,42789 1579 | 108811,,ICD9_CODE,53240 1580 | 108811,,ICD9_CODE,41071 1581 | 108811,,ICD9_CODE,53560 1582 | 108811,,ICD9_CODE,40390 1583 | 108811,,ICD9_CODE,5859 1584 | 159223,,ICD9_CODE,80604 1585 | 159223,,ICD9_CODE,8052 1586 | 159223,,ICD9_CODE,4139 1587 | 159223,,ICD9_CODE,42731 1588 | 159223,,ICD9_CODE,V422 1589 | 159223,,ICD9_CODE,4280 1590 | 159223,,ICD9_CODE,E8809 1591 | 159223,,ICD9_CODE,80701 1592 | 159223,,ICD9_CODE,4414 1593 | 159223,,ICD9_CODE,4019 1594 | 159223,,ICD9_CODE,V4501 1595 | 159223,,ICD9_CODE,4439 1596 | 159223,,ICD9_CODE,8730 1597 | 159223,,ICD9_CODE,57420 1598 | 176764,,ICD9_CODE,42831 1599 | 176764,,ICD9_CODE,51881 1600 | 176764,,ICD9_CODE,5070 1601 | 176764,,ICD9_CODE,42731 1602 | 176764,,ICD9_CODE,70707 1603 | 176764,,ICD9_CODE,V422 1604 | 176764,,ICD9_CODE,2738 1605 | 176764,,ICD9_CODE,V5417 1606 | 176764,,ICD9_CODE,V4581 1607 | 135828,,ICD9_CODE,4280 1608 | 135828,,ICD9_CODE,42731 1609 | 135828,,ICD9_CODE,4251 1610 | 135828,,ICD9_CODE,5997 1611 | 135828,,ICD9_CODE,41401 1612 | 135828,,ICD9_CODE,42781 1613 | 135828,,ICD9_CODE,V4501 1614 | 135828,,ICD9_CODE,V5861 1615 | 135828,,ICD9_CODE,V1046 1616 | 143120,,ICD9_CODE,4280 1617 | 143120,,ICD9_CODE,51881 1618 | 143120,,ICD9_CODE,5119 1619 | 143120,,ICD9_CODE,496 1620 | 143120,,ICD9_CODE,03811 1621 | 143120,,ICD9_CODE,99672 1622 | 143120,,ICD9_CODE,4240 1623 | 143120,,ICD9_CODE,48241 1624 | 143120,,ICD9_CODE,5070 1625 | 196896,,ICD9_CODE,5789 1626 | 196896,,ICD9_CODE,41091 1627 | 196896,,ICD9_CODE,5990 1628 | 196896,,ICD9_CODE,42731 1629 | 196896,,ICD9_CODE,2761 1630 | 196896,,ICD9_CODE,53010 1631 | 196896,,ICD9_CODE,2720 1632 | 196896,,ICD9_CODE,4019 1633 | 196896,,ICD9_CODE,3320 1634 | 196159,,ICD9_CODE,55321 1635 | 196159,,ICD9_CODE,99812 1636 | 196159,,ICD9_CODE,2851 1637 | 196159,,ICD9_CODE,E8788 1638 | 196159,,ICD9_CODE,5569 1639 | 196159,,ICD9_CODE,42731 1640 | 196159,,ICD9_CODE,3949 1641 | 196159,,ICD9_CODE,4019 1642 | 196159,,ICD9_CODE,V4501 1643 | 161310,,ICD9_CODE,51881 1644 | 161310,,ICD9_CODE,8600 1645 | 161310,,ICD9_CODE,44489 1646 | 161310,,ICD9_CODE,27651 1647 | 161310,,ICD9_CODE,99881 1648 | 161310,,ICD9_CODE,80700 1649 | 161310,,ICD9_CODE,92400 1650 | 161310,,ICD9_CODE,E9600 1651 | 161310,,ICD9_CODE,514 1652 | 161310,,ICD9_CODE,45829 1653 | 155820,,ICD9_CODE,V3101 1654 | 155820,,ICD9_CODE,76517 1655 | 155820,,ICD9_CODE,76497 1656 | 155820,,ICD9_CODE,V290 1657 | 155820,,ICD9_CODE,7708 1658 | 155820,,ICD9_CODE,76383 1659 | 155820,,ICD9_CODE,75261 1660 | 102631,,ICD9_CODE,4411 1661 | 102631,,ICD9_CODE,4241 1662 | 102631,,ICD9_CODE,9971 1663 | 102631,,ICD9_CODE,4281 1664 | 102631,,ICD9_CODE,44103 1665 | 146080,,ICD9_CODE,2181 1666 | 146080,,ICD9_CODE,2851 1667 | 146080,,ICD9_CODE,2800 1668 | 146080,,ICD9_CODE,24200 1669 | 113341,,ICD9_CODE,85300 1670 | 113341,,ICD9_CODE,95901 1671 | 113341,,ICD9_CODE,E8120 1672 | 137477,,ICD9_CODE,1919 1673 | 137477,,ICD9_CODE,6826 1674 | 137477,,ICD9_CODE,486 1675 | 137477,,ICD9_CODE,2554 1676 | 137477,,ICD9_CODE,25000 1677 | 137477,,ICD9_CODE,3594 1678 | 137477,,ICD9_CODE,E9320 1679 | 137526,,ICD9_CODE,1916 1680 | 137526,,ICD9_CODE,78039 1681 | 137526,,ICD9_CODE,2554 1682 | 137526,,ICD9_CODE,486 1683 | 137526,,ICD9_CODE,7872 1684 | 137526,,ICD9_CODE,34830 1685 | 137526,,ICD9_CODE,2859 1686 | 152056,,ICD9_CODE,V3000 1687 | 152056,,ICD9_CODE,V053 1688 | 152056,,ICD9_CODE,V290 1689 | 164405,,ICD9_CODE,4560 1690 | 164405,,ICD9_CODE,5070 1691 | 164405,,ICD9_CODE,340 1692 | 164405,,ICD9_CODE,51881 1693 | 164405,,ICD9_CODE,57149 1694 | 164405,,ICD9_CODE,27652 1695 | 164405,,ICD9_CODE,4568 1696 | 164405,,ICD9_CODE,4019 1697 | 164405,,ICD9_CODE,25000 1698 | 164405,,ICD9_CODE,2720 1699 | 164405,,ICD9_CODE,4589 1700 | 199724,,ICD9_CODE,0383 1701 | 199724,,ICD9_CODE,9992 1702 | 199724,,ICD9_CODE,41071 1703 | 199724,,ICD9_CODE,496 1704 | 199724,,ICD9_CODE,2762 1705 | 199724,,ICD9_CODE,45182 1706 | 199724,,ICD9_CODE,2768 1707 | 199724,,ICD9_CODE,3310 1708 | 199724,,ICD9_CODE,29410 1709 | 123860,,ICD9_CODE,99682 1710 | 123860,,ICD9_CODE,51881 1711 | 123860,,ICD9_CODE,5849 1712 | 123860,,ICD9_CODE,7907 1713 | 123860,,ICD9_CODE,07044 1714 | 123860,,ICD9_CODE,2762 1715 | 123860,,ICD9_CODE,2763 1716 | 123860,,ICD9_CODE,25541 1717 | 123860,,ICD9_CODE,78959 1718 | 123860,,ICD9_CODE,2760 1719 | 123860,,ICD9_CODE,2768 1720 | 123860,,ICD9_CODE,V4983 1721 | 123860,,ICD9_CODE,5715 1722 | 123860,,ICD9_CODE,5859 1723 | 123860,,ICD9_CODE,25080 1724 | 123860,,ICD9_CODE,45621 1725 | 123860,,ICD9_CODE,04109 1726 | 123860,,ICD9_CODE,V1007 1727 | 123860,,ICD9_CODE,40390 1728 | 123860,,ICD9_CODE,E8780 1729 | 132401,,ICD9_CODE,3241 1730 | 132401,,ICD9_CODE,51881 1731 | 132401,,ICD9_CODE,486 1732 | 132401,,ICD9_CODE,99931 1733 | 132401,,ICD9_CODE,73008 1734 | 132401,,ICD9_CODE,7907 1735 | 132401,,ICD9_CODE,99682 1736 | 132401,,ICD9_CODE,99811 1737 | 132401,,ICD9_CODE,07044 1738 | 132401,,ICD9_CODE,5856 1739 | 132401,,ICD9_CODE,25541 1740 | 132401,,ICD9_CODE,78959 1741 | 132401,,ICD9_CODE,40391 1742 | 132401,,ICD9_CODE,2761 1743 | 132401,,ICD9_CODE,2762 1744 | 132401,,ICD9_CODE,5789 1745 | 132401,,ICD9_CODE,2867 1746 | 132401,,ICD9_CODE,V4983 1747 | 132401,,ICD9_CODE,2875 1748 | 132401,,ICD9_CODE,5723 1749 | 132401,,ICD9_CODE,72293 1750 | 132401,,ICD9_CODE,04119 1751 | 132401,,ICD9_CODE,33399 1752 | 132401,,ICD9_CODE,E9390 1753 | 132401,,ICD9_CODE,E8780 1754 | 132401,,ICD9_CODE,25000 1755 | 132401,,ICD9_CODE,53789 1756 | 132401,,ICD9_CODE,V1007 1757 | 132401,,ICD9_CODE,28521 1758 | 132401,,ICD9_CODE,73730 1759 | 150463,,ICD9_CODE,99811 1760 | 150463,,ICD9_CODE,99682 1761 | 150463,,ICD9_CODE,5715 1762 | 150463,,ICD9_CODE,07054 1763 | 150463,,ICD9_CODE,E8788 1764 | 150463,,ICD9_CODE,E8780 1765 | 150463,,ICD9_CODE,4019 1766 | 160697,,ICD9_CODE,570 1767 | 160697,,ICD9_CODE,07054 1768 | 160697,,ICD9_CODE,1552 1769 | 160697,,ICD9_CODE,5723 1770 | 160697,,ICD9_CODE,78071 1771 | 164735,,ICD9_CODE,4552 1772 | 164735,,ICD9_CODE,7907 1773 | 164735,,ICD9_CODE,99682 1774 | 164735,,ICD9_CODE,99931 1775 | 164735,,ICD9_CODE,5856 1776 | 164735,,ICD9_CODE,99811 1777 | 164735,,ICD9_CODE,99731 1778 | 164735,,ICD9_CODE,2851 1779 | 164735,,ICD9_CODE,25541 1780 | 164735,,ICD9_CODE,2875 1781 | 164735,,ICD9_CODE,5715 1782 | 164735,,ICD9_CODE,V4983 1783 | 164735,,ICD9_CODE,07054 1784 | 164735,,ICD9_CODE,80702 1785 | 164735,,ICD9_CODE,04104 1786 | 164735,,ICD9_CODE,4555 1787 | 164735,,ICD9_CODE,E8788 1788 | 164735,,ICD9_CODE,E8844 1789 | 164735,,ICD9_CODE,E8497 1790 | 164735,,ICD9_CODE,28521 1791 | 164735,,ICD9_CODE,E8780 1792 | 164735,,ICD9_CODE,25000 1793 | 164735,,ICD9_CODE,V5867 1794 | 164735,,ICD9_CODE,53789 1795 | 105764,,ICD9_CODE,4254 1796 | 105764,,ICD9_CODE,4280 1797 | 105764,,ICD9_CODE,V4502 1798 | 105764,,ICD9_CODE,V5861 1799 | 105764,,ICD9_CODE,V433 1800 | 105764,,ICD9_CODE,412 1801 | 173633,,ICD9_CODE,V1251 1802 | 161160,,ICD9_CODE,27651 1803 | 161160,,ICD9_CODE,7895 1804 | 161160,,ICD9_CODE,5119 1805 | 161160,,ICD9_CODE,4254 1806 | 161160,,ICD9_CODE,42731 1807 | 161160,,ICD9_CODE,5849 1808 | 161160,,ICD9_CODE,99591 1809 | 161160,,ICD9_CODE,42789 1810 | 161160,,ICD9_CODE,3334 1811 | 161160,,ICD9_CODE,2859 1812 | 161160,,ICD9_CODE,7906 1813 | 126055,,ICD9_CODE,4010 1814 | 126055,,ICD9_CODE,5856 1815 | 126055,,ICD9_CODE,58281 1816 | 126055,,ICD9_CODE,4239 1817 | 126055,,ICD9_CODE,78959 1818 | 126055,,ICD9_CODE,2762 1819 | 126055,,ICD9_CODE,2761 1820 | 126055,,ICD9_CODE,78909 1821 | 126055,,ICD9_CODE,78906 1822 | 126055,,ICD9_CODE,78701 1823 | 126055,,ICD9_CODE,78791 1824 | 126055,,ICD9_CODE,7100 1825 | 126055,,ICD9_CODE,25200 1826 | 126055,,ICD9_CODE,2859 1827 | 126055,,ICD9_CODE,2875 1828 | 126055,,ICD9_CODE,53081 1829 | 105501,,ICD9_CODE,41071 1830 | 105501,,ICD9_CODE,41401 1831 | 108811,,ICD9_CODE,04186 1832 | 108811,,ICD9_CODE,41401 1833 | 108811,,ICD9_CODE,2724 1834 | 108811,,ICD9_CODE,496 1835 | 108811,,ICD9_CODE,42731 1836 | 108811,,ICD9_CODE,V4581 1837 | 158689,,ICD9_CODE,96501 1838 | 158689,,ICD9_CODE,30421 1839 | 158689,,ICD9_CODE,07070 1840 | 158689,,ICD9_CODE,07030 1841 | 158689,,ICD9_CODE,51881 1842 | 158689,,ICD9_CODE,30401 1843 | 158689,,ICD9_CODE,4280 1844 | 158689,,ICD9_CODE,2920 1845 | 158689,,ICD9_CODE,30431 1846 | 158689,,ICD9_CODE,9708 1847 | 158689,,ICD9_CODE,9696 1848 | 129886,,ICD9_CODE,51881 1849 | 129886,,ICD9_CODE,78552 1850 | 129886,,ICD9_CODE,5849 1851 | 129886,,ICD9_CODE,4538 1852 | 129886,,ICD9_CODE,2869 1853 | 129886,,ICD9_CODE,85221 1854 | 129886,,ICD9_CODE,5990 1855 | 129886,,ICD9_CODE,99592 1856 | 129886,,ICD9_CODE,3320 1857 | 129886,,ICD9_CODE,V667 1858 | 129886,,ICD9_CODE,33182 1859 | 129886,,ICD9_CODE,29410 1860 | 129886,,ICD9_CODE,4019 1861 | 129886,,ICD9_CODE,E8889 1862 | 129886,,ICD9_CODE,V1582 1863 | -------------------------------------------------------------------------------- /tests/icd_test/input/icd_test_data.csv: -------------------------------------------------------------------------------- 1 | ROW_ID,SUBJECT_ID,HADM_ID,SEQ_NUM,ICD9_CODE 2 | 1297,109,172335,1.0,40301 3 | 1298,109,172335,2.0,486 4 | 1299,109,172335,3.0,58281 5 | 1300,109,172335,4.0,5855 6 | 1301,109,172335,5.0,4254 7 | 1302,109,172335,6.0,2762 8 | 1303,109,172335,7.0,7100 9 | 1304,109,172335,8.0,2767 10 | 1305,109,172335,9.0,7243 11 | 1306,109,172335,10.0,45829 12 | 1307,109,172335,11.0,2875 13 | 1308,109,172335,12.0,28521 14 | 1309,109,172335,13.0,28529 15 | 1310,109,172335,14.0,27541 16 | 1311,109,173633,1.0,40301 17 | 1312,109,173633,2.0,5856 18 | 1313,109,173633,3.0,58381 19 | 1314,109,173633,4.0,7100 20 | 1315,109,173633,5.0,5589 21 | 1316,109,173633,6.0,2875 22 | 1317,109,173633,7.0,28521 23 | 1318,109,173633,8.0,45829 24 | 1319,109,173633,9.0,32723 25 | 1320,109,173633,10.0,22804 26 | 1321,109,173633,11.0,33829 27 | 1322,109,173633,12.0,78900 28 | 1323,109,173633,13.0,79092 29 | 1324,109,173633,14.0,V4511 30 | 1488,112,174105,1.0,53100 31 | 1489,112,174105,2.0,41071 32 | 1490,112,174105,3.0,2859 33 | 1491,112,174105,4.0,41401 34 | 1492,112,174105,5.0,725 35 | 1493,113,109976,1.0,1915 36 | 1494,113,109976,2.0,3314 37 | 1495,113,109976,3.0,53081 38 | 1496,114,178393,1.0,41401 39 | 1497,114,178393,2.0,4111 40 | 1498,114,178393,3.0,48283 41 | 1499,114,178393,4.0,2859 42 | 1500,114,178393,5.0,2720 43 | 1501,114,178393,6.0,3051 44 | 1502,115,114585,1.0,1940 45 | 1503,115,114585,2.0,1977 46 | 1504,115,114585,3.0,2553 47 | 1505,115,114585,4.0,4240 48 | 1506,115,114585,5.0,5845 49 | 1507,115,114585,6.0,99859 50 | 1508,115,114585,7.0,6822 51 | 1509,115,114585,8.0,5119 52 | 1510,115,114585,9.0,5990 53 | 1511,115,114585,10.0,4280 54 | 1512,115,114585,11.0,34982 55 | 1513,115,114585,12.0,4019 56 | 1514,115,114585,13.0,V1000 57 | 1515,115,114585,14.0,V453 58 | 1516,115,114585,15.0,V5865 59 | 1517,115,114585,16.0,0413 60 | 1518,115,114585,17.0,2518 61 | 1519,115,114585,18.0,E9320 62 | 1520,116,127203,1.0,V3001 63 | 1521,116,127203,2.0,V053 64 | 1522,116,127203,3.0,V290 65 | 1523,117,140784,1.0,5715 66 | 1524,117,140784,2.0,7895 67 | 1525,117,140784,3.0,07054 68 | 1526,117,140784,4.0,2875 69 | 1527,117,140784,5.0,4280 70 | 1528,117,140784,6.0,2851 71 | 1529,117,140784,7.0,2765 72 | 1530,117,140784,8.0,4019 73 | 1531,117,140784,9.0,25000 74 | 1532,117,164853,1.0,570 75 | 1533,117,164853,2.0,07044 76 | 1534,117,164853,3.0,5712 77 | 1535,117,164853,4.0,5849 78 | 1536,117,164853,5.0,5724 79 | 1537,117,164853,6.0,5118 80 | 1538,117,164853,7.0,2867 81 | 1539,117,164853,8.0,51882 82 | 1540,117,164853,9.0,2875 83 | 1541,117,164853,10.0,0389 84 | 1542,117,164853,11.0,486 85 | 1543,117,164853,12.0,2800 86 | 1544,117,164853,13.0,2639 87 | 1545,117,164853,14.0,2761 88 | 1546,117,164853,15.0,2767 89 | 1547,117,164853,16.0,99592 90 | 1548,117,164853,17.0,30393 91 | 1549,117,164853,18.0,4019 92 | 1550,117,164853,19.0,5723 93 | 1551,117,164853,20.0,25000 94 | 1552,117,164853,21.0,2449 95 | 1553,117,164853,22.0,1122 96 | 1554,118,147035,1.0,V3000 97 | 1555,118,147035,2.0,V053 98 | 1556,119,135738,1.0,88122 99 | 1557,119,135738,2.0,9032 100 | 1558,119,135738,3.0,9033 101 | 1559,119,135738,4.0,9551 102 | 1560,119,135738,5.0,9555 103 | 1561,119,135738,6.0,9552 104 | 1562,119,135738,7.0,E956 105 | 1563,119,135738,8.0,30590 106 | 1564,120,188923,1.0,V3000 107 | 1565,120,188923,2.0,V053 108 | 1566,120,188923,3.0,V290 109 | 1567,122,135750,1.0,V3000 110 | 1568,122,135750,2.0,7452 111 | 1569,122,135750,3.0,7622 112 | 1570,123,195632,1.0,41011 113 | 1571,123,195632,2.0,41401 114 | 1572,123,195632,3.0,4019 115 | 1573,123,195632,4.0,25000 116 | 1574,123,195632,5.0,3051 117 | 1575,124,112906,1.0,4412 118 | 1576,124,112906,2.0,486 119 | 1577,124,112906,3.0,496 120 | 1578,124,112906,4.0,07070 121 | 1579,124,112906,5.0,4478 122 | 1580,124,112906,6.0,41402 123 | 1581,124,112906,7.0,41401 124 | 1582,124,112906,8.0,4019 125 | 1583,124,112906,9.0,2720 126 | 1584,124,134369,1.0,44021 127 | 1585,124,134369,2.0,5849 128 | 1586,124,134369,3.0,5854 129 | 1587,124,134369,4.0,5990 130 | 1588,124,134369,5.0,9971 131 | 1589,124,134369,6.0,4400 132 | 1590,124,134369,7.0,40390 133 | 1591,124,134369,8.0,2749 134 | 1592,124,134369,9.0,496 135 | 1593,124,134369,10.0,45829 136 | 1594,124,134369,11.0,42731 137 | 1595,124,134369,12.0,V1046 138 | 1596,124,134369,13.0,V1011 139 | 1597,124,134369,14.0,V1209 140 | 1598,124,134369,15.0,V090 141 | 1599,124,138376,1.0,56983 142 | 1600,124,138376,2.0,56089 143 | 1601,124,138376,3.0,49121 144 | 1602,124,138376,4.0,99859 145 | 1603,124,138376,5.0,0389 146 | 1604,124,138376,6.0,99592 147 | 1605,124,138376,7.0,99831 148 | 1606,124,138376,8.0,486 149 | 1607,124,138376,9.0,5849 150 | 1608,124,138376,10.0,5854 151 | 1609,124,138376,11.0,2639 152 | 1610,124,138376,12.0,42833 153 | 1611,124,138376,13.0,40390 154 | 1612,124,138376,14.0,42731 155 | 1613,124,138376,15.0,4280 156 | 1614,124,138376,16.0,41400 157 | 1615,124,138376,17.0,V4581 158 | 1616,124,138376,18.0,V1046 159 | 1617,124,138376,19.0,V1011 160 | 1618,124,172461,1.0,43331 161 | 1619,124,172461,2.0,99812 162 | 1620,124,172461,3.0,436 163 | 1621,124,172461,4.0,43320 164 | 1622,124,172461,5.0,4019 165 | 1623,124,172461,6.0,2720 166 | 1624,124,172461,7.0,49390 167 | 1625,124,172461,8.0,41401 168 | 1626,124,172461,9.0,V4581 169 | 1627,125,157348,1.0,99671 170 | 1628,125,157348,2.0,4241 171 | 1629,125,157348,3.0,42731 172 | 1630,125,157348,4.0,4168 173 | 1631,125,157348,5.0,2449 174 | 1632,126,176860,1.0,V3101 175 | 1633,126,176860,2.0,76503 176 | 1634,126,176860,3.0,769 177 | 1635,126,176860,4.0,7793 178 | 1636,126,176860,5.0,7742 179 | 1637,126,176860,6.0,7707 180 | 1638,126,176860,7.0,76524 181 | 1639,126,176860,8.0,77081 182 | 1640,126,176860,9.0,77981 183 | 1641,126,176860,10.0,7470 184 | 1642,126,176860,11.0,7766 185 | 1643,126,176860,12.0,7726 186 | 1644,126,176860,13.0,77989 187 | 1645,126,176860,14.0,36221 188 | 1646,126,176860,15.0,V290 189 | 1647,126,176860,16.0,V053 190 | 1648,127,141647,1.0,19889 191 | 1649,127,141647,2.0,1972 192 | 1650,127,141647,3.0,V103 193 | 1651,128,180872,1.0,V3001 194 | 1652,128,180872,2.0,74689 195 | 1653,128,180872,3.0,7661 196 | 1654,128,180872,4.0,V053 197 | 1655,128,180872,5.0,V290 198 | 1656,128,180872,6.0,V293 199 | 1657,129,164174,1.0,85300 200 | 1658,129,164174,2.0,78039 201 | 1659,129,164174,3.0,E8889 202 | 1660,130,113323,1.0,99859 203 | 1661,130,113323,2.0,99831 204 | 1662,130,113323,3.0,5185 205 | 1663,130,113323,4.0,9971 206 | 1664,130,113323,5.0,42731 207 | 1665,130,113323,6.0,73028 208 | 1666,130,113323,7.0,25000 209 | 1667,130,113323,8.0,53081 210 | 1668,130,113323,9.0,41400 211 | 1669,130,113323,10.0,V4581 212 | 1670,130,198214,1.0,41071 213 | 1671,130,198214,2.0,4280 214 | 1672,130,198214,3.0,2851 215 | 1673,130,198214,4.0,41401 216 | 1674,130,198214,5.0,25060 217 | 1675,130,198214,6.0,3572 218 | 1676,130,198214,7.0,2720 219 | 1677,130,198214,8.0,53081 220 | 1678,131,171781,1.0,V3001 221 | 1679,131,171781,2.0,77214 222 | 1680,131,171781,3.0,76518 223 | 1681,131,171781,4.0,76528 224 | 1682,131,171781,5.0,V053 225 | 1683,132,160192,1.0,430 226 | 1684,132,160192,2.0,78039 227 | 1685,132,160192,3.0,2761 228 | 1686,132,160192,4.0,3051 229 | 1687,133,191817,1.0,41071 230 | 1688,133,191817,2.0,41401 231 | 1689,133,191817,3.0,496 232 | 1690,133,191817,4.0,5990 233 | 1691,133,191817,5.0,4400 234 | 1692,133,191817,6.0,2939 235 | 1693,133,191817,7.0,2749 236 | 1694,133,191817,8.0,4439 237 | 1695,133,191817,9.0,4019 238 | 1696,133,191817,10.0,2720 239 | 1697,133,191817,11.0,V1582 240 | 1698,134,167887,1.0,3963 241 | 1699,134,167887,2.0,41401 242 | 1700,134,167887,3.0,4019 243 | 1701,134,167887,4.0,53081 244 | 1702,134,167887,5.0,3659 245 | 1703,134,167887,6.0,2449 246 | 1704,134,167887,7.0,4439 247 | 1705,135,192180,1.0,135 248 | 1706,135,192180,2.0,34982 249 | 1707,135,192180,3.0,5990 250 | 1708,135,192180,4.0,311 251 | 1709,135,192180,5.0,E9352 252 | 1710,135,199634,1.0,72141 253 | 1711,135,199634,2.0,135 254 | 1712,135,199634,3.0,496 255 | 1713,135,199634,4.0,2148 256 | 1714,135,199634,5.0,V5865 257 | 1715,135,199634,6.0,72401 258 | 1716,135,199634,7.0,53081 259 | 1717,135,199634,8.0,4019 260 | 1718,135,199634,9.0,25000 261 | 1719,136,184644,1.0,4375 262 | 1720,136,184644,2.0,486 263 | 1721,136,184644,3.0,2720 264 | 1722,136,184644,4.0,4019 265 | 1723,137,151583,1.0,41401 266 | 1724,137,151583,2.0,5185 267 | 1725,137,151583,3.0,42731 268 | 1726,137,151583,4.0,42732 269 | 1727,137,151583,5.0,25060 270 | 1728,137,151583,6.0,3572 271 | 1729,137,151583,7.0,24290 272 | 1730,137,151583,8.0,2720 273 | 1731,137,151583,9.0,60000 274 | 1732,137,151583,10.0,V4582 275 | 1733,137,151583,11.0,V1582 276 | 1734,138,105764,1.0,1890 277 | 504,64,172056,2.0,03811 278 | 505,64,172056,3.0,99591 279 | 506,64,172056,4.0,30400 280 | 507,64,172056,5.0,1120 281 | 508,64,172056,6.0,5111 282 | 509,64,172056,7.0,7895 283 | 510,64,172056,8.0,71107 284 | 511,64,172056,9.0,71104 285 | 512,65,143430,1.0,80012 286 | 513,65,143430,2.0,30500 287 | 514,65,143430,3.0,30560 288 | 515,65,143430,4.0,E8147 289 | 516,65,143430,5.0,8730 290 | 517,65,143430,6.0,7812 291 | 518,65,143430,7.0,37854 292 | 519,65,143430,8.0,9518 293 | 520,66,104518,1.0,V3000 294 | 521,66,104518,2.0,76519 295 | 522,66,104518,3.0,76528 296 | 523,66,104518,4.0,77089 297 | 524,66,104518,5.0,7742 298 | 525,66,104518,6.0,7793 299 | 526,66,104518,7.0,7678 300 | 527,66,104518,8.0,7661 301 | 528,66,104518,9.0,V053 302 | 529,66,104518,10.0,V293 303 | 530,67,155252,1.0,431 304 | 531,67,155252,2.0,2449 305 | 532,67,155252,3.0,4019 306 | 533,67,155252,4.0,2948 307 | 534,67,155252,5.0,311 308 | 535,67,186474,1.0,9982 309 | 536,67,186474,2.0,2768 310 | 537,67,186474,3.0,4019 311 | 538,67,186474,4.0,2449 312 | 539,67,186474,5.0,2851 313 | 540,67,186474,6.0,311 314 | 541,68,108329,1.0,042 315 | 542,68,108329,2.0,486 316 | 543,68,108329,3.0,4254 317 | 544,68,108329,4.0,2762 318 | 545,68,108329,5.0,5849 319 | 546,68,108329,6.0,570 320 | 547,68,108329,7.0,5859 321 | 548,68,108329,8.0,2848 322 | 549,68,108329,9.0,2875 323 | 550,68,108329,10.0,4280 324 | 551,68,108329,11.0,2859 325 | 552,68,170467,1.0,042 326 | 553,68,170467,2.0,486 327 | 554,68,170467,3.0,4254 328 | 555,68,170467,4.0,42820 329 | 556,68,170467,5.0,4280 330 | 557,68,170467,6.0,5849 331 | 558,68,170467,7.0,5859 332 | 559,68,170467,8.0,2639 333 | 560,68,170467,9.0,2848 334 | 561,68,170467,10.0,2761 335 | 562,68,170467,11.0,2859 336 | 563,68,170467,12.0,V141 337 | 564,68,170467,13.0,V071 338 | 565,69,190201,1.0,V3001 339 | 566,69,190201,2.0,76517 340 | 567,69,190201,3.0,76407 341 | 568,69,190201,4.0,7756 342 | 569,69,190201,5.0,7742 343 | 570,69,190201,6.0,7793 344 | 571,69,190201,7.0,76528 345 | 572,69,190201,8.0,7764 346 | 573,70,178596,1.0,V3001 347 | 574,70,178596,2.0,7454 348 | 575,70,178596,3.0,V053 349 | 576,71,111944,1.0,9695 350 | 577,71,111944,2.0,2762 351 | 578,71,111944,3.0,29590 352 | 579,71,111944,4.0,E9503 353 | 580,71,111944,5.0,2859 354 | 581,71,111944,6.0,2662 355 | 582,72,156857,1.0,V3000 356 | 583,72,156857,2.0,769 357 | 584,72,156857,3.0,7466 358 | 585,72,156857,4.0,7742 359 | 586,72,156857,5.0,2762 360 | 587,72,156857,6.0,77981 361 | 588,72,156857,7.0,76519 362 | 589,72,156857,8.0,76528 363 | 590,72,156857,9.0,76719 364 | 591,72,156857,10.0,V290 365 | 592,72,156857,11.0,7470 366 | 593,72,156857,12.0,74689 367 | 594,73,194730,1.0,41001 368 | 595,73,194730,2.0,9982 369 | 596,73,194730,3.0,5990 370 | 597,73,194730,4.0,41401 371 | 598,73,194730,5.0,4019 372 | 599,73,194730,6.0,2720 373 | 600,73,194730,7.0,V1042 374 | 601,73,194730,8.0,V1582 375 | 602,74,182637,1.0,V3001 376 | 603,74,182637,2.0,7660 377 | 604,74,182637,3.0,V053 378 | 605,74,182637,4.0,V290 379 | 606,74,182637,5.0,V293 380 | 607,75,112086,1.0,4241 381 | 608,75,112086,2.0,9973 382 | 609,75,112086,3.0,5180 383 | 610,75,112086,4.0,5990 384 | 611,75,112086,5.0,99709 385 | 612,75,112086,6.0,3558 386 | 613,75,112086,7.0,4019 387 | 614,75,112086,8.0,2720 388 | 615,75,112086,9.0,25000 389 | 616,75,112086,10.0,53081 390 | 617,75,112086,11.0,5533 391 | 618,75,112086,12.0,V1582 392 | 619,77,142768,1.0,41061 393 | 620,77,142768,2.0,4280 394 | 621,77,142768,3.0,41401 395 | 622,77,142768,4.0,2720 396 | 623,77,142768,5.0,2721 397 | 624,77,142768,6.0,2740 398 | 625,78,100536,1.0,96500 399 | 626,78,100536,2.0,042 400 | 627,78,100536,3.0,07054 401 | 628,78,100536,4.0,5715 402 | 629,78,100536,5.0,30401 403 | 630,78,100536,6.0,2848 404 | 631,78,100536,7.0,9694 405 | 632,78,100536,8.0,E8502 406 | 633,78,100536,9.0,E8532 407 | 634,79,181542,1.0,41011 408 | 635,79,181542,2.0,4271 409 | 636,79,181542,3.0,41401 410 | 637,79,181542,4.0,42689 411 | 638,80,115385,1.0,80416 412 | 639,80,115385,2.0,87342 413 | 640,80,115385,3.0,E916 414 | 641,81,175016,1.0,431 415 | 642,81,175016,2.0,20210 416 | 643,81,175016,3.0,4019 417 | 644,82,110641,1.0,V3001 418 | 645,82,110641,2.0,76519 419 | 646,82,110641,3.0,76528 420 | 647,82,110641,4.0,V502 421 | 648,83,158569,1.0,43310 422 | 649,83,158569,2.0,39891 423 | 650,83,158569,3.0,3963 424 | 651,83,158569,4.0,40391 425 | 652,83,158569,5.0,70715 426 | 653,83,158569,6.0,53081 427 | 654,83,158569,7.0,2720 428 | 655,83,158569,8.0,25000 429 | 656,83,158569,9.0,4148 430 | 657,84,120969,1.0,1919 431 | 658,84,166401,1.0,1919 432 | 659,84,166401,2.0,3484 433 | 660,84,166401,3.0,78701 434 | 661,84,166401,4.0,56400 435 | 662,85,112077,1.0,0389 436 | 663,85,112077,2.0,486 437 | 664,85,112077,3.0,V4281 438 | 665,85,112077,4.0,23875 439 | 666,85,112077,5.0,42731 440 | 667,85,112077,6.0,41400 441 | 668,85,112077,7.0,3004 442 | 669,85,112077,8.0,2724 443 | 670,85,112077,9.0,2449 444 | 671,85,112077,10.0,60001 445 | 672,85,112077,11.0,78843 446 | 673,85,112077,12.0,32723 447 | 674,85,112077,13.0,3320 448 | 675,85,112077,14.0,3051 449 | 676,85,112077,15.0,V1079 450 | 677,85,112077,16.0,V4581 451 | 678,85,112077,17.0,V433 452 | 679,85,112077,18.0,99591 453 | 680,85,112077,19.0,5853 454 | 681,85,116630,1.0,4241 455 | 682,85,116630,2.0,20280 456 | 683,85,116630,3.0,V4282 457 | 684,85,116630,4.0,99811 458 | 685,85,116630,5.0,3320 459 | 686,85,116630,6.0,30000 460 | 687,85,116630,7.0,53081 461 | 688,85,116630,8.0,60000 462 | 689,85,116630,9.0,E8798 463 | 690,85,116630,10.0,41401 464 | 691,85,116630,11.0,4412 465 | 692,86,190243,1.0,74561 466 | 693,86,190243,2.0,4240 467 | 694,87,190659,1.0,V3101 468 | 695,87,190659,2.0,76515 469 | 696,87,190659,3.0,76524 470 | 697,87,190659,4.0,769 471 | 698,87,190659,5.0,7707 472 | 699,87,190659,6.0,7775 473 | 700,87,190659,7.0,7742 474 | 701,87,190659,8.0,77211 475 | 702,87,190659,9.0,77081 476 | 703,87,190659,10.0,7766 477 | 704,87,190659,11.0,V290 478 | 705,87,190659,12.0,V053 479 | 706,88,123010,1.0,86113 480 | 707,88,123010,2.0,5119 481 | 708,88,123010,3.0,4239 482 | 709,88,123010,4.0,E966 483 | 710,89,188646,1.0,V3101 484 | 711,89,188646,2.0,7742 485 | 712,89,188646,3.0,76516 486 | 713,89,188646,4.0,76527 487 | 714,89,188646,5.0,22801 488 | 715,89,188646,6.0,V290 489 | 716,91,121205,1.0,20008 490 | 717,91,121205,2.0,2765 491 | 718,91,121205,3.0,5559 492 | 719,91,121205,4.0,99812 493 | 720,91,121205,5.0,51881 494 | 721,91,121205,6.0,4470 495 | 722,91,121205,7.0,135 496 | 723,91,121205,8.0,53100 497 | 724,91,121205,9.0,2866 498 | 725,92,142807,1.0,76502 499 | 726,92,142807,2.0,77181 500 | 727,92,142807,3.0,2762 501 | 728,92,142807,4.0,769 502 | 729,92,142807,5.0,7707 503 | 730,92,142807,6.0,77211 504 | 731,92,142807,7.0,7742 505 | 732,92,142807,8.0,7766 506 | 733,92,142807,9.0,36221 507 | 734,93,160481,1.0,V3000 508 | 735,93,160481,2.0,76503 509 | 736,93,160481,3.0,769 510 | 737,93,160481,4.0,77181 511 | 738,93,160481,5.0,7742 512 | 739,93,160481,6.0,76523 513 | 740,93,160481,7.0,7766 514 | 741,93,160481,8.0,77081 515 | 742,93,160481,9.0,77981 516 | 743,93,160481,10.0,7470 517 | 744,93,160481,11.0,36221 518 | 745,93,160481,12.0,2707 519 | 746,94,140037,1.0,33520 520 | 747,94,140037,2.0,51884 521 | 748,94,140037,3.0,486 522 | 749,94,140037,4.0,42731 523 | 750,94,140037,5.0,4019 524 | 751,94,140037,6.0,60000 525 | 752,94,140037,7.0,42789 526 | 753,94,140037,8.0,2859 527 | 754,94,183686,1.0,2761 528 | 755,94,183686,2.0,7234 529 | 756,94,183686,3.0,4240 530 | 757,94,183686,4.0,4589 531 | 758,94,183686,5.0,07999 532 | 759,94,183686,6.0,4019 533 | 760,94,183686,7.0,42789 534 | 761,94,183686,8.0,78841 535 | 762,95,160891,1.0,4260 536 | 763,96,170324,1.0,85181 537 | 764,96,170324,2.0,8072 538 | 765,96,170324,3.0,V461 539 | 766,96,170324,4.0,86402 540 | 767,96,170324,5.0,86509 541 | 768,96,170324,6.0,4538 542 | 769,96,170324,7.0,5185 543 | 770,96,170324,8.0,4821 544 | 771,96,170324,9.0,8604 545 | 772,97,127870,1.0,41401 546 | 773,97,127870,2.0,4241 547 | 774,97,127870,3.0,4111 548 | 775,97,127870,4.0,42731 549 | 776,97,127870,5.0,2720 550 | 777,97,127870,6.0,4019 551 | 778,97,127870,7.0,4401 552 | 779,98,188606,1.0,4373 553 | 780,98,188606,2.0,2449 554 | 781,99,187373,1.0,41401 555 | 782,99,187373,2.0,4139 556 | 783,99,187373,3.0,4019 557 | 784,99,187373,4.0,2720 558 | 785,99,187373,5.0,7820 559 | 786,99,187373,6.0,V1083 560 | 787,99,187373,7.0,6000 561 | 788,100,153952,1.0,99602 562 | 789,100,153952,2.0,4241 563 | 790,100,153952,3.0,4411 564 | 791,100,153952,4.0,4260 565 | 792,100,153952,5.0,42731 566 | 793,101,175533,1.0,51881 567 | 794,101,175533,2.0,5070 568 | 795,101,175533,3.0,48240 569 | 796,101,175533,4.0,5121 570 | 797,101,175533,5.0,5185 571 | 798,101,175533,6.0,4275 572 | 799,101,175533,7.0,3481 573 | 800,101,175533,8.0,78003 574 | 801,101,175533,9.0,2762 575 | 802,102,195700,1.0,V3000 576 | 803,102,195700,2.0,769 577 | 804,102,195700,3.0,7742 578 | 805,102,195700,4.0,7793 579 | 806,102,195700,5.0,76517 580 | 807,102,195700,6.0,76526 581 | 808,102,195700,7.0,75261 582 | 809,102,195700,8.0,75263 583 | 810,102,195700,9.0,V290 584 | 811,103,130744,1.0,1983 585 | 812,103,130744,2.0,431 586 | 813,103,130744,3.0,1623 587 | 814,103,130744,4.0,486 588 | 815,103,130744,5.0,4019 589 | 816,103,130744,6.0,V1582 590 | 817,103,130744,7.0,78321 591 | 818,103,130744,8.0,2559 592 | 819,103,133550,1.0,431 593 | 820,103,133550,2.0,1983 594 | 821,103,133550,3.0,1629 595 | 822,103,133550,4.0,4275 596 | 823,103,133550,5.0,4019 597 | 824,104,164025,1.0,V3001 598 | 825,104,164025,2.0,7756 599 | 826,104,164025,3.0,76408 600 | 827,104,164025,4.0,76529 601 | 828,104,164025,5.0,7746 602 | 829,104,164025,6.0,V502 603 | 830,104,164025,7.0,7784 604 | 831,105,128744,1.0,7806 605 | 832,105,128744,2.0,486 606 | 833,105,128744,3.0,4280 607 | 834,105,128744,4.0,3334 608 | 835,105,161160,1.0,5070 609 | 836,105,161160,2.0,0389 610 | 1,2,163353,1.0,V3001 611 | 2,2,163353,2.0,V053 612 | 3,2,163353,3.0,V290 613 | 4,3,145834,1.0,0389 614 | 5,3,145834,2.0,78559 615 | 6,3,145834,3.0,5849 616 | 7,3,145834,4.0,4275 617 | 8,3,145834,5.0,41071 618 | 9,3,145834,6.0,4280 619 | 10,3,145834,7.0,6826 620 | 11,3,145834,8.0,4254 621 | 12,3,145834,9.0,2639 622 | 13,4,185777,1.0,042 623 | 14,4,185777,2.0,1363 624 | 15,4,185777,3.0,7994 625 | 16,4,185777,4.0,2763 626 | 17,4,185777,5.0,7907 627 | 18,4,185777,6.0,5715 628 | 19,4,185777,7.0,04111 629 | 20,4,185777,8.0,V090 630 | 21,4,185777,9.0,E9317 631 | 22,5,178980,1.0,V3000 632 | 23,5,178980,2.0,V053 633 | 24,5,178980,3.0,V290 634 | 25,6,107064,1.0,40391 635 | 26,6,107064,2.0,4440 636 | 27,6,107064,3.0,9972 637 | 28,6,107064,4.0,2766 638 | 29,6,107064,5.0,2767 639 | 30,6,107064,6.0,2859 640 | 31,6,107064,7.0,2753 641 | 32,6,107064,8.0,V1582 642 | 33,7,118037,1.0,V3001 643 | 34,7,118037,2.0,V053 644 | 35,7,118037,3.0,V290 645 | 36,8,159514,1.0,V3001 646 | 37,8,159514,2.0,7706 647 | 38,8,159514,3.0,7746 648 | 39,8,159514,4.0,V290 649 | 40,8,159514,5.0,V502 650 | 41,8,159514,6.0,V053 651 | 42,9,150750,1.0,431 652 | 43,9,150750,2.0,5070 653 | 44,9,150750,3.0,4280 654 | 45,9,150750,4.0,5849 655 | 46,9,150750,5.0,2765 656 | 47,9,150750,6.0,4019 657 | 48,10,184167,1.0,V3000 658 | 49,10,184167,2.0,7742 659 | 50,10,184167,3.0,76525 660 | 51,10,184167,4.0,76515 661 | 52,10,184167,5.0,V290 662 | 53,11,194540,1.0,1913 663 | 54,12,112213,1.0,1570 664 | 55,12,112213,2.0,57410 665 | 56,12,112213,3.0,9971 666 | 57,12,112213,4.0,4275 667 | 58,12,112213,5.0,99811 668 | 59,12,112213,6.0,4019 669 | 60,12,112213,7.0,5680 670 | 61,12,112213,8.0,55321 671 | 62,12,112213,9.0,E8782 672 | 63,13,143045,1.0,41401 673 | 64,13,143045,2.0,4111 674 | 65,13,143045,3.0,25000 675 | 66,13,143045,4.0,4019 676 | 67,13,143045,5.0,2720 677 | 68,16,103251,1.0,V3000 678 | 69,16,103251,2.0,V290 679 | 70,16,103251,3.0,V502 680 | 71,16,103251,4.0,V053 681 | 72,16,103251,5.0,V721 682 | 73,17,161087,1.0,4239 683 | 74,17,161087,2.0,5119 684 | 75,17,161087,3.0,78551 685 | 76,17,161087,4.0,4589 686 | 77,17,161087,5.0,311 687 | 78,17,161087,6.0,7220 688 | 79,17,161087,7.0,71946 689 | 80,17,161087,8.0,2724 690 | 81,17,194023,1.0,7455 691 | 82,17,194023,2.0,45829 692 | 83,17,194023,3.0,V1259 693 | 84,17,194023,4.0,2724 694 | 85,18,188822,1.0,25080 695 | 86,18,188822,2.0,78039 696 | 87,18,188822,3.0,29633 697 | 88,18,188822,4.0,V5867 698 | 89,18,188822,5.0,E9323 699 | 90,18,188822,6.0,V5869 700 | 91,18,188822,7.0,47829 701 | 92,18,188822,8.0,78057 702 | 93,18,188822,9.0,78321 703 | 94,18,188822,10.0,4019 704 | 95,18,188822,11.0,4264 705 | 96,18,188822,12.0,2720 706 | 97,18,188822,13.0,V170 707 | 98,19,109235,1.0,80502 708 | 99,19,109235,2.0,5990 709 | 100,19,109235,3.0,5964 710 | 101,19,109235,4.0,E8809 711 | 102,19,109235,5.0,8220 712 | 103,19,109235,6.0,73300 713 | 104,19,109235,7.0,2948 714 | 105,19,109235,8.0,4019 715 | 106,19,109235,9.0,44321 716 | 107,20,157681,1.0,41401 717 | 108,20,157681,2.0,4111 718 | 109,20,157681,3.0,25000 719 | 110,20,157681,4.0,2724 720 | 111,20,157681,5.0,4019 721 | 112,21,109451,1.0,41071 722 | 113,21,109451,2.0,78551 723 | 114,21,109451,3.0,5781 724 | 115,21,109451,4.0,5849 725 | 116,21,109451,5.0,40391 726 | 117,21,109451,6.0,4280 727 | 118,21,109451,7.0,4592 728 | 119,21,109451,8.0,5070 729 | 120,21,109451,9.0,42731 730 | 121,21,109451,10.0,4271 731 | 122,21,109451,11.0,41401 732 | 123,21,109451,12.0,25000 733 | 124,21,109451,13.0,28521 734 | 125,21,109451,14.0,1122 735 | 126,21,109451,15.0,2720 736 | 127,21,109451,16.0,2749 737 | 128,21,109451,17.0,V1046 738 | 129,21,109451,18.0,43889 739 | 130,21,111970,1.0,0388 740 | 131,21,111970,2.0,78552 741 | 132,21,111970,3.0,40391 742 | 133,21,111970,4.0,42731 743 | 134,21,111970,5.0,70709 744 | 135,21,111970,6.0,5119 745 | 136,21,111970,7.0,6823 746 | 137,21,111970,8.0,99859 747 | 138,21,111970,9.0,00845 748 | 139,21,111970,10.0,5720 749 | 140,21,111970,11.0,99592 750 | 141,21,111970,12.0,V0980 751 | 142,21,111970,13.0,25000 752 | 143,21,111970,14.0,2859 753 | 144,21,111970,15.0,43889 754 | 145,21,111970,16.0,2749 755 | 146,21,111970,17.0,41401 756 | 147,21,111970,18.0,185 757 | 148,21,111970,19.0,4439 758 | 149,21,111970,20.0,2449 759 | 150,21,111970,21.0,E8788 760 | 151,22,165315,1.0,9678 761 | 152,22,165315,2.0,9693 762 | 153,22,165315,3.0,E9502 763 | 154,22,165315,4.0,E9503 764 | 155,22,165315,5.0,3488 765 | 156,22,165315,6.0,29620 766 | 157,22,165315,7.0,4019 767 | 158,23,124321,1.0,2252 768 | 159,23,124321,2.0,3485 769 | 160,23,124321,3.0,78039 770 | 161,23,124321,4.0,4241 771 | 162,23,124321,5.0,4019 772 | 163,23,124321,6.0,2720 773 | 164,23,124321,7.0,2724 774 | 165,23,124321,8.0,V4581 775 | 166,23,124321,9.0,V4579 776 | 167,23,124321,10.0,V1582 777 | 168,23,152223,1.0,41401 778 | 169,23,152223,2.0,4111 779 | 170,23,152223,3.0,4241 780 | 171,23,152223,4.0,V4582 781 | 172,23,152223,5.0,2724 782 | 173,23,152223,6.0,4019 783 | 174,23,152223,7.0,60000 784 | 175,23,152223,8.0,3899 785 | 176,24,161859,1.0,41041 786 | 177,24,161859,2.0,41401 787 | 178,24,161859,3.0,53081 788 | 179,24,161859,4.0,25000 789 | 180,25,129635,1.0,41071 790 | 181,25,129635,2.0,25011 791 | 182,25,129635,3.0,41401 792 | 183,25,129635,4.0,4019 793 | 184,26,197661,1.0,99604 794 | 185,26,197661,2.0,4271 795 | 186,26,197661,3.0,4280 796 | 187,26,197661,4.0,42731 797 | 188,26,197661,5.0,41401 798 | 189,26,197661,6.0,412 799 | 190,26,197661,7.0,5939 800 | 191,26,197661,8.0,2720 801 | 192,26,197661,9.0,60000 802 | 193,27,134931,1.0,V3000 803 | 194,27,134931,2.0,7706 804 | 195,27,134931,3.0,V290 805 | 196,27,134931,4.0,V053 806 | 197,28,162569,1.0,41401 807 | 198,28,162569,2.0,4111 808 | 199,28,162569,3.0,496 809 | 200,28,162569,4.0,412 810 | 201,28,162569,5.0,25000 811 | 202,28,162569,6.0,2720 812 | 203,28,162569,7.0,4263 813 | 204,28,162569,8.0,30029 814 | 205,28,162569,9.0,V1582 815 | 206,28,162569,10.0,V4582 816 | 207,28,162569,11.0,V174 817 | 208,30,104557,1.0,99674 818 | 209,30,104557,2.0,4160 819 | 210,30,104557,3.0,4111 820 | 211,30,104557,4.0,4281 821 | 212,30,104557,5.0,4271 822 | 213,30,104557,6.0,41401 823 | 214,30,104557,7.0,4019 824 | 215,30,104557,8.0,2720 825 | 216,30,104557,9.0,5939 826 | 217,31,128652,1.0,3453 827 | 218,31,128652,2.0,20190 828 | 219,31,128652,3.0,515 829 | 220,31,128652,4.0,486 830 | 221,31,128652,5.0,4019 831 | 222,31,128652,6.0,36250 832 | 223,31,128652,7.0,E9331 833 | 224,31,128652,8.0,4371 834 | 225,32,175413,1.0,5191 835 | 226,32,175413,2.0,496 836 | 227,32,175413,3.0,42731 837 | 228,32,175413,4.0,4538 838 | 229,32,175413,5.0,53081 839 | 230,32,175413,6.0,78057 840 | 231,32,175413,7.0,4019 841 | 232,32,175413,8.0,27801 842 | 233,33,176176,1.0,0389 843 | 234,33,176176,2.0,4928 844 | 235,33,176176,3.0,49390 845 | 236,34,115799,1.0,41071 846 | 237,34,115799,2.0,4280 847 | 238,34,115799,3.0,4254 848 | 239,34,115799,4.0,42731 849 | 240,34,115799,5.0,9971 850 | 241,34,115799,6.0,4260 851 | 242,34,115799,7.0,41401 852 | 243,34,115799,8.0,E8790 853 | 244,34,144319,1.0,42789 854 | 245,34,144319,2.0,42822 855 | 246,34,144319,3.0,4263 856 | 247,34,144319,4.0,41401 857 | 248,34,144319,5.0,V5861 858 | 249,34,144319,6.0,4280 859 | 250,34,144319,7.0,2449 860 | 251,34,144319,8.0,3659 861 | 252,35,166707,1.0,3962 862 | 253,35,166707,2.0,4260 863 | 254,35,166707,3.0,2875 864 | 255,35,166707,4.0,9971 865 | 256,35,166707,5.0,42731 866 | 257,35,166707,6.0,42732 867 | 258,35,166707,7.0,41401 868 | 259,35,166707,8.0,4019 869 | 260,35,166707,9.0,2449 870 | 261,35,166707,10.0,25000 871 | 262,35,166707,11.0,71590 872 | 263,36,122659,1.0,99831 873 | 264,36,122659,2.0,99811 874 | 265,36,122659,3.0,41511 875 | 266,36,122659,4.0,4538 876 | 267,36,122659,5.0,99672 877 | 268,36,122659,6.0,496 878 | 269,36,122659,7.0,41401 879 | 270,36,122659,8.0,V4581 880 | 271,36,122659,9.0,4019 881 | 272,36,122659,10.0,60000 882 | 273,36,122659,11.0,53081 883 | 274,36,122659,12.0,V1051 884 | 275,36,165660,1.0,55321 885 | 276,36,165660,2.0,41511 886 | 277,36,165660,3.0,5185 887 | 278,36,165660,4.0,486 888 | 279,36,165660,5.0,99739 889 | 280,36,165660,6.0,5180 890 | 281,36,165660,7.0,41400 891 | 282,36,165660,8.0,496 892 | 283,36,165660,9.0,4019 893 | 284,36,165660,10.0,60000 894 | 285,36,165660,11.0,30000 895 | 286,36,165660,12.0,V1051 896 | 287,36,182104,1.0,41401 897 | 288,36,182104,2.0,4111 898 | 289,36,182104,3.0,496 899 | 290,36,182104,4.0,4019 900 | 291,36,182104,5.0,3051 901 | 292,36,182104,6.0,53081 902 | 293,36,182104,7.0,60000 903 | 294,36,182104,8.0,V1051 904 | 295,36,182104,9.0,5968 905 | 296,37,188670,1.0,41071 906 | 297,37,188670,2.0,4280 907 | 298,37,188670,3.0,496 908 | 299,37,188670,4.0,53551 909 | 300,37,188670,5.0,2851 910 | 301,37,188670,6.0,486 911 | 302,37,188670,7.0,41401 912 | 303,37,188670,8.0,25000 913 | 304,37,188670,9.0,42789 914 | 305,38,185910,1.0,60883 915 | 306,38,185910,2.0,0389 916 | 307,38,185910,3.0,99592 917 | 308,38,185910,4.0,5849 918 | 309,38,185910,5.0,4280 919 | 310,38,185910,6.0,42731 920 | 311,38,185910,7.0,9982 921 | 312,38,185910,8.0,9974 922 | 313,38,185910,9.0,5601 923 | 314,38,185910,10.0,6084 924 | 315,38,185910,11.0,E8708 925 | 316,38,185910,12.0,41400 926 | 317,38,185910,13.0,V4581 927 | 318,39,106266,1.0,V3000 928 | 319,39,106266,2.0,769 929 | 320,39,106266,3.0,7742 930 | 321,39,106266,4.0,2765 931 | 322,39,106266,5.0,7708 932 | 323,39,106266,6.0,76519 933 | 324,39,106266,7.0,V290 934 | 325,39,106266,8.0,V058 935 | 326,39,106266,9.0,V053 936 | 327,41,101757,1.0,1917 937 | 328,41,101757,2.0,5185 938 | 329,41,101757,3.0,5130 939 | 330,41,101757,4.0,48241 940 | 331,41,101757,5.0,5070 941 | 332,41,101757,6.0,70705 942 | 333,41,101757,7.0,1124 943 | 334,41,101757,8.0,496 944 | 335,41,101757,9.0,48282 945 | 336,41,101757,10.0,78820 946 | 337,41,101757,11.0,5121 947 | 338,41,101757,12.0,70703 948 | 339,41,101757,13.0,3485 949 | 340,41,101757,14.0,V1005 950 | 341,41,101757,15.0,V1047 951 | 342,41,101757,16.0,4019 952 | 343,41,101757,17.0,2859 953 | 344,41,101757,18.0,3051 954 | 345,41,101757,19.0,7099 955 | 346,42,119203,1.0,42741 956 | 347,42,119203,2.0,4280 957 | 348,42,119203,3.0,41400 958 | 349,42,119203,4.0,412 959 | 350,42,119203,5.0,4019 960 | 351,42,119203,6.0,43820 961 | 352,42,119203,7.0,43819 962 | 353,43,146828,1.0,8052 963 | 354,43,146828,2.0,5180 964 | 355,43,146828,3.0,E8210 965 | 356,44,181750,1.0,41401 966 | 357,44,181750,2.0,4139 967 | 358,44,181750,3.0,5960 968 | 359,44,181750,4.0,42731 969 | 360,44,181750,5.0,3968 970 | 361,44,181750,6.0,4019 971 | 362,44,181750,7.0,2720 972 | 363,44,181750,8.0,78057 973 | 364,44,181750,9.0,V173 974 | 365,44,181750,10.0,4439 975 | 366,45,157907,1.0,8249 976 | 367,45,157907,2.0,9984 977 | 368,45,157907,3.0,8730 978 | 369,45,157907,4.0,87344 979 | 370,45,157907,5.0,9110 980 | 371,45,157907,6.0,9130 981 | 372,45,157907,7.0,E8122 982 | 373,45,157907,8.0,3051 983 | 374,46,144073,1.0,5768 984 | 375,46,144073,2.0,20300 985 | 376,46,144073,3.0,99659 986 | 377,46,144073,4.0,99811 987 | 378,46,144073,5.0,2851 988 | 379,46,144073,6.0,2809 989 | 380,46,144073,7.0,2811 990 | 381,46,144073,8.0,22809 991 | 382,49,190539,1.0,4241 992 | 383,49,190539,2.0,42731 993 | 384,49,190539,3.0,4280 994 | 385,49,190539,4.0,496 995 | 386,49,190539,5.0,2939 996 | 387,49,190539,6.0,40390 997 | 388,49,190539,7.0,56409 998 | 389,49,190539,8.0,311 999 | 390,49,190539,9.0,V4582 1000 | 391,49,190539,10.0,412 1001 | 392,49,190539,11.0,2724 1002 | 393,50,132761,1.0,V3000 1003 | 394,50,132761,2.0,7746 1004 | 395,50,132761,3.0,7661 1005 | 396,50,132761,4.0,V290 1006 | 397,50,132761,5.0,V293 1007 | 398,51,196010,1.0,V3000 1008 | 399,51,196010,2.0,V502 1009 | 400,51,196010,3.0,V053 1010 | 401,51,196010,4.0,V290 1011 | 402,52,190797,1.0,7907 1012 | 403,52,190797,2.0,78039 1013 | 404,52,190797,3.0,5849 1014 | 405,52,190797,4.0,58089 1015 | 406,52,190797,5.0,5712 1016 | 407,52,190797,6.0,07054 1017 | 408,52,190797,7.0,04111 1018 | 409,52,190797,8.0,5728 1019 | 410,52,190797,9.0,2841 1020 | 411,53,155385,1.0,41021 1021 | 412,53,155385,2.0,30562 1022 | 413,53,155385,3.0,41401 1023 | 414,53,155385,4.0,4019 1024 | 415,53,155385,5.0,53081 1025 | 416,54,138795,1.0,V3001 1026 | 417,54,138795,2.0,V290 1027 | 418,54,138795,3.0,V053 1028 | 419,55,190665,1.0,43310 1029 | 420,55,190665,2.0,4280 1030 | 421,55,190665,3.0,2720 1031 | 422,55,190665,4.0,4019 1032 | 423,55,190665,5.0,2449 1033 | 424,55,190665,6.0,25000 1034 | 425,55,190665,7.0,V1011 1035 | 426,55,190665,8.0,41400 1036 | 427,55,190665,9.0,V4582 1037 | 428,55,190665,10.0,V4502 1038 | 429,56,181711,1.0,1983 1039 | 430,56,181711,2.0,1628 1040 | 431,56,181711,3.0,53140 1041 | 432,56,181711,4.0,2761 1042 | 433,56,181711,5.0,4280 1043 | 434,56,181711,6.0,78039 1044 | 435,56,181711,7.0,2720 1045 | 436,56,181711,8.0,4019 1046 | 437,57,162774,1.0,V3001 1047 | 438,57,162774,2.0,7661 1048 | 439,57,162774,3.0,V053 1049 | 440,57,162774,4.0,V290 1050 | 441,57,162774,5.0,V293 1051 | 442,58,177285,1.0,V3000 1052 | 443,58,177285,2.0,2161 1053 | 444,58,177285,3.0,V053 1054 | 445,58,177285,4.0,V290 1055 | 446,59,104130,1.0,5990 1056 | 447,59,104130,2.0,40391 1057 | 448,59,104130,3.0,5856 1058 | 449,59,104130,4.0,25080 1059 | 450,59,104130,5.0,0414 1060 | 451,59,104130,6.0,4589 1061 | 452,59,104130,7.0,311 1062 | 453,59,104130,8.0,2948 1063 | 454,59,104130,9.0,78701 1064 | 455,59,104130,10.0,2449 1065 | 456,59,104130,11.0,V4501 1066 | 457,59,104130,12.0,28529 1067 | 458,60,198892,1.0,V3401 1068 | 459,60,198892,2.0,76518 1069 | 460,60,198892,3.0,76527 1070 | 461,61,176332,1.0,20280 1071 | 462,61,176332,2.0,2880 1072 | 463,61,176332,3.0,2875 1073 | 464,61,176332,4.0,5781 1074 | 465,61,176332,5.0,2851 1075 | 466,61,176332,6.0,2639 1076 | 467,61,176332,7.0,9998 1077 | 468,61,176332,8.0,5790 1078 | 469,61,176332,9.0,6930 1079 | 470,61,189535,1.0,20280 1080 | 471,61,189535,2.0,2848 1081 | 472,61,189535,3.0,99685 1082 | 473,61,189535,4.0,56983 1083 | 474,61,189535,5.0,5672 1084 | 475,61,189535,6.0,2762 1085 | 476,61,189535,7.0,0389 1086 | 477,61,189535,8.0,99591 1087 | 478,61,189535,9.0,2763 1088 | 479,61,189535,10.0,7994 1089 | 480,61,189535,11.0,1120 1090 | 481,61,189535,12.0,2765 1091 | 482,61,189535,13.0,4589 1092 | 483,61,189535,14.0,42731 1093 | 484,61,189535,15.0,2554 1094 | 485,61,189535,16.0,3510 1095 | 486,61,189535,17.0,0880 1096 | 487,62,116009,1.0,1125 1097 | 488,62,116009,2.0,03849 1098 | 489,62,116009,3.0,7100 1099 | 490,62,116009,4.0,99591 1100 | 491,62,116009,5.0,2859 1101 | 492,62,116009,6.0,7140 1102 | 493,63,195961,1.0,71945 1103 | 494,63,195961,2.0,4280 1104 | 495,63,195961,3.0,496 1105 | 496,63,195961,4.0,57420 1106 | 497,63,195961,5.0,4148 1107 | 498,63,195961,6.0,E8889 1108 | 499,63,195961,7.0,E8498 1109 | 500,63,195961,8.0,7808 1110 | 501,63,195961,9.0,2948 1111 | 502,63,195961,10.0,3079 1112 | 503,64,172056,1.0,4210 1113 | 1000,109,126055,17.0,V4511 1114 | 1001,109,126055,18.0,34590 1115 | 1002,109,126055,19.0,56400 1116 | 1003,109,126055,20.0,28521 1117 | 1004,109,126055,21.0,79092 1118 | 1005,109,126055,22.0,32723 1119 | 1006,109,126055,23.0,51889 1120 | 1007,109,126055,24.0,78659 1121 | 1008,109,126055,25.0,78060 1122 | 1009,109,126055,26.0,7821 1123 | 1010,109,126055,27.0,4168 1124 | 1011,109,126055,28.0,V1251 1125 | 1012,109,126055,29.0,V5861 1126 | 1013,109,128755,1.0,4372 1127 | 1014,109,128755,2.0,78039 1128 | 1015,109,128755,3.0,7100 1129 | 1016,109,128755,4.0,40391 1130 | 1017,109,128755,5.0,4251 1131 | 1018,109,128755,6.0,2859 1132 | 1019,109,131345,1.0,40301 1133 | 1020,109,131345,2.0,58281 1134 | 1021,109,131345,3.0,4254 1135 | 1022,109,131345,4.0,7100 1136 | 1023,109,131345,5.0,2875 1137 | 1024,109,131345,6.0,78702 1138 | 1025,109,131345,7.0,E9426 1139 | 1026,109,131345,8.0,9596 1140 | 1027,109,131345,9.0,E9289 1141 | 1028,109,131345,10.0,4589 1142 | 1029,109,131345,11.0,2859 1143 | 1030,109,131345,12.0,V1251 1144 | 1031,109,131345,13.0,5856 1145 | 1032,109,131345,14.0,V451 1146 | 1033,109,131345,15.0,5990 1147 | 1034,109,131345,16.0,2767 1148 | 1035,109,131345,17.0,2762 1149 | 1036,109,131345,18.0,2753 1150 | 1037,109,131345,19.0,27541 1151 | 1038,109,131345,20.0,58881 1152 | 1039,109,131376,1.0,40301 1153 | 1040,109,131376,2.0,5856 1154 | 1041,109,131376,3.0,58281 1155 | 1042,109,131376,4.0,4254 1156 | 1043,109,131376,5.0,3643 1157 | 1044,109,131376,6.0,2841 1158 | 1045,109,131376,7.0,78959 1159 | 1046,109,131376,8.0,33829 1160 | 1047,109,131376,9.0,78900 1161 | 1048,109,131376,10.0,7100 1162 | 1049,109,131376,11.0,2875 1163 | 1050,109,131376,12.0,28521 1164 | 1051,109,131376,13.0,32723 1165 | 1052,109,131376,14.0,44389 1166 | 1053,109,131376,15.0,28529 1167 | 1054,109,131376,16.0,53190 1168 | 1055,109,131376,17.0,34590 1169 | 1056,109,131376,18.0,V5861 1170 | 1057,109,131376,19.0,V1251 1171 | 1058,109,131376,20.0,V1254 1172 | 1059,109,135923,1.0,40301 1173 | 1060,109,135923,2.0,5856 1174 | 1061,109,135923,3.0,4251 1175 | 1062,109,135923,4.0,7100 1176 | 1063,109,135923,5.0,79902 1177 | 1064,109,135923,6.0,E9352 1178 | 1065,109,135923,7.0,2875 1179 | 1066,109,135923,8.0,28521 1180 | 1067,109,135923,9.0,78909 1181 | 1068,109,135923,10.0,32723 1182 | 1069,109,135923,11.0,3004 1183 | 1070,109,135923,12.0,V4511 1184 | 1071,109,135923,13.0,V1251 1185 | 1072,109,135923,14.0,V5861 1186 | 1073,109,135923,15.0,V4589 1187 | 1074,109,136572,1.0,2766 1188 | 1075,109,136572,2.0,5856 1189 | 1076,109,136572,3.0,40301 1190 | 1077,109,136572,4.0,4254 1191 | 1078,109,136572,5.0,4239 1192 | 1079,109,136572,6.0,28529 1193 | 1080,109,136572,7.0,2767 1194 | 1081,109,136572,8.0,7100 1195 | 1082,109,136572,9.0,78909 1196 | 1083,109,136572,10.0,33829 1197 | 1084,109,136572,11.0,4589 1198 | 1085,109,136572,12.0,53190 1199 | 1086,109,136572,13.0,34590 1200 | 1087,109,136572,14.0,311 1201 | 1088,109,136572,15.0,V1251 1202 | 1089,109,136572,16.0,V4512 1203 | 1090,109,137510,1.0,40301 1204 | 1091,109,137510,2.0,5856 1205 | 1092,109,137510,3.0,3643 1206 | 1093,109,137510,4.0,4254 1207 | 1094,109,137510,5.0,4239 1208 | 1095,109,137510,6.0,2766 1209 | 1096,109,137510,7.0,7100 1210 | 1097,109,137510,8.0,58381 1211 | 1098,109,137510,9.0,V4512 1212 | 1099,109,137510,10.0,V1581 1213 | 1100,109,137510,11.0,V642 1214 | 1101,109,137510,12.0,78904 1215 | 1102,109,137510,13.0,V4511 1216 | 1103,109,137510,14.0,2875 1217 | 1104,109,137510,15.0,28529 1218 | 1105,109,137510,16.0,V1251 1219 | 1106,109,137510,17.0,V5861 1220 | 1107,109,137510,18.0,4439 1221 | 1108,109,137510,19.0,V4578 1222 | 1109,109,137510,20.0,V0254 1223 | 1110,109,139061,1.0,40301 1224 | 1111,109,139061,2.0,58281 1225 | 1112,109,139061,3.0,5855 1226 | 1113,109,139061,4.0,5990 1227 | 1114,109,139061,5.0,4254 1228 | 1115,109,139061,6.0,7100 1229 | 1116,109,139061,7.0,7243 1230 | 1117,109,139061,8.0,2767 1231 | 1118,109,139061,9.0,2875 1232 | 1119,109,139061,10.0,79092 1233 | 1120,109,139061,11.0,25200 1234 | 1121,109,139061,12.0,28529 1235 | 1122,109,139061,13.0,V1251 1236 | 1123,109,140167,1.0,40301 1237 | 1124,109,140167,2.0,5856 1238 | 1125,109,140167,3.0,99656 1239 | 1126,109,140167,4.0,4251 1240 | 1127,109,140167,5.0,4239 1241 | 1128,109,140167,6.0,9951 1242 | 1129,109,140167,7.0,78909 1243 | 1130,109,140167,8.0,7100 1244 | 1131,109,140167,9.0,2874 1245 | 1132,109,140167,10.0,28521 1246 | 1133,109,140167,11.0,3004 1247 | 1134,109,140167,12.0,32723 1248 | 1135,109,140167,13.0,V1251 1249 | 1136,109,140167,14.0,V5865 1250 | 1137,109,140167,15.0,V5861 1251 | 1138,109,140167,16.0,E8781 1252 | 1139,109,140167,17.0,E9426 1253 | 1140,109,147469,1.0,40301 1254 | 1141,109,147469,2.0,5856 1255 | 1142,109,147469,3.0,34839 1256 | 1143,109,147469,4.0,58281 1257 | 1144,109,147469,5.0,5990 1258 | 1145,109,147469,6.0,2762 1259 | 1146,109,147469,7.0,3643 1260 | 1147,109,147469,8.0,2839 1261 | 1148,109,147469,9.0,7100 1262 | 1149,109,147469,10.0,V1251 1263 | 1150,109,147469,11.0,V5861 1264 | 1151,109,147469,12.0,7842 1265 | 1152,109,147469,13.0,2767 1266 | 1153,109,147469,14.0,61172 1267 | 1154,109,147469,15.0,2875 1268 | 1155,109,147469,16.0,27541 1269 | 1156,109,147469,17.0,2753 1270 | 1157,109,151240,1.0,40301 1271 | 1158,109,151240,2.0,5856 1272 | 1159,109,151240,3.0,4254 1273 | 1160,109,151240,4.0,4239 1274 | 1161,109,151240,5.0,7100 1275 | 1162,109,151240,6.0,58381 1276 | 1163,109,151240,7.0,2767 1277 | 1164,109,151240,8.0,78701 1278 | 1165,109,151240,9.0,78791 1279 | 1166,109,151240,10.0,2753 1280 | 1167,109,151240,11.0,28529 1281 | 1168,109,151240,12.0,78904 1282 | 1169,109,151240,13.0,33829 1283 | 1170,109,151240,14.0,2875 1284 | 1171,109,151240,15.0,44389 1285 | 1172,109,151240,16.0,V0254 1286 | 1173,109,151240,17.0,V5861 1287 | 1174,109,151240,18.0,V4512 1288 | 1175,109,151240,19.0,V4511 1289 | 1176,109,151240,20.0,V1581 1290 | 1177,109,155726,1.0,40301 1291 | 1178,109,155726,2.0,5856 1292 | 1179,109,155726,3.0,58281 1293 | 1180,109,155726,4.0,4254 1294 | 1181,109,155726,5.0,78959 1295 | 1182,109,155726,6.0,2875 1296 | 1183,109,155726,7.0,4592 1297 | 1184,109,155726,8.0,2841 1298 | 1185,109,155726,9.0,7100 1299 | 1186,109,155726,10.0,78900 1300 | 1187,109,155726,11.0,33819 1301 | 1188,109,155726,12.0,33829 1302 | 1189,109,155726,13.0,53190 1303 | 1190,109,155726,14.0,53081 1304 | 1191,109,155726,15.0,311 1305 | 1192,109,155726,16.0,28521 1306 | 1193,109,155726,17.0,28529 1307 | 1194,109,155726,18.0,34590 1308 | 1195,109,155726,19.0,73399 1309 | 1196,109,155726,20.0,32723 1310 | 1197,109,155726,21.0,44389 1311 | 1198,109,155726,22.0,62211 1312 | 1199,109,155726,23.0,V4512 1313 | 1200,109,155726,24.0,V1251 1314 | 1201,109,155726,25.0,V5861 1315 | 1202,109,158943,1.0,2766 1316 | 1203,109,158943,2.0,5856 1317 | 1204,109,158943,3.0,40301 1318 | 1205,109,158943,4.0,58281 1319 | 1206,109,158943,5.0,4592 1320 | 1207,109,158943,6.0,4239 1321 | 1208,109,158943,7.0,99662 1322 | 1209,109,158943,8.0,7907 1323 | 1210,109,158943,9.0,28981 1324 | 1211,109,158943,10.0,4254 1325 | 1212,109,158943,11.0,4251 1326 | 1213,109,158943,12.0,78900 1327 | 1214,109,158943,13.0,5990 1328 | 1215,109,158943,14.0,2762 1329 | 1216,109,158943,15.0,78659 1330 | 1217,109,158943,16.0,33829 1331 | 1218,109,158943,17.0,7100 1332 | 1219,109,158943,18.0,V4512 1333 | 1220,109,158943,19.0,2875 1334 | 1221,109,158943,20.0,28521 1335 | 1222,109,158943,21.0,2767 1336 | 1223,109,158943,22.0,04104 1337 | 1224,109,158943,23.0,E8791 1338 | 1225,109,158943,24.0,04112 1339 | 1226,109,158943,25.0,32723 1340 | 1227,109,158943,26.0,V1251 1341 | 1228,109,158943,27.0,V5861 1342 | 1229,109,158995,1.0,96509 1343 | 1230,109,158995,2.0,5856 1344 | 1231,109,158995,3.0,40301 1345 | 1232,109,158995,4.0,58281 1346 | 1233,109,158995,5.0,4466 1347 | 1234,109,158995,6.0,4254 1348 | 1235,109,158995,7.0,2762 1349 | 1236,109,158995,8.0,7100 1350 | 1237,109,158995,9.0,2875 1351 | 1238,109,158995,10.0,78097 1352 | 1239,109,158995,11.0,45829 1353 | 1240,109,158995,12.0,E8502 1354 | 1241,109,158995,13.0,2767 1355 | 1242,109,158995,14.0,28521 1356 | 1243,109,158995,15.0,32723 1357 | 1244,109,158995,16.0,3004 1358 | 1245,109,158995,17.0,72992 1359 | 1246,109,158995,18.0,V4512 1360 | 1247,109,158995,19.0,V5861 1361 | 1248,109,158995,20.0,V1251 1362 | 1249,109,161950,1.0,40301 1363 | 1250,109,161950,2.0,5856 1364 | 1251,109,161950,3.0,78959 1365 | 1252,109,161950,4.0,4251 1366 | 1253,109,161950,5.0,7100 1367 | 1254,109,161950,6.0,7840 1368 | 1255,109,161950,7.0,28521 1369 | 1256,109,161950,8.0,30000 1370 | 1257,109,161950,9.0,78659 1371 | 1258,109,161950,10.0,V1251 1372 | 1259,109,161950,11.0,V5861 1373 | 1260,109,161950,12.0,V4511 1374 | 1261,109,161950,13.0,V4578 1375 | 1262,109,164029,1.0,40301 1376 | 1263,109,164029,2.0,7100 1377 | 1264,109,164029,3.0,5856 1378 | 1265,109,164029,4.0,V4983 1379 | 1266,109,164029,5.0,58381 1380 | 1267,109,164029,6.0,3643 1381 | 1268,109,166018,1.0,4010 1382 | 1269,109,166018,2.0,5856 1383 | 1270,109,166018,3.0,58281 1384 | 1271,109,166018,4.0,4254 1385 | 1272,109,166018,5.0,2841 1386 | 1273,109,166018,6.0,7100 1387 | 1274,109,166018,7.0,2875 1388 | 1275,109,166018,8.0,2859 1389 | 1276,109,166018,9.0,V451 1390 | 1277,109,166018,10.0,V4589 1391 | 1278,109,166018,11.0,V4569 1392 | 1279,109,170149,1.0,4538 1393 | 1280,109,170149,2.0,5856 1394 | 1281,109,170149,3.0,40301 1395 | 1282,109,170149,4.0,4592 1396 | 1283,109,170149,5.0,58281 1397 | 1284,109,170149,6.0,4254 1398 | 1285,109,170149,7.0,2841 1399 | 1286,109,170149,8.0,7100 1400 | 1287,109,170149,9.0,28521 1401 | 1288,109,170149,10.0,2767 1402 | 1289,109,170149,11.0,25200 1403 | 1290,109,170149,12.0,45829 1404 | 1291,109,170149,13.0,78701 1405 | 1292,109,170149,14.0,2874 1406 | 1293,109,170149,15.0,79500 1407 | 1294,109,170149,16.0,78909 1408 | 1295,109,170149,17.0,2518 1409 | 1296,109,170149,18.0,E9320 1410 | 3270,273,158689,12.0,E8500 1411 | 3271,273,158689,13.0,E8543 1412 | 3272,273,158689,14.0,E8541 1413 | 3273,273,158689,15.0,E8498 1414 | 3274,273,158689,16.0,3051 1415 | 3275,274,130546,1.0,430 1416 | 3276,274,130546,2.0,5070 1417 | 3277,274,130546,3.0,2720 1418 | 3278,274,130546,4.0,4019 1419 | 3279,274,130546,5.0,43320 1420 | 3280,275,129886,1.0,0389 1421 | 2955,245,105501,3.0,9971 1422 | 2956,245,105501,4.0,4271 1423 | 2957,245,105501,5.0,78551 1424 | 2958,245,105501,6.0,4280 1425 | 2959,245,105501,7.0,5849 1426 | 2960,245,105501,8.0,3963 1427 | 2961,245,105501,9.0,V667 1428 | 2962,246,197430,1.0,57149 1429 | 2963,246,197430,2.0,1550 1430 | 2964,246,197430,3.0,25002 1431 | 2965,246,197430,4.0,5715 1432 | 2966,246,197430,5.0,5680 1433 | 2967,246,197430,6.0,2720 1434 | 2968,246,197430,7.0,4019 1435 | 2969,246,197430,8.0,V4581 1436 | 2970,246,197430,9.0,V5867 1437 | 2971,246,197430,10.0,27800 1438 | 2972,246,197430,11.0,41400 1439 | 2973,246,197430,12.0,V1301 1440 | 2974,246,197430,13.0,32723 1441 | 2975,247,189521,1.0,41401 1442 | 2976,247,189521,2.0,9971 1443 | 2977,247,189521,3.0,4139 1444 | 2978,247,189521,4.0,42731 1445 | 2979,247,189521,5.0,4019 1446 | 2980,247,189521,6.0,2720 1447 | 2981,247,189521,7.0,311 1448 | 2982,247,189521,8.0,V4582 1449 | 2983,248,175353,1.0,8822 1450 | 2984,248,175353,2.0,85220 1451 | 2985,248,175353,3.0,5185 1452 | 2986,248,175353,4.0,99889 1453 | 2987,248,175353,5.0,5070 1454 | 2988,248,175353,6.0,9579 1455 | 2989,248,175353,7.0,87342 1456 | 2990,248,175353,8.0,E8150 1457 | 2991,248,175353,9.0,2859 1458 | 2992,249,116935,1.0,49322 1459 | 2993,249,116935,2.0,51882 1460 | 2994,249,116935,3.0,41071 1461 | 2995,249,116935,4.0,42841 1462 | 2996,249,116935,5.0,99812 1463 | 2997,249,116935,6.0,5849 1464 | 2998,249,116935,7.0,42731 1465 | 2999,249,116935,8.0,4660 1466 | 3000,249,116935,9.0,4589 1467 | 3001,249,116935,10.0,41401 1468 | 3002,249,116935,11.0,41402 1469 | 3003,249,116935,12.0,2449 1470 | 3004,249,116935,13.0,7921 1471 | 3005,249,116935,14.0,25000 1472 | 3006,249,116935,15.0,53081 1473 | 3007,249,116935,16.0,2859 1474 | 3008,249,149546,1.0,56985 1475 | 3009,249,149546,2.0,41071 1476 | 3010,249,149546,3.0,43411 1477 | 3011,249,149546,4.0,5849 1478 | 3012,249,149546,5.0,2851 1479 | 3013,249,149546,6.0,34280 1480 | 3014,249,149546,7.0,41402 1481 | 3015,249,149546,8.0,42731 1482 | 3016,249,149546,9.0,4280 1483 | 3017,249,149546,10.0,40390 1484 | 3018,249,149546,11.0,78451 1485 | 3019,249,149546,12.0,25000 1486 | 3020,249,149546,13.0,5859 1487 | 3021,249,149546,14.0,2724 1488 | 3022,249,149546,15.0,49320 1489 | 3023,249,149546,16.0,53081 1490 | 3024,249,149546,17.0,2449 1491 | 3025,249,158975,1.0,1534 1492 | 3026,249,158975,2.0,42821 1493 | 3027,249,158975,3.0,1982 1494 | 3028,249,158975,4.0,2639 1495 | 3029,249,158975,5.0,5849 1496 | 3030,249,158975,6.0,5601 1497 | 3031,249,158975,7.0,99811 1498 | 3032,249,158975,8.0,99813 1499 | 3033,249,158975,9.0,42731 1500 | 3034,249,158975,10.0,4280 1501 | 3035,249,158975,11.0,40390 1502 | 3036,249,158975,12.0,5853 1503 | 3037,249,158975,13.0,4139 1504 | 3038,249,158975,14.0,25000 1505 | 3039,249,158975,15.0,53081 1506 | 3040,249,158975,16.0,2449 1507 | 3041,249,158975,17.0,49320 1508 | 3042,249,158975,18.0,412 1509 | 3043,249,158975,19.0,V4581 1510 | 3044,249,158975,20.0,V1254 1511 | 3045,249,158975,21.0,V4986 1512 | 3046,249,158975,22.0,E8788 1513 | 3047,249,158975,23.0,2800 1514 | 3048,249,158975,24.0,45829 1515 | 3049,249,158975,25.0,59971 1516 | 3050,249,158975,26.0,E9342 1517 | 3051,250,124271,1.0,0382 1518 | 3052,250,124271,2.0,78552 1519 | 3053,250,124271,3.0,51881 1520 | 3054,250,124271,4.0,481 1521 | 3055,250,124271,5.0,5849 1522 | 3056,250,124271,6.0,78551 1523 | 3057,250,124271,7.0,9982 1524 | 3058,250,124271,8.0,1970 1525 | 3059,250,124271,9.0,19889 1526 | 3060,250,124271,10.0,99592 1527 | 3061,250,124271,11.0,4239 1528 | 3062,250,124271,12.0,2859 1529 | 3063,251,117937,1.0,85300 1530 | 3064,251,117937,2.0,9130 1531 | 3065,251,117937,3.0,9100 1532 | 3066,251,117937,4.0,30500 1533 | 3067,251,117937,5.0,E8889 1534 | 3068,252,190159,1.0,5712 1535 | 3069,252,190159,2.0,45620 1536 | 3070,252,190159,3.0,5780 1537 | 3071,252,190159,4.0,51881 1538 | 3072,252,190159,5.0,78559 1539 | 3073,252,190159,6.0,5722 1540 | 3074,252,190159,7.0,7895 1541 | 3075,252,190159,8.0,45341 1542 | 3076,252,190159,9.0,5990 1543 | 3077,252,190159,10.0,5849 1544 | 3078,252,190159,11.0,30500 1545 | 3079,252,190159,12.0,2867 1546 | 3080,252,190159,13.0,2761 1547 | 3081,252,190159,14.0,2875 1548 | 3082,252,190159,15.0,486 1549 | 3083,252,190159,16.0,5997 1550 | 3084,252,190159,17.0,8670 1551 | 3085,252,190159,18.0,2639 1552 | 3086,252,190159,19.0,2851 1553 | 3087,252,190159,20.0,5723 1554 | 3088,252,190159,21.0,34831 1555 | 3089,252,190159,22.0,2738 1556 | 3090,252,190159,23.0,5798 1557 | 3091,252,190159,24.0,0701 1558 | 3092,252,190159,25.0,3051 1559 | 3093,252,190159,26.0,V1301 1560 | 3094,252,190159,27.0,E8796 1561 | 3095,252,193470,1.0,5712 1562 | 3096,252,193470,2.0,45620 1563 | 3097,252,193470,3.0,7895 1564 | 3098,252,193470,4.0,2851 1565 | 3099,252,193470,5.0,3575 1566 | 3100,253,176189,1.0,4260 1567 | 3101,253,176189,2.0,486 1568 | 3102,253,176189,3.0,4240 1569 | 3103,253,176189,4.0,2449 1570 | 3104,253,176189,5.0,3310 1571 | 3105,253,176189,6.0,29410 1572 | 3106,253,176189,7.0,4168 1573 | 3107,253,176189,8.0,2720 1574 | 3108,253,176189,9.0,4019 1575 | 3109,255,112013,1.0,60000 1576 | 3110,255,112013,2.0,99811 1577 | 3111,255,112013,3.0,2851 1578 | 3112,255,112013,4.0,42789 1579 | 3113,256,108811,1.0,53240 1580 | 3114,256,108811,2.0,41071 1581 | 3115,256,108811,3.0,53560 1582 | 3116,256,108811,4.0,40390 1583 | 3117,256,108811,5.0,5859 1584 | 2140,175,159223,1.0,80604 1585 | 2141,175,159223,2.0,8052 1586 | 2142,175,159223,3.0,4139 1587 | 2143,175,159223,4.0,42731 1588 | 2144,175,159223,5.0,V422 1589 | 2145,175,159223,6.0,4280 1590 | 2146,175,159223,7.0,E8809 1591 | 2147,175,159223,8.0,80701 1592 | 2148,175,159223,9.0,4414 1593 | 2149,175,159223,10.0,4019 1594 | 2150,175,159223,11.0,V4501 1595 | 2151,175,159223,12.0,4439 1596 | 2152,175,159223,13.0,8730 1597 | 2153,175,159223,14.0,57420 1598 | 2154,175,176764,1.0,42831 1599 | 2155,175,176764,2.0,51881 1600 | 2156,175,176764,3.0,5070 1601 | 2157,175,176764,4.0,42731 1602 | 2158,175,176764,5.0,70707 1603 | 2159,175,176764,6.0,V422 1604 | 2160,175,176764,7.0,2738 1605 | 2161,175,176764,8.0,V5417 1606 | 2162,175,176764,9.0,V4581 1607 | 2163,176,135828,1.0,4280 1608 | 2164,176,135828,2.0,42731 1609 | 2165,176,135828,3.0,4251 1610 | 2166,176,135828,4.0,5997 1611 | 2167,176,135828,5.0,41401 1612 | 2168,176,135828,6.0,42781 1613 | 2169,176,135828,7.0,V4501 1614 | 2170,176,135828,8.0,V5861 1615 | 2171,176,135828,9.0,V1046 1616 | 2172,177,143120,1.0,4280 1617 | 2173,177,143120,2.0,51881 1618 | 2174,177,143120,3.0,5119 1619 | 2175,177,143120,4.0,496 1620 | 2176,177,143120,5.0,03811 1621 | 2177,177,143120,6.0,99672 1622 | 2178,177,143120,7.0,4240 1623 | 2179,177,143120,8.0,48241 1624 | 2180,177,143120,9.0,5070 1625 | 2181,177,196896,1.0,5789 1626 | 2182,177,196896,2.0,41091 1627 | 2183,177,196896,3.0,5990 1628 | 2184,177,196896,4.0,42731 1629 | 2185,177,196896,5.0,2761 1630 | 2186,177,196896,6.0,53010 1631 | 2187,177,196896,7.0,2720 1632 | 2188,177,196896,8.0,4019 1633 | 2189,177,196896,9.0,3320 1634 | 2190,178,196159,1.0,55321 1635 | 2191,178,196159,2.0,99812 1636 | 2192,178,196159,3.0,2851 1637 | 2193,178,196159,4.0,E8788 1638 | 2194,178,196159,5.0,5569 1639 | 2195,178,196159,6.0,42731 1640 | 2196,178,196159,7.0,3949 1641 | 2197,178,196159,8.0,4019 1642 | 2198,178,196159,9.0,V4501 1643 | 2199,179,161310,1.0,51881 1644 | 2200,179,161310,2.0,8600 1645 | 2201,179,161310,3.0,44489 1646 | 2202,179,161310,4.0,27651 1647 | 2203,179,161310,5.0,99881 1648 | 2204,179,161310,6.0,80700 1649 | 2205,179,161310,7.0,92400 1650 | 2206,179,161310,8.0,E9600 1651 | 2207,179,161310,9.0,514 1652 | 2208,179,161310,10.0,45829 1653 | 2209,180,155820,1.0,V3101 1654 | 2210,180,155820,2.0,76517 1655 | 2211,180,155820,3.0,76497 1656 | 2212,180,155820,4.0,V290 1657 | 2213,180,155820,5.0,7708 1658 | 2214,180,155820,6.0,76383 1659 | 2215,180,155820,7.0,75261 1660 | 2216,181,102631,1.0,4411 1661 | 2217,181,102631,2.0,4241 1662 | 2218,181,102631,3.0,9971 1663 | 2219,181,102631,4.0,4281 1664 | 2220,181,102631,5.0,44103 1665 | 2221,182,146080,1.0,2181 1666 | 2222,182,146080,2.0,2851 1667 | 2223,182,146080,3.0,2800 1668 | 2224,182,146080,4.0,24200 1669 | 2225,183,113341,1.0,85300 1670 | 2226,183,113341,2.0,95901 1671 | 2227,183,113341,3.0,E8120 1672 | 2228,184,137477,1.0,1919 1673 | 2229,184,137477,2.0,6826 1674 | 2230,184,137477,3.0,486 1675 | 2231,184,137477,4.0,2554 1676 | 2232,184,137477,5.0,25000 1677 | 2233,184,137477,6.0,3594 1678 | 2234,184,137477,7.0,E9320 1679 | 2235,184,137526,1.0,1916 1680 | 2236,184,137526,2.0,78039 1681 | 2237,184,137526,3.0,2554 1682 | 2238,184,137526,4.0,486 1683 | 2239,184,137526,5.0,7872 1684 | 2240,184,137526,6.0,34830 1685 | 2241,184,137526,7.0,2859 1686 | 2242,185,152056,1.0,V3000 1687 | 2243,185,152056,2.0,V053 1688 | 2244,185,152056,3.0,V290 1689 | 2245,186,164405,1.0,4560 1690 | 2246,186,164405,2.0,5070 1691 | 2247,186,164405,3.0,340 1692 | 2248,186,164405,4.0,51881 1693 | 2249,186,164405,5.0,57149 1694 | 2250,186,164405,6.0,27652 1695 | 2251,186,164405,7.0,4568 1696 | 2252,186,164405,8.0,4019 1697 | 2253,186,164405,9.0,25000 1698 | 2254,186,164405,10.0,2720 1699 | 2255,186,164405,11.0,4589 1700 | 2256,187,199724,1.0,0383 1701 | 2257,187,199724,2.0,9992 1702 | 2258,187,199724,3.0,41071 1703 | 2259,187,199724,4.0,496 1704 | 2260,187,199724,5.0,2762 1705 | 2261,187,199724,6.0,45182 1706 | 2262,187,199724,7.0,2768 1707 | 2263,187,199724,8.0,3310 1708 | 2264,187,199724,9.0,29410 1709 | 2265,188,123860,1.0,99682 1710 | 2266,188,123860,2.0,51881 1711 | 2267,188,123860,3.0,5849 1712 | 2268,188,123860,4.0,7907 1713 | 2269,188,123860,5.0,07044 1714 | 2270,188,123860,6.0,2762 1715 | 2271,188,123860,7.0,2763 1716 | 2272,188,123860,8.0,25541 1717 | 2273,188,123860,9.0,78959 1718 | 2274,188,123860,10.0,2760 1719 | 2275,188,123860,11.0,2768 1720 | 2276,188,123860,12.0,V4983 1721 | 2277,188,123860,13.0,5715 1722 | 2278,188,123860,14.0,5859 1723 | 2279,188,123860,15.0,25080 1724 | 2280,188,123860,16.0,45621 1725 | 2281,188,123860,17.0,04109 1726 | 2282,188,123860,18.0,V1007 1727 | 2283,188,123860,19.0,40390 1728 | 2284,188,123860,20.0,E8780 1729 | 2285,188,132401,1.0,3241 1730 | 2286,188,132401,2.0,51881 1731 | 2287,188,132401,3.0,486 1732 | 2288,188,132401,4.0,99931 1733 | 2289,188,132401,5.0,73008 1734 | 2290,188,132401,6.0,7907 1735 | 2291,188,132401,7.0,99682 1736 | 2292,188,132401,8.0,99811 1737 | 2293,188,132401,9.0,07044 1738 | 2294,188,132401,10.0,5856 1739 | 2295,188,132401,11.0,25541 1740 | 2296,188,132401,12.0,78959 1741 | 2297,188,132401,13.0,40391 1742 | 2298,188,132401,14.0,2761 1743 | 2299,188,132401,15.0,2762 1744 | 2300,188,132401,16.0,5789 1745 | 2301,188,132401,17.0,2867 1746 | 2302,188,132401,18.0,V4983 1747 | 2303,188,132401,19.0,2875 1748 | 2304,188,132401,20.0,5723 1749 | 2305,188,132401,21.0,72293 1750 | 2306,188,132401,22.0,04119 1751 | 2307,188,132401,23.0,33399 1752 | 2308,188,132401,24.0,E9390 1753 | 2309,188,132401,25.0,E8780 1754 | 2310,188,132401,26.0,25000 1755 | 2311,188,132401,27.0,53789 1756 | 2312,188,132401,28.0,V1007 1757 | 2313,188,132401,29.0,28521 1758 | 2314,188,132401,30.0,73730 1759 | 2315,188,150463,1.0,99811 1760 | 2316,188,150463,2.0,99682 1761 | 2317,188,150463,3.0,5715 1762 | 2318,188,150463,4.0,07054 1763 | 2319,188,150463,5.0,E8788 1764 | 2320,188,150463,6.0,E8780 1765 | 2321,188,150463,7.0,4019 1766 | 2322,188,160697,1.0,570 1767 | 2323,188,160697,2.0,07054 1768 | 2324,188,160697,3.0,1552 1769 | 2325,188,160697,4.0,5723 1770 | 2326,188,160697,5.0,78071 1771 | 2327,188,164735,1.0,4552 1772 | 2328,188,164735,2.0,7907 1773 | 2329,188,164735,3.0,99682 1774 | 2330,188,164735,4.0,99931 1775 | 2331,188,164735,5.0,5856 1776 | 2332,188,164735,6.0,99811 1777 | 2333,188,164735,7.0,99731 1778 | 2334,188,164735,8.0,2851 1779 | 2335,188,164735,9.0,25541 1780 | 2336,188,164735,10.0,2875 1781 | 2337,188,164735,11.0,5715 1782 | 2338,188,164735,12.0,V4983 1783 | 2339,188,164735,13.0,07054 1784 | 2340,188,164735,14.0,80702 1785 | 2341,188,164735,15.0,04104 1786 | 2342,188,164735,16.0,4555 1787 | 2343,188,164735,17.0,E8788 1788 | 2344,188,164735,18.0,E8844 1789 | 2345,188,164735,19.0,E8497 1790 | 2346,188,164735,20.0,28521 1791 | 2347,188,164735,21.0,E8780 1792 | 2348,188,164735,22.0,25000 1793 | 2349,188,164735,23.0,V5867 1794 | 2350,188,164735,24.0,53789 1795 | 1735,138,105764,2.0,4254 1796 | 1736,138,105764,3.0,4280 1797 | 1737,138,105764,4.0,V4502 1798 | 1738,138,105764,5.0,V5861 1799 | 1739,138,105764,6.0,V433 1800 | 1740,138,105764,7.0,412 1801 | 1325,109,173633,15.0,V1251 1802 | 837,105,161160,3.0,27651 1803 | 838,105,161160,4.0,7895 1804 | 839,105,161160,5.0,5119 1805 | 840,105,161160,6.0,4254 1806 | 841,105,161160,7.0,42731 1807 | 842,105,161160,8.0,5849 1808 | 843,105,161160,9.0,99591 1809 | 844,105,161160,10.0,42789 1810 | 845,105,161160,11.0,3334 1811 | 846,105,161160,12.0,2859 1812 | 847,105,161160,13.0,7906 1813 | 984,109,126055,1.0,4010 1814 | 985,109,126055,2.0,5856 1815 | 986,109,126055,3.0,58281 1816 | 987,109,126055,4.0,4239 1817 | 988,109,126055,5.0,78959 1818 | 989,109,126055,6.0,2762 1819 | 990,109,126055,7.0,2761 1820 | 991,109,126055,8.0,78909 1821 | 992,109,126055,9.0,78906 1822 | 993,109,126055,10.0,78701 1823 | 994,109,126055,11.0,78791 1824 | 995,109,126055,12.0,7100 1825 | 996,109,126055,13.0,25200 1826 | 997,109,126055,14.0,2859 1827 | 998,109,126055,15.0,2875 1828 | 999,109,126055,16.0,53081 1829 | 2953,245,105501,1.0,41071 1830 | 2954,245,105501,2.0,41401 1831 | 3118,256,108811,6.0,04186 1832 | 3119,256,108811,7.0,41401 1833 | 3120,256,108811,8.0,2724 1834 | 3121,256,108811,9.0,496 1835 | 3122,256,108811,10.0,42731 1836 | 3123,256,108811,11.0,V4581 1837 | 3259,273,158689,1.0,96501 1838 | 3260,273,158689,2.0,30421 1839 | 3261,273,158689,3.0,07070 1840 | 3262,273,158689,4.0,07030 1841 | 3263,273,158689,5.0,51881 1842 | 3264,273,158689,6.0,30401 1843 | 3265,273,158689,7.0,4280 1844 | 3266,273,158689,8.0,2920 1845 | 3267,273,158689,9.0,30431 1846 | 3268,273,158689,10.0,9708 1847 | 3269,273,158689,11.0,9696 1848 | 3281,275,129886,2.0,51881 1849 | 3282,275,129886,3.0,78552 1850 | 3283,275,129886,4.0,5849 1851 | 3284,275,129886,5.0,4538 1852 | 3285,275,129886,6.0,2869 1853 | 3286,275,129886,7.0,85221 1854 | 3287,275,129886,8.0,5990 1855 | 3288,275,129886,9.0,99592 1856 | 3289,275,129886,10.0,3320 1857 | 3290,275,129886,11.0,V667 1858 | 3291,275,129886,12.0,33182 1859 | 3292,275,129886,13.0,29410 1860 | 3293,275,129886,14.0,4019 1861 | 3294,275,129886,15.0,E8889 1862 | 3295,275,129886,16.0,V1582 1863 | -------------------------------------------------------------------------------- /tests/icd_test/input/pop.csv: -------------------------------------------------------------------------------- 1 | ID 2 | 172335 3 | 173633 4 | 174105 5 | 109976 6 | 178393 7 | 114585 8 | 127203 9 | 140784 10 | 164853 11 | 147035 12 | 135738 13 | 188923 14 | 135750 15 | 195632 16 | 112906 17 | 134369 18 | 138376 19 | 172461 20 | 157348 21 | 176860 22 | 141647 23 | 180872 24 | 164174 25 | 113323 26 | 198214 27 | 171781 28 | 160192 29 | 191817 30 | 167887 31 | 192180 32 | 199634 33 | 184644 34 | 151583 35 | 105764 36 | 172056 37 | 143430 38 | 104518 39 | 155252 40 | 186474 41 | 108329 42 | 170467 43 | 190201 44 | 178596 45 | 111944 46 | 156857 47 | 194730 48 | 182637 49 | 112086 50 | 142768 51 | 100536 52 | 181542 53 | 115385 54 | 175016 55 | 110641 56 | 158569 57 | 120969 58 | 166401 59 | 112077 60 | 116630 61 | 190243 62 | 190659 63 | 123010 64 | 188646 65 | 121205 66 | 142807 67 | 160481 68 | 140037 69 | 183686 70 | 160891 71 | 170324 72 | 127870 73 | 188606 74 | 187373 75 | 153952 76 | 175533 77 | 195700 78 | 130744 79 | 133550 80 | 164025 81 | 128744 82 | 161160 83 | 163353 84 | 145834 85 | 185777 86 | 178980 87 | 107064 88 | 118037 89 | 159514 90 | 150750 91 | 184167 92 | 194540 93 | 112213 94 | 143045 95 | 103251 96 | 161087 97 | 194023 98 | 188822 99 | 109235 100 | 157681 101 | 109451 102 | 111970 103 | 165315 104 | 124321 105 | 152223 106 | 161859 107 | 129635 108 | 197661 109 | 134931 110 | 162569 111 | 104557 112 | 128652 113 | 175413 114 | 176176 115 | 115799 116 | 144319 117 | 166707 118 | 122659 119 | 165660 120 | 182104 121 | 188670 122 | 185910 123 | 106266 124 | 101757 125 | 119203 126 | 146828 127 | 181750 128 | 157907 129 | 144073 130 | 190539 131 | 132761 132 | 196010 133 | 190797 134 | 155385 135 | 138795 136 | 190665 137 | 181711 138 | 162774 139 | 177285 140 | 104130 141 | 198892 142 | 176332 143 | 189535 144 | 116009 145 | 195961 146 | 126055 147 | 128755 148 | 131345 149 | 131376 150 | 135923 151 | 136572 152 | 137510 153 | 139061 154 | 140167 155 | 147469 156 | 151240 157 | 155726 158 | 158943 159 | 158995 160 | 161950 161 | 164029 162 | 166018 163 | 170149 164 | 158689 165 | 130546 166 | 129886 167 | 105501 168 | 197430 169 | 189521 170 | 175353 171 | 116935 172 | 149546 173 | 158975 174 | 124271 175 | 117937 176 | 190159 177 | 193470 178 | 176189 179 | 112013 180 | 108811 181 | 159223 182 | 176764 183 | 135828 184 | 143120 185 | 196896 186 | 196159 187 | 161310 188 | 155820 189 | 102631 190 | 146080 191 | 113341 192 | 137477 193 | 137526 194 | 152056 195 | 164405 196 | 199724 197 | 123860 198 | 132401 199 | 150463 200 | 160697 201 | 164735 202 | -------------------------------------------------------------------------------- /tests/icd_time_test/input/config-0.yaml: -------------------------------------------------------------------------------- 1 | hierarchical_sep: ':' 2 | hierarchical_levels: [0] 3 | 4 | value_types: 5 | ICD9_CODE: hierarchical_ICD9 6 | -------------------------------------------------------------------------------- /tests/icd_time_test/input/config-1.yaml: -------------------------------------------------------------------------------- 1 | hierarchical_sep: ':' 2 | hierarchical_levels: [0,1] 3 | -------------------------------------------------------------------------------- /tests/icd_time_test/input/config-2.yaml: -------------------------------------------------------------------------------- 1 | hierarchical_sep: ':' 2 | hierarchical_levels: [0,1,2] 3 | -------------------------------------------------------------------------------- /tests/icd_time_test/input/pop.csv: -------------------------------------------------------------------------------- 1 | ID 2 | 172335 3 | 173633 4 | 174105 5 | 109976 6 | 178393 7 | 114585 8 | 127203 9 | 140784 10 | 164853 11 | 147035 12 | 135738 13 | 188923 14 | 135750 15 | 195632 16 | 112906 17 | 134369 18 | 138376 19 | 172461 20 | 157348 21 | 176860 22 | 141647 23 | 180872 24 | 164174 25 | 113323 26 | 198214 27 | 171781 28 | 160192 29 | 191817 30 | 167887 31 | 192180 32 | 199634 33 | 184644 34 | 151583 35 | 105764 36 | 172056 37 | 143430 38 | 104518 39 | 155252 40 | 186474 41 | 108329 42 | 170467 43 | 190201 44 | 178596 45 | 111944 46 | 156857 47 | 194730 48 | 182637 49 | 112086 50 | 142768 51 | 100536 52 | 181542 53 | 115385 54 | 175016 55 | 110641 56 | 158569 57 | 120969 58 | 166401 59 | 112077 60 | 116630 61 | 190243 62 | 190659 63 | 123010 64 | 188646 65 | 121205 66 | 142807 67 | 160481 68 | 140037 69 | 183686 70 | 160891 71 | 170324 72 | 127870 73 | 188606 74 | 187373 75 | 153952 76 | 175533 77 | 195700 78 | 130744 79 | 133550 80 | 164025 81 | 128744 82 | 161160 83 | 163353 84 | 145834 85 | 185777 86 | 178980 87 | 107064 88 | 118037 89 | 159514 90 | 150750 91 | 184167 92 | 194540 93 | 112213 94 | 143045 95 | 103251 96 | 161087 97 | 194023 98 | 188822 99 | 109235 100 | 157681 101 | 109451 102 | 111970 103 | 165315 104 | 124321 105 | 152223 106 | 161859 107 | 129635 108 | 197661 109 | 134931 110 | 162569 111 | 104557 112 | 128652 113 | 175413 114 | 176176 115 | 115799 116 | 144319 117 | 166707 118 | 122659 119 | 165660 120 | 182104 121 | 188670 122 | 185910 123 | 106266 124 | 101757 125 | 119203 126 | 146828 127 | 181750 128 | 157907 129 | 144073 130 | 190539 131 | 132761 132 | 196010 133 | 190797 134 | 155385 135 | 138795 136 | 190665 137 | 181711 138 | 162774 139 | 177285 140 | 104130 141 | 198892 142 | 176332 143 | 189535 144 | 116009 145 | 195961 146 | 126055 147 | 128755 148 | 131345 149 | 131376 150 | 135923 151 | 136572 152 | 137510 153 | 139061 154 | 140167 155 | 147469 156 | 151240 157 | 155726 158 | 158943 159 | 158995 160 | 161950 161 | 164029 162 | 166018 163 | 170149 164 | 158689 165 | 130546 166 | 129886 167 | 105501 168 | 197430 169 | 189521 170 | 175353 171 | 116935 172 | 149546 173 | 158975 174 | 124271 175 | 117937 176 | 190159 177 | 193470 178 | 176189 179 | 112013 180 | 108811 181 | 159223 182 | 176764 183 | 135828 184 | 143120 185 | 196896 186 | 196159 187 | 161310 188 | 155820 189 | 102631 190 | 146080 191 | 113341 192 | 137477 193 | 137526 194 | 152056 195 | 164405 196 | 199724 197 | 123860 198 | 132401 199 | 150463 200 | 160697 201 | 164735 202 | -------------------------------------------------------------------------------- /tests/large_test/input/config-1-parallel.yaml: -------------------------------------------------------------------------------- 1 | discretize: yes 2 | use_ordinal_encoding: no 3 | 4 | parallel: yes 5 | n_jobs: 4 6 | -------------------------------------------------------------------------------- /tests/large_test/input/config-2-parallel.yaml: -------------------------------------------------------------------------------- 1 | discretize: yes 2 | use_ordinal_encoding: yes 3 | 4 | parallel: yes 5 | n_jobs: 4 6 | -------------------------------------------------------------------------------- /tests/large_test/input/config-3-parallel.yaml: -------------------------------------------------------------------------------- 1 | discretize: no 2 | 3 | parallel: yes 4 | n_jobs: 4 5 | -------------------------------------------------------------------------------- /tests/large_test/input/pop.csv: -------------------------------------------------------------------------------- 1 | ID 2 | 200001 3 | 200010 4 | 200016 5 | 200033 6 | 200034 7 | 200035 8 | 200038 9 | 200040 10 | 200049 11 | 200050 12 | 200055 13 | 200061 14 | 200063 15 | 200072 16 | 200075 17 | 200079 18 | 200081 19 | 200087 20 | 200094 21 | 200098 22 | 200099 23 | 200104 24 | 200116 25 | 200126 26 | 200133 27 | 200135 28 | 200143 29 | 200150 30 | 200153 31 | 200163 32 | 200169 33 | 200172 34 | 200174 35 | 200191 36 | 200192 37 | 200200 38 | 200215 39 | 200217 40 | 200223 41 | 200224 42 | 200225 43 | 200227 44 | 200231 45 | 200234 46 | 200256 47 | 200262 48 | 200263 49 | 200265 50 | 200267 51 | 200277 52 | 200282 53 | 200284 54 | 200286 55 | 200292 56 | 200295 57 | 200311 58 | 200315 59 | 200330 60 | 200346 61 | 200349 62 | 200352 63 | 200357 64 | 200359 65 | 200368 66 | 200383 67 | 200392 68 | 200399 69 | 200402 70 | 200408 71 | 200416 72 | 200430 73 | 200439 74 | 200441 75 | 200445 76 | 200450 77 | 200451 78 | 200454 79 | 200457 80 | 200463 81 | 200481 82 | 200486 83 | 200487 84 | 200489 85 | 200509 86 | 200525 87 | 200529 88 | 200530 89 | 200550 90 | 200552 91 | 200553 92 | 200562 93 | 200563 94 | 200566 95 | 200571 96 | 200575 97 | 200579 98 | 200580 99 | 200583 100 | 200591 101 | 200599 102 | 200603 103 | 200606 104 | 200610 105 | 200612 106 | 200616 107 | 200621 108 | 200622 109 | 200625 110 | 200642 111 | 200659 112 | 200661 113 | 200662 114 | 200664 115 | 200665 116 | 200671 117 | 200683 118 | 200696 119 | 200697 120 | 200701 121 | 200708 122 | 200710 123 | 200711 124 | 200715 125 | 200723 126 | 200724 127 | 200729 128 | 200735 129 | 200737 130 | 200746 131 | 200747 132 | 200748 133 | 200749 134 | 200758 135 | 200759 136 | 200764 137 | 200773 138 | 200783 139 | 200788 140 | 200806 141 | 200813 142 | 200824 143 | 200825 144 | 200827 145 | 200855 146 | 200861 147 | 200873 148 | 200888 149 | 200897 150 | 200899 151 | 200908 152 | 200909 153 | 200913 154 | 200916 155 | 200932 156 | 200934 157 | 200935 158 | 200937 159 | 200940 160 | 200943 161 | 200944 162 | 200946 163 | 200966 164 | 200969 165 | 200972 166 | 200973 167 | 200975 168 | 200977 169 | 200983 170 | 200985 171 | 200988 172 | 200989 173 | 200993 174 | 200998 175 | 200999 176 | 201004 177 | 201018 178 | 201027 179 | 201029 180 | 201034 181 | 201039 182 | 201045 183 | 201046 184 | 201047 185 | 201053 186 | 201065 187 | 201073 188 | 201080 189 | 201081 190 | 201082 191 | 201083 192 | 201091 193 | 201092 194 | 201095 195 | 201104 196 | 201109 197 | 201110 198 | 201113 199 | 201124 200 | 201125 201 | 201128 202 | -------------------------------------------------------------------------------- /tests/small_test/input/X_all.discretization.json: -------------------------------------------------------------------------------- 1 | {"DRUG_A_RATE_value": null, "DRUG_A_ROUTE_value": null, "LAB_X_value": null, "HR_delta_time": [0.0, 1.0, 2.0], "HR_value": [61.0, 69.2, 73.6, 76.2, 82.00000000000001, 90.0], "HR_min": [60.0, 68.4, 73.0, 75.0, 82.00000000000001, 90.0], "HR_max": [61.0, 69.2, 73.6, 76.2, 82.00000000000001, 90.0], "HR_mean": [60.333333333333336, 68.80000000000001, 73.6, 75.2, 82.00000000000001, 90.0]} -------------------------------------------------------------------------------- /tests/small_test/input/config-1.yaml: -------------------------------------------------------------------------------- 1 | discretize: no 2 | 3 | parallel: no 4 | n_jobs: 1 5 | 6 | value_types: 7 | ROOM: Categorical 8 | -------------------------------------------------------------------------------- /tests/small_test/input/config-2-bins.yaml: -------------------------------------------------------------------------------- 1 | discretize: yes 2 | use_ordinal_encoding: no 3 | S_discretization_bins: 'input/S_all.discretization.json' 4 | X_discretization_bins: 'input/X_all.discretization.json' 5 | 6 | parallel: no 7 | n_jobs: 1 8 | 9 | value_types: 10 | ROOM: Categorical 11 | -------------------------------------------------------------------------------- /tests/small_test/input/config-2.yaml: -------------------------------------------------------------------------------- 1 | discretize: yes 2 | use_ordinal_encoding: no 3 | 4 | parallel: no 5 | n_jobs: 1 6 | 7 | value_types: 8 | ROOM: Categorical 9 | -------------------------------------------------------------------------------- /tests/small_test/input/config-3.yaml: -------------------------------------------------------------------------------- 1 | discretize: yes 2 | use_ordinal_encoding: yes 3 | 4 | parallel: no 5 | n_jobs: 1 6 | 7 | value_types: 8 | ROOM: Categorical 9 | -------------------------------------------------------------------------------- /tests/small_test/input/data.csv: -------------------------------------------------------------------------------- 1 | ID,t,variable_name,variable_value 2 | 1,NULL,AGE,50 3 | 2,NULL,AGE,33 4 | 3,NULL,AGE,40 5 | 1,NULL,SEX,M 6 | 2,NULL,SEX,M 7 | 3,NULL,SEX,F 8 | 1,NULL,ROOM,101 9 | 2,NULL,ROOM,102 10 | 3,NULL,ROOM,103 11 | 1,0.1,HR,70 12 | 1,0.9,HR,71 13 | 1,1.5,HR,72 14 | 1,1.9,HR,73 15 | 1,2.9,HR,74 16 | 1,3.5,HR,75 17 | 2,0.1,HR,60 18 | 2,0.8,HR,60 19 | 2,0.9,HR,61 20 | 2,2.1,HR,73 21 | 2,2.9,HR,78 22 | 2,3.5,HR,75 23 | 3,1.7,HR,90 24 | 4,0.7,HR,80 25 | 4,2.5,HR,62 26 | 4,3.9,HR,73 27 | 1,2.3,DRUG_A_RATE,48 28 | 2,3.4,DRUG_A_RATE,48 29 | 1,2.3,DRUG_A_ROUTE,Oral 30 | 2,3.4,DRUG_A_ROUTE,IV 31 | 3,1,DRUG_A_ROUTE,Bolus 32 | 1,2.3,LAB_X,<1 33 | 3,2.7,LAB_X,5 -------------------------------------------------------------------------------- /tests/small_test/input/pop.csv: -------------------------------------------------------------------------------- 1 | ID 2 | 3 3 | 4 4 | 1 5 | 2 6 | -------------------------------------------------------------------------------- /tests/small_test/input/s_all.discretization.json: -------------------------------------------------------------------------------- 1 | {"AGE_value": [33.0, 35.8, 38.6, 42.0, 46.0, 50.0], "ROOM_value": null, "SEX_value": null} -------------------------------------------------------------------------------- /tests/small_test/reference-1/df_S.csv: -------------------------------------------------------------------------------- 1 | ID,AGE_value,ROOM_value:_101,ROOM_value:_102,ROOM_value:_103,SEX_value:F,SEX_value:M 2 | 1,50.0,1.0,0.0,0.0,0.0,1.0 3 | 2,33.0,0.0,1.0,0.0,0.0,1.0 4 | 3,40.0,0.0,0.0,1.0,1.0,0.0 5 | 4,41.0,0.0,0.0,0.0,0.0,0.0 6 | -------------------------------------------------------------------------------- /tests/small_test/reference-1/df_X.csv: -------------------------------------------------------------------------------- 1 | ID,t_range,HR_mask,DRUG_A_RATE_value,DRUG_A_ROUTE_value:Bolus,DRUG_A_ROUTE_value:IV,DRUG_A_ROUTE_value:Oral,LAB_X_value,HR_delta_time,HR_value,HR_min,HR_max,HR_mean,LAB_X_value_str:<1 2 | 1,"[0.0, 1.0)",1.0,48.0,0.0,0.0,0.0,5.0,0.0,71.0,70.0,71.0,70.5,0.0 3 | 1,"[1.0, 2.0)",1.0,48.0,0.0,0.0,0.0,5.0,0.0,73.0,72.0,73.0,72.5,0.0 4 | 1,"[2.0, 3.0)",1.0,48.0,0.0,0.0,1.0,5.0,0.0,74.0,74.0,74.0,74.0,1.0 5 | 1,"[3.0, 4.0)",1.0,48.0,0.0,0.0,0.0,5.0,0.0,75.0,75.0,75.0,75.0,0.0 6 | 2,"[0.0, 1.0)",1.0,48.0,0.0,0.0,0.0,5.0,0.0,61.0,60.0,61.0,60.333333333333336,0.0 7 | 2,"[1.0, 2.0)",0.0,48.0,0.0,0.0,0.0,5.0,1.0,61.0,61.0,61.0,61.0,0.0 8 | 2,"[2.0, 3.0)",1.0,48.0,0.0,0.0,0.0,5.0,0.0,78.0,73.0,78.0,75.5,0.0 9 | 2,"[3.0, 4.0)",1.0,48.0,0.0,1.0,0.0,5.0,0.0,75.0,75.0,75.0,75.0,0.0 10 | 3,"[0.0, 1.0)",0.0,48.0,0.0,0.0,0.0,5.0,0.0,75.53333333333333,75.0,75.53333333333333,75.25555555555556,0.0 11 | 3,"[1.0, 2.0)",1.0,48.0,1.0,0.0,0.0,5.0,0.0,90.0,90.0,90.0,90.0,0.0 12 | 3,"[2.0, 3.0)",0.0,48.0,0.0,0.0,0.0,5.0,1.0,90.0,90.0,90.0,90.0,0.0 13 | 3,"[3.0, 4.0)",0.0,48.0,0.0,0.0,0.0,5.0,2.0,90.0,90.0,90.0,90.0,0.0 14 | 4,"[0.0, 1.0)",1.0,48.0,0.0,0.0,0.0,5.0,0.0,80.0,80.0,80.0,80.0,0.0 15 | 4,"[1.0, 2.0)",0.0,48.0,0.0,0.0,0.0,5.0,1.0,80.0,80.0,80.0,80.0,0.0 16 | 4,"[2.0, 3.0)",1.0,48.0,0.0,0.0,0.0,5.0,0.0,62.0,62.0,62.0,62.0,0.0 17 | 4,"[3.0, 4.0)",1.0,48.0,0.0,0.0,0.0,5.0,0.0,73.0,73.0,73.0,73.0,0.0 18 | --------------------------------------------------------------------------------