According to an April 16, 2013 FBI press release, Chicago Sacred Heart Hospital Owner, Executive, and Four Doctors Arrested in Alleged Medicare Referral Kickback Conspiracy.
From the press release:
CHICAGO—The owner and another senior executive of Sacred Heart Hospital and four physicians affiliated with the west side facility were arrested today for allegedly conspiring to pay and receive illegal kickbacks, including more than $225,000 in cash, along with other forms of payment, in exchange for the referral of patients insured by Medicare and Medicaid to the hospital, announced U.S. Attorney for the Northern District of Illinois Gary S. Shapiro.
Arrested were Edward J. Novak, 58, of Park Ridge, Sacred Heart’s owner and chief executive officer since the late 1990s; Roy M. Payawal, 64, of Burr Ridge, executive vice president and chief financial officer since the early 2000s; and Drs. Venkateswara R. “V.R.” Kuchipudi, 66, of Oak Brook, Percy Conrad May, Jr., 75, of Chicago, Subir Maitra, 73, of Chicago, and Shanin Moshiri, 57, of Chicago.
DocGraph DataI wanted to see what the graph of these doctors looked like in the DocGraph dataset. You can read more details about DocGraph from Fred Trotter’s post. The basic data set is just three columns: two separate NPI numbers (National Provider Identifier) and a weight which is the shared number of Medicare patients in a 30 day forward window. The data is from calendar year 2011 and contains 49,685,810 relationships between 940,492 different Medicare providers.
Hadoop Data Processing Using Mortar for online hadoop processing, Amazon S3 storage and access to the data, I wrote up a Hadoop script that filters the DocGraph data where any of the accused where the referring doctors, joined them to the National Provider registry and wrote the data out to an S3 bucket.
medGraphData = LOAD 's3n://medgraph/refer.2011.csv' USING PigStorage(',') AS (primaryProvider:chararray, referredDoctor: chararray, qtyReferred:chararray); nucc_codes = LOAD 's3n://NUCC-Taxonomy/nucc_taxonomy_130.txt' USING PigStorage('\t') AS (nuccCode:chararray, nuccType:chararray, nuccClassification:chararray, nuccSpecialty:chararray); -- Load NPI Data npiData = LOAD 's3n://NPIData/npidata_20050523-20130113.csv' USING PigStorage(',') AS (NPICode:chararray, f2:chararray, f3:chararray, f4:chararray, f5:chararray, f6:chararray, f7:chararray, f8:chararray, f9:chararray, f10:chararray, f11:chararray, f12:chararray, f13:chararray, f14:chararray, f15:chararray, f16:chararray, f17:chararray, f18:chararray, f19:chararray, f20:chararray, f21:chararray, f22:chararray, f23:chararray, f24:chararray, f25:chararray, f26:chararray, f27:chararray, f28:chararray, f29:chararray, f30:chararray, f31:chararray, f32:chararray, f33:chararray, f34:chararray, f35:chararray, f36:chararray, f37:chararray, f38:chararray, f39:chararray, f40:chararray, f41:chararray, f42:chararray, f43:chararray, f44:chararray, f45:chararray, f46:chararray, f47:chararray, f48:chararray, f49:chararray); chicagoSacredHeartHosp = FILTER medGraphData BY (referredDoctor == '1003163122' OR referredDoctor == '1760730063'); chicagoSacredHeartHospPrimary = FILTER medGraphData BY (primaryProvider == '1003163122' OR primaryProvider == '1760730063'); docFraud = FILTER medGraphData BY (primaryProvider == '1598896086' OR primaryProvider == '1003450178' OR primaryProvider == '1255463576' OR primaryProvider == '1588694343' OR primaryProvider == '1588694343' OR primaryProvider == '1265492128'); --chicagoDocs = FILTER npiData BY ((f23 == '"CHICAGO"' OR f31 == '"CHICAGO"' ) AND f29 matches '.*3240.*'); out = FOREACH npiData GENERATE REPLACE(NPICode,'\\"','') as newNPICode, REPLACE(f5, '\\"','') as orgName, REPLACE(f6, '\\"','') as orgLastName, REPLACE(f7, '\\"', '') as firstName, REPLACE(f21, '\\"','') as docAddra1, REPLACE(f22, '\\"','') as docAddra2, REPLACE(f23, '\\"','') as docCity1, REPLACE(f29, '\\"','') as docAddr1, REPLACE(f30, '\\"','') as docAddr2, REPLACE(f31, '\\"','') as docCity, REPLACE(f32, '\\"','') as docState, REPLACE(f33, '\\"','') as docPostalCode, REPLACE(f48, '\\"','') as taxonomyCode; docFraudSacredHeart = JOIN docFraud BY (referredDoctor), out BY newNPICode; rmf s3n://DataOut/DocGraph/ChicagoDocs; rmf s3n://DataOut/DocGraph/ChicagoMedicareFraud; rmf s3n://DataOut/DocGraph/docFraud; rmf s3n://DataOut/DocGraph/docFraudSacredHeart; --STORE sampleJoinedVADoc INTO 's3n://DataOut/DocGraph/DocHosp' USING PigStorage('|'); --STORE out INTO 's3n://DataOut/DocGraph/ChicagoDocs' USING PigStorage('|'); STORE chicagoSacredHeartHospPrimary INTO 's3n://DataOut/DocGraph/ChicagoMedicareFraud' USING PigStorage('|'); STORE docFraud INTO 's3n://DataOut/DocGraph/docFraud' USING PigStorage('|'); STORE docFraudSacredHeart INTO 's3n://DataOut/DocGraph/docFraudSacredHeart' USING PigStorage('|');
Looking at the data results, three of the doctors made referrals to Sacred Heart.
Doctor NPI Hospital NPI Nbr Referrals Dr. Maitra 1598896086 1558367656 2495 Dr. Kuchipudi 1265492128 1558367656 1171 Dr. May 1588694343 1558367656 417
Visualization Using Gephi, I was able to visualize the referrals for these three doctors.
While this doesn’t provide a detailed look into the fraud, it does show there were referrals made to Sacred Heart.