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:

  1. Git for Windows
  2. Python 3.x for Windows

Administratively/bureaucratically speaking, you'll also need:

  1. 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:

  1. rawdata
  2. 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:

  1. surveys.csv
  2. questions.csv
  3. answers.csv
  4. 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.