Press Ganey is not all that easy to work with as a 3rd-party vampire. (I MEAN VENDOR.)
They're extremely strict in the data format they expect from their customers required for their services, and in return make the process doubly-difficult to get data back in an easily-usable format.
As I've said before when it comes to Press Ganey and interoperability, they're...
Snooty, foodie taste-testers, who are themselves, terrible, bumbling chefs in the kitchen.
Anyway, with a little elbow grease, you too can make sense of Press Ganey Patient Satisfaction data without relying on their consultancy and web-app fees.
All you need is:
- A bit of tech-savvyness
- A computer (not a tablet)
How To: Work With Press Ganey Patient Satisfaction
Prereqs
For the sake of this tutorial, I'm going to assume you have Windows. The Mac equivalent should be very similar and I'll get to it when I get to it, okay. Sheesh.
You're going to need to install the following programs:
Administratively/bureaucratically speaking, you'll also need:
- A Press Ganey CLIENTID, USERID, and PASSWORD for accessing their sFTP site for raw XML data files
Install
Next, you're going to want to clone the PressGaneyPatientSatisfactionParserLite repository on Github . Assuming you've installed Python and Git, launch Git Bash on your computer and enter the following commands:
mkdir /c/repos
cd /c/repos
git clone https://github.com/YukiUchino/PressGaneyPatientSatisfactionParserLite
pip install pysftp xmltodict
At this point, all you need to do is edit the configuration.ini file and replace the ALL-CAPS text with the appropriate entries. (Related to the administrative/bureaucratic requirements above.)
[DEFAULT]
ClientId = YOURPRESSGANEYCLIENTID
EhrPatientIdType = EpicPatientId
EhrEncounterIdType = EpicEncounterCsnId
PressGaneyRecordIdType = ExternalPressGaneyId
PressGaneyKey = PRESSGANEYPROVIDESTHISUSERID
PressGaneySecret = PRESSGANEYPROVIDESTHISPASSWORD
Once you've done that, in the Git Bash window:
cd /c/repos/PressGaneyPatientSatisfactionParserLite
python PressGaneyPatientSatisfactionParserLite.py
Without any problems, you should expect (2) folders/directories to be made:
- rawdata
- data
The "rawdata" directory should contain the raw XML files downloaded from Press Ganey's sFTP site.
The "data" directory should contain (4) CSV files:
- surveys.csv
- questions.csv
- answers.csv
- alldata.csv
The first 3 files are flat, normalized CSV files following a generic, normalized format of surveys -> questions -> answers. This is useful for importing into various data warehouses regardless of Electronic Health Record (EHR) vendor.
The last file is a single flat-file that has ALL the data. This is more useful for folks who are more comfortable in R or Microsoft Excel. 6mos worth of data is ~200MB, though, so be prepared.
Happy hacking you healthcare heathens.