- Introduction
- Testing
- The Idea
- Folder Structure
- Contributing
- Contact
Making public hospital pricing data actually machine-readable and uniform, because the hospitals are developing all kinds of tricks to complicate, evade and mislead around the topic of pricing.
###To test see below endpoints
-
http://api.medhackopen.com Our app homepage
-
http://api.medhackopen.com/api/available-institutions to view available institutions
-
http://api.medhackopen.com/api/available-procedures to view available procedures (limit 100 currently)
-
http://api.medhackopen.com/api/search-procedure/xr to search procedures by name eg xr, CT, MRI (change xr in at the end of the url to any of the other en CT)...
-
http://api.medhackopen.com/averageprice/location?range=10000&lon=-165.37812474&lat=64.49906305 // returns average price of institutions within a location. range = distance in miles, lon = the longitude, lat = the latitude.
-
http://api.medhackopen.com/costliestProcedure/containingPhrase?phrase=lib // returns costliest procedure from the database containing a phrase. phrase = name of procedure
To run this repo in node js see README.md in ./nodejsModule folder
Since hospitals do not release their pricing data in a standardized format (but at least release it now in the US by law), this repo seeks to provide universal conversion functions, as well as raw data of hospital pricing spreadsheets/Word Docs/other formats that contain medical pricing records. The reason this repo contains the data is because pricing data changes (URL locations, content, format, as well as availability).
This is starting with US data; however, we plan to incorporate pricing for all countries eventually, and as soon as possible. America just happens to have one of the worst systems, so we're starting there.
If we do a good job, it will be easier to hold the medical industry accountable and introduce interesting new tools like swaps for consumers that could VASTLY lower healthcare costs. This is the first step.
The format we are using at MedHack for procedures, medications, and devices look like this:
{
"rId":1,
"itemName": "Whole Body MRI Scan",
"hospitalId": 2,
"price": 8229.00,
"avgPrice": 8229.00,
"type": "procedure",
"medianPrice": 9000,
"sampleSize":80,
"outpatientAvgPrice": 9200.00,
"inpatientAvgPrice":9200.00,
"latestPriceDate": "2019-01-31",
"firstPriceDate": "2019-01-01",
"changeSinceLastUpdate": 0.23,
"description": "...",
"relatedItemsFromOthers": [10,15],
"relatedItemsFromThisLocation": [3,4],
"itemsRequiredForThis": [45, 72],
"keywords": ["mri", "scan", "niobium"],
"country":"US",
"currency":"USD"
}
Required feilds for all are itemName, hospitalId, currency and price.
For Hospitals/Health Care institutions, example:
{
"rId": 2,
"hospitalName": "Massachusetts General Hospital",
"city":"Boston",
"region":"MA",
"country":"US",
"streetAddress":"",
"numberLocations":2,
"ownedBy":"HCABC Example Corp",
"managedBy": "HCABC Example Corp",
"keyShareholdersAndPeople":[{"name": "John Doe", "title":"CEO"}],
"grossRevenueFiscal": 93000039300,
"annualReportDocs": ["url1", "url2"],
"website":"https://msgexampleweb.org/",
"currentPricingUrl": "https://msgexampleweb.org/somelocation/xyz.xsl",
"itemColumnName": "Description",
"avgPriceColumnName":"Avg Price",
"priceSampleSizeColumnName":"Sample Size",
"medianPricingColumnName":"Median Price",
"outPatientPriceColumnName": "Outpatient Pricing",
"inpatientPriceColumnName":"Inpatient Pricing",
"removedHeaderRowsForCSV":3,
"longitude": -70.3323,
"latitude": 45.0003,
"founded": 1930,
"type":"hospital",
"nonProfit":true,
"communityHospital":false,
"savedRepoTableName":"hospital_mgh"
}
The others are "nice-to-haves" that will make applications built on top of this much easier and will expose inconsistencies that make the medical industry what it is. The in surance companies have this data; however, they will never release it, so it's up to us. Also, this README should probably be rewritten to sound less angry at the medical industry.... Which leads us to contributions.
../browserJS
testing stuff
../nodejsModule
contains nodejs app(s) to convert file formats and output that data via an api endpoint for others to consume
. ./nodejsModule/anotherapp
: contains another nodejs app the helps us better process all csv sulmutenously.
see the README.md in this folder
. ./proposals
project proposals in readme.md
. ./rawCSVs
contains .csv files to process(Check README.md in)
. ./rawXlsxs
contains .xlsx (spreadsheets) files to process
. ./SQLs
contains .sql files to process (check README.md in )
Refer to README.md in ./nodejsFolder or wiki documentation here
To contribute to this project;
-
Check REPORT.MD and README.MD in [rawCSVs] folder and also the README.MD in the [SQLs] folder: to continue the remaining work on the files (csvs and institutions' data).
-
If you wish to contribute on the way csv files are processed and loaded to the database, please check README.MD in [nodejsModule/anotherapp/electron/Services/Algorithms].