From e11e2d174812e62246bf00b9f1ae7901563a902f Mon Sep 17 00:00:00 2001 From: James Vasile Date: Wed, 20 Jun 2018 14:56:22 -0400 Subject: [PATCH] Move to own repo: https://github.com/SolutionGuidance/cavetl --- etl/leie/.gitignore | 14 - etl/leie/MANIFEST.in | 6 - etl/leie/README.mdwn | 297 ------------------ etl/leie/leie/__init__.py | 0 etl/leie/leie/api.mdwn | 56 ---- etl/leie/leie/db/dbconf.yml | 11 - etl/leie/leie/etl.py | 363 --------------------- etl/leie/leie/log.py | 70 ----- etl/leie/leie/model.py | 435 -------------------------- etl/leie/leie/path.py | 74 ----- etl/leie/leie/serve.py | 166 ---------- etl/leie/leie/tests/data/1701REIN.csv | 14 - etl/leie/leie/tests/data/1702REIN.csv | 78 ----- etl/leie/leie/tests/data/1703REIN.csv | 56 ---- etl/leie/leie/tests/data/1704REIN.csv | 34 -- etl/leie/leie/tests/data/UPDATED.csv | 336 -------------------- etl/leie/leie/tests/test_etl.py | 116 ------- etl/leie/leie/tests/test_model.py | 137 -------- etl/leie/leie/tests/test_path.py | 63 ---- etl/leie/requirements.txt | 16 - etl/leie/setup.py | 11 - etl/leie/test | 20 -- etl/leie/tox.ini | 6 - 23 files changed, 2379 deletions(-) delete mode 100644 etl/leie/.gitignore delete mode 100644 etl/leie/MANIFEST.in delete mode 100644 etl/leie/README.mdwn delete mode 100644 etl/leie/leie/__init__.py delete mode 100644 etl/leie/leie/api.mdwn delete mode 100644 etl/leie/leie/db/dbconf.yml delete mode 100755 etl/leie/leie/etl.py delete mode 100644 etl/leie/leie/log.py delete mode 100755 etl/leie/leie/model.py delete mode 100644 etl/leie/leie/path.py delete mode 100755 etl/leie/leie/serve.py delete mode 100644 etl/leie/leie/tests/data/1701REIN.csv delete mode 100644 etl/leie/leie/tests/data/1702REIN.csv delete mode 100644 etl/leie/leie/tests/data/1703REIN.csv delete mode 100644 etl/leie/leie/tests/data/1704REIN.csv delete mode 100644 etl/leie/leie/tests/data/UPDATED.csv delete mode 100644 etl/leie/leie/tests/test_etl.py delete mode 100644 etl/leie/leie/tests/test_model.py delete mode 100644 etl/leie/leie/tests/test_path.py delete mode 100644 etl/leie/requirements.txt delete mode 100644 etl/leie/setup.py delete mode 100755 etl/leie/test delete mode 100644 etl/leie/tox.ini diff --git a/etl/leie/.gitignore b/etl/leie/.gitignore deleted file mode 100644 index 5dfce24a5..000000000 --- a/etl/leie/.gitignore +++ /dev/null @@ -1,14 +0,0 @@ -*.sqlite3 -.cache/ -.coverage -__pycache__/ -\#* -.\#* -tests/db/ -db/sqlite3/ -/data/* -.tox/ -MANIFEST -leie/data/ -leie/db/sqlite3/ -leie/tests/db/ diff --git a/etl/leie/MANIFEST.in b/etl/leie/MANIFEST.in deleted file mode 100644 index 02ad4de86..000000000 --- a/etl/leie/MANIFEST.in +++ /dev/null @@ -1,6 +0,0 @@ -include README.mdwn -include leie/db/dbconf.yml -include leie/db/sqlite3/* -include test -include leie/tests/*.py -include leie/tests/data/*.csv diff --git a/etl/leie/README.mdwn b/etl/leie/README.mdwn deleted file mode 100644 index e56c3a1ee..000000000 --- a/etl/leie/README.mdwn +++ /dev/null @@ -1,297 +0,0 @@ -The [LEIE data](https://oig.hhs.gov/exclusions/exclusions_list.asp) -comes as 3 files, each issued monthly: - -* UPDATED.csv, which lists all the exclusions -* `YYMMEXCL.csv` that lists exclusions from that month -* `YYMMREIN.csv` that lists reinstatements from that month - -(where YY are the two least significant digits of the year and MM is a -number indicating the month) - -`UPDATED.csv` contains all of the monthly exclusions. When a new set -of files comes out, it is a superset of the monthly EXCL.csv. It -removes the REIN.csv entries, though, because those are no longer -excluded providers. We ignore the EXCL.csv files because the other -two files contain all the information we need to tell if somebody is -excluded or was excluded. - -We collect the three monthly files and make two sets of data. We -maintain a list of currently excluded providers and a list of -historically reinstated providers. Those lists each exist in two -forms. One for legal entities (we call them "businesses") and one for -individual people. These lists date back to January 2016, which is to -say they try to capture providers that have been on the exclusions -list at any point since that date. Providers that were excluded but -reinstated before January 2016 will not be reflected in this data set. - -If a provider is listed in the exclusions table, it is currently -excluded. If a provider is on the reinstatement list, it was excluded -but was later reinstated. Becuase providers might be excluded and -reinstated multiple times, presence on the reinstatement list does not -mean a provider is currently not excluded. The reinstatement list -gives information about historical risk factors (prior exclusions) and -is not intended to reflect current exclusion status. - -## Dependencies - -This code is tested under Python 3.4 and Python 3.5. It will not run -under Python 2, though it doesn't use any 3-only features that we know -of. Backporting it would not be terribly difficult if your -environment demands it. - -Versions reflect what we used in our python environment. They are a -known-good combination of versions but there is no reason to think -newer versions will break anything. If you change versions, use the -test suite. - - $ pip install -r requirements.txt - -If you want sqlite3, don't get it from pypi (you can't). Use your -distro's packaged version: - - $ apt-get install sqlite3 - -You'll want goose to migrate the db up and down, which requires -golang. If you don't have golang, you'll need to install it, set your -GOPATH and add GOPATH to your local PATH. Here is how you might do -that on a Debian box: - - $ apt-get install golang - $ mkdir -p /usr/local/share/golang - $ export GOPATH=/usr/local/share/golang - $ export PATH=$PATH:$GOROOT/bin - -Or, if you don't want to install goose as a superuser: - - $ mkdir -p {path-to-psm}/etl/golang - $ export GOPATH={path-to-psm}/etl/golang - -Then, install goose: - - $ go get -u github.com/pressly/goose/cmd/goose - -This puts it in the `bin` subdir under your specified `$GOPATH`. Add -that path to your `$PATH`: - - $ export PATH=$PATH:{path-to-psm}/etl/golang/bin - -## Running - -This program downloads the csv files. Run it periodically to stay up -to date. They only update monthly. - -First, generate the migrations: - $ ./model.py - -Second, run the etl process. See the DEPENDENCIES section for how to -install `goose`, which is required to do this. - - $ ./etl.py - -This will put data into the development database specified in -`db/dbconf.yml`. Feel free to edit `dbconf.yml` as you need. - -Don't worry about running the ETL twice. The program is pretty good -about not saving the same data twice. - -To serve requests over the API, run: - - $ cd {path_to_psm}/etl/leie/leie - $ ./serve.py flask run - -A good test command to see if this is working correctly is: - - $ curl http://localhost:5000/Exclusion?excldate=2010-09-01 - -If the API is running, you should see a response like: - -``` -{ - "entry": [], - "link": [ - { - "relation": "self", - "url": "/Exclusion?page=1&page_size=15&excldate=2010-09-01T00%3A00%3A00" - }, - { - "relation": "first", - "url": "/Exclusion?page=1&page_size=15&excldate=2010-09-01T00%3A00%3A00" - }, - { - "relation": "previous", - "url": "/Exclusion?page=1&page_size=15&excldate=2010-09-01T00%3A00%3A00" - }, - { - "relation": "next", - "url": "/Exclusion?page=2&page_size=15&excldate=2010-09-01T00%3A00%3A00" - }, - { - "relation": "last", - "url": "/Exclusion?page=4520&page_size=15&excldate=2010-09-01T00%3A00%3A00" - } - ], - "meta": { - "tag": [ - "SUBSETTED" - ] - }, - "resourceType": "Bundle", - "total": 0, - "type": "searchset" -} -``` - -## Data Retention - -Once loaded into the database, old csv files can be discarded. If you -leave old YYMMREIN.csv files in the data directory, they will be -ignored unless you blow away the db. Keeping them will do no harm -(they're not large) and they might prove useful if you need to -rebuild. For example, if the data format changes and nobody notices -that the ETL function is failing, you might need to go back and -reconstruct. - -Old UPDATE.csv files are not useful. They are superseded each -month by the new UPDATED.csv. What's more, they are not -differentiated from new ones by anything in their name. If you are -going to archive the old ones for some reason, you'll probably want to -rename them. - -YYMMEXCL.csv files are useless, regardless of recency. This program -ignores such files entirely. Save or discard as you please. - -## Notes About The Data - -The data can be messy. Many entries are missing NPI information. -Dates can be spotty. Take, for example, Jeffrey Shope, who is listed -in late 2016 as being excluded in late 2016 but is then listed in -April 2017 as being excluded in February 2016 while being reinstated -in late 2016. He is currently on the exclusions list with an -exclusion date of February 2016. It is possible to look at these -entries and tell a coherent story (he was initially excluded, then -further action pushed his exclusion date back several months), but the -four entries that make up that story are not easily understood. For -risk analysis purposes, it is enough to know he is currently on the -exclusions list. - -The datasets include address information. Based on our review of the -data, addresses change frequently enough that we advise against using -it to differentiate between providers. That said, addresses might be -used as confirmatory or correlating information when identifying -providers in the dataset. - -The datasets include practice area and specialty information. This -data changes often enough that we caution against using it to -differentiate identity among providers. - -Some providers have multiple entries. They have several exclusions -listed (often with different dates), which presumably stem from -multiple exclusion actions taken against them. It is not clear that -reinstatements or waivers apply to all such exclusion actions or to -specific ones. - -Dates are inconsistently specified in the raw data. In some places we -have YYYYMMDD and in others we have YY/MM/DD. We have regularized -that in the db to YYYY-MM-DD HH:MM:SS.sss but it is possible we missed -a weird date format somewhere. - -Middle names are often missing or abbreviated as a single initial -letter. Two entries that appear to reference the same person can have -different forms of middle name. Do not rely on them. - -## Data Sources - -Data is taken from -https://oig.hhs.gov/exclusions/exclusions_list.asp. All data files -have the following fields: - -Here are the LEIE fields: -FIELD VALUE FIELD LENGTH -LASTNAME 20 -FIRSTNAME 15 -MIDNAME 15 -BUSNAME 30 -GENERAL 20 -SPECIALTY 20 -UPIN 6 -NPI 10 -DOB 8 -ADDRESS 30 -CITY 20 -STATE 2 -ZIP CODE 5 -EXCLTYPE 9 -EXCLDATE 8 -REINDATE 8 -WAIVERDATE 8 -WAIVERSTATE 2 - -## ETL and Ext-Sources Strategy - -This etl program takes the data from files and loads it in to a -database. We are mainly doing writes here and no complex queries. -All the modeling and reading will happen in another application. For -now, we'll aim at SQLite and might add Postgres later. We're not -using an ORM for this, mainly because we don't need one yet. When we -do the API ext-sources services app, we might use something like that. - -For now, this code manages migrations with -[Goose](https://github.com/pressly/goose). We might move to Liquibase -in the future, but Goose is dead simple right now, so we're going with -it. The goal is to keep the migrations somewhat language and ORM -agnostic. Whatever generates SQL (your ORM, DOA, framework, etc.) for -your schema can also generate that SQL for a goose migration target. -If you are hand-writing your schema sql, put it in the goose migration -files and those files become the canonical reference on correct table -forms. If you are generating your SQL, then whatever input you are -feeding to your SQL-generator (whether it be hibernate or sqlalchemy -or whatever) should be the canonical form. Either way, be explicit -about which it is: for this module, it is the schema generated by -model.py. Run the file directly from the commandline to put goose -migrations into your migrations directory. If you need further -migrations, adjust model.py to emit those for goose. - -The advantage of using sqlite here is speed and simplicity. The thing -is fast and easy to use. The ETL should result in a read-heavy, -single-user database. It will be slow on the write side, fast on the -read side, but that's ok. If anything says SQLite, that does. - -The advantage of postgres is that you get an actual multi-client -concurrent server. If you want to serve data directly to remote -clients (as opposed to doing it over a web API), you'll want -Postgresql. - -## Testing - -To run the tests, use the `./test` script. It sets the tests up for -you. Note that the tests depend on you having run `model.py` and -`etl.py` to do base setup, and that running the tests erases the LEIE -data (so you'll have to run the ETL again in order to run the -verification service). - -If you want to run the tests, you'll need pytest and you might want -tox: - - $ pip install tox==2.7.0 pytest==3.1.1 pytest-cov==2.5.1 - -To run the tests, just do `./test` or `tox ---skip-missing-interpreters`. They run the same tests, but tox lets -you set up different environments for testing. Note that running the -tests deletes the LEIE data, so after running the tests, you'll need -to get it again. - -## Copyright and License - -This program is free software: you can redistribute it and/or -modify it under the terms of the Affero GNU General Public License as -published by the Free Software Foundation, either version 3 of the -License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the Affero GNU General Public -License along with this program. If not, see -. diff --git a/etl/leie/leie/__init__.py b/etl/leie/leie/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/etl/leie/leie/api.mdwn b/etl/leie/leie/api.mdwn deleted file mode 100644 index a594f742b..000000000 --- a/etl/leie/leie/api.mdwn +++ /dev/null @@ -1,56 +0,0 @@ -## Calling - -The API wrapping the LEIE data only has one endpoint: `Exclusion`. It -takes `GET` requests which may include one or more of the following -query parameters. These parameters are related to the LEIE's own -columns, which are described by the Treasury Department's [Do Not Pay -documentation -(PDF)](https://donotpay.treas.gov/20160615QRCLEIEFINAL.pdf): - -- `npi`: The 9-digit National Provider Identifier (NPI) of a given - provider. This is currently what the PSM uses to search LEIE - results. -- `firstname`: The first name of the excluded provider. -- `midname`: Middle name or initial of the excluded provider (individual - or entity). May be empty. -- `lastname`: The last name of the excluded provider. -- `busname`: The business name of the provider. -- `dob`: Excluded individual provider's date of birth, in YYYY-MM-DD - format. -- `address`: The provider's address. -- `city`: The provider's city. -- `state`: The provider's state (the two-letter abbreviation for the - United States, not including territories). -- `zip`: The provider's 5-digit zipcode. -- `rowid`: The ID of the exclusion record in the LEIE. -- `excldate`: The date of the exclusion in YYYY-MM-DD format. -- `excltype`: A code from the LEIE that represents the exclusion types - listed on the [Exclusion - Authorities](https://oig.hhs.gov/exclusions/authorities.asp) page. -- `waiverdate`: Date the individual’s or entity’s exclusion status was - waived. See the OIG's [Waivers - page](https://oig.hhs.gov/exclusions/waivers.asp) for more about waivers. -- `waiverstate`: State in which the individual’s or entity’s exclusion - was waived, again via standard two-letter abbreviation. -- `upin`: The predecessor to the NPI, the [Unique Physician - Identification - Number](https://en.wikipedia.org/wiki/Unique_physician_identification_number). -- `general`: Basic type of medical practice or position of the - individual or entity being excluded, e.g. "Individual." -- `specialty`: Medical specialization of the individual or entity being - excluded, e.g. "Nurses aide." -- `reindate`: Date the excluded provider was reinstated, if any. This - takes the YYYY-MM-DD format. See - the OIG's page about - [Reinstatement](https://oig.hhs.gov/exclusions/reinstatement.asp) for - more information. - -Formatting options: - -- `_format`: Preferred return format, either `json` or `xml`, defaulting - to `json`. This is a [FHIR - specification](https://www.hl7.org/fhir/http.html#mime-type). -- `page`: For paginated API results, give a page number and, optionally, - a `page_size`. This defaults to 1 (the first page). -- `page_size`: For paginated API results, you may pass the number of - results to be shown on a page. This defaults to 15. diff --git a/etl/leie/leie/db/dbconf.yml b/etl/leie/leie/db/dbconf.yml deleted file mode 100644 index a7e74970f..000000000 --- a/etl/leie/leie/db/dbconf.yml +++ /dev/null @@ -1,11 +0,0 @@ -development: - driver: sqlite3 - open: leie.sqlite3 - -test: - driver: sqlite3 - open: tests/test.sqlite3 - -test2: - driver: LibraryDB - open: tests/test.librarydb diff --git a/etl/leie/leie/etl.py b/etl/leie/leie/etl.py deleted file mode 100755 index 2b6fd9553..000000000 --- a/etl/leie/leie/etl.py +++ /dev/null @@ -1,363 +0,0 @@ -#!/usr/bin/env python3 - -"""This script loads code from LEIE data files into a database. - -See README.mdwn for details and instructions. - -""" - -# System modules -from datetime import datetime -from datetime import date -import dateutil.parser -import glob -import os -import petl as etl -import re -import requests -import sys -import time - -# Our modules -import log -import model -from path import get_datadir, get_dbdir, get_existing_file - -warn, info, debug, fatal = log.reporters() - -date_re = re.compile(r'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]') -slash_date_re = re.compile(r'[0-9][0-9]/[0-9][0-9]/[0-9][0-9]$') -def munge_date(date_entry): - """Return a string with a date in the format that SQLite wants - (YYYY-MM-DD). (see - https://stackoverflow.com/questions/17227110/what-is-the-best-way-to-save-datetime-type-in-sqlite) - - DATE_ENTRY is either a YYMMDD string or a MM/DD/YY string. - - Some dates come with only a 2-digit year. We assume all years are - after 2000, but if that would put the date later than the current - year, we change it to a year between 1900 and now. We do - sometimes see future dates, but they don't end up in the following - year. They end up later in the current month. See, e.g., the - entry for Jeffrey Shopes in 1610EXCL.csv: - - "SHOPE","JEFFREY","R ",,"IND- LIC HC SERV PRO","CHIROPRACTIC",,"1134286958","19701109","446 GREENBAG ROAD, ROUTE 857","MORGANTOWN","WV","26501","1128a1","20161120","00000000","00000000", - - You'll see that the exclusion date is 20161120 in a file with Oct - 2016 data that was published in early November. - - """ - - f = date_entry - if date_re.match(f): - if '00000000' == date_entry: - return None - return "%s-%s-%s" % (f[:4], f[4:6], f[6:8]) - if slash_date_re.match(f): - if '00/00/00' == date_entry: - return None - y = int(f[6:8])+2000 - if y > datetime.now().year+1: - y -= 100 - return "%s-%s-%s" % (y, f[:2], f[3:5]) - - # We shouldn't get here, but just in case dates get all funky, we - # do our best guess at parsing the date: - d = dateutil.parser.parse(f).date().isoformat() - warn("Unrecognized date format ({0}) parsed as {1}!".format(f, d)) - return d - -def clean(table): - """Do some cleanup of TABLE - - TABLE is a petl table.""" - - # Rename column to expand name - table = etl.rename(table, {'WVRSTATE': 'waiverstate'}) - - # More conversions - table = etl.convert(table, { - 'EXCLTYPE': lambda f: f.strip(), # Trim extra spaces - 'EXCLDATE': munge_date, # Arrange date for sqlite - 'REINDATE': munge_date, # Arrange date for sqlite - 'WAIVERDATE': munge_date # Arrange date for sqlite - }) - - # Do some cleanup conversions on individual data - table = etl.convert(table, {'DOB': munge_date, - 'MIDNAME': lambda f: f if f != " " else "" # no spaces as middle names - }) - table = etl.convertall( - table, - lambda f: None if f.strip() == '' else f - ) - return table - -class Exclusions(): - """ETL helper class for handling exclusions.""" - - def __init__(self, conn): - """CONN is a database connection.""" - self.conn = conn - - def etl_from_table(self, table, force_reload=False): - """Extract, translate, load exclusions (and not reinstatements) from - a petl TABLE. - - Set FORCE_RELOAD to True to turn off the protections against - reading the same csv file twice. There is no harm in redoing - a csv file, since the csv contents replaces the db table - entirely. We avoid reloading because it is faster and because - it prevents the db from having an empty table for a moment - between blowing away and refilling it. - - """ - if not force_reload: - # If UPDATED.csv has the same number of rows and the same most - # recent date as our db, we've already snarfed this csv file and - # can skip it. - db_latest = self.conn.get_latest_exclusion_date().replace('-','') - db_num_rows = self.conn.table_len("exclusion") - updated_latest = etl.cut(etl.sort(table, 'EXCLDATE'), 'EXCLDATE')[len(table)-1][0] - updated_num_rows = len(table) - 1 - if (db_num_rows == updated_num_rows and db_latest == updated_latest): - return - - # Massage data - table = clean(table) - - # Save to db, BLOWING AWAY data in the existing table. If - # table doesn't exist, will create it, but without any - # constraints. - info("Replacing exclusions table.") - etl.todb(table, self.conn.conn, 'exclusion') - - def etl_from_filename(self, fname, force_reload=False): - """Extract, translate, load exclusions (and not reinstatements) from - the file named FNAME. - - Set FORCE_RELOAD to True to turn off the protections against - reading the same csv file twice. There is no harm in redoing - a csv file, since the csv contents replaces the db table - entirely. We avoid reloading because it is faster and because - it prevents the db from having an empty table for a moment - between blowing away and refilling it. - - """ - self.etl_from_table(etl.fromcsv(fname), force_reload) - - def etl_from_dir(self, data_dir="data", force_reload=False): - """Extract, translate, load exclusions (and not reinstatements) from - the DATA_DIR directory. - - Set FORCE_RELOAD to True to turn off the protections against - reading the same csv file twice. There is no harm in redoing - a csv file, since the csv contents replaces the db table - entirely. We avoid reloading because it is faster and because - it prevents the db from having an empty table for a moment - between blowing away and refilling it. - - """ - - # Get the data from updated CSV file - self.etl_from_filename(os.path.join(data_dir,"UPDATED.csv"), force_reload) - -class Reinstatements(): - """ETL helper class for handling reinstatements.""" - - def __init__(self, conn): - """CONN is a database connection.""" - self.conn = conn - - def etl_from_dir(self, data_dir="data"): - """Extract, translate, load reinstatements (and not exclusions) from - directory DATA_DIR. - """ - - # Get YYYYMM date of most recent reinstatement action - most_recent = self.conn.get_latest_reinstatement_date().replace('-','')[:6] or "000000000" - - # Get the data from REIN CSV files. Gather reinstatement actions - # since most_recent - total = [] - total = [] - for fname in sorted(glob.glob(os.path.join(data_dir, "*REIN.csv"))): - if int(os.path.basename(fname)[:4]) <= int(most_recent[2:]): - continue - debug("Processing " + fname) - reinstated = etl.fromcsv(fname) - reinstated = clean(reinstated) - total.append(reinstated) - - # Save to db, APPENDING TO existing data tables. Assumes tables - # exist. - if total: - etl.appenddb(etl.cat(*total), self.conn.conn, 'reinstatement') - - # It is possible to end up with duplicate rows if, say, an ETL - # process is interrupted midway through. So we should find and - # remove dupes. - self.conn.dedupe_reinstatements() - -def fname_is_stale(fname, url, conn): - """Tries to answer the question of whether the file named FNAME needs - to be redownloaded. - - Return True if URL's Last-Modified is after FNAME's mod datetime. - - Return False if FNAME's mod datetime is after URL's Last-Modified. - - Return True if filesize on disk differs from filesize in the headers - - Return True if FNAME doesn't exist. - - Return False if we can't quite download URL. - - Return False if we have a log entry in the db saying we already - downloaded the file and it's not an UPDATED file. - - CONN is a model.LEIE instance and we use it just to get access to - the db log - - """ - - # We should only do csv files, so this is a sanity check. I mean, - # this routine could technically download things other than csv, - # but it's not our goal to do so. - assert fname.endswith(".csv") - - # If there is no already-existing file, it is stale - if not os.path.exists(fname): - return True - - # Check that we haven't already downloaded this according to the log - if not fname.endswith("UPDATED.csv"): - last = conn.get_download_datetime(os.path.basename(fname)) - if last != None: - return False - - # Get head of url target - r = requests.head(url) - if r.status_code != 200: - warn("Can't get head information about %s" % url) - return False - - # If size indicated in header differs from size on disk, then - # the file is stale. - if int(r.headers["Content-Length"]) != os.path.getsize(fname): - warn("Size differs from that on disk. File %s is stale." % fname) - return True - - # Get mod times of url and fname - mtime = datetime.fromtimestamp(os.path.getmtime(fname)) # file's mtime - tz = time.tzname[time.localtime().tm_isdst] # file's timezone - mtime = dateutil.parser.parse("%s %s" % (str(mtime), tz) ) # add timezone to file's mtime info - dt = dateutil.parser.parse(r.headers['Last-Modified']) # url's last mod time - - # If the url version is newer than our file on disk, the file on - # disk is stale - if dt > mtime: - return True - - # Retroactively log the download of the cached file - if not fname.endswith("UPDATED.csv"): - conn.log("reinstatement", "Downloaded %s" % os.path.basename(fname), mtime) - else: - conn.log("updated", "Downloaded %s" % os.path.basename(fname), mtime) - - # Looks like the cached file is still good - return False - -def dload_if_stale(fname, url, conn): - """Download the file at URL and save it to FNAME, but only if the - on-disk version is out of date. - - FNAME is the filename to save the file as - - URL is the url of the file to download - - CONN is a model.LEIE instance and we use it just to get access to the db log - - Returns True if we downloaded, else False - """ - - if fname_is_stale(fname, url, conn): - debug("Downloading %s" % url) - - # We stream and write this in chunks in case it is huge. It's - # not, now, but maybe it will grow. Better safe than sorry. - r=requests.get(url, stream=True) - - # Warn if we can't download properly - if r.status_code != 200: - warn("Fetching %s returned status code of %d. Discarding result" % (url, r.status_code)) - return False - - # Did we get forwarded to a 404 page? - if "404" in r.url: - warn("File not found: %s" % url) - return False - - with open(fname, 'wb') as f: - for chunk in r.iter_content(chunk_size=1024): - if chunk: # filter out keep-alive new chunks - f.write(chunk) - - assert int(r.headers["Content-Length"]) == os.path.getsize(fname) - - return True - - return False - -def download(datadir, conn): - """Download UPDATED.csv and reinstatements to the DATADIR - - CONN is a model.LEIE instance we'll use to log to the database""" - - if dload_if_stale(os.path.join(datadir, "UPDATED.csv"), - 'https://oig.hhs.gov/exclusions/downloadables/UPDATED.csv', - conn): - conn.log("updated", "Downloaded UPDATED.csv") - - for year in range(2016,date.today().year+1): - for month in range(1,13): - if (year == date.today().year - and month >= date.today().month): - continue - for suffix in ("REIN.csv", "EXCL.csv"): - fname = "%2d%02d%s" % (year-2000, month, suffix) - url = "https://oig.hhs.gov/exclusions/downloadables/%4d/%s" % (year, fname) - if dload_if_stale(os.path.join(datadir, fname), url, conn): - conn.log("reinstatement", "Downloaded %s" % fname) - -def main(): - os.chdir(os.path.dirname(__file__)) - logger = log.logger() - info('Starting ETL of LEIE data.') - - # Figure out where we put data - datadir = get_datadir() - dbdir = get_dbdir() - - # Get a database connection, create db if needed - conn = model.LEIE("development", db_conf_file=os.path.join(dbdir, "dbconf.yml")) - - # Make sure the db schema is up to date, create tables, etc. - conn.migrate() - - assert os.path.exists(datadir) - - # Do our ETL - download(datadir, conn) - excl = Exclusions(conn) - excl.etl_from_dir(datadir) - rein = Reinstatements(conn) - rein.etl_from_dir(datadir) - - # Close the db connection - conn.close() - - info('Finished ETL of LEIE data.') - -if __name__ == '__main__': - main() diff --git a/etl/leie/leie/log.py b/etl/leie/leie/log.py deleted file mode 100644 index 1b67e229b..000000000 --- a/etl/leie/leie/log.py +++ /dev/null @@ -1,70 +0,0 @@ -"""These are two quick bits of code that set up a logging environment -and then config and return a logger instance. - -In your module, do: - -import log -warn, info, debug, fatal = log.reporters() - -And in main, do: - -logger = log.logger() - -There is a second log of activities related to the database. It is -contained in the db and the code reads and writes it to record etl -transactions. Code for that is in dblog.py and model.py. - -""" - -import logging -import logging.config -import inspect -import os -import sys - -"""This is a setup string that gets executed with exec rather than -called. It has the imports and definitions we do in every module for -logging. It can't be a function because it needs to execute in -parent's scope and context. - -""" - -def loggername(): - return os.path.basename(os.path.dirname(__file__)) - -def reporters(): - logger = logging.getLogger(loggername()) - warn = logger.warning - info = logger.info - debug = logger.debug - def fatal(m): logger.error(m); sys.exit(-1) - return warn, info, debug, fatal - -def logger(): - """Configure and return logger. You can override this logging by - putting logging.ini in a parent dir of caller's python file. - - """ - dirname = os.path.abspath(os.path.dirname(inspect.getfile(sys._getframe(1)))) - if os.path.exists(os.path.join(dirname, '../logging.ini')): - logging.config.fileConfig(os.path.join(dirname,'../logging.ini'), - disable_existing_loggers=False) - else: - logging.config.dictConfig(dict( - version = 1, - disable_existing_loggers = False, - formatters = { - 'f': {'format': - '%(asctime)s %(name)-12s %(levelname)-8s %(message)s'} - }, - handlers = { - 'h': {'class': 'logging.StreamHandler', - 'formatter': 'f', - 'level': logging.DEBUG} - }, - root = { - 'handlers': ['h'], - 'level': logging.DEBUG, - }, - )) - return logging.getLogger(loggername()) diff --git a/etl/leie/leie/model.py b/etl/leie/leie/model.py deleted file mode 100755 index 5e6ac7d6e..000000000 --- a/etl/leie/leie/model.py +++ /dev/null @@ -1,435 +0,0 @@ -#!/usr/bin/env python3 - -import datetime -import dateutil.parser -import os -from path import cd -import simplejson as json -import sqlite3 -import subprocess -import sys -import yaml - -import log -warn, info, debug, fatal = log.reporters() - -class UnsupportedDBType(Exception): - pass -class DBNotFound(Exception): - pass - -class DBConn(object): - def __init__(self, db_name="development", db_conf_file="", connect=True): - """Open a database connection, creating db if needed, and generally - get ready to store stuff. - - DB_NAME is the name of the database to target from dbconf.yml. - - If DB_CONF_FILE isn't specified, we use a stock one of defaults. - - Goose migrations used dbconf.yml files, so for convenience, we - just read any needed data from that file. - - If CONNECT is true, we open a db connection. - - """ - self.db_name = db_name - if os.path.exists(db_conf_file): - # slurp dbconf.yml - with open(db_conf_file) as INF: - self.db_conf = yaml.load(INF)[db_name] - else: - info("dbconf.yml not found, using default config values (db will be leie.sqlite3)") - self.db_name = "development" - self.db_conf = yaml.load("development:\n driver: sqlite3\n open: leie.sqlite3\n")[self.db_name] - - # If we're not opening a connection, we're done - if not connect: - return - - # open and hang on to a db connection for later use - if self.db_conf['driver'] == 'sqlite3': - self.conn = sqlite3.connect(self.db_conf['open']) - else: - raise UnsupportedDBType("We don't support databases of type %s" % self.db_conf['driver']) - - def close(self): - """Commit and close the db connection""" - self.conn.commit() - self.conn.close() - - def table_len(self, table): - """Return the number of total rows in the TABLE""" - c = self.conn.cursor() - return (c.execute("SELECT Count(*) FROM %s" % table).fetchone()[0]) - - def row_to_dict(self, row, field=None, description=None): - """ - FIELD is a list or tuple of field names - - DESCRIPTION is the results of cursor.description from sqlite - - Either FIELD or DESCRIPTION must be present, but not both. - - ROW is a tuple of values - - Returns a dict with the keys taken from FIELD and the values taken from ROW. - """ - assert field or description - assert not (field and description) - - if description: - field = [c[0] for c in description] - - field = ['id' if f == 'rowid' else f for f in field] - return dict(zip(field, row)) - -class SQL(DBConn): - """All the sql and goose stuff goes in this class. - - We generate the SQL here becuase in the future I think we might want some - smart/scripted way to manage sql for different DB types.""" - - def down(self, migration): - """Returns schema sql for migrating the db down - - Specify a MIGRATION, the first being 0 on up to the latest. - If you specify a migration beyond our total, we return - None. - - """ - if migration == 0: - return """ -DROP TABLE exclusion; -DROP TABLE reinstatement; -""" - if migration == 1: - return "DROP TABLE log;" - - def goose(self): - """Returns a dict of goose migrations. The keys are filenames and the - values are the contents of the goose files. - - We only have one migration so far, so this is pretty easy. - """ - - fnames = ["20170515130501_initial_create.sql" - ,"20170606100001_create_log.sql" - ] - - migrations = {} - for a in range(len(fnames)): - migrations[fnames[a]] = "-- +goose Up\n" + self.up(a) + "\n-- +goose Down\n" + self.down(a) + "\n" - - return migrations - - def goose_write(self, dirname=None): - """Writes any needed migration files to the migrations directory - specified by DIRNAME. Leave DIRNAME as None to just use - ./db as the migrations directory. - - Returns list of paths to created files. - """ - if not dirname: - dirname = os.path.join(os.path.dirname(__file__), "db") - dirname = os.path.join(dirname, self.db_conf['driver']) - os.makedirs(dirname, exist_ok=True) - created = [] - for fname, migration in self.goose().items(): - fname = os.path.join(dirname, fname) - if os.path.exists(fname): - debug("Migration " +fname+" already exists. Overwriting.") - created.append(fname) - info("Writing migration to " + fname) - with open(fname, 'w') as OUTF: - OUTF.write(migration) - return created - - def migrate(self): - """Bring the db schema up to date by running any needed model - migrations.""" - debug(self.db_conf) - dirname = os.path.dirname(self.db_conf['open']) - if not dirname: - dirname = os.path.dirname(__file__) - with cd(dirname): - # Make sure the sqlite3 db exists before we try to migrate it - if not os.path.exists(os.path.basename(self.db_conf['open'])): - raise DBNotFound("DB %s doesn't exist, so we can't migrate it." % self.db_conf['open']) - - # Goose apparently returns 0 even when it errors, so we - # have to check stderr and react accordingly. - cmd = "goose -dir db/{0} {0} {1} up".format(self.db_conf['driver'], os.path.basename(self.db_conf['open'])) - debug("Executing `%s`" % cmd) - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) - out, err = p.communicate() - out = out.decode("utf-8") - err = err.decode("utf-8") - if err != '': - sys.stderr.write("%s\n%s" % (out, err)) - raise subprocess.CalledProcessError(0, cmd, out+err) - return out - - def up(self, migration): - """Returns schema sql for migrating the db up. - - Specify a MIGRATION, the first being 0 on up to the latest. - If you specify a migration beyond our total, we return - None. - - """ - - # We only handle sqlite for now - if self.db_conf['driver'] != "sqlite3": - raise UnsupportedDBType("We don't have migrations for %s" % self.db_conf['driver']) - - if migration == 0: - common_rows = """ - lastname text check(lastname is null or length(lastname) <= 20), - firstname text check(firstname is null or length(firstname) <= 15), - midname text check(midname is null or length(midname) <= 15), - busname text check(busname is null or length(busname) <= 30), - general text check(general is null or length(general) <= 20), - specialty text check(specialty is null or length(specialty) <= 20), - upin text check(upin is null or length(upin) <= 6), - npi integer check(npi is null or npi<10000000000), - dob text check(dob is null or length(dob) <= 23), - address text check(address is null or length(address) <= 30), - city text check(city is null or length(city) <= 20), - state text check(state is null or length(state) <= 2), - zip integer check(zip is null or zip < 100000), - excltype text not null check(excltype is null or length(excltype) <= 8), - excldate text not null check(excldate is null or length(excldate) <= 23), - reindate text check(reindate is null or length(reindate) <= 23), - waiverdate text check(waiverdate is null or length(waiverdate) <= 23), - waiverstate text check(waiverstate is null or length(waiverstate) <= 2) - """ - return("CREATE TABLE IF NOT EXISTS exclusion (" + common_rows + ");\n" - + "CREATE TABLE IF NOT EXISTS reinstatement (" + common_rows + ");\n") - elif migration == 1: - return """ - CREATE TABLE IF NOT EXISTS log ( - datetime text, - datatype text, - msg text); - """ - else: - return None - - -class LEIE(SQL): - """This is a DAO class but not an ORM class. We're modeling the - database, not the data. Maybe that will change, but it works for - now. - - """ - - def count_exclusions(self): - """Return number of rows in the exclusion table""" - return self.table_len("exclusion") - - def dedupe(self, table): - """ - Remove any duplicate rows from TABLE - """ - - # Look for duplicate entries - seen = set() - uniq = [] - dup = [] - c = self.conn.cursor() - for x in c.execute("SELECT * FROM %s" % table).fetchall(): - if x not in seen: - uniq.append(x) - seen.add(x) - else: - dup.append(x) - - # We're done if there are no dupes - if not dup: - return - - # Uh-oh, better fess up and clean up - warn("Duplicate reinstatements found in %s!" % table) - info("Cleaning duplicate reinstatements from %s" % table) - c.execute("delete from {0} where rowid not in (select max(rowid) from {0} group by {1})".format( - table, - ", ".join(self.get_header(table)) - )) - - def dedupe_reinstatements(self): - """ - Make sure there are no duplicate rows in the reinstatement table. - - """ - self.dedupe("reinstatement") - - def get_download_datetime(self, fname): - """Return the logged time of the last download of the file named FNAME - - If it's not there, return None""" - c = self.conn.cursor() - all = c.execute("SELECT * FROM log WHERE msg=?", ["Downloaded " + fname]).fetchall() - if not all: - return None - return dateutil.parser.parse(all[-1][0]) - - def get_exclusions(self, limit=10, page=1, filter={}, form="list"): - """Return all the rows from the log table up to LIMIT rows - - FORM can be 'list' or 'dict'. If 'list', return rows as - lists. If dict, return rows as dicts. - - If PAGE is specified, we skip the first (PAGE-1)*LIMIT rows - and return LIMIT rows from there. - - """ - assert form in ["list", "dict"] - assert page >= 1 - assert limit >= 1 - - crsr = self.conn.cursor() - - # Make strings for the filters to be inserted in to the sql - # query. Also, make a list of arguments for the query. - args = [limit*(page-1)] - query = ["SELECT rowid, * FROM exclusion", - "WHERE rowid NOT IN ( SELECT rowid FROM exclusion ORDER BY excldate DESC LIMIT ?)" - ] - for k,v in filter.items(): - if v: - query.append("AND %s=?" % k) - args.append(v) - query.append("ORDER BY excldate DESC LIMIT ?") - args.append(limit) - - # Return a range of rows - rows = crsr.execute(" ".join(query), args).fetchall() - - if form == 'list': - return rows - return [Exclusion(self.row_to_dict(r, description=crsr.description)) for r in rows] - - def get_header(self, table): - """Returns a list of the column names in TABLE""" - c = self.conn.cursor() - return [f[1] for f in c.execute("PRAGMA table_info(%s)" % table).fetchall()] - - def get_latest_date(self, table, field): - """Find and return the latest month and year in the list of actions in - TABLE by looking at dates in FIELD. Return this value as a - string formatted "YYYY-MM-DD". - - If there are no rows, return "". - - """ - - crsr = self.conn.cursor() - d = crsr.execute("SELECT {1} FROM {0} ORDER BY date({1}) DESC Limit 1".format(table, field)).fetchone() - if not d: - return "" - return d[0][:10] - - def get_latest_exclusion_date(self): - """Find and return the latest month and year in the list of exclusion - actions. Return this value as a string formatted - "YYYY-MM-DD". - - If there are no rows, return "". - - """ - - return self.get_latest_date("exclusion", "excldate") - - def get_latest_reinstatement_date(self): - """Find and return the latest month and year in the list of - reinstatement actions. Return this value as a string - formatted "YYYY-MM-DD". - - If there are no rows, return "". - - """ - return self.get_latest_date("reinstatement", "reindate") - - def get_log(self, rowid=None, limit=10, start=0, form="list"): - """Return all the rows from the log table up to LIMIT rows - - if ROWID is set, we just return that row and LIMIT parameter has no effect. If that row doesn't exist, return None. - - FORM can be 'list' or 'dict'. If 'list', return rows as lists. If dict, return rows as dicts. - - If START is specified... I dunno. not implemented yet. - """ - - assert form in ["list", "dict"] - - crsr = self.conn.cursor() - - # Return just the requested row - if rowid: - return crsr.execute("SELECT rowid, * FROM log WHERE rowid=?", [rowid]).fetchone() - - # Return a range of rows - rows = crsr.execute("SELECT rowid, * FROM log ORDER BY datetime DESC LIMIT ?", [limit]).fetchall() - if form == 'list': - return rows - return [self.row_to_dict(r, description=crsr.description) for r in rows] - - def log(self, datatype, message, now=""): - """Add a MESSAGE string about a DATATYPE (either updated or - reinstatement) to the log table in the db. - - Else, NOW = a datestring we can parse. It can be anything - whose str representation is a parseable datetime, including a - datetime. - - """ - - assert datatype in ["updated", "reinstatement"] - - info("%s: %s" % (datatype, message)) - - # See http://sqlite.org/datatype3.html for info on date formats in sqlite3 - if not now: - now = datetime.datetime.now().isoformat() - else: - now = dateutil.parser.parse(str(now)).isoformat() - - crsr = self.conn.cursor() - crsr.execute("INSERT INTO log VALUES(?,?,?)", (now, datatype, message)) - self.conn.commit() - -class Exclusion(dict): - """Model of an exclusion. - - This is just a dict that we're wrapping in a class so we can - attach methods to it. - - """ - def __init__(self, dictionary): - dict.__init__(self) - self.update(dictionary) - - def fhir(self, form="dict"): - """Return the data of this instance in a way that complies with FHIR. - First, we assemble it as a dict, then convert it to JSON or XML if FORM - is json' or 'xml'. - """ - ret = self.copy() - ret['resourceType'] = 'Exclusion' - if form == "dict": - return ret - if form == "xml": - return dicttoxml.dictotoxml(ret) - return json.dumps(ret) - -def main(dirname=None): - logger = log.logger() - logger.info('Running model.py directly to produce schema/goose output.') - conn = SQL(connect=False) - fnames = conn.goose_write(dirname) - logger.info('Finished running model.py directly to produce schema/goose output.') - return fnames - -if __name__ == '__main__': - main() diff --git a/etl/leie/leie/path.py b/etl/leie/leie/path.py deleted file mode 100644 index b1418ebb8..000000000 --- a/etl/leie/leie/path.py +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/env python3 - -from contextlib import contextmanager -import os - -# Import our modules -import log -warn, info, debug, fatal = log.reporters() - -@contextmanager -def cd(path): - """Temporarily change directory""" - old = os.getcwd() - os.chdir(path) - try: - yield - finally: - os.chdir(old) - -def get_datadir(): - """Figure out where the data directory is and return that as a string.""" - datadir = get_existing_file(["/var/etl/leie/data", - "data", - "../data", - os.path.join(os.path.dirname(__file__), "data"), - os.path.join(os.path.dirname(__file__), "..", "data")], - default="data", - create=True) - info("Using '%s' as data directory" % datadir) - return datadir - -def get_dbdir(): - """Figure out where our db is and return that path as a string.""" - dbdir = get_existing_file(["/var/etl/leie/db", - "db", - "../db", - os.path.join(os.path.dirname(__file__), "db"), - os.path.join(os.path.dirname(__file__), "..", "db")], - default="db") - info("Using '%s' as db directory" % dbdir) - return dbdir - -def get_existing_file(files, default=None, create=False): - """FILES is a list of files or directories. We cycle through and return a - string containing the first one that exists. - - If none of them exist, and DEFAULT is set, return the DEFAULT - - If none of them exists and there is a DEFAULT and CREATE is True, - we mkdir the path in DEFAULT and return the DEFAULT value. Don't - use this if you're dealing with files, not dirs. - - If none of them exist and DEFAULT is not set, we raise a - FileNotFound error. - - If CREATE is True and default is not set, we raise a ValueError if - none of the files exists. - - """ - for d in files: - if os.path.exists(d): - return d - - if default: - if create: - os.makedirs(default, exist_ok=True) - return default - else: - return default - else: - if create: - raise ValueError("Can't create because no default specified!") - else: - raise FileNotFoundError(2, "None of these exists", ",".join(files)) diff --git a/etl/leie/leie/serve.py b/etl/leie/leie/serve.py deleted file mode 100755 index 52ab4aaa8..000000000 --- a/etl/leie/leie/serve.py +++ /dev/null @@ -1,166 +0,0 @@ -#!/usr/bin/env python3 - -""" -Run this with: - -`FLASK_APP=serve.py flask run` -""" - -import dateutil -import dicttoxml -from flask import Flask, make_response, request, Response, url_for -import math -import os -import simplejson as json -import sys - -# Make sure we can load modules from this directory -sys.path.insert(0, os.path.dirname(__file__)) - -# Load my modules -import etl -import model - -app = Flask("leie") - -baseurl = "" - -# Get a database connection, create db if needed -conn = model.LEIE("development", db_conf_file=os.path.join(etl.get_dbdir(), "dbconf.yml")) - -def slurp(fname): - """Read file named FNAME and return contents.""" - with open(fname) as fh: - return fh.read() - -@app.errorhandler(404) -def not_found(error): - return make_response(json.dumps({'error': 'Not found'}), 404) - -@app.route("/") -def home(): - return slurp("api.html") - -@app.route("/exclusion", methods=["DELETE", "PATCH", "POST", "PUT"]) -@app.route("/Exclusion", methods=["DELETE", "PATCH", "POST", "PUT"]) -def method_not_allowed(): - return "", 405 - -def parse_param_date(param_date): - """Try to parse the date. Return None if there's nothing there to parse.""" - if not param_date: - return None - return dateutil.parser.parse(param_date).date() - -@app.route('/exclusion') -@app.route('/exclusion/') -@app.route('/Exclusion') -@app.route('/Exclusion/') -def get_exclusions(rowid=None): - """Search the exclusions table and return rows. - - ROWID is the id of the exclusion record - - This function checks the http request parameter string for - parameters whose names match fields in the exclusion table. Anything - specified there must be matched exactly by matching entries. - - Specify a PAGE param and (optionally) a PAGE_SIZE param to do - paging. - - """ - # Handle parameters that apply to both single row and bundles - params = {} - filter = dict(busname=request.args.get('busname'), - firstname=request.args.get('firstname'), - lastname=request.args.get('lastname'), - npi=request.args.get('npi'), - rowid=rowid or request.args.get('rowid'), # rowid can come in as a param or part of the url - state=request.args.get('state'), - zip=request.args.get('zip'), - address=request.args.get('address'), - excltype=request.args.get('excltype'), - waiverstate=request.args.get('waiverstate'), - city=request.args.get('city'), - upin=request.args.get('upin'), - general=request.args.get('general'), - midname=request.args.get('midname'), - specialty=request.args.get('specialty'), - excldate=parse_param_date(request.args.get('excldate')), - waiverdate=parse_param_date(request.args.get('waiverdate')), - dob=parse_param_date(request.args.get('dob')), - reindate=parse_param_date(request.args.get('reindate')), - ) - - page = int(request.args.get('page') or 1) # default 1 - page_size = min(int(request.args.get('page_size') or 15), 100) # default 15, max 100 - params.update(dict(page=page, page_size=page_size, **filter)) - - func_name = sys._getframe().f_code.co_name # get name of current function - exclusions = [e.fhir() for e in conn.get_exclusions(limit=page_size, page=page, filter=filter, form="dict")] - - if rowid and len(exclusions) == 1: - ret = exclusions[0] - ret['link'] = [{"relation": "self", "url": baseurl + url_for(func_name, **params)}] - else: - - # Make the paging stuff for the bundle - num_pages = math.ceil(conn.count_exclusions() / page_size) - ret = { - "resourceType": "Bundle", - "link": [ - {"relation": "self", "url": baseurl + url_for(func_name, **params)}, - {"relation": "first", "url": baseurl + url_for(func_name, **dict(params.items(), page=1))}, - {"relation": "previous", "url": baseurl + url_for(func_name, **dict(params.items(), page=max([page-1, 1])))}, - {"relation": "next", "url": baseurl + url_for(func_name, **dict(params.items(), page=min([page+1, num_pages])))}, - {"relation": "last", "url": baseurl + url_for(func_name, **dict(params.items(), page=num_pages))} - ], - "meta":{"tag":[]}, - "total":len(exclusions), - "type":"searchset", - "entry":[{"fullUrl":baseurl + url_for(func_name, rowid=e['id']), - "resource":e} for e in exclusions] - } - - # If this is a subset, indicate that in the output - if num_pages > 1: - ret['meta']['tag'].append("SUBSETTED") - - if requested_mimetype() == 'json': - return Response( - json.dumps(ret, indent=2, sort_keys=True), - mimetype='application/fhir+json' - ) - else: - return Response( - dicttoxml.dicttoxml(ret), - mimetype='application/fhir+xml' - ) - -def requested_mimetype(): - """Check the '_format' query parameter and the 'Accept:' header (in that - order) to determine whether to respond with JSON or XML.""" - - allowed_mimetypes = [ - 'application/xml', - 'application/fhir+xml', - 'application/xml+fhir', - 'text/xml', - 'application/json', - 'application/fhir+json', - 'application/json+fhir', - ] - allowed_format_types = allowed_mimetypes + ['json', 'xml'] - if request.args.get('_format') in allowed_format_types: - best = request.args.get('_format') - else: - best = request.accept_mimetypes.best_match(allowed_mimetypes) - - if 'xml' in best: - return 'xml' - else: - return 'json' - -if __name__ == "__main__": - os.system('pandoc api.mdwn > api.html') - app.run() diff --git a/etl/leie/leie/tests/data/1701REIN.csv b/etl/leie/leie/tests/data/1701REIN.csv deleted file mode 100644 index e01335477..000000000 --- a/etl/leie/leie/tests/data/1701REIN.csv +++ /dev/null @@ -1,14 +0,0 @@ -"LASTNAME","FIRSTNAME","MIDNAME","BUSNAME","GENERAL","SPECIALTY","UPIN","NPI","DOB","ADDRESS","CITY","STATE","ZIP","EXCLTYPE","EXCLDATE","REINDATE","WAIVERDATE","WVRSTATE" -"ASHFORD","VICTORIA","JOY ",,"PRIVATE CIT/ENTITY","HEALTH CARE AIDE",,"0000000000","19740330","361 SW 2ND AVENUE","CANBY","OR","97013","1128a1","20110119","20170113","00000000", -"DONLIN","MICHAEL","THOMAS JR ",,"HOME HEALTH AGENCY","NURSE/NURSES AIDE",,"0000000000","19600404","4737 ERBE STREET","NORWALK","IA","50211","1128b4","20020919","20170113","00000000", -"GARCIA","ANNALYN","PINEDA ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19790724","139 S HOLLENBECK AVE","COVINA","CA","91723","1128a2","20160720","20160720","00000000", -"GARNER","JEFFREY"," ",,"IND- LIC HC SERV PRO","OPTOMETRY",,"1871606244","19610204","1323 24TH STSREET SE","CEDAR RAPIDS","IA","52403","1128b14","20161020","20170109","00000000", -"GOLDSTEIN","RON"," ",,"DOCTOR(MD, DO)","GENERAL PRACTICE",,"1588848816","19600414","1693 HILLCREST DRIVE","LAGUNA BEACH","CA","92651","1128b14","20160519","20170109","00000000", -"JOHNSON","CINDY","KING ",,"HOSPITAL","NURSE/NURSES AIDE",,"0000000000","19580525","216 N 30TH STREET","CAMP HILL","PA","17011","1128b4","20000720","20140409","00000000", -"LEWIS","DAVID","MATTHEW ",,"MEDICAL PRACTICE, MD","GENERAL PRACTICE",,"1790141117","19680910","1833 N KINSER PIKE","BLOOMINGTON","IN","47404","1128a3","20070820","20170113","00000000", -"MANGELS","TONI"," ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19691117","18250 OAK GROVE CHURCH RD","ELDORADO","IL","62930","1128b4","19990617","19990617","00000000", -"PLUMB","MELANIE","SUE ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19720131","501 6TH STREET","HARLAN","IA","51537","1128a4","20080320","20170113","00000000", -"SOUSA","BONNIE","LYNN ",,"IND- LIC HC SERV PRO","THERAPIST",,"0000000000","19650525","1232 IOWA AVENUE","LOS BANOS","CA","93635","1128b4","20050320","20170123","00000000", -"TEPPERBERG","PHILLIP","S ",,"IND- LIC HC SERV PRO","CHIROPRACTIC",,"1174719363","19480127","21209 NE 113TH AVENUE","WALDO","FL","32694","1128b14","20160720","20170109","00000000", -"THOMPSON","DOROTHY","PAULINE ",,"HOME HEALTH AGENCY","HEALTH CARE AIDE",,"0000000000","19570308","20552 WHITMAN AVE","CALDWELL","ID","83605","1128a1","20040318","20170113","00000000", -"WARD","DUSTIE","DAWN ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19710323","9750 E 31ST STREET, APT 2705","TULSA","OK","74146","1128b4","20090420","20170103","00000000", diff --git a/etl/leie/leie/tests/data/1702REIN.csv b/etl/leie/leie/tests/data/1702REIN.csv deleted file mode 100644 index 15b7527f9..000000000 --- a/etl/leie/leie/tests/data/1702REIN.csv +++ /dev/null @@ -1,78 +0,0 @@ -"LASTNAME","FIRSTNAME","MIDNAME","BUSNAME","GENERAL","SPECIALTY","UPIN","NPI","DOB","ADDRESS","CITY","STATE","ZIP","EXCLTYPE","EXCLDATE","REINDATE","WAIVERDATE","WVRSTATE" -"ASHLEY","HEATHER"," ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"1427205822","19740419","P O BOX 823","CENTRAL SQUARE","NY","13036","1128a1","20111220","20170215","00000000", -"AUGUSTINE","DAVID"," ",,"HOSPITAL","EMPLOYEE",,"0000000000","19610804","260 GREGORY AVE, APT B12","PASSAIC","NJ","07055","1128b1","19970708","20170215","00000000", -"BADR","OMAIMA","N ",,"PHARMACY","PHARMACIST",,"0000000000","19520409","41 BLOOMINGTON STREET","MEDFORD","NY","11763","1128a1","20101020","20170215","00000000", -"BARKER","TABITHA","N ",,"SKILLED NURSING FAC","NURSE/NURSES AIDE",,"0000000000","19700314","1903 DESMARE STREET","FRANKLINTON","LA","70438","1128a2","19970129","20170215","00000000", -"BARR","MICHAEL","ROBERT ",,"BUS OWNER/EXEC","HOME HEALTH AGENCY",,"0000000000","19480122","1611 L ESPIRIT PARKWAY","LA GRANGE","KY","40031","1128b7","20131230","20170215","00000000", -"BAXTER","WILLIAM","L ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19630727","208 AVENUE B","BROOKHAVEN","MS","39601","1128b4","20070520","20170215","00000000", -"BAYSA","ANTHONY","SUAN ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"1760625735","19690626","2424 STEAMBOAT SPRINGS COURT","CHULA VISTA","CA","91915","1128b4","20130320","20170215","00000000", -"BAYSAH","FRANCES","D ",,"SKILLED NURSING FAC","NURSE/NURSES AIDE",,"0000000000","19620908","4722 23RD PARKWAY, #3","TEMPLE HILLS","MD","20748","1128b4","19980520","20170215","00000000", -"BILODEAU","LEONA","R ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19660311","3127 BUSH LANE","DALZELL","SC","29040","1128b4","20110420","20170215","00000000", -"BOHNER","RICHARD","EARL ",,"EMPLOYEE - PRIVATE S","RESEARCH COMPANY",,"0000000000","19540526","1201 BRENTFORD LANE","MALVERN","PA","19355","1128b1","20121018","20170215","00000000", -"BRADISH","AMY","LYNN ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19730801","189 SEABEE DRIVE","EVINGTON","VA","24550","1128b4","20070419","20170215","00000000", -"BRAINE","JAMES","STEVEN ",,"SKILLED NURSING FAC","NURSE/NURSES AIDE",,"0000000000","19540830","2905 MEADOW LANE","EDMOND","OK","73013","1128b4","20031218","20170202","00000000", -"BROWN","JULIE","ANN ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19671007","2226 W 11TH STREET","IRVING","TX","75060","1128b4","20080520","20170215","00000000", -"CHING","CLAYTON","V ",,"DENTAL PRACTICE","DENTIST",,"1851496335","19581213","C/O 140 S FAIRMONT BLVD","ANAHEIM","CA","92808","1128b14","19970402","20170201","00000000", -"CLAYTON","BEVERLY","LYNN ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"1972831378","19600226","2638 HEMLOCK STREET","CINCINNATI","OH","45206","1128b4","20130418","20170216","00000000", -"CRUMBAKER","PENELOPE","ANNE ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19680221","1606 LOCK AVENUE","OWENSBORO","KY","42301","1128b4","20110119","20170215","00000000", -"DUCENA","ERNST"," ",,"DOCTOR(MD, DO)","GENERAL PRACTICE",,"1952334625","19560930","495 EMERSON AVENUE","BALDWIN","NY","11510","1128b1","20150120","20170215","00000000", -"ELEMUREN-OGUNMUYIWA","BOLA"," ",,"DOCTOR(MD, DO)","FAMILY PRACTICE",,"1326113218","19631123","740 S AMY LANE","HARKER HEIGHTS","TX","76548","1128a1","20170220","20170220","00000000", -"ERICSSON","JILL","JEANETTE ",,"HOSPITAL","TECHNICIAN",,"0000000000","19730102","700 5TH AVENUE W","LEMMON","SD","57638","1128a3","20100120","20170215","00000000", -"FERRER","CARLOS","BUSUEGO II ",,"MEDICAL PRACTICE, MD","PEDIATRICS","A84994","0000000000","19411228","25355 HAYES AVENUE","MURRIETA","CA","92562","1128a1","20060720","20170215","00000000", -"FRARE","ROBERT"," ",,"IND- LIC HC SERV PRO","DENTIST",,"1740477553","19640916","68 REGAN LANE","VOORHEES","NJ","08043","1128b14","20140720","20170215","00000000", -"GABLE","TODD","E ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19730718","58 HANOVER AVENUE","PAWTUCKET","RI","02861","1128a3","20110519","20170215","00000000", -"GONZALEZ","EVELYN"," ",,"CLINIC","EMPLOYEE",,"0000000000","19681128","48 BEACON STREET","NEWBURGH","NY","12550","1128a1","20081020","20170215","00000000", -"GRAY","SCOTT","D ",,"DENTAL PRACTICE","DENTIST",,"1316090533","19560327","550 E LATHAM AVE, STE 1","HEMET","CA","92543","1128b14","20101020","20170215","00000000", -"HAUTALA","MARGIT","K ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19560831","39 DEERTRACK DRIVE","TAUNTON","MA","02780","1128b4","20090420","20170215","00000000", -"HEMINGWAY","THERESA","MARIE ",,"HOSPITAL","NURSE/NURSES AIDE",,"0000000000","19580126","8441 W PEEL STREET","WEST JORDAN","UT","84084","1128b4","20050818","20170201","00000000", -"HORTON","RHIANNON","M ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19770506","500 LANDIS COURT, APT 305","ASHEVILLE","NC","28806","1128b4","19981119","20170215","00000000", -"HUNGERFORD","REGINA","KATHRYN ",,"CHIROPRACTIC PRACT","CHIROPRACTIC",,"0000000000","19571011","4432 E RIDGEWOOD LANE","GILBERT","AZ","85298","1128b14","19980920","20170215","00000000", -"JACKSON","JOEY","LYNN ",,"IND- LIC HC SERV PRO","PARAMEDIC TECHNICIAN",,"0000000000","19710802","201 W KEISER MAIN ST, P O BOX","KEISER","AR","72351","1128b4","20150120","20170215","00000000", -"JOHNSON","DEBORAH"," ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"1427205822","19661101","87 S BROADWAY, #516","YONKERS","NY","10701","1128b4","20120719","20170215","00000000", -"KENNEDY","SANDRA","MARIE ",,"SKILLED NURSING FAC","NURSE/NURSES AIDE",,"0000000000","19630221","636 HAWTHORNE AVE","KITTANNING","PA","16201","1128b1","19960709","20170215","00000000", -"KISER","SHELBY"," ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19690613","609 W GREENWOOD COURT","MUSTANG","OK","73064","1128b4","20120719","20170202","00000000", -"KNOEFLER","HALEE","CRAIG ",,"IND- LIC HC SERV PRO","PHYSICAL THERAPY",,"0000000000","19590814","6620 SANDY LANE","RIVERSIDE","CA","92505","1128b4","20030420","20170215","00000000", -"LAUGHLIN","SIDNEY","CALVIN ",,"OSTEOPATHIC PRAC","OSTEOPATHY","E45376","0000000000","19511012","2737 NW 140 ST, APT 501","OKLAHOMA CITY","OK","73134","1128a1","19930803","20170202","00000000", -"LEVIE","STEVEN","ALTON ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19721116","113 SEVILLE COURT","HERTFORD","NC","27944","1128b4","20091220","20170215","00000000", -"MACON","STEPHANY","JANE ",,"NURSING FIRM","NURSE/NURSES AIDE",,"0000000000","19710628","POST OFFICE BOX 51636","ITASCA","TX","76055","1128a2","19910404","20170216","00000000", -"MANE","WALTER","JOSPEH ",,"CHIROPRACTIC PRACT","CHIROPRACTIC",,"0000000000","19560411","5411 MILEY ROAD","PLANT CITY","FL","33565","1128b14","19940113","20170215","00000000", -"MARTINEZ","ALEXANDER","ARTHUR ",,"IND- LIC HC SERV PRO","THERAPIST",,"0000000000","19710909","4978 BERLIOZ STREET","VENTURA","CA","93003","1128b4","20040420","20170215","00000000", -"MASON","SHERYL","L ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19571119","1325 SKIPPERS RD, B1-3C","EMPORIA","VA","23847","1128b4","20030220","20170215","00000000", -"MCCARTHY","JERI","LYNN ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19710922","3941 KENSINGTON PLACE","OWENSBORO","KY","42301","1128b4","20150820","20170215","00000000", -"MEHLMAN","SUSAN","CAROL ",,"PSYCHOLOGIC PRACTICE","PSYCHOLOGY",,"0000000000","19520425","917 FELL STREET, APT 719","BALTIMORE","MD","21231","1128a1","20080220","20170215","00000000", -"MENKE","MARSHA","EVELYN ",,"EMPLOYEE - PRIVATE S","PERSONAL CARE PROVID",,"0000000000","19810928","1306 P STREET","BRIDGEPORT","NE","69336","1128a1","20120220","20170220","00000000", -"MERKOW","LEONARD","P ",,"MEDICAL PRACTICE, MD","GENERAL PRACTICE/FP","C29285","0000000000","19350906","6450 LILAC STREET","PITTSBURGH","PA","15217","1128a1","19861024","20170215","00000000", -"MERKOW","LEONARD","P ",,"MEDICAL PRACTICE, MD","GENERAL PRACTICE/FP","C29285","0000000000","19350906","6450 LILAC STREET","PITTSBURGH","PA","15217","1128a1","19950814","20170215","00000000", -"MILLER","ALISON","L ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19621001","170 MAPLE STREET","ROCHESTER","PA","15074","1128b4","20110720","20170201","00000000", -"MILLNER","TOSHIKA","R ",,"REHAB FACILITY - GEN","NURSE/NURSES AIDE",,"0000000000","19760526","2411 SHORTLEAF COURT","ORLANDO","FL","32818","1128b4","19980520","20170215","00000000", -"MURPHY","MONICA","JEANMARIE ",,"MEDICAL PRACTICE, MD","GENERAL PRACTICE",,"0000000000","19580504","1015 LOCH LOMOND ST","BAKERSFIELD","CA","93304","1128a1","20050220","20170215","00000000", -"NAAYEM","HOUDA"," ",,"DENTAL PRACTICE","DENTIST",,"0000000000","19620123","350 S SAN FERNANDO BLVD, APT 2","BURBANK","CA","91502","1128b4","19990318","20170215","00000000", -"O'BRIEN","JOSEPHINE","M ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19610415","186 WATER ST","NEWBURYPORT","MA","01950","1128b4","20080720","20170215","00000000", -"OKON","ENO","BASSEY ",,"BUS OWNER/EXEC","DME - GENERAL",,"0000000000","19580828","2118 WAR ADMIRAL DRIVE","STAFFORD","TX","77477","1128a1","20120119","20170216","00000000", -"POLYNICE","NADEGE"," ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"1629258660","19730417","1293 E 73RD STREET","BROOKLYN","NY","11234","1128a1","20110818","20170215","00000000", -"PULIDO","DAVID","ROY ",,"IND- LIC HC SERV PRO","DENTIST",,"1588757173","19561015","1811 GRAN CANAL BLVD, STE 1","STOCKTON","CA","95207","1128b14","20120920","20170215","00000000", -"PUMILIA","CATHRYN","A ",,"DENTAL PRACTICE","DENTIST",,"1871962084","19600403","73 ROBERT STREET","NEW BEDFORD","MA","02740","1128b14","20010220","20170215","00000000", -"REUSCHE","JANE","D ",,"GOVERNMENT GRANTEE","EMPLOYEE",,"0000000000","19540831","3669 SANTAREN COURT","NAPLES","FL","34119","1128a1","20050620","20170215","00000000", -"RYAN","MICHAEL","R ",,"PHARMACY","BUSINESS MANAGER",,"0000000000","19440806","1095 FAIR MEADOW RD","MEMPHIS","TN","38117","1128b7","20011115","20170215","00000000", -"SADATRAFIEI","AZAM","ZARI ",,"DENTAL PRACTICE","DENTIST",,"0000000000","19650505","14 MEADOWLARK LANE","OYSTER BAY","NY","11771","1128a1","20010620","20170215","00000000", -"SCHMIDT","VICKI","ALLISON ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19640423","8016 STILES RD","RICHMOND","VA","23235","1128b4","20061220","20170201","00000000", -"SHELDON","MELISSA","J ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19780907","713 PROFESSOR DRIVE","LADSON","SC","29456","1128b4","20130120","20170201","00000000", -"SHIPLETT","PAULA","JILL ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19700612","10501 S LINN AVENUE","OKLAHOMA CITY","OK","73170","1128a4","20060120","20170202","00000000", -"SILVERSTEIN","LESLIE"," ",,"HOSPITAL","NURSE/NURSES AIDE",,"0000000000","19560505","6001 E PIMA STREET","TUCSON","AZ","85712","1128b4","19970409","20170215","00000000", -"SIMMONS","JULIE","DAWN ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19760402","8010 E FM 40 REAR","LUBBOCK","TX","79403","1128b4","20150618","20170216","00000000", -"SLIWOSKI","CHARLES","E JR ",,"PHARMACY","PHARMACIST",,"0000000000","19520810","28 SULLIVAN PLACE","MILLBURY","MA","01527","1128b4","20091220","20170215","00000000", -"SMITH","THEODORE","WILLIAMS ",,"MEDICAL PRACTICE, MD","PSYCHIATRY","F08972","1558583492","19530723","100 EDGEWOOD AVE, NE STE 1228","ATLANTA","GA","30303","1128a1","19971007","20170215","00000000", -"STEPHENS","ROBIN","R ",,"IND- LIC HC SERV PRO","THERAPIST",,"0000000000","19570719","6403 W MITCHELL, #2","MILWAUKEE","WI","53214","1128b4","20011018","20170215","00000000", -"STROBLE","LAURA","KATHRYN ",,"HOME HEALTH AGENCY","SOCIAL WORKER",,"0000000000","19630523","P O BOX 208, 98 SHADY LANE","WEST WARDSBORO","VT","05360","1128b4","20050119","20170215","00000000", -"SWEARINGEN","DANIEL","M ",,"PRIVATE CIT/ENTITY","COUNSELOR",,"0000000000","19601103","2000 KINGSBOROUGH DR","FORT COLLINS","CO","80526","1128a1","20020418","20170215","00000000", -"TALBERT","CHRISTINE","L ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19701030","2555 S SHIELDS STREET","PHILADELPHIA","PA","19142","1128a1","20160720","20160720","00000000", -"TALBERT","CHRISTINE"," ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19701030","2555 SOUTH SHIELDS STREET","PHILADELPHIA","PA","19142","1128a1","20160519","20160519","00000000", -"TOCHTROP","ANTHONY","JOSEPH ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19540531","9268 HEATHERDOLE ST","SANTEE","CA","92071","1128b4","20120920","20170201","00000000", -"TODD-FERGUSON","LINDA","KAY ",,"CHIROPRACTIC PRACT","CHIROPRACTIC",,"0000000000","19610508","7350 AIRLINE RD","HENDERSON","KY","42420","1128b14","19970525","20170215","00000000", -"TOLLIVER","PETRICH"," ",,"SKILLED NURSING FAC","NURSE/NURSES AIDE",,"0000000000","19710303","521 CLAUSON ROAD","RICHMOND","VA","23227","1128b4","19990120","20170215","00000000", -"VEGA","DEBORAH"," ",,"IND- LIC HC SERV PRO","HEALTH CARE AIDE",,"0000000000","19580930","2409 BOOKER AVENUE","UPPER CHICHESTER","PA","19014","1128a1","20161120","20161120","00000000", -"VEGA","DEBORAH"," ",,"EMPLOYEE - PRIVATE S","PERSONAL CARE PROVID",,"0000000000","19580930","2409 BOOKER AVENUE","UPPER CHICHESTER","PA","19014","1128a1","20150618","20150618","00000000", -"WARREN","STEPHANIE","KAY BAAB ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19670406","917 W TOLEDO CIRCLE","BROKEN ARROW","OK","74012","1128b4","20120419","20170202","00000000", -"WEEKS","JENNIFER","RENEE ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19711020","P O BOX 436","FRANKLIN","NC","28744","1128b4","20070620","20170215","00000000", -"WEISBROD","EARL","BRUCE ",,"DENTAL PRACTICE","DENTIST",,"0000000000","19510206","9516 N 52ND STREET","PARADISE VALLEY","AZ","85253","1128a3","20011018","20170201","00000000", -"YOUNG","LAKEYSHA"," ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19810406","701-A VICTOR TULAN GARDENS","MONTGOMERY","AL","36104","1128a2","20051120","20170215","00000000", diff --git a/etl/leie/leie/tests/data/1703REIN.csv b/etl/leie/leie/tests/data/1703REIN.csv deleted file mode 100644 index cbc871df2..000000000 --- a/etl/leie/leie/tests/data/1703REIN.csv +++ /dev/null @@ -1,56 +0,0 @@ -"LASTNAME","FIRSTNAME","MIDNAME","BUSNAME","GENERAL","SPECIALTY","UPIN","NPI","DOB","ADDRESS","CITY","STATE","ZIP","EXCLTYPE","EXCLDATE","REINDATE","WAIVERDATE","WVRSTATE" -,," ","MICHAEL B AUSTIN, D O, P A","MD/DO PRACTICE","GENERAL PRACTICE",,"0000000000",,"7410 CLEARVIEW DR","TAMPA","FL","33634","1128b8","20020220","20160921","00000000", -"BAKER","DAVID","CHARLES ",,"IND- LIC HC SERV PRO","EMERGENCY MED TECH",,"0000000000","19780719","P O BOX 2442","KIRKLAND","WA","98083","1128b4","20140619","20170323","00000000", -"BARONE","ALICE","J ",,"CHIROPRACTIC PRACT","CHIROPRACTIC","T91161","0000000000","19620315","69 HURD ROAD","TRUMBULL","CT","06611","1128b14","20060920","20170320","00000000", -"BARR","JAMES","D ",,"IND- LIC HC SERV PRO","EMERGENCY MED TECH",,"0000000000","19861008","1086 SILVER BROOK PL","MANTECA","CA","95337","1128b4","20150720","20170323","00000000", -"BASS","SHELLY","CORINNE ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19770315","105 MORRIS CIRCLE","EDENTON","NC","27932","1128b4","20120820","20170320","00000000", -"BATES","GARLA","KATHLEEN ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19690718","1220 BETHEL RIDGE ROAD","SHARPSBURG","KY","40374","1128b4","20070820","20170320","00000000", -"BEARD","CHRISTINA","M ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19720828","6846 US HIGHWAY 51 N, APT 51","MILLINGTON","TN","38053","1128b4","20150820","20170320","00000000", -"BOGUE","PATRICIA","LYNN ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"1316011232","19600804","43 THOMPSON ST","RED HOOK","NY","12571","1128a1","20100720","20170323","00000000", -"BORGESON","MICHELE","D ",,"DOCTOR(MD, DO)","EMERGENCY MEDICINE",,"1396700936","19601231","2 CRYSTAL CREEK COURT","LARKSPUR","CA","94939","1128b14","20161220","20170313","00000000", -"CLARDY","BRENDA","ANN ",,"SKILLED NURSING FAC","EMPLOYEE",,"0000000000","19700223","1923 BEARD STREET","DETROIT","MI","48209","1128a2","19910722","20170306","00000000", -"COOPER","CONNIE","RUTH ",,"MENTAL HEALTH FAC","HEALTH CARE AIDE",,"0000000000","19700724","5945 DEERFIELD AVE","ALEXANDRIA","LA","71301","1128a1","19971007","20170322","00000000", -"DENNING","GAIL","ANN ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19651104","1516 GILLIAM WAY, APT C12","FAIRBANKS","AK","99701","1128b4","20010419","20170322","00000000", -"DJOSSINOU","ROSETTE","E ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19870602","650 W SOUTH TEMPLE, APT A405","SALT LAKE CITY","UT","84104","1128b4","20160218","20170323","00000000", -"DO","ALEXANDER","QUANG ",,"PHARMACY","PHARMACIST",,"0000000000","19670801","217 GRAND AVENUE","LEONIA","NJ","07605","1128a1 ","20040920","20170323","00000000", -"DROWNE","CHERYL","L ",,"IND- LIC HC SERV PRO","THERAPIST",,"0000000000","19530923","27 OAKMONT ROAD","WHEELING","WV","26003","1128b4","20120520","20170320","00000000", -"DURHAM","BRENDA"," ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19630405","6498 MAGNOLIA LANE","PINEVILLE","LA","71360","1128b4","20121220","20170320","00000000", -"ERNANDEZ","SERGE"," ",,"INDIVIDUAL (UNAFFILI","NO KNOWN AFFILIATION",,"0000000000","19490704","10 W 135TH STREET, APT 2G","NEW YORK","NY","10037","1128a1","19841105","20170323","00000000", -"FORD","CARA","D ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19821110","271 BETTS ROAD","POTTS CAMP","MS","38659","1128b4","20080120","20170320","00000000", -"FOSTER","ALLEN","RICARDO ",,"DOCTOR(MD, DO)","ANESTHESIOLOGY","F55742","0000000000","19611103","8001 LAKE RIDGE DR","MONTGOMERY","AL","36117","1128a1","20120320","20170320","00000000", -"FRANKLIN","BRIAN","KEITH ",,"IND- LIC HC SERV PRO","PHARMACY TECHNICIAN",,"0000000000","19820209","P O BOX 1231","BRISTOL","RI","02809","1128b4","20130220","20170323","00000000", -"HALEY","MICHAEL","P ",,"IND- LIC HC SERV PRO","EMERGENCY MED TECH",,"0000000000","19700201","2209 W EL PRADO RD","CHANDLER","AZ","85224","1128b4","20120920","20170322","00000000", -"HEISS","RICHARD","JAMES ",,"MEDICAL PRACTICE, MD","FAMILY PRACTICE","A73203","1336561240","19570922","10508 ARDEN VILLA DR","SACRAMENTO","CA","95815","1128a2","20030919","20170303","00000000", -"HENDERSON","BARRY","MERLE ",,"MEDICAL PRACTICE, MD","GENERAL PRACTICE/FP",,"1114135118","19480626","112 WEATHERBY COURT","SAVANNAH","GA","31406","1128b4","19980720","20170320","00000000", -"HERNANDEZ","SARAI"," ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19660304","252 17TH STREET","RICHMOND","CA","94801","1128a3","20100720","20170303","00000000", -"HUG","ROGEANNA","SUE ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19720814","615 ROBBINS STREET","MILTON FREEWATER","OR","97862","1128b4","20130620","20170315","00000000", -"IGLESIAS","YAMIRAH","ISABEL ",,"DME COMPANY","OWNER/OPERATOR",,"0000000000","19610303","115 VERDI STREET","DAVENPORT","FL","33896","1128Aa","19970811","20170320","00000000", -"JENKINS","AIMEE","MAIN ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19740216","7726 HACKBERRY COURT, APT B","INDIANAPOLIS","IN","46227","1128b4","20120419","20170320","00000000", -"KUYKENDALL","PAMELA","KAY ",,"ADULT HOME","BUSINESS MANAGER",,"0000000000","19670705","335 S 9TH COURT","COOS BAY","OR","97420","1128a1","20050420","20170322","00000000", -"LAMPE","KRISTAN","L ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19710620","4010 N 14TH STREET","LINCOLN","NE","68521","1128b4","20121120","20170309","00000000", -"LARSON","ANDREA","ELIZABETH ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19650813","601 1/2 E ROBINSON ST, APT 2","KNOXVILLE","IA","50136","1128a4","20120220","20170303","00000000", -"LEATUTUFU","PULALASI","F ",,"PRIVATE CIT/ENTITY","HEALTH CARE AIDE",,"0000000000","19610419","P O BOX 200313","ANCHORAGE","AK","99520","1128a1","20081218","20170315","00000000", -"MACK","ALPHONSO","L ",,"IND- LIC HC SERV PRO","DENTIST",,"1043237704","19500901","2 WINTONBURY MALL","BLOOMFIELD","CT","06002","1128b5","20150820","20170322","00000000", -"MACLENNAN","CYNTHIA","LYNN HALES ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19690927","1071 COUNTY ROAD 12","DEMOPOLOS","AL","36732","1128b4","20140720","20170320","00000000", -"MARTIN","THANA","MARIE ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19560323","3211 SE CARUTHERS ST, 3215","PORTLAND","CA","97214","1128b4","20110620","20170322","00000000", -"MCCRACKEN","ANGELA"," ",,"INDIVIDUAL (UNAFFILI","RECIPT/BENEFICIARY",,"0000000000","19640828","P O BOX 330","COWEN","WV","26206","1128a1","20120320","20170323","00000000", -"MILLER","AISHA","SHAVOON ",,"SKILLED NURSING FAC","NURSE/NURSES AIDE",,"0000000000","19770405","11609 COUNTY RD 59","VERBENA","AL","36091","1128a2","20010419","20170320","00000000", -"MOORE","VALERIA","F ",,"NURSING FIRM","NURSE/NURSES AIDE",,"0000000000","19540712","1000 KENTUCK RD","DANVILLE","VA","24540","1128b4","20000720","20170320","00000000", -"NASRAWAY","AMY"," ",,"HOSPITAL","NURSE/NURSES AIDE",,"0000000000","19630418","431-3 MAIN STREET","MEDFIELD","MA","02052","1128b4","19980319","20170323","00000000", -"NEAL","WILLIAM","RUSSELL ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19570615","504 W SADDLE LANE","PAYSON","AZ","85541","1128b4","20130320","20170322","00000000", -"ONISCHUCK","PEGGY","ANN ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19860613","9727 TOUCHTON RD, APT 2002","JACKSONVILLE","FL","32246","1128b4","20150120","20170323","00000000", -"PHELPS","KIMBERLY","GAY ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19620815","9306 MEADOW VALLEY LANE, UNIT","LOUISVILLE","KY","40291","1128b4","20140320","20170320","00000000", -"PROPST","WENDY","PATTON ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19670827","311 ARLINGTON ST","LYNCHBURG","VA","24503","1128b4","20110720","20170320","00000000", -"RANNEY","MELISSA","LEANNA ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19800805","261 ROYAL OAK LANE","GARNER","NC","27529","1128b4","20160218","20170320","00000000", -"RASSAEL","HADI","M ",,"DOCTOR(MD, DO)","GENERAL PRACTICE",,"1659547891","19641013","9243 FALLS CHAPEL WAY","POTOMAC","MD","20854","1128b4","20160519","20170323","00000000", -"REYNOLDS","MARY","A ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19691111","649 OAK GROVE ROAD, APT 3","VASSALBORO","ME","04989","1128a2","20170320","20170320","00000000", -"ROQUE","ISMAEL"," ",,"CLINIC","OWNER/OPERATOR",,"0000000000","19410506","3639 S W 14TH ST","MIAMI","FL","33145","1128a3","20020418","20170320","00000000", -"ROSSET","LORRIE","LEE ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19651026","18416 N COVE CREEK RD, #1050","PHOENIX","AZ","85032","1128b4","20100318","20170306","00000000", -"SCHACHT","RACHEL","M ",,"MEDICAL PRACTICE, MD","DERMATOLOGY","G13628","0000000000","19690125","6996 N ASTERION LANE","TUCSON","AZ","85741","1128b4","20060220","20170322","00000000", -"SCHULTZ","JODI","ANNE ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"1194918342","19720124","84 QUAKER ROAD","JOHNSONVILLE","NY","12094","1128a1","20100720","20170323","00000000", -"SHIPMAN","BRYAN","LEE ",,"EMPLOYEE - PRIVATE S","HOME HEALTH AGENCY",,"0000000000","19730209","1315 MATHIS FERRY ROAD","MOUNT PLEASANT","SC","29464","1128a3","20120320","20170323","00000000", -"SINGH","SANJIT","KAUR ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19760504","2101 PARK EAST DRIVE","MODESTO","CA","95351","1128b4","20140820","20170303","00000000", -"SINGLETON","RUSSELL","PAIGE ",,"IND- LIC HC SERV PRO","DENTIST",,"1912166133","19620528","1450 E CHESTNUT AVE, #3-C","VINELAND","NJ","08361","1128b14","20140720","20170320","00000000", -"TACKETT","KEVIN","SCOTT ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19670228","330 SPRING ST, APT 14","CHARLESTOWN","IN","47111","1128b4","20090720","20170320","00000000", -"UHLES","LANCE","ALAN ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19670128","571 ESSEX STREET","CORONA","CA","92879","1128b4","20130220","20170323","00000000", -"WHEELER","KATHY"," ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19600129","346 DOVE AVE, #3","RIGBY","ID","83442","1128b4","20061220","20170315","00000000", diff --git a/etl/leie/leie/tests/data/1704REIN.csv b/etl/leie/leie/tests/data/1704REIN.csv deleted file mode 100644 index 21a09dd09..000000000 --- a/etl/leie/leie/tests/data/1704REIN.csv +++ /dev/null @@ -1,34 +0,0 @@ -"LASTNAME","FIRSTNAME","MIDNAME","BUSNAME","GENERAL","SPECIALTY","UPIN","NPI","DOB","ADDRESS","CITY","STATE","ZIP","EXCLTYPE","EXCLDATE","REINDATE","WAIVERDATE","WVRSTATE" -"BAGWELL","JOAN","TERESE ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19531007","301 S OLIVE ST","MAQUOKETA","IA","52060","1128b4","20111020","20170403","00000000", -"BANKS","LANCE","ALLEN ",,"CLINIC","OWNER/OPERATOR",,"0000000000","19541205","157 DYKE RD, APT 22","RIDGELAND","MS","39157","1128a1","20040219","20170413","00000000", -"BASS","TIMOTHY","E ",,"AMBULANCE COMPANY","OWNER/OPERATOR",,"0000000000","19580516","1015 SANDERSON DR","HOPKINSVILLE","KY","42240","1128a1","19910416","20170413","00000000", -"BEAVERS","WILLIAM"," ",,"CHIROPRACTIC PRACT","CHIROPRACTIC",,"0000000000","19691221","2055 COLLINS DRIVE, NW","CLEVELAND","TN","37312","1128b4","20080520","20170413","00000000", -"BECK","DENNIS","ALAN ",,"HOSPITAL","NURSE/NURSES AIDE",,"0000000000","19610703","1718 14TH AVE, WEST","SPENCER","IA","51301","1128b4","20050320","20170413","00000000", -"BENTHALL","MARK","JOSEPH ",,"DME COMPANY","OWNER/OPERATOR",,"0000000000","19680301","6614 CLAYTON RD, PMB 126","SAINT LOUIS","MO","63117","1128a1","20030420","20170410","00000000", -"BLACK","ROBERT","W ",,"PHARMACY","PHARMACIST",,"0000000000","19560101","5 THURMOND ROAD, SE","STATHAM","GA","30666","1128b4","20040318","20170413","00000000", -"BUMGARDNER","THOMAS","M ",,"CHIROPRACTIC PRACT","CHIROPRACTIC","T78938","0000000000","19610912","19414 DALLAS ROAD, #1","CROSBY","TX","77532","1128b14","19980319","20170413","00000000", -"CHUDNOFSKY","ROXANA","L ",,"HOME HEALTH AGENCY","HEALTH CARE AIDE",,"0000000000","19751210","12053 W KING JOHN DR","HOUSTON","AK","99694","1128a1","20080720","20170406","00000000", -"DESAI","TRILOK"," ",,"CLINIC","OFFICER/EXECUT/BOARD",,"0000000000","19511225","3624 SHOREVIEW COURT","BLOOMFIELD HILLS","MI","48302","1128a3","20071018","20170410","00000000", -"DESECOTTIER","LEON","RENAULT ",,"IND- LIC HC SERV PRO","COUNSELOR",,"0000000000","19550310","3500 S W 119TH STREET","OKLAHOMA CITY","OK","73170","1128a1","20120419","20170419","00000000", -"GUTIERREZ","DULCE","M ",,"DME COMPANY","OWNER/OPERATOR",,"0000000000","19660602","3160 WEST 79TH PLACE","HIALEAH","FL","33018","1128a1","20020620","20170417","00000000", -"HAMILTON","KENT","EDWARD ",,"IND- LIC HC SERV PRO","THERAPIST",,"1164575825","19560407","4546 S REDHAWK AVENUE","BOISE","ID","83716","1128a4","20110720","20170420","00000000", -"HENDRIX","JOE","DOUGLAS SR",,"DOCTOR(MD, DO)","PSYCHIATRY",,"1508814047","19650914","516 SADDLEBRED DR","PELZER","SC","29669","1128b4","20170220","20170220","00000000", -"HEPWORTH","BRYAN","PAUL ",,"IND- LIC HC SERV PRO","PHARMACIST",,"1568600260","19760228","220 SOUTH 400 EAST","BOUNTIFUL","UT","84010","1128b4","20151020","20170413","00000000", -"HOOPER","ANDREA","THERESE ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19640429","17681 S BRONZE MOUNTAIN PASS","VAIL","AZ","85641","1128a2","20070419","20170403","00000000", -"JOHNSON","ERIC"," ",,"EMPLOYEE - PRIVATE S","COUNSELING CENTER",,"0000000000","19731116","800 E 5TH ST","VIDALIA","GA","30474","1128a1","20170220","20170220","00000000", -"LAMBERT","JANELLE"," ",,"IND- LIC HC SERV PRO","COUNSELOR",,"0000000000","19800518","150 ADRAINS LANE","COVINGTON","GA","30016","1128a1","20170320","20170320","00000000", -"LIU","SAMANTHA","LANDIE ",,"MEDICAL PRACTICE, MD","PSYCHIATRY","G88471","0000000000","19610901","310 8TH STREET, STE 201","OAKLAND","CA","94607","1128b4","20080918","20170405","00000000", -"MAGUIRE","SEAN","M ",,"MEDICAL PRACTICE, MD","OTORHINOLARYNGOLOGY","F29346","0000000000","19651011","4600 SHELBYVILLE RD, #220","LOUISVILLE","KY","40207","1128a4","20010220","20170413","00000000", -"MARTIN","TRACEY","A DAY ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19640527","1470 N CENTRAL AVE","BATESVILLE","AR","72501","1128b4","20160420","20170413","00000000", -"MILLER","JAY","P ",,"DENTAL PRACTICE","DENTIST",,"0000000000","19640509","1610 FOXHALL ROAD","WASHINGTON","DC","20007","1128b14","19950316","20170417","00000000", -"MINARCIK","JOHN","ROBERT ",,"MEDICAL PRACTICE, MD","PATHOLOGY","D50983","0000000000","19470724","17 E NORTH AVE, UNIT 2","LAKE BLUFF","IL","60044","1128a3","20030820","20170417","00000000", -"PIKE","JESSICA","MAE ",,"IND- LIC HC SERV PRO","LICENSED PRACTITIONE",,"0000000000","19860414","13334 LARAWAY DR","RIVERVIEW","FL","33579","1128b4","20160420","20170413","00000000", -"RENICK","LISA","ANN ",,"NURSING FIRM","NURSE/NURSES AIDE",,"0000000000","19620528","519 N ARCHER STREET","BOISE","ID","83706","1128b4","20050119","20170413","00000000", -"RICKETTS","CANDACE","E CASWELL ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19680430","134 RALEIGH DR, APT 1A","ELIZABETHTOWN","KY","42701","1128b4","20080220","20170413","00000000", -"RIDOUT","BRADLEY","A ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19771202","20 E EVANS ST","RICE LAKE","WI","54868","1128a2","20081020","20170413","00000000", -"SHOPE","JEFFREY","R ",,"IND- LIC HC SERV PRO","CHIROPRACTIC",,"1134286958","19701109","7292 KEMPERWOOD COURT","BLACKLICK","OH","43004","1128a3","20161120","20161120","00000000", -"SMITH","HARLAN","EUGENE ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19700524","411 W GEORGIA STREET","DURANT","OK","74701","1128b4","20150520","20170403","00000000", -"SMITH","JENNIFER","RENEE ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19880315","1020 E COLUMBIA RD, 8","EMERSON","AR","71740","1128a2","20080520","20170403","00000000", -"STIENTJES","KATHERINE","K ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19640426","318 W FOREST AVE, #306","ROUND LAKE","IL","60073","1128b4","20010620","20170413","00000000", -"STRAUBE","KIMBERLY"," ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19610711","1025 JEFFERSON STREET","QUINCY","IL","62301","1128b4","19981020","20170424","00000000", -"YOUNG","JINA","LUCILLE ",,"IND- LIC HC SERV PRO","COUNSELOR",,"0000000000","19770704","1730 EVERGLADE COURT","OKLAHOMA CITY","OK","73128","1128a1","20111020","20170413","00000000", diff --git a/etl/leie/leie/tests/data/UPDATED.csv b/etl/leie/leie/tests/data/UPDATED.csv deleted file mode 100644 index 5e8f7d3e6..000000000 --- a/etl/leie/leie/tests/data/UPDATED.csv +++ /dev/null @@ -1,336 +0,0 @@ -"LASTNAME","FIRSTNAME","MIDNAME","BUSNAME","GENERAL","SPECIALTY","UPIN","NPI","DOB","ADDRESS","CITY","STATE","ZIP","EXCLTYPE","EXCLDATE","REINDATE","WAIVERDATE","WVRSTATE" -,," ","ANCOR MEDICAL SERVICES INC","DME COMPANY","DME - GENERAL",,"0000000000",,"767 KRAMER AVENUE","COLUMBUS","OH","43212","1128a1","19931012","00000000","00000000", -,," ","BRIGHT START RESOURCES, INC","OTHER BUSINESS","COUNSELING CENTER",,"0000000000",,"5215 DOUGLAS AVENUE","DES MOINES","IA","50310","1128b8","20110920","00000000","00000000", -,," ","COMFORT CONSULTING, LLC","BILLING SERVICE CO",,,"0000000000",,"109 MILLCREEK CORNERS, STE E","BRANDON","MS","39047","1128a1","20070820","00000000","00000000", -,," ","DIVERSIFIED HEALTH SVCS","SKILLED NURSING FAC",,,"0000000000",,"4704 CRAIGMONT DR","MEMPHIS","TN","38128","1128a1","20010827","00000000","00000000", -,," ","FATIMA MEDICAL CENTER, INC","CLINIC",,,"0000000000",,"1145 S W 8TH ST","MIAMI","FL","33130","1128b8","20000420","00000000","00000000", -,," ","GULF SHORE ANESTHESIA, PA","MEDICAL GROUP",,,"0000000000",,"C/O P O BOX 6185","FT MYERS","FL","33906","1128b8","20050420","00000000","00000000", -,," ","IRVCO, LLC","OTHER BUSINESS","MENTAL HEALTH FAC",,"0000000000",,"263 BOILING SPRINGS DR","LEXINGTON","KY","40511","1128a1","20120620","00000000","00000000", -,," ","LEVAN PHARMACY","PHARMACY",,,"0000000000",,"15250 LEVAN ROAD","LIVONIA","MI","48154","1128b4","19900301","00000000","00000000", -,," ","MEDWIN PHARMACY, INC","PHARMACY",,,"0000000000",,"C/O 1 WAVERLY RD","OLD WESTBURY","NY","11568","1128a3","20100120","00000000","00000000", -,," ","NURSERY ROAD VILLA, INC","DME COMPANY","DME - GENERAL",,"0000000000",,"2446 NURSERY ROAD","CLEARWATER","FL","33764","1128a1","20021219","00000000","00000000", -,," ","PREDDY'S FUNERAL HOME","AMBULANCE COMPANY",,,"0000000000",,"BOX 321 MAIN STREET","ORANGE","VA","22942","1128a1","19880617","00000000","00000000", -,," ","ROCKET MARINE, INC","DME COMPANY",,,"0000000000",,"5368 WHISPERING PINE CIRC","ST CLOUD","FL","34771","1128b8","19980420","00000000","00000000", -,," ","STAR B REST PERSONAL CARE HOME","ADULT HOME",,,"0000000000",,"101 WARD LOOP","COLUMBUS","MS","39429","1128b8","20050720","00000000","00000000", -,," ","TWIN STATES MEDICAL SUPPLY, IN","DME COMPANY",,,"0000000000",,"605 2ND AVE, N","COLUMBUS","MS","39701","1128b8","20010419","00000000","00000000", -"AARON","CHRISTOPHER","WILLIAM ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19870908","120 SUPERVISOR DRIVE","WEST NEWTON","PA","15089","1128b4","20140520","00000000","00000000", -"ACORD","RICKY","D ",,"AMBULANCE COMPANY","BUSINESS MANAGER",,"0000000000","19610218","810 CEDAR ST","MONTGOMERY","AL","36106","1128b7","20000204","00000000","00000000", -"ADELANA","ABAYO"," ",,"DME COMPANY","OWNER/OPERATOR",,"0000000000","19530605","2320 BRISBANE DR","ARLINGTON","TX","76018","1128a1","20110320","00000000","00000000", -"AHMAD","MUHAMMAD","S ",,"BUS OWNER/EXEC","HOME HEALTH AGENCY",,"0000000000","19780716","P O BOX 1000, #42362-424","MORGANTOWN","WV","26507","1128a1","20170220","00000000","00000000", -"ALBERT","RICHARD","W ",,"DOCTOR(MD, DO)","PAIN MANAGEMENT",,"0000000000","19470423","600 OLD FRANKFORT CIR, #154638","LEXINGTON","KY","40510","1128b4","20120920","00000000","00000000", -"ALIZADEH","ALIREZA"," ",,"BUS OWNER/EXEC","CLINIC",,"0000000000","19570907","2807 SUNSHINE CIRCLE","SUGAR LAND","TX","77479","1128a1","20130520","00000000","00000000", -"ALONSO","JOAQUIN"," ",,"CLINIC","OWNER/OPERATOR",,"0000000000","19600911","P O DRAWER 30, #76626-004","MCRAE","GA","31055","1128a1","20100120","00000000","00000000", -"AMIN","SACHIN"," ",,"PHARMACY","PHARMACIST",,"0000000000","19741121","8300 97TH ST","SEMINOLE","FL","33777","1128a1","20111020","00000000","00000000", -"ANDERSON","MICHAEL","R ",,"SKILLED NURSING FAC","NURSE/NURSES AIDE",,"0000000000","19490116","P O BOX 123","QUICKSBURG","VA","22847","1128b4","19990420","00000000","00000000", -"ANTHONY","CARL","M ",,"INTER CARE FACILITY","NURSE/NURSES AIDE",,"0000000000","19590203","117 HICKORY LANE","GASTON","SC","29053","1128a2","20020320","00000000","00000000", -"ARGUETA","EDWARD","A ",,"SKILLED NURSING FAC","NURSE/NURSES AIDE",,"0000000000","19720413","604 N BAYVIEW AVENUE","SEASIDE PARK","NJ","08752","1128a2","20000320","00000000","00000000", -"ARTHUR","FRANCISCA","ANGELINA ",,"NURSING FIRM","NURSE/NURSES AIDE",,"0000000000","19650812","181 CROSBY LN","PORT ANGELES","WA","98362","1128a4","20050720","00000000","00000000", -"ATTIA","NADER","ANISZAKY ",,"PHARMACY","PHARMACIST",,"0000000000","19580423","7817 17TH AVENUE","BROOKLYN","NY","11214","1128a1","20010620","00000000","00000000", -"AYALA","JESUS"," ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19630208","1060 AVENIDA CIERVO","RIO RICO","AZ","85648","1128b4","20090618","00000000","00000000", -"BAHNSEN","MELISSA","JOHNSEY ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19791215","5000 LEON DR, TRLR 89","LAKE CHARLES","LA","70605","1128b4","20071120","00000000","00000000", -"BAKER","STACY","ANN ",,"DME COMPANY","OWNER/OPERATOR",,"0000000000","19760205","1417 FAIRVIEW RD","SEARCY","AR","72143","1128a1","20110720","00000000","00000000", -"BANGHART","HALIE","MAE ",,"PHARMACY","TECHNICIAN",,"0000000000","19900323","1504 2ND AVE, APT 26","VINTON","IA","52349","1128a3","20091119","00000000","00000000", -"BARNES","BARBARA","E ",,"SKILLED NURSING FAC","HEALTH CARE AIDE",,"0000000000","19511022","P O BOX 284","PRENTISS","MS","39474","1128a2","19991118","00000000","00000000", -"BARROWS","JONI"," ",,"DENTAL PRACTICE","DENTIST",,"1609915321","19540525","1 E BASS RIVER RIDGE","NEWMARKET","NH","03857","1128b14","20090206","00000000","00000000", -"BATRIN","LINDA","PULLEN ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19590115","249 JASPER ST, LOT 134","LARGO","FL","33770","1128a2","20140720","00000000","00000000", -"BEARD","CRAIG","ALLEN ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19711215","7146 GULF SHORE BLVD","SAN ANTONIO","TX","78244","1128b4","20090219","00000000","00000000", -"BEGGS","DANIEL","M ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19680810","89 LAKE AUBURN AVE","AUBURN","ME","04210","1128a2","19931208","00000000","00000000", -"BELT","STELLA","LOUISE ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19460913","R R 1, BOX 152A","GOLCONDA","IL","62938","1128b4","20001019","00000000","00000000", -"BENTLEY","WILLIAM","FRANKLIN III ",,"COUNSELING CENTER","COUNSELOR",,"0000000000","19440920","P O BOX 777","MONROE","WA","98272","1128a3","20061019","00000000","00000000", -"BERRY","RICKY","LEE ",,"SKILLED NURSING FAC","NURSE/NURSES AIDE",,"0000000000","19600602","341 N W 87TH ST","OKLAHOMA CITY","OK","73114","1128a2","20000518","00000000","00000000", -"BILBY","REBECCA","ANNE ",,"INDIVIDUAL (UNAFFILI","NO KNOWN AFFILIATION",,"0000000000","19820213","71 N CONANT AVE","CRYSTAL RIVER","FL","34429","1128a3","20150520","00000000","00000000", -"BLACK","MARY","JANE TAYLOR ",,"HOSPITAL","NURSE/NURSES AIDE",,"0000000000","19530611","1408 LAKE BARKLEY DR","KUTTAWA","KY","42055","1128b4","20020320","00000000","00000000", -"BLEAKNEY","CHRISTINE","F ",,"NURSING FIRM","NURSE/NURSES AIDE",,"0000000000","19631223","10300 DES MOINES MEMORIAL DR A","SEATTLE","WA","98168","1128b4","20031020","00000000","00000000", -"BOHANON","TERRI","DENISE ",,"SKILLED NURSING FAC","NURSE/NURSES AIDE",,"0000000000","19620312","2049 MONDIGO AVENUE","SAN JOSE","CA","95122","1128b4","20050620","00000000","00000000", -"BOONE","MICHAEL","I ",,"CHIROPRACTIC PRACT","CHIROPRACTIC","T25759","0000000000","19540603","66 CHARLES ST","BOSTON","MA","02114","1128b4","19980820","00000000","00000000", -"BOURGOIN","LORI","L ",,"IND- LIC HC SERV PRO","HEALTH CARE AIDE",,"0000000000","19690106","460 WASHINGTON ST, APT 1","BATH","ME","04530","1128a1","20140320","00000000","00000000", -"BOYD","RACHEL","MARLENE ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19771004","122 RIDGE HARBOR DR","ROCKPORT","TX","78382","1128a3","20101020","00000000","00000000", -"BRAMLETT","COLEMAN","LYNWOOD ",,"IND- LIC HC SERV PRO","DENTIST",,"1821120882","19551201","157 RIVER BIRCH LANE","COLUMBIA","SC","29206","1128a1","20111020","00000000","00000000", -"BRENNAN","LORI","JEAN ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19620510","2305 E MAIN ST, #107","MESA","AZ","85213","1128b4","20030520","00000000","00000000", -"BRITT","WILLIAM","R ",,"CHIROPRACTIC PRACT","CHIROPRACTIC",,"0000000000","19571114","C/O 3201 QUEENSBURY WAY","COLLEYVILLE","TX","76034","1128b14","19971120","00000000","00000000", -"BROWDER","CAREY"," ",,"MEDICAL PRACTICE, MD","GENERAL PRACTICE","C88999","0000000000","19520607","404 SUMMIT OAKS DRIVE","NASHVILLE","TN","37221","1128b4","20080520","00000000","00000000", -"BROWN","KEVIN","LYNN ",,"HOME HEALTH AGENCY","BUSINESS MANAGER",,"0000000000","19641118","27317 HARVEST AVE","BLOOMFIELD","IA","52537","1128a1","20080619","00000000","00000000", -"BROWNELL-BERRY","ELAINE","L ",,"CLINIC","SOCIAL WORKER",,"0000000000","19560214","2 FRONT PLACE, #4","WATERVILLE","ME","04901","1128b4","20091220","00000000","00000000", -"BUCK","LORI","J ",,"REHAB FACILITY - GEN","NURSE/NURSES AIDE",,"0000000000","19730626","40 E PEYTON PLACE","SHELTON","WA","98584","1128b4","20031020","00000000","00000000", -"BURCHFIELD","ASHLEY","MICHELLE ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19891015","308 N 2ND STREET","MCGHEE","AR","71654","1128a3","20150319","00000000","00000000", -"BURRELL","JOEL","BRION ",,"MEDICAL PRACTICE, MD","SURGERY",,"0000000000","19591127","1454 W RIVER RD N, APT O","ELYRIA","OH","44035","1128b4","20030220","00000000","00000000", -"BUTLER","PAMELA","RENI ",,"HOME HEALTH AGENCY","NURSE/NURSES AIDE",,"0000000000","19690109","209 N CHESTNUT ST","BUNKIE","LA","71322","1128a1","20060620","00000000","00000000", -"CAHN","ELLSWORTH","G ",,"SKILLED NURSING FAC","NURSE/NURSES AIDE",,"0000000000","19450617","85 BRADY AVENUE","ALBANY","NY","12204","1128b4","19990819","00000000","00000000", -"CAMERON","ROBERT","ROY ",,"MEDICAL PRACTICE, MD","SURGERY","D10954","0000000000","19350916","10 E CENTRAL BLVD","VILLA PARK","IL","60181","1128b4","20010820","00000000","00000000", -"CANNON","LESLIE"," ",,"TRANSPORTATION CO","OWNER/OPERATOR",,"0000000000","19410913","215 GENESEE PARK BLVD","ROCHESTER","NY","14612","1128a1","19910704","00000000","00000000", -"CARLOS","FLORIAN","M ",,"DME COMPANY","OWNER/OPERATOR",,"0000000000","19610528","844 LAKENOLL DRIVE","SUNNYVALE","CA","94089","1128a1","19921104","00000000","00000000", -"CARRISON","ALICE","B ",,"HOSPITAL","NURSE/NURSES AIDE",,"0000000000","19501222","P O BOX 677","BOONVILLE","CA","95415","1128b4","20060420","00000000","00000000", -"CASANOVA","LESDER","O ",,"INDIVIDUAL (UNAFFILI","REPRESENTATIVE PAYEE",,"0000000000","19710206","P O DRAWER 30, #94999-004","MC RAE","GA","31055","1128a1","20120620","00000000","00000000", -"CASTRO","FIDEL"," ",,"INDIVIDUAL (UNAFFILI","REPRESENTATIVE PAYEE",,"0000000000","19630904","P O DRAWER 30, #94993-004","MCRAE","GA","31055","1128a1","20120620","00000000","00000000", -"CHACE","HENRY","V ",,"OSTEOPATHIC PRAC","OSTEOPATHY","E71182","0000000000","19280327","21504 15TH ROAD","BAYSIDE","NY","11360","1128b4","19960905","00000000","00000000", -"CHAPMAN","KYLE","E ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19820209","13937 TOWNSHIP ROAD 476","LAKEVILLE","OH","44638","1128a3","20160620","00000000","00000000", -"CHENDE","CHIAWA","REST ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19730316","1421 OAK ST","NILES","MI","49120","1128a3","20100617","00000000","00000000", -"CHOQUETTE","STEPHEN"," ",,"HOSPITAL","NURSE/NURSES AIDE",,"0000000000","19580520","1604 E WALLUM LAKE DR","BURRIVILLE","RI","02859","1128a3","20050420","00000000","00000000", -"CISERO","LAURA"," ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19620318","P O BOX 219","NEWTON","CT","06470","1128b4","20000420","00000000","00000000", -"CLAUSIUS","DAVID","RICHARD ",,"NURSING FIRM","NURSE/NURSES AIDE",,"0000000000","19440215","5421 LEMON TREE LANE","PINELLAS PARK","FL","34665","1128b4","19910606","00000000","00000000", -"COBB","RUSSELL","V ",,"PHARMACY","PHARMACIST",,"0000000000",,"111 N CRUTCHFIELD STREET","DOBSON","NC","27017","1128a1","19830922","00000000","00000000", -"COLE","LINDA","S ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19440924","P O BOX 852","HURRICANE","UT","84737","1128b4","20050119","00000000","00000000", -"COLLINS","STEVEN","JOSEPH ",,"DOCTOR(MD, DO)","INTERNAL MEDICINE","H47008","1396736260","19630427","P O BOX 999, #18561-084","BUTNER","NC","27509","1128a4","20160120","00000000","00000000", -"CONNER","PAULA","RAE ",,"SKILLED NURSING FAC","EMPLOYEE",,"0000000000","19640731","229 SKY HAVEN LANE","DAHLONEGA","GA","30533","1128a1","20081120","00000000","00000000", -"COOPER","ANNIE","ROSE ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19850506","3009 E 53RD AVE, APT M3","SPOKANE","WA","99223","1128b4","20130320","00000000","00000000", -"CORNELL","CLINTON","JAMES ",,"IND- LIC HC SERV PRO","PHYSICIAN'S ASSISTAN",,"1326065913","19721221","P O BOX 10, #16495-040","LISBON","OH","44432","1128a1","20130919","00000000","00000000", -"COULIBALY","MARIAM"," ",,"EMPLOYEE - ST/LOC/TR","STATE GOV'T",,"0000000000","19681024","P O BOX 2000, #63851-066","BRUCETON MILLS","WV","26525","1128a3","20111220","00000000","00000000", -"CRAIN","THOMAS","C ",,"DOCTOR(MD, DO)","GENERAL PRACTICE",,"1578524237","19511212","112 GREEN ACRES DRIVE","TAYLORSVILLE","KY","40071","1128b4","20161120","00000000","00000000", -"CRONE","JOSEPHINE"," ",,"CLINIC","BUSINESS MANAGER",,"0000000000","19631220","48 WINDMERE AVENUE","STATEN ISLAND","NY","10306","1128a1 ","20100318","00000000","00000000", -"CULLEN","DWIGHT","S ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19650609","1420 DICKERSON BAY DRIVE","GALLATIN","TN","37066","1128b4","20150618","00000000","00000000", -"CUSACK","DEBORAH","L ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19610404","869 N W KARKAINEN LANE","POULSBO","WA","98370","1128b4","20040819","00000000","00000000", -"DAMERON","MARILYN","R ",,"COUNSELING CENTER","BUSINESS MANAGER",,"0000000000","19560910","P O BOX 27137, #11201-033","FORT WORTH","TX","76127","1128a1","20091119","00000000","00000000", -"DARRIGO","JAMES"," ",,"OSTEOPATHIC PRAC","OSTEOPATHY","F55699","0000000000","19580309","13 ROSE LANE","WALDEN","NY","12550","1128b4","20070419","00000000","00000000", -"DAVIS","DENISE","BOWMAN ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19711205","108 CALLICUT RD","SEAGROVE","NC","27341","1128b4","20070419","00000000","00000000", -"DAVIS","WINTHROP"," ",,"DOCTOR(MD, DO)","PAIN MANAGEMENT","D78868","1497974059","19470719","11571 BLACK OAK TRAIL","JACKSONVILLE","FL","32225","1128a4","20131120","00000000","00000000", -"DEARTH","DONNA","ELAINE ",,"SKILLED NURSING FAC","NURSE/NURSES AIDE",,"0000000000","19510228","13 CC ROLLING GREEN","NEWPORT","RI","02840","1128b4","20011018","00000000","00000000", -"DELANO","ANGELA","G ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19541023","5 PHEASANT RUN ROAD","LONDONDERRY","NH","03053","1128b4","20070820","00000000","00000000", -"DENGATE","CHRISTINE","A ",,"NURSING FIRM","NURSE/NURSES AIDE",,"0000000000","19720723","664 S LINCOLN ST, APT #30","DENVER","CO","80209","1128b4","19960410","00000000","00000000", -"DEVARSO","ANGELA"," ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19760815","ROUTE 37, #61356-050","DANBURY","CT","06811","1128a3","20120520","00000000","00000000", -"DICKERSON","NATASHA","DENISE ",,"HOSPITAL","NURSE/NURSES AIDE",,"0000000000","19690708","1436-A FT JACKSON BLVD","LUGOFF","SC","29078","1128a2","20020320","00000000","00000000", -"DIONNE","EARL","H ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19680205","1 ALDEN PLACE","VERGENNES","VT","05491","1128b4","20101220","00000000","00000000", -"DOLPH","WILLIAM","W JR ",,"MEDICAL PRACTICE, MD","GENERAL PRACTICE/FP",,"0000000000","19460611","2941 BIRCH RD","HOMEWOOD","IL","60430","1128b4","20010220","00000000","00000000", -"DORSEY","STEPHEN","E ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19670510","77 POND AVE, APT 1101","BROOKLINE","ME","02445","1128b4","20091220","00000000","00000000", -"DRESSEL","TAMMY","A ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19700416","9222 ORBITAN RD","BALTIMORE","MD","21234","1128b4","20030120","00000000","00000000", -"DUKE","MARY","ANN ",,"MEDICAL PRACTICE, MD","OPHTHALMOLOGY","E22205","0000000000","19610606","10220 DEMOCRACY BOULEVARD","POTOMAC","MD","20854","1128b4","20051020","00000000","00000000", -"DURHAM","NICOLA"," ",,"STATE/LOCAL/TRIBAL A","EMPLOYEE",,"0000000000","19661223","352 COLUMBIA STREET","HUDSON","NY","12534","1128a1","20110519","00000000","00000000", -"EBREO","MILAGROS","TAGORDA ",,"DOCTOR(MD, DO)","GENERAL PRACTICE","E93373","1376552117","19400928","GLEN RAY RD, BOX A, #43163-039","ALDERSON","WV","24910","1128a4","20130820","00000000","00000000", -"EDWARDS-BANKS","CAROL","C ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19510405","P O BOX 446","BAYSIDE","CA","95524","1128b4","20050119","00000000","00000000", -"ELLENBERGER","LORI","M ",,"CHIROPRACTIC PRACT","CHIROPRACTIC",,"0000000000","19640606","15005 WASHINGTON ST","RIVERSIDE","CA","92506","1128b14","20000518","00000000","00000000", -"EMIG","DENISE","I ",,"MEDICAL PRACTICE, MD","NURSE/NURSES AIDE",,"0000000000","19680611","6022 PINEWOOD DRIVE","PALM BAY","FL","32905","1128a2","19910906","00000000","00000000", -"ESCAJEDA","RICHARD","M ",,"MEDICAL PRACTICE, MD","FAMILY PRACTICE",,"0000000000","19300130","2266 ALBATROSS STREET #B","SAN DIEGO","CA","92101","1128b4","20060518","00000000","00000000", -"EUERLE","NANCY"," ",,"PRIVATE CIT/ENTITY","HEALTH CARE AIDE",,"0000000000","19450301","455 6TH STREET","NEWPORT","MN","55055","1128a2","20020120","00000000","00000000", -"FADOJUTIMI","OLUFUNKE","IBIYEMI ",,"BUS OWNER/EXEC","DME - POWER VEHICLES",,"0000000000","19720225","P O BOX 1500, #64839-112","LOS ANGELES","CA","90053","1128a1","20151020","00000000","00000000", -"FAROOQI","WAQAR","ALI ",,"MEDICAL PRACTICE, MD","GENERAL PRACTICE",,"0000000000","19641112","STANDART WOODS APTS A-1","AUBURN","NY","13021","1128b4","20030520","00000000","00000000", -"FELIX","VICTORIA","LYNN ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19710802","3030 ELMSIDE DRIVE, APT 5","HOUSTON","TX","77042","1128b4","20120820","00000000","00000000", -"FERRANTE","STEVEN","MICHAEL JR",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19610802","22 PEMBERTON STREET","REVERE","MA","02151","1128b4","20130919","00000000","00000000", -"FINE","JAMES","LEE ",,"NURSING FIRM","NURSE/NURSES AIDE",,"0000000000","19521230","11 WYCOMA WAY B","WALTHMAN","MA","02453","1128b4","20020919","00000000","00000000", -"FLAHERTY","CAROL","M ",,"SKILLED NURSING FAC","NURSE/NURSES AIDE",,"0000000000","19550217","6 HAWTHORNE RD","NORTON","MA","02766","1128b4","19980319","00000000","00000000", -"FLUCK","DENNIS","W ",,"OSTEOPATHIC PRAC","OSTEOPATHY",,"0000000000","19560328","9331 HAMILTON BLVD","BREINIGSVILLE","PA","18031","1128b14","20030919","00000000","00000000", -"FORNCROOK","DONALD","DEAN ",,"THERAPIST",,,"0000000000","19390829","95 N E 41ST ST","OAKLAND","FL","33334","1128b4","20031120","00000000","00000000", -"FOX","WILLIAM","JR ",,"SKILLED NURSING FAC","NURSE/NURSES AIDE",,"0000000000","19400320","15119 GEORGIA RD","WOODBRIDGE","VA","22191","1128b4","20000620","00000000","00000000", -"FRAZIER","TRAVIS"," ",,"COUNSELING CENTER","OWNER/OPERATOR",,"0000000000","19510418","2705 HAYDEN DR","E POINT","GA","30344","1128a1","19991220","00000000","00000000", -"FRIERSON","TOYE","EUGENE ",,"INDIVIDUAL (UNAFFILI","NO KNOWN AFFILIATION",,"0000000000","19650103","544 S WINERY AVE, APT 103","FRESNO","CA","93727","1128a1","20130418","00000000","00000000", -"FUTRELL","PATRICIA","ANN ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19560325","P O BOX 393","BOKCHITO","OK","74726","1128a2","20081020","00000000","00000000", -"GALLO","MILAGROS"," ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19450222","8684 19TH AVENUE, #2","BROOKLYN","NY","11214","1128a1","20101020","00000000","00000000", -"GARCIA","LAURIE","M ",,"HOSPITAL","NURSE/NURSES AIDE",,"0000000000","19520804","1405 TOEHEE LANE","PARADISE","CA","95969","1128b4","20050420","00000000","00000000", -"GARRETT","MELISSA","LOU ",,"INTER CARE FACILITY","ACCOUNT/BOOKKPR/AUDI",,"0000000000","19571030","650 N MURRAY BLVD, APT 136","COLORADO SPRINGS","CO","80915","1128a1","20030919","00000000","00000000", -"GAZAILLE","MARIE","ROSE ",,"EMPLOYEE - PRIVATE S","PERSONAL CARE PROVID",,"0000000000","19810928","238 N MONROE STREET","BUTLER","PA","16001","1128a1","20160420","00000000","00000000", -"GESAMAN","JUDITH","ANN ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19620513","912 O NW STREET","MIAMI","OK","74354","1128b4","20160420","00000000","00000000", -"GILBERT","CHRISTINA"," ",,"SKILLED NURSING FAC","NURSE/NURSES AIDE",,"0000000000","19590131","16 DOVER AVE","MASSAPEQUA","NY","11758","1128b4","20020820","00000000","00000000", -"GIRARD","REBECCA","A ",,"EMPLOYEE - PRIVATE S","ASSISTED LIVING FACI",,"0000000000","19770924","93 GROVE STREET, APT C","ADAMS","MA","01220","1128a3","20160218","00000000","00000000", -"GODWIN","CARLA","SUZANNE ",,"NURSING FIRM","NURSE/NURSES AIDE",,"0000000000","19760326","2168 DENTON RD, APT L-82","DOTHAN","AL","36303","1128b4","20050620","00000000","00000000", -"GOMEZ","ROBERT"," ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19760907","2696 W 15TH STREET","YUMA","AZ","85364","1128b4","20020220","00000000","00000000", -"GONZALEZ","WALDO"," ",,"BUS OWNER/EXEC","INFUSION THERAPY CLI",,"0000000000","19711116","P O BOX 699","ESTILL","SC","29918","1128a1","20150520","00000000","00000000", -"GORRIN","MAIKEL"," ",,"BUS OWNER/EXEC","DME - GENERAL",,"0000000000","19791018","P O BOX 019120, #95023-004","MIAMI","FL","33101","1128a1","20120320","00000000","00000000", -"GRANT","TERRY","E ",,"DENTAL PRACTICE","DENTIST","U59205","0000000000","19571130","359 PENNSYLVANIA AVE","FREEPORT","NY","11520","1128b14","20010118","00000000","00000000", -"GREEN","MARK","D ",,"MEDICAL PRACTICE, MD","PSYCHIATRY","B76834","0000000000","19510407","510 COMMONWEALTH AVE, #35","BOSTON","MA","22152","1128b4","19971120","00000000","00000000", -"GRESHAM","PENNI","NICOLE WILKINS ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19840124","111 PISGAH COURT","JACKSONVILLE","NC","28546","1128b4","20110920","00000000","00000000", -"GRONAU","SHAWN","ALEXIS DORTHEA ",,"INDIVIDUAL (UNAFFILI","NO KNOWN AFFILIATION",,"0000000000","19850607","7015 W 56TH STREET, APT 3","SIOUX FALLS","SD","57106","1128a1","20130820","00000000","00000000", -"GUINN","LISA","JEANNE ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19620306","2809 1/2 SOUTH PRICE","SPRINGFIELD","IL","62704","1128b4","20041118","00000000","00000000", -"GWILLIAM","ALFRED","HANS ",,"THERAPIST",,,"0000000000","19680308","12105 MARSHALL ST","CULVER CITY","CA","90230","1128b4","20040219","00000000","00000000", -"HALE","GARRY","L ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19670330","606 ESTES STREET","SMITHVILLE","TN","37166","1128b4","20040318","00000000","00000000", -"HAMBIDGE","WILLIAM","R ",,"MEDICAL PRACTICE, MD","GENERAL PRACTICE/FP",,"0000000000","19440119","801 PINETREE DRIVE","NEW BERN","NC","28562","1128a2","19970602","00000000","00000000", -"HANEY","KANDY","K ",,"HOME HEALTH AGENCY","EMPLOYEE",,"0000000000","19750428","1708 3RD STREET","GREAT BEND","KS","67530","1128a3","20030619","00000000","00000000", -"HARDRICK","CARRIE","RUTH ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19770502","P O BOX 312","COTTONWOOD","AL","36320","1128b4","20010719","00000000","00000000", -"HARRIS","BRENDA","FRANKLIN ",,"THERAPIST",,,"0000000000","19461017","P O BOX 27137, #25922-053","FORT WORTH","TX","76127","1128a1","20080120","00000000","00000000", -"HARRY-BOUMA","TINA"," ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19661207","405 A CITIZEN STREET","BAY ST LOUIS","MS","39520","1128b4","20130418","00000000","00000000", -"HASSINGER","DAWN","ALECE ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19560806","531 VERNON AVENUE","SIKESTON","MO","63801","1128b4","20100318","00000000","00000000", -"HAYES","EMMA","MALAZARTE ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19500324","8407 N 51ST DRIVE","GLENDALE","AZ","85302","1128b4","20100920","00000000","00000000", -"HEFFELFINGER","ARTHUR","LEROY JR",,"IND- LIC HC SERV PRO","EMERGENCY MED TECH",,"0000000000","19460224","50 CROSSROADS DR, #3006688","SHELBY","MT","59474","1128b4","20131219","00000000","00000000", -"HENDRICKSON","THEODORE","H ",,"MEDICAL PRACTICE, MD","INTERNAL MEDICINE","B38664","0000000000","19540425","93 DENISE TERRRACE","FAIRFIELD","CT","06430","1128b4","19940901","00000000","00000000", -"HERNANDEZ","DAVEL"," ",,"DME COMPANY","OWNER/OPERATOR",,"0000000000","19780417","110 RABY AVE, #79470-004","PENSACOLA","FL","32509","1128a1","20100420","00000000","00000000", -"HERSEY","SARAH","MELISSA ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"1013290758","19811030","113 COVINGTON STREET","WADESBORO","NC","28170","1128b4","20161220","00000000","00000000", -"HIGGINS","JAYME","M ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19760301","514 JEFFERSON STREET","OSHKOSH","WI","54901","1128a3","20100420","00000000","00000000", -"HILPERT","WERNER"," ",,"LABORATORY","OWNER/OPERATOR",,"0000000000","19360410","28 FOREST HILL DRIVE","FLEMINGTON","NJ","08822","1128a1","19930304","00000000","00000000", -"HODGES","REBECCA","CAROL ",,"REHAB FACILITY - GEN","NURSE/NURSES AIDE",,"0000000000","19620907","3013 HEMLOCK DR","SAN ANGELO","TX","76904","1128b4","20010920","00000000","00000000", -"HOLLIER","SUSAN","DENISE ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19640125","3101 BRAGG STREET","BOSSIER CITY","LA","71115","1128b4","20031218","00000000","00000000", -"HOOKEY","VICKI","A ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19680212","458 GLOVER HILL RD","JASPER","TN","37347","1128b4","20080520","00000000","00000000", -"HOSTY","ROBERT"," ",,"DOCTOR(MD, DO)","GYN/OBS","B17746","1790826899","19440924","996 HOWARD COURT","BALDWIN","NY","11510","1128b4","20130520","00000000","00000000", -"HOYER","ROBERT","WILLIAM ",,"BUS OWNER/EXEC","DME - OXYGEN",,"0000000000","19571203","6450 VALLEY CHASE COURT","GALENA","OH","43021","1128a1","20130820","00000000","00000000", -"HUGHES","HADDIE","LOUISE ",,"EMPLOYEE - PRIVATE S","PODIATRY PRACTICE",,"0000000000","19661116","6900 PLAINVIEW AVE","SAINT LOUIS","MO","63109","1128a1","20140120","00000000","00000000", -"HUNTLEY","CHARLOTTE","ANN ",,"SKILLED NURSING FAC","NURSE/NURSES AIDE",,"0000000000","19541001","3122 FIRST ST","DORSET","OH","44032","1128a2","19980820","00000000","00000000", -"HYSON","KELLY","NOEL ",,"ADULT HOME","BUSINESS MANAGER",,"0000000000","19671216","5055 BRIARWOOD CIRCLE N","KEIZER","OR","97303","1128a3","20110620","00000000","00000000", -"IORIO","CHRISTINE","M ",,"IND- LIC HC SERV PRO","PHARMACY TECHNICIAN",,"0000000000","19800906","1075 MAIN STREET, APT 2","FITCHBURG","MA","01420","1128a3","20160519","00000000","00000000", -"JACKSON","CINDY","LEANN ",,"NURSING FIRM","NURSE/NURSES AIDE",,"0000000000","19651016","P O BOX 2613","GADSDEN","AL","35903","1128b4","20040819","00000000","00000000", -"JACOBS","LINDA","D ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19620619","11891 NEW ZION ROAD","CHRISTIANA","TN","37037","1128a4","20101220","00000000","00000000", -"JARDON","LEONARD","A ",,"THERAPIST","HEALTH CARE AIDE",,"0000000000","19430906","2219 W OLIVE AVENUE","BURBANK","CA","91506","1128b4","20000518","00000000","00000000", -"JENKINS","ZENNA","ELAINE ",,"NURSING FIRM","NURSE/NURSES AIDE",,"0000000000","19610829","3345 BERRY DRIVE","BESSEMER","AL","35023","1128b4","20050119","00000000","00000000", -"JOHNSON","AMANDA"," ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19800104","3601 OLD ASHBROOK DR","CORINTH","MS","38834","1128b4","20131219","00000000","00000000", -"JOHNSON","JUSTINE","MARIE ",,"INDIVIDUAL (UNAFFILI","NO KNOWN AFFILIATION",,"0000000000","19890721","4507 E 25TH STREET","TUCSON","AZ","85711","1128a1","20150920","00000000","00000000", -"JOHNSON","SUSAN","J ",,"HOSPITAL","NURSE/NURSES AIDE",,"0000000000","19550528","4 FULTON ST, BOX 32","HORNELL","NY","14843","1128b4","20010820","00000000","00000000", -"JONES","DIANE","MARIE ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19581127","C/O 20421 SHERIDAN STREET","FT LAUDERDALE","FL","33332","1128a4","20051020","00000000","00000000", -"JONES","SANDRA","KAY ",,"SKILLED NURSING FAC","NURSE/NURSES AIDE",,"0000000000","19521005","P O BOX 948","GROVETON","TX","75845","1128a1","19980618","00000000","00000000", -"JOVER","RANDY","ANTONIO ",,"INDIVIDUAL (UNAFFILI","NO KNOWN AFFILIATION",,"0000000000","19621224","10445 ARTESIA BLVD, 38A","BELLFLOWER","CA","90706","1128a1","20120119","00000000","00000000", -"KALFUS","JOAN"," ",,"IND- LIC HC SERV PRO","THERAPIST",,"0000000000","19370125","952 NE 199 ST, APT 110","MIAMI","FL","33179","1128a1","20140420","00000000","00000000", -"KASKIE","STEPHEN","J ",,"DOCTOR(MD, DO)","GENERAL PRACTICE","D53987","1831264431","19500713","P O BOX 1348","BONITA SPRINGS","FL","34133","1128b4","20131120","00000000","00000000", -"KEENER","MELINDA","K ",,"IND- LIC HC SERV PRO","DENTAL HYGIENIST",,"0000000000","19781207","237 MIRANDY ROAD","ALGOOD","TN","38506","1128b4","20110818","00000000","00000000", -"KENDRICK","KATHERINE"," ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19601121","1509 SOUTH WEST, #220","SPRINGDALE","AR","72764","1128b4","19890613","00000000","00000000", -"KEYSER","CYNTHIA","JEAN ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19510322","308 AMELAND ST","ELLENTON","FL","34222","1128b4","20070620","00000000","00000000", -"KIM","NIGEL","JASON ",,"IND- LIC HC SERV PRO","DENTIST",,"1588870117","19750617","261 5TH AVENUE, APT 2R","BROOKLYN","NY","11215","1128a1","20130418","00000000","00000000", -"KINNEY","ANGELA","RACHEL ",,"SKILLED NURSING FAC","NURSE/NURSES AIDE",,"0000000000","19680926","3821 GIBSON STREET, APT C","NEW ORLEANS","LA","70122","1128a1","20050920","00000000","00000000", -"KLEIN","STEVEN","DANIEL ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19790319","324 SOUTH 10TH STREET","PARIS","AR","72855","1128b4","20080619","00000000","00000000", -"KOCH","HOWARD","FREDERICK ",,"MEDICAL PRACTICE, MD","GENERAL PRACTICE/FP","B89756","0000000000","19350124","113 LINKSIDE DRIVE","TAYLORS","SC","29687","1128b4","19920204","00000000","00000000", -"KOTANSKY","MICHELLE"," ",,"CLINIC","CLERK/OTHER CLERICAL",,"0000000000","19650512","632 N CHURCH ST","HAZLETON","PA","18201","1128a3","20020220","00000000","00000000", -"KROL","GERALD"," ",,"MEDICAL PRACTICE, MD","FAMILY PRACTICE",,"0000000000","19560224","2655 W 98TH PLACE","EVERGREEN PARK","IL","60805","1128b4","20051120","00000000","00000000", -"KWON","OHUN"," ",,"CHIROPRACTIC PRACT","CHIROPRACTIC","U73032","0000000000","19660223","19123 BLOOMFIELD AVE","CERRITOS","CA","90703","1128a3","20080619","00000000","00000000", -"LAMAZARES","FERNANDO","LUIS ",,"IND- LIC HC SERV PRO","THERAPIST",,"0000000000","19650626","7504 SW 105TH PLACE","MIAMI","FL","33173","1128a3","20150618","00000000","00000000", -"LANGDON","ANN","M ",,"HOME HEALTH AGENCY","HEALTH CARE AIDE",,"0000000000","19620606","571 BROOKWOOD AVE","HAMILTON","OH","45013","1128a1","20040520","00000000","00000000", -"LARSON","SUSAN","HUMPHREY ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19540726","11138 E BLUE SKY DR","SCOTTSDALE","AZ","85255","1128b4","20030220","00000000","00000000", -"LAWSON","CAROL","LYNN ",,"HOSPITAL","NURSE/NURSES AIDE",,"0000000000","19660124","1912 LEXINGTON DRIVE","TERRE HAUTE","IN","47802","1128b4","20040318","00000000","00000000", -"LEE","ANITA","L ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19511002","3500 CLAYON PLACE","BIRMINGHAM","AL","35216","1128b4","20140820","00000000","00000000", -"LEGG","DIANNE"," ",,"SKILLED NURSING FAC","EMPLOYEE",,"0000000000","19590612","389 CRESTWOOD LANE","AVINGER","TX","75630","1128a3","20100617","00000000","00000000", -"LEONHARDT","TANYA","LYNN ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19800914","28358 COUNTY RD 129","PONSFORD","MN","56575","1128b5","20091220","00000000","00000000", -"LEWIS","DARREL","J ",,"DENTAL PRACTICE","DENTIST",,"0000000000","19350619","136 ONEIDA STREET, #4","PITTSBURGH","PA","00000","1128a1","19890103","00000000","00000000", -"LIGHTFOOT","ARTHUR","S ",,"MEDICAL PRACTICE, MD","GENERAL PRACTICE/FP","A77088","0000000000","19200113","2000 EAST BRISTOL ROAD","BURTON","MI","48529","1128b4","19900301","00000000","00000000", -"LIPSITZ","FAYNE"," ",,"LABORATORY","TECHNICIAN",,"0000000000","19411219","303 AVON ST","PHILADELPHIA","PA","19116","1128a1","19970803","00000000","00000000", -"LOCKHOFF","RUTH","ANN ",,"HOSPITAL","NURSE/NURSES AIDE",,"0000000000","19691112","9276 W 98TH PLACE","WESTMINSTER","CO","80021","1128b4","20060920","00000000","00000000", -"LOOMIS","KATHERINE","DIANE ",,"INDIVIDUAL (UNAFFILI","NO KNOWN AFFILIATION",,"0000000000","19901022","613 PIERSON STREET","WARREN","AR","71671","1128a2","20160420","00000000","00000000", -"LOUTHIAN","EDDIE","WAYNE SR",,"EMPLOYEE - PRIVATE S","AMBULANCE COMPANY",,"0000000000","19520209","P O BOX 999, #16434-084","BUTNER","NC","27509","1128a1 ","20131219","00000000","00000000", -"LUCE","GENE","CLAYTON JR ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19440905","6839 CELES MEADOW DR","CONVERSE","TX","78109","1128b4","20071120","00000000","00000000", -"LY","HUNG","THIEN ",,"MEDICAL PRACTICE, MD","GENERAL PRACTICE/FP","H21640","0000000000","19580101","55 E DEERWOOD RD, #95","SAVANNAH","GA","31410","1128b14","20010920","00000000","00000000", -"MACK","KAREN","THURSTON ",,"SKILLED NURSING FAC","NURSE/NURSES AIDE",,"0000000000","19440108","2449 EAST 115TH ST","LOS ANGELES","CA","90059","1128b4","19980618","00000000","00000000", -"MAHONEY","ROBERT"," ",,"PHARMACY","EMPLOYEE",,"0000000000","19391110","270 VALLEY STREAM LANE","WAYNE","PA","19087","1128a1","19891205","00000000","00000000", -"MANCUSO","JEROME","DANIEL ",,"IND- LIC HC SERV PRO","DENTIST","U80260","1851515217","19680415","P O BOX 8500, #10943-046","FLORENCE","CO","81226","1128a4","20130120","00000000","00000000", -"MARBLE","NANCY","OBERG ",,"SKILLED NURSING FAC","NURSE/NURSES AIDE",,"0000000000","19460615","3316 E AIRE LIBRE AVE","PHOENIX","AZ","85032","1128b4","20031020","00000000","00000000", -"MARRERO","NERY"," ",,"CLINIC","CLERK/OTHER CLERICAL",,"0000000000","19670704","1221 SW 122ND AVE, APT 416","MIAMI","FL","33184","1128a1","20060420","00000000","00000000", -"MARTIN","MONTE","LLOYD ",,"CHIROPRACTIC PRACT","CHIROPRACTIC",,"0000000000","19540509","1116 SEMANSKI ST","ENUMCLAW","WA","98022","1128b14","20000820","00000000","00000000", -"MARTIN-FREDERICK","CHARMAINE","BEATRICE ",,"HOME HEALTH AGENCY","NURSE/NURSES AIDE",,"0000000000","19750721","257 EAST AVE Q-10, #7","PALMDALE","CA","93550","1128a3","20050220","00000000","00000000", -"MATHES","MEREDITH","LYNN ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19720518","316 W PINE ST","COLUMBUS","KS","66725","1128b4","20081020","00000000","00000000", -"MAXWELL-DEAN","CHARLIESE","ELLEN ",,"MEDICAL PRACTICE, MD","GENERAL PRACTICE/FP",,"0000000000","19540814","3619 GRAMERCY RD","GREENSBORO","NC","27410","1128b14","19970807","00000000","00000000", -"MCARTHUR","NEIL","PHILIP ",,"BILLING SERVICE CO","BUSINESS MANAGER",,"0000000000","19510414","3126 BIRD ROCK RD","PEBBLE BEACH","CA","93953","1128a1","20071018","00000000","00000000", -"MCCLOSKEY","DEBRA"," ",,"THERAPIST",,,"0000000000","19650215","717 SAUNDERS AVE","SCHENECTADY","NY","12302","1128a1","20050620","00000000","00000000", -"MCDANIEL","DONNIE","EARL ",,"DME COMPANY","SALES/MARKET/RETAIL",,"0000000000","19500603","495 HIGHWAY 203","SAVANNAH","TN","38372","1128a1","19970703","00000000","00000000", -"MCGHEE","ALONZO","BERNARD ",,"EMPLOYEE - PRIVATE S","HOME HEALTH AGENCY",,"0000000000","19890416","9 SAN MIGUEL DRIVE, APT M","SAINT CHARLES","MO","63303","1128a1","20150618","00000000","00000000", -"MCKENZIE","THOMAS","ALDIN ",,"PHYSICIAN ASSISTANT",,,"0000000000","19550531","P O BOX 26010, #81226-004","BEAUMONT","TX","77720","1128a1","20100819","00000000","00000000", -"MCNAUGHTON","GEORGE","SCOTT ",,"PRIVATE CIT/ENTITY",,,"0000000000","19420819","700 VETERANS LANE","BUFFALO","WY","82834","1128a1","20080420","00000000","00000000", -"MEDRUD","DAVID","E ",,"COUNSELING CENTER","COUNSELOR",,"0000000000","19530603","1625 ADKINSON WAY","LONGMONT","CO","80503","1128b4","20030720","00000000","00000000", -"MENDEZ","LEONARDO"," ",,"CLINIC","EMPLOYEE",,"0000000000","19740226","27829 BREAKERS DR","WESLEY CHAPEL","FL","33543","1128a1","20100318","00000000","00000000", -"MESNARD","JUDITH","ANN ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19380905","10340 PUTNEY CURL, #204","THORNTON","CO","80229","1128b4","20121018","00000000","00000000", -"MIKOS","RONALD","ALAN ",,"PODIATRY PRACTICE","PODIATRY","T37829","0000000000","19481210","P O BOX 12015, #20716-424","TERRE HAUTE","IN","47801","1128a1","20070419","00000000","00000000", -"MILLER","LLOYD","L ",,"MEDICAL PRACTICE, MD","GENERAL PRACTICE/FP","A74979","0000000000","19540802","P O BOX 293","SOUTHFIELD","MI","48037","1128b3","19890209","00000000","00000000", -"MILUM","RONALD","EDWARD ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19580304","4565 LYON AVENUE","RIVERSIDE","CA","92505","1128b4","20081120","00000000","00000000", -"MITCHELL","JOSHUA","D ",,"PHARMACY","TECHNICIAN",,"0000000000","19821105","20 BLAINE AVE","AUGUSTA","ME","04330","1128b4","20061019","00000000","00000000", -"MOKARZEL","KATHRYN"," ",,"HOSPITAL","NURSE/NURSES AIDE",,"0000000000","19521211","1411 GRACY FARMS LN, APT 123","AUSTIN","TX","78758","1128b4","20050818","00000000","00000000", -"MONTGOMERY","VIRGINIA","K ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19560626","P O BOX 333","PEMBROKE","VA","24136","1128b4","20070320","00000000","00000000", -"MOORE","OLIVIA","FERN ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19540128","904 FM 686, #01663753","DAYTON","TX","77535","1128a3","20110720","00000000","00000000", -"MORENO","ROGER"," ",,"DME COMPANY","OWNER/OPERATOR",,"0000000000","19730923","P O BOX 019120, #82235-004","MIAMI","FL","33101","1128a1","20110620","00000000","00000000", -"MORRISON","JOHN","T ",,"PODIATRY PRACTICE","PODIATRY","T02184","0000000000","19480117","1243 BEACH DR","PORT ORCHARD","WA","98366","1128b14","19970406","00000000","00000000", -"MOUNTS","CHARLOTTE","ANN ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19520818","415 N BEAUREGARD ST, APT 23","ALVIN","TX","77511","1128b4","20090319","00000000","00000000", -"MUNOZ","CYNTHIA","LOU ",,"SKILLED NURSING FAC","NURSE/NURSES AIDE",,"0000000000","19610305","740 W ELM ST, #264","PHOENIX","AZ","85013","1128a1","20050519","00000000","00000000", -"MUSA","ELIAS"," ",,"MEDICAL PRACTICE, MD","GENERAL PRACTICE/FP","D86488","0000000000","19260208","1386 S W 22ND TERRACE","MIAMI","FL","33145","1128a1","19890310","00000000","00000000", -"NANCE","PAULINE","ELLIE MAY ",,"STATE/LOCAL/TRIBAL A","HEALTH CARE AIDE",,"0000000000","19670302","445 COMMERCIAL AVE, APT 6","S SAN FRANCISCO","CA","94080","1128a1","20070118","00000000","00000000", -"NEELEY","MICHAEL","DUANE ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19490328","31327 HALLWOOD COURT","MENIFEE","CA","92584","1128b4","20040219","00000000","00000000", -"NEUMANN","GREGORY","JOHN ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19460926","1955 JACKSON ST","SAN FRANCICO","CA","94109","1128b4","20070220","00000000","00000000", -"NGUYEN","THAO","T P ",,"PHARMACY","PHARMACIST",,"0000000000","19570901","1983 NORTH ORANGE GROVE","POMONA","CA","91767","1128a1","19850508","00000000","00000000", -"NIXON","ALLISON","BETH BEASLEY ",,"HOSPITAL","NURSE/NURSES AIDE",,"0000000000","19711029","181 COUNTRY CLUB ESTATES","ASHDOWN","AR","71822","1128b4","20050818","00000000","00000000", -"NORTON","WYMAN","H ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19570917","1434 NEW HUTCHINSON MILL","LAGRANGE","GA","30240","1128b4","20000620","00000000","00000000", -"OBAS","JULIUS","OZIEGB ",,"SKILLED NURSING FAC","NURSE/NURSES AIDE",,"0000000000","19470711","P O BOX 855","BOSTON","MA","02120","1128a2","19971218","00000000","00000000", -"OGBONNA","CHINONSO","NDIDI ",,"ADULT HOME","HEALTH CARE AIDE",,"0000000000","19810525","36 HERALDRY CT","WINDSOR MILL","MD","21244","1128a2","20040318","00000000","00000000", -"OLIVERA","IRELA"," ",,"HOME HEALTH AGENCY","EMPLOYEE",,"0000000000","19430706","201 N W 72ND AVE","MIAMI","FL","33126","1128a1","20000820","00000000","00000000", -"ORATE","ANTONIA","P ",,"BUS OWNER/EXEC","ADULT HOME",,"0000000000","19361117","434 12TH PLACE N","EDMONDS","WA","98020","1128b4","20121220","00000000","00000000", -"OSORIO","ALEJANDRA"," ",,"INDIVIDUAL (UNAFFILI","NO KNOWN AFFILIATION",,"0000000000","19750424","169 S BURLINGTON AVE, APT 13","LOS ANGELES","CA","90057","1128a1","20131219","00000000","00000000", -"OZENBAUGH","SUSAN"," ",,"HOSPITAL","NURSE/NURSES AIDE",,"0000000000","19480608","P O BOX 562","COTTONWOOD","CA","96022","1128b4","20000119","00000000","00000000", -"PALMER","JOEL","W JR ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19750607","17 MALLISON FALLS RD, #103648","WINDHAM","ME","04062","1128a3","20081020","00000000","00000000", -"PARKER","CARLISS","DENISE ",,"SKILLED NURSING FAC","EMPLOYEE",,"0000000000","19550326","6209 BLACKBERRY ST","BATON ROUGE","LA","70806","1128a2","20090219","00000000","00000000", -"PARTOW","TEREZA"," ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19680728","22360 CASS AVENUE","WOODLAND HILLS","CA","91364","1128a1","20100218","00000000","00000000", -"PATTERSON","DOROTHY","S ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19470128","5120 RAINTREE CIRCLE","CULVER CITY","CA","90230","1128b4","19890515","00000000","00000000", -"PEAK","SUN","O ",,"HOME HEALTH AGENCY","NURSE/NURSES AIDE",,"0000000000","19510215","2940 N W COOPER POINT RD","OLYMPIA","WA","98502","1128a2","20011018","00000000","00000000", -"PENN","DENNIS","F ",,"DENTAL PRACTICE","DENTIST",,"0000000000","19530120","202 VIA VILLENA","ENCINITAS","CA","92024","1128b4","19910530","00000000","00000000", -"PEREZ","SERGIO"," ",,"DME COMPANY","OWNER/OPERATOR",,"0000000000","19680917","4207 ALBEZA COURT","RIO GRANDE CITY","TX","78582","1128a1","20080120","00000000","00000000", -"PETERS","ALONZO","III ",,"MEDICAL PRACTICE, MD","FAMILY PRACTICE","C20455","0000000000","19520616","P O BOX 14089","HOUSTON","TX","77221","1128b4","20051120","00000000","00000000", -"PHAM","VAN","HOANG MONG ",,"HOSPITAL","EMPLOYEE",,"0000000000",,"272 SOUTH ROBLES","PASADENA","CA","91101","1128a1","19850906","00000000","00000000", -"PICKETT","PATRICIA","G ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19630821","1372 WRENWOOD","MEMPHIS","TN","38122","1128b4","20130820","00000000","00000000", -"PIPER","TRACI","L ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19610608","509 PLAZA DRIVE, APT 10","MENDOTA","IL","61342","1128b5","20160218","00000000","00000000", -"POGUE","JAMES","H ",,"DOCTOR(MD, DO)","GENERAL PRACTICE","G66180","1245227891","19681218","5550 FRANKLIN PIKE, STE 100","NASHVILLE","TN","37220","1128b4","20131020","00000000","00000000", -"PORTALES","RAMON"," ",,"MEDICAL PRACTICE, MD","GENERAL PRACTICE","A83744","0000000000","19290216","1336 PASEO ISABELLA","SAN DIMAS","CA","91773","1128b4","20030420","00000000","00000000", -"POWERS","GEORGE"," ",,"DME COMPANY","OWNER/OPERATOR",,"0000000000","19440930","6401 KENWATER PLACE, FCI","WEST HILLS","CA","91307","1128a1","20020418","00000000","00000000", -"PRICE","VICKI","M ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19671010","70 WILSON PLACE","FREEPORT","NY","11520","1128a2","20151119","00000000","00000000", -"PUGNER","HARRY"," ",,"DME COMPANY","DME - HEARING AID",,"0000000000","19470623","2 PARK STREET","BREWSTER","NY","10509","1128a1","19930802","00000000","00000000", -"QUINONES","CATHERINE"," ",,"ADULT HOME","HEALTH CARE AIDE",,"0000000000","19750114","813 LOUISIANA, S E, #A","ALBURQUERQUE","NM","87108","1128b1","20000119","00000000","00000000", -"RAMCHAND","WENDY","DETTE ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19800201","254 FRYE PLACE","EAGLE SPRINGS","NC","27242","1128b4","20130820","00000000","00000000", -"RANKIN","KATHY","J ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19770911","217 JAMES RUSSELL RD","WHITWELL","TN","37397","1128b4","20091220","00000000","00000000", -"RAYMOND","MAYKOL"," ",,"INDIVIDUAL (UNAFFILI","NO KNOWN AFFILIATION",,"0000000000","19811220","14902 SW 36TH TERRFACE","MIAMI","FL","33185","1128a1","20140720","00000000","00000000", -"REED","ROBERT","WILLIAM ",,"CHIROPRACTIC PRACT","CHIROPRACTIC","U11029","0000000000","19610507","J86205, P O BOX 4000","VACAVILLE","CA","95696","1128b4","20000920","00000000","00000000", -"REMALEY","DANA","LEA ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19740909","709 FERNE DRIVE","KITTANNING","PA","16201","1128b4","20170518","00000000","00000000", -"REYNOLDS","MICHAEL","E ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19510731","2116 STRAND ST, APT 202","GALVESTON","TX","77550","1128b4","20100120","00000000","00000000", -"RICHARDSON","DELORES"," ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19391127","613 CLEAR LAKE AVE","WEST PALM BEACH","FL","33401","1128b4","20080520","00000000","00000000", -"RILEY","KACHINA","SU ",,"SKILLED NURSING FAC","ADMINISTRATOR",,"0000000000","19410110","215 14TH ST","HOLLY HILL","FL","32117","1128b4","20021120","00000000","00000000", -"RIVERS","LATOYA"," ",,"PRIVATE CIT/ENTITY","HEALTH CARE AIDE",,"0000000000","19860122","2665 CANNON POINT COURT, APT J","COLUMBUS","OH","43209","1128a1","20110818","00000000","00000000", -"ROBERTSON","CHARLES","A ",,"MEDICAL PRACTICE, MD","GENERAL PRACTICE/FP","A92114","0000000000","19520811","325 VIA LIDO NORD","NEWPORT BEACH","CA","92663","1128b4","19960506","00000000","00000000", -"ROBSON","LAURA","ELLEN ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19590306","4 WINDHAVEN PLACE","ALISO VIEJO","CA","92656","1128b4","20020120","00000000","00000000", -"RODRIGUEZ","MIGUEL"," ",,"BUS OWNER/EXEC","RADIOLOGY FACILITY",,"0000000000","19690102","15330 SW 107TH TERRACE","MIAMI","FL","33187","1128a1","20140520","00000000","00000000", -"ROLDAN","THOMAS"," ",,"SKILLED NURSING FAC","NURSE/NURSES AIDE",,"0000000000","19580424","301 OHIO AVE","PHILLIPSBURG","NJ","08865","1128b4","20010520","00000000","00000000", -"ROSEN","BARBARA","M ",,"PSYCHOLOGIC PRACTICE","PSYCHOLOGY","S04473","0000000000","19450219","541 WATERVIEW DR","CEDARHURST","NY","11516","1128a1","20000320","00000000","00000000", -"ROUDYBUSH","WILLIAM","B ",,"MEDICAL PRACTICE, MD","GENERAL PRACTICE/FP","A00467","0000000000","19181112","329 E 2ND STREET","MUSCATINE","IA","52761","1128b4","19890620","00000000","00000000", -"RUEDA","DARLENE"," ",,"HOME HEALTH AGENCY","NURSE/NURSES AIDE",,"0000000000","19730525","921 CLAY WAY","DENVER","CO","80204","1128b4","19981020","00000000","00000000", -"RUTA","EUGENE"," ",,"CHIROPRACTIC PRACT","CHIROPRACTIC","T90330","0000000000","19610414","189 6TH AVE","LONG BRANCH","NJ","07740","1128a3","20081020","00000000","00000000", -"SAFFOLD","EVELYN","M ",,"PRIVATE CIT/ENTITY",,,"0000000000","19740821","5821 N W 7 AVE, #811","MIAMI","FL","33127","1128a1","20030720","00000000","00000000", -"SAMAYOA","JEFFREY"," ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19810817","P O BOX 1031, #AM8005","TEHACHAPI","CA","93581","1128a2","20130718","00000000","00000000", -"SANDERS","THOMAS"," ",,"MEDICAL PRACTICE, MD","GENERAL PRACTICE/FP",,"0000000000","19591225","7631 BALTIMORE AVE","KANSAS CITY","MO","64114","1128b14","19970401","00000000","00000000", -"SARAIYA","DINESH"," ",,"MEDICAL PRACTICE, MD","PEDIATRICS","D12895","0000000000","19370804","2902 SUNSET AVE, BOX 609","FLOSSMOOR","IL","60422","1128b5","20020320","00000000","00000000", -"SAYLOR","GARY","R ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19500827","2375 BOX ANKLE ROAD","RICHMOND","KY","40475","1128b4","20060518","00000000","00000000", -"SCHLOSSER","TONJA","LYNN ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19671125","103 ESTEVAN DRIVE","BISMARCK","ND","58503","1128b4","20100218","00000000","00000000", -"SCHULZ","RANDY","NOEL ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19570430","16132 XENIA AVENUE","ANDOVER","MN","55304","1128a2","19930913","00000000","00000000", -"SCRUGGS","KAREN","C ",,"PHYSICIAN ASSISTANT",,,"0000000000","19430523","3553 BOSTON RD","LEXINGTON","KY","40503","1128b4","19980720","00000000","00000000", -"SENG","MEALEDEY"," ",,"PHARMACY","OWNER/OPERATOR",,"0000000000","19690315","5530 SAMANTHA AVE","LAKEWOOD","CA","90712","1128a1","20020919","00000000","00000000", -"SHAIKH","MARIE","THERESA ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19570519","14221 NORTH 51ST AVENUE","GLENDALE","AZ","85306","1128b4","20040318","00000000","00000000", -"SHEEHAN","MONICA","ELAINE ",,"SKILLED NURSING FAC","NURSE/NURSES AIDE",,"0000000000","19761011","51 FOREST STREET","WARWICK","RI","02886","1128a2 ","20050818","00000000","00000000", -"SHIELDS","HEATHER"," ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19730502","100 ROLLING ACRES","SLIPPERY ROCK","PA","16057","1128b4","20150520","00000000","00000000", -"SHUMAN","KIMBERLY","FLOYD ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19600602","404 ROGERS ROAD","HINESVILLE","GA","31313","1128a4","20080120","00000000","00000000", -"SIMIEN","VICKIE","D ",,"SKILLED NURSING FAC","NURSE/NURSES AIDE",,"0000000000","19550204","536 A BOOKER T WASHINGTON","LAKE CHARLES","LA","70601","1128a2","20000220","00000000","00000000", -"SINGLETARY","SHERIDAH"," ",,"EMPLOYEE - PRIVATE S","PERSONAL CARE PROVID",,"0000000000","19790529","259 W JOHNSON ST, APT K4","PHILADELPHIA","PA","19144","1128a1","20170119","00000000","00000000", -"SLENTZ","WILLIAM"," ",,"PHARMACY","PHARMACIST",,"0000000000",,"8583 SYLVAN DRIVE","WEST MELBOURNE","FL","32901","1128a1","19870817","00000000","00000000", -"SMITH","CHARLIE","FRANK JR ",,"MEDICAL PRACTICE, MD","GENERAL PRACTICE/FP","A36454","0000000000","19490929","C/O 696 OAK GROVE RD","GRAY","TN","37615","1128a1","19991020","00000000","00000000", -"SMITH","LEE","ALLEN ",,"THERAPIST",,,"0000000000","19590813","14270 GUTHRIE AVE","APPLE VALLEY","MN","55124","1128a3","20020220","00000000","00000000", -"SMITH","TOMAS","GREENE ",,"TRANSPORTATION CO","EMPLOYEE",,"0000000000","19570224","1522 FAIRFAX ST, #5","DENVER","CO","80220","1128a1","19990819","00000000","00000000", -"SOISETH","NOEMI","M ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19520515","14 SHERIDAN ST","JAMAICA PLAIN","MA","02130","1128b4","20111020","00000000","00000000", -"SOTOLONGO","ALBERTO"," ",,"BUS OWNER/EXEC","PHARMACY",,"0000000000","19790406","P O BOX 019120, #99719-004","MIAMI","FL","33101","1128a1","20130320","00000000","00000000", -"SPICKA","JAMIE","LINDSAY ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19860811","2732 INDEPENDENE WAY","GASTONIA","NC","28056","1128b4","20150820","00000000","00000000", -"STALEY","STEVEN"," ",,"TRANSPORTATION CO","EMPLOYEE",,"0000000000","19600101","214 S GRACE DR","W PALM BEACH","FL","33406","1128a1","19971002","00000000","00000000", -"STEDMAN","DENISE","R ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"1346573508","19631212","101 FREY STREET","ROCHESTER","NY","14612","1128a3","20110920","00000000","00000000", -"STEVENS","JAMES","ROBERT JR ",,"SKILLED NURSING FAC","NURSE/NURSES AIDE",,"0000000000","19690208","5522 W CIRCLE Z","TUCSON","AZ","85713","1128a2","19961107","00000000","00000000", -"STIVALI","ALFRED","M III ",,"PODIATRY PRACTICE","PODIATRY",,"0000000000","19640905","944 ASHBURY HEIGHTS COURT","DECATUR","GA","30030","1128b14","19990120","00000000","00000000", -"STRASSMAN","ALLAN"," ",,"TRANSPORTATION CO","OWNER/OPERATOR",,"0000000000","19290525","5 DAWSON LANE","MONROE TOWNSHIP","NJ","08831","1128a1","20000820","00000000","00000000", -"STUNGIS","LAURA","ANN ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19650225","4238 NW 67TH TER","GAINESVILLE","FL","32606","1128b4","20120520","00000000","00000000", -"SUMNER","LAURI","DALE ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"1063720613","19830715","352 CURIA CREEK LANE, APT 12","CAVE CITY","AR","72521","1128b4","20160320","00000000","00000000", -"SWETT","ROBERT","A ",,"CHIROPRACTIC PRACT","CHIROPRACTIC","T87453","0000000000","19320508","56 JENSON RD","BELCHERTOWN","MA","01007","1128b14","19980219","00000000","00000000", -"TAM","MARGARET","ANN ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19471214","5678 WILLOW WOOD COURT","OGDEN","UT","84403","1128b4","19891213","00000000","00000000", -"TAYLOR","CONSWELA","R ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19751205","7701 W HAMPTON AVE, APT 4","MILWAUKEE","WI","53218","1128a3","20101020","00000000","00000000", -"TEEL","TODD","LEE ",,"AMBULANCE COMPANY","EMERGENCY MED TECH",,"0000000000","19671208","133 S ADAMS ST","LARAMIE","WY","82070","1128a1","20091020","00000000","00000000", -"THEDE","TARA"," ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19700814","J ST, BLDG 3000, BX 27066","FT WORTH","TX","76127","1128a4","20010920","00000000","00000000", -"THOMAS","PHILANDIS","DWINE ",,"INDIVIDUAL (UNAFFILI","RECRUITER/CAPPER",,"0000000000","19700517","5610 SHAW ROAD, APT 223","JACKSON","MS","39209","1128a1","20151220","00000000","00000000", -"THOMPSON","SANDRA","DEAN ",,"EMPLOYEE - PRIVATE S","PERSONAL CARE PROVID",,"0000000000","19740517","368 MOUNT AIRY ROAD","RURAL RETREAT","VA","24368","1128a1","20161120","00000000","00000000", -"TINAZA","RICHARD","GABINO ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19410824","2636 N WILSON WAY, #19","STOCKTON","CA","95205","1128b4","20040219","00000000","00000000", -"TOOKER","ERICA","MICHELLE ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19750301","1140 STRIEBEL ROAD","COLUMBUS","OH","43227","1128a4","20150319","00000000","00000000", -"TRAHMS","ROBERT","GEORGE ",,"MEDICAL PRACTICE, MD","PSYCHIATRY","E90701","0000000000","19340515","1 HEALTHCLIFF DR","TIBURON","CA","94920","1128a1","19980618","00000000","00000000", -"TROYA","EDUARDO"," ",,"MEDICAL PRACTICE, MD","GENERAL PRACTICE/FP","B75258","0000000000","19380228","235 HANOVER STREET","FALL RIVER","MA","02720","1128b4","19960630","00000000","00000000", -"TURKSON","FREDERICK","AFFUL ",,"INDIVIDUAL (UNAFFILI","NO KNOWN AFFILIATION",,"0000000000","19740607","1045 HORSEHEAD ROAD","PIKEVILLE","TN","37367","1128a1","20140520","00000000","00000000", -"UCHE","ALEX","I ",,"BUS OWNER/EXEC","DME - GENERAL",,"0000000000","19541115","P O BOX 25","MONTCLAIR","CA","91763","1128a1","20120320","00000000","00000000", -"VACCARO","AUDREY","LYNNE ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19701102","90 ELK CREEK LANE","NATURAL BRIDGE STATI","VA","24579","1128b4","20060920","00000000","00000000", -"VAN PELT","JOHN","C ",,"MEDICAL PRACTICE, MD","PEDIATRICS","B86290","0000000000","19360318","40 CENTRAL ST","ELLSWORTH","ME","04605","1128b4","20060820","00000000","00000000", -"VASQUEZ","CAROLYN","ANN ",,"INDIVIDUAL (UNAFFILI","NO KNOWN AFFILIATION",,"0000000000","19640713","5701 8TH ST, CAMP PARKS, #9566","DUBLIN","CA","94568","1128a1","20120719","00000000","00000000", -"VENTURA","ANTHONY","M ",,"IND- LIC HC SERV PRO","EMERGENCY MED TECH",,"0000000000","19860304","1032 DEERFIELD ST","ONTARIO","CA","91761","1128b4","20150720","00000000","00000000", -"VILLARREAL","REINALDA","R ",,"SKILLED NURSING FAC","NURSE/NURSES AIDE",,"0000000000","19850216","P O BOX 311","COLLBRAN","CO","81624","1128b4","20030820","00000000","00000000", -"VOSS","LAURA","L ",,"NURSING FIRM","EMPLOYEE",,"0000000000","19580709","966 S JOLIET ST","AURORA","CO","80012","1128a1","19910530","00000000","00000000", -"WALDROP","RICHARD","MORRIS ",,"HOSPITAL","NURSE/NURSES AIDE",,"0000000000","19640523","755 CORDOBA ST","SOLEDAD","CA","93960","1128b4","19971120","00000000","00000000", -"WALLEY","BRUCE","E ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19560328","1081 WALLEYE CIRCLE","LAC DU FLAMBEAU","WI","54548","1128a1","20050119","00000000","00000000", -"WARE","ALTON","T ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19540627","3281 E 104TH ST, DOWN","CLEVELAND","OH","44104","1128b4","20000620","00000000","00000000", -"WATHEN","BRUCE","D ",,"PHYSICIAN ASSISTANT",,,"0000000000","19591203","1440 ALLEN","MUSKEGON","MI","49442","1128b4","19950814","00000000","00000000", -"WEAVER","JOAN","MUNSON ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19561009","237 N TRENT RD, N","MERRITT","NC","28556","1128b4","20090120","00000000","00000000", -"WEISS","JODY"," ",,"DME COMPANY","OWNER/OPERATOR",,"0000000000","19660805","5087 W DUNBAR RD","MONROE","MI","48161","1128a1","19981020","00000000","00000000", -"WESLEY","LANA","M ",,"SKILLED NURSING FAC","NURSE/NURSES AIDE",,"0000000000","19581011","1130 E LEDBETTER, #106","DALLAS","TX","75216","1128a2","19940830","00000000","00000000", -"WHIPPER","JACOB","S ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19841214","1067 N LIBBY COURT","DAYTONA BEACH","FL","32117","1128b4","20160420","00000000","00000000", -"WHITEHEAD","ESSIE"," ",,"TRANSPORTATION CO","OWNER/OPERATOR",,"0000000000","19560601","426 PEYTON RD","ATLANTA","GA","30311","1128Aa","19981206","00000000","00000000", -"WILDER","STACEY","ADELE ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19841220","ROUTE 3 BOX 44","BOONEVILLE","KY","41314","1128b4","20110720","00000000","00000000", -"WILLIAMS","DEENA"," ",,"SKILLED NURSING FAC","NURSE/NURSES AIDE",,"0000000000","19620105","2023 WALNUT ST","VICKSBURG","MS","39180","1128a2","19980420","00000000","00000000", -"WILLIAMS","PATRICIA","L ",,"COUNSELING CENTER","SOCIAL WORKER",,"0000000000","19441103","8805 RUCKER COURT","ANNANDALE","VA","22003","1128b4","20050220","00000000","00000000", -"WILLOUGHBY","THOMAS","M ",,"OSTEOPATHIC PRAC","OSTEOPATHY","E47434","0000000000","19221020","10900 HAINES, N E","ALBUQUERQUE","NM","87112","1128a1","19920802","00000000","00000000", -"WILSON","WILLIAM","FRANK ",,"HOSPITAL","COUNSELOR",,"0000000000","19620213","P O BOX 888, TWIN RIVER","MONROE","CA","98312","1128a2","20010920","00000000","00000000", -"WITHROW","ADA","DEJARNETTE ",,"IND- LIC HC SERV PRO","NURSE/NURSES AIDE",,"0000000000","19550430","9 RUTH HOLLOW FIRE TRAIL","MADISON","VA","22727","1128a2","20141020","00000000","00000000", -"WOODARD","BART","WAYNE ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19650502","2109 HILLCREST ST, #134","MESQUITE","TX","75149","1128b4","20000420","00000000","00000000", -"WOULARD","SHERRY"," ",,"STATE/LOCAL/TRIBAL A","HEALTH CARE AIDE",,"0000000000","19710427","905 W PINE STREET, LOT 4","WAYNESBORO","MS","39367","1128a2","20110220","00000000","00000000", -"YAHOLA","ROMAN"," ",,"AMBULANCE COMPANY","TECHNICIAN",,"0000000000","19530621","C/O P O BOX 1500, FCI","EL RENO","OK","73036","1128a1","19990218","00000000","00000000", -"YORK","GEORGIA","K ",,"NURSING PROFESSION","NURSE/NURSES AIDE",,"0000000000","19500720","4224 KINGS ST, APT 203","GREENVILLE","TX","75401","1128b4","20010520","00000000","00000000", -"ZADROZNY","JOSEPH","A ",,"MEDICAL PRACTICE, MD","PEDIATRICS","D88137","0000000000","19300212","42 WESTON STREET","WALTHAM","MA","02154","1128a1","19930304","00000000","00000000", -"ZILBERSTEIN","ANNA"," ",,"PRIVATE CIT/ENTITY","EMPLOYEE",,"0000000000","19290704","99-49 66TH ROAD","FOREST HILLS","NY","11374","1128a1","19911229","00000000","00000000", diff --git a/etl/leie/leie/tests/test_etl.py b/etl/leie/leie/tests/test_etl.py deleted file mode 100644 index 333e6af88..000000000 --- a/etl/leie/leie/tests/test_etl.py +++ /dev/null @@ -1,116 +0,0 @@ -#!/usr/bin/env python3 - -""" -You can trim UPDATED.csv to only take every 100th line: - - awk 'NR == 1 || NR % 200 == 0' data/UPDATED.csv > tests/data/UPDATED.csv - -Move that in to the tests/data dir for testing purposes. -""" - -import re -import os -import pytest -import subprocess -import sys - -# Add paths that will let us import our python files -for p in (os.path.dirname(__file__), os.path.dirname(os.path.dirname(__file__))): - if not p in sys.path: - sys.path.append(p) - -# This is just to keep the test coverage reporter from complaining -import __init__ - -import etl -import model - -@pytest.fixture -def conn(): - """Fixture to create db connection for tests, then close the - connection and delete the db in teardown. - - """ - conn = model.LEIE("test", connect=False) - if os.path.exists(conn.db_conf['open']): - os.unlink(conn.db_conf['open']) - conn = model.LEIE("test") - conn.migrate() - yield conn - conn.close() - os.unlink(conn.db_conf['open']) - -def test_munge_date(): - assert etl.munge_date("20120620") == "2012-06-20" - assert etl.munge_date("00000000") == None - assert etl.munge_date("03/09/62") == "1962-03-09" - assert etl.munge_date("03/09/01") == "2001-03-09" - assert etl.munge_date("03/09/00") == "2000-03-09" - assert etl.munge_date("03/09/99") == "1999-03-09" - assert etl.munge_date("00/00/00") == None - assert etl.munge_date("03/09/1999") == "1999-03-09" - assert etl.munge_date("03/09/2000") == "2000-03-09" - assert etl.munge_date("03/09/2001") == "2001-03-09" - assert etl.munge_date("03/09/1801") == "1801-03-09" - assert etl.munge_date("03/09/2101") == "2101-03-09" - - # Test the regexes that munge_data relies on - assert etl.date_re.match("20120620") - assert etl.date_re.match("20120620 junk") - assert etl.slash_date_re.match("03/09/99") - assert not etl.slash_date_re.match("03/09/1999") - -def test_data_missing(conn): - """This just does something dumb. We want to know that a - file-not-found creates the right error, as opposed to, say, - creating a blackhole sent from the future to destroy the LHC. - - """ - - excl = etl.Exclusions(conn) - with pytest.raises(FileNotFoundError) as exc_info: - excl.etl_from_dir(data_dir="tests/data/does/not/exist") - exception = exc_info.value - assert str(exception) == "[Errno 2] No such file or directory: 'tests/data/does/not/exist/UPDATED.csv'" - -def test_exclusion(conn): - print("We just do a complete exclusion ETL and then see if the results are as expected.") - excl = etl.Exclusions(conn) - excl.etl_from_dir("tests/data") - rows = conn.table_len('exclusion') - - # And again twice to exercise the force_reload stuff - excl.etl_from_filename("tests/data/UPDATED.csv", force_reload=True) - excl.etl_from_filename("tests/data/UPDATED.csv") - - ## Make the right number of rows were written and we didn't duplicate the data - assert conn.table_len('exclusion') == rows - rows = int(subprocess.check_output("wc -l tests/data/UPDATED.csv", shell=True).decode("utf-8").split(' ')[0]) - assert conn.table_len('exclusion') == rows - 1 - -def test_get_datadir(): - """We can't really know what this will return because if it is run on a - running system, there might be a /etc file. All we can really do is see if - we have a string or not.""" - - assert type(etl.get_datadir()) == type("") - -def test_get_dbdir(): - """We can't really know what this will return because if it is run on a - running system, there might be a /etc file. All we can really do is see if - we have a string or not.""" - - assert type(etl.get_dbdir()) == type("") - -def test_reinstatement(conn): - print("We just do a complete reinstatement ETL and then see if the results are as expected.") - conn.migrate() - rein = etl.Reinstatements(conn) - rein.etl_from_dir("tests/data") - first_rows_in_db = conn.table_len("reinstatement") - - # And again to test dupe remediation - rein.etl_from_dir("tests/data") - rows = subprocess.check_output("wc -l tests/data/*REIN*.csv", shell=True).decode("utf-8").strip().split("\n") - rows = int(rows[-1].strip().split(' ')[0]) - (len(rows) - 1) - assert conn.table_len("reinstatement") == rows diff --git a/etl/leie/leie/tests/test_model.py b/etl/leie/leie/tests/test_model.py deleted file mode 100644 index 011b44da3..000000000 --- a/etl/leie/leie/tests/test_model.py +++ /dev/null @@ -1,137 +0,0 @@ -#!/usr/bin/env python3 - -""" -Test model.py -""" - -import os -import pytest -import subprocess -import sys - -# Add paths that will let us import our python files -for p in (os.path.dirname(__file__), os.path.dirname(os.path.dirname(__file__))): - if not p in sys.path: - sys.path.append(p) - -import model - -from test_etl import conn - -def test_goose_write(): - """Exercise the goose_writes part of the model""" - conn = model.LEIE(connect=False) - subprocess.run("rm -rf tests/db", shell=True) - fnames = conn.goose_write("tests/db") - assert os.path.exists("tests/db/sqlite3") - assert len(fnames) >= 1 - for fname in fnames: - assert os.path.exists(fname) - - # Can we run it again without problems? - fnames = conn.goose_write("tests/db") - assert os.path.exists("tests/db/sqlite3") - assert len(fnames) >= 1 - for fname in fnames: - assert os.path.exists(fname) - -def test_log(conn): - import random - msg = "Test %d" % random.randint(0,9999999999) - conn.log("updated", msg) - crsr = conn.conn.cursor() - cols = crsr.execute("Select * from log where msg=?", [msg]).fetchall() - print("Log columns returned: ", cols) - assert len(cols) == 1 - cols = cols[0] - assert cols[1] == "updated" - assert cols[2] == msg - -def test_main(): - """Main just does goose_write, so this is the mostly same test as - test_goose_write""" - subprocess.run("rm -rf tests/db", shell=True) - fnames = model.main("tests/db") - assert os.path.exists("tests/db/sqlite3") - assert len(fnames) >= 1 - for fname in fnames: - assert os.path.exists(fname) - -def test_migrate(): - """Make sure goose migrations runs against the correct db and puts some sql there.""" - conn = model.LEIE("test", connect=False, db_conf_file="db/dbconf.yml") - if os.path.exists(conn.db_conf['open']): - os.unlink(conn.db_conf['open']) - conn = model.LEIE("test", db_conf_file="db/dbconf.yml") - assert subprocess.check_output("echo .schema | sqlite3 %s" % conn.db_conf['open'], shell=True).decode("utf-8") == "" - conn.migrate() - assert subprocess.check_output("echo .schema | sqlite3 %s" % conn.db_conf['open'], shell=True).decode("utf-8") != "" - assert conn.get_header("exclusion")[0] == "lastname" - conn.close() - - # Check that migrate complains about non-existent directory - tmp = conn.db_conf['open'] - conn.db_conf['open'] = "/nodir/does_not_exist" - with pytest.raises(FileNotFoundError) as exc_info: - conn.migrate() - exception = exc_info.value - assert str(exception) == "[Errno 2] No such file or directory: '/nodir'" - - # Check that migrate complains about non-existent sqlite3 db - conn.db_conf['open'] = "does_not_exist" - with pytest.raises(model.DBNotFound) as exc_info: - conn.migrate() - exception = exc_info.value - assert str(exception) == "DB does_not_exist doesn't exist, so we can't migrate it." - conn.db_conf['open'] = tmp - - # Check that migrate complains if Goose pukes - tmp = conn.db_conf['driver'] - conn.db_conf['driver'] = "does_not_exist" - with pytest.raises(subprocess.CalledProcessError) as exc_info: - conn.migrate() - exception = exc_info.value - assert str(exception) == "Command 'goose -dir db/does_not_exist does_not_exist test.sqlite3 up' returned non-zero exit status 0" - conn.db_conf['driver'] = tmp - - -def test_sql(): - """Make sure sql function returns something. - - We don't check that the migrations are valid sql. Maybe we - should. - - """ - - conn = model.LEIE(connect=False, db_conf_file="db/dbconf.yml") - - # At a minimum, there is one migration and it is a string - assert type(conn.up(0)) == type("") - assert type(conn.down(0)) == type("") - - # Make sure we get back a string and then None above a certain point - max_reached = False - for x in range(100): - sql = conn.up(x) - if not max_reached: - if sql: - assert type(sql)==type("") - else: - assert sql == None - max_reached = True - else: - assert sql == None - - - conn.db_conf['driver'] = "LibraryDB" - with pytest.raises(model.UnsupportedDBType) as exc_info: - conn.up(x) - exception = exc_info.value - assert str(exception) == "We don't have migrations for LibraryDB" - -def test_unsupported_db_init(): - """Make sure we throw an error if the user names a weird db type""" - with pytest.raises(model.UnsupportedDBType) as exc_info: - conn = model.LEIE("test2", db_conf_file="db/dbconf.yml") - exception = exc_info.value - assert str(exception) == "We don't support databases of type LibraryDB" diff --git a/etl/leie/leie/tests/test_path.py b/etl/leie/leie/tests/test_path.py deleted file mode 100644 index ca8d471d6..000000000 --- a/etl/leie/leie/tests/test_path.py +++ /dev/null @@ -1,63 +0,0 @@ -#!/usr/bin/env python3 - -""" -You can trim UPDATED.csv to only take every 100th line: - - awk 'NR == 1 || NR % 200 == 0' data/UPDATED.csv > tests/data/UPDATED.csv - -Move that in to the tests/data dir for testing purposes. -""" - -import re -import os -import pytest -import subprocess -import sys - -# Add paths that will let us import our python files -for p in (os.path.dirname(__file__), os.path.dirname(os.path.dirname(__file__))): - if not p in sys.path: - sys.path.append(p) - -# This is just to keep the test coverage reporter from complaining -import __init__ - -import path - -def test_get_existing_file(): - # Setup - os.makedirs("tests/exists", exist_ok=True) - - # Try some combinations of dirs that exist and don't exist in various orders - assert path.get_existing_file([os.path.dirname(__file__), "tests/exists", "doesntexist"]) == os.path.dirname(__file__) - assert path.get_existing_file(["doesntexist", os.path.dirname(__file__)]) == os.path.dirname(__file__) - assert path.get_existing_file(["tests/exists", os.path.dirname(__file__), "doesntexist"]) == "tests/exists" - - # Should work the same with files - assert path.get_existing_file([__file__, "tests/exists", "doesntexist"]) == __file__ - assert path.get_existing_file(["doesntexist", __file__]) == __file__ - assert path.get_existing_file(["tests/exists", __file__, "doesntexist"]) == "tests/exists" - - # Test fallback to default - assert path.get_existing_file(["doesntexist"], "tests/exists") == "tests/exists" - - # Test create default dir - assert path.get_existing_file(["doesntexist", "nope/me/neither"], "tests/doesnt/exist/yet", create=True) == "tests/doesnt/exist/yet" - assert os.path.isdir("tests/doesnt/exist/yet") - os.rmdir("tests/doesnt/exist/yet") - - # Test no default raises error - with pytest.raises(FileNotFoundError) as exc_info: - path.get_existing_file(["doesntexist"]) - exception = exc_info.value - assert str(exception) == "[Errno 2] None of these exists: 'doesntexist'" - - # Test incompatible args raises error - with pytest.raises(ValueError) as exc_info: - path.get_existing_file(["doesntexist"], create=True) - exception = exc_info.value - assert str(exception) == "Can't create because no default specified!" - - # cleanup - os.rmdir("tests/exists") - diff --git a/etl/leie/requirements.txt b/etl/leie/requirements.txt deleted file mode 100644 index 580c62eb8..000000000 --- a/etl/leie/requirements.txt +++ /dev/null @@ -1,16 +0,0 @@ -dicttoxml==1.7.4 -Flask==0.12.2 -itsdangerous==0.24 -Jinja2==2.9.6 -MarkupSafe==1.0 -petl==1.1.1 -py==1.4.34 -pytest==3.1.1 -pytest-cov==2.5.1 -python-dateutil==2.6.0 -PyYAML==3.12 -requests==2.17.3 -simplejson==3.11.1 -six==1.10.0 -urllib3==1.21.1 -Werkzeug==0.12.2 diff --git a/etl/leie/setup.py b/etl/leie/setup.py deleted file mode 100644 index f7400f07c..000000000 --- a/etl/leie/setup.py +++ /dev/null @@ -1,11 +0,0 @@ -from distutils.core import setup - -import os - -setup( - name='leie', - version='0.1dev', - packages=['leie',], - license='AGPLv3+', - long_description=open("README.mdwn").read() -) diff --git a/etl/leie/test b/etl/leie/test deleted file mode 100755 index 8f342c2ae..000000000 --- a/etl/leie/test +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash -set -e - -cd $(dirname $0) - -if [[ "$1" == "dist" ]]; then - shift - rm -rf dist - python setup.py sdist - tar --directory=dist -xvf dist/*.tar.gz - cd $(find dist -maxdepth 1 -type d | tail -n 1) - ./test $@ - cd ../.. - rm -rf $(find dist -maxdepth 1 -type d | tail -n 1) -else - cd leie - cov=$(find *.py -exec echo --cov={} \;| sed s/\.py//) - echo Cov: $cov - py.test --cov-report term-missing:skip-covered $cov --ignore=lib --ignore=local $@ -fi diff --git a/etl/leie/tox.ini b/etl/leie/tox.ini deleted file mode 100644 index 3757d9908..000000000 --- a/etl/leie/tox.ini +++ /dev/null @@ -1,6 +0,0 @@ -# content of: tox.ini , put in same dir as setup.py -[tox] -envlist = py34, py35 -[testenv] -deps=-rrequirements.txt -commands=./test