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
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:
- Git for Windows
- Python 3.x for Windows
Administratively/bureaucratically speaking, you'll also need:
- A Press Ganey CLIENTID, USERID, and PASSWORD for accessing their sFTP site for raw XML data files
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:
The "rawdata" directory should contain the raw XML files downloaded from Press Ganey's sFTP site.
The "data" directory should contain (4) CSV files:
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.