You are on page 1of 7

NetHealth PQRSPRO Web Service Specs

Foreknowledge
In order to successfully utilize the web service you will need to know the following information.
1. ProgramID the ID that identifies your company or the association you are representing. Please
contact NetHealth for that information.
2. Username the active users PQRSPRO username or account id (email). If this is a new account,
you can create this information. Alternatively, see item #4.
3. Password the active users PQRSPRO password. If this is a new account, you can create this
information. Alternatively, see item #4.
4. ParticipantID the PQRSPRO user account ID should be stored with the 3rd Party so as to
alleviate unnecessary function calls. See Code Samples and Usage Cases for more
information.

Contents
Foreknowledge ............................................................................................................................................. 1
WS Location .................................................................................................................................................. 2
Service Methods ........................................................................................................................................... 2
How this Web Service is designed to be used. ............................................................................................. 4
Code Sample (XML): .................................................................................................................................. 4
Code Sample (String): ............................................................................................................................... 4
Data Schema: ................................................................................................................................................ 5
Data Sample .................................................................................................................................................. 6
Usage Cases................................................................................................................................................... 7
User does not yet a PQRSPRO account ..................................................................................................... 7
User has a PQRSPRO account ................................................................................................................... 7

WS Location
http://dev.pqrspro.com/system/services/Service1.svc

Service Methods
Primary Methods
Int32 IdentifyUser(string email, string first_name, string last_name);
This method gets the ParticipantID of existing accounts by contact information.
Int32 AddUser(
int program_id, = Values:Any Integer (Your account ID)
int GroupID, = Values:0, 48-72 (User CMS Group ID, use 0 if unknown)
string MeasureType, = Values: MeasureSet/MeasureGroup (MeasureSet if GroupID=0)
int SubmissionYear, = Values: 2014 (Filing Year)
string first_name, = Values: Any String (50 maxlength)
string last_name, = Values: Any String (50 maxlength)
string account_id, = Values: Any String (User EMAIL, 50 maxlength)
string user_id, = Values: Any String (User UserName, 50 maxlength)
string password, = Values: Any String (50 maxlength)
string source); = Values: Any String (Vendor Name, 50 maxlength)

Creates (or when already existing, gets) a users PQRSPRO ParticipantID.


This method can be used instead of IdentifyUser, and is preferred. (If the user_id
and password fields are null or empty, this method will call IdentifyUser before
attempting to create a new account.)

Int32 GetParticipantID(string username, string password);


This method gets the ParticipantID of existing accounts through login credentials.
Boolean AddPatientVisitXML(
System.Xml.XmlDocument patient_visit); = Values: XML (See AddPatients.xsd)
Adds a patient visit to PQRSPRO from an XML file in .NETs XmlDocument format.
Boolean AddPatientVisitSTR(
string patient_visit); = Values: XML as String (See AddPatients.xsd)
Adds a patient visit to PQRSPRO from an XML document in String format.

Custom Methods, generally not used.


Int32 GetAgeFromDate(DateTime date);
Int32 GetAgeFromMonthYear(Int32 Month, Int32 Year);
String GetVisitDateFromMonthYear(Int32 Month, Int32 Year);
DataTable GetPatientVisit(int participantid, string patient_id, int submission_year);
void AddChart(int program_id, int participant_id, int group_id, string patient_id,
string visit_date, bool is_medicare, DataTable values);
Boolean AddPatientVisitDT(int program_id, int participant_id, int group_id,
string patient_id, string visit_date, bool is_medicare, DataTable cpt_values);

void AddChartDetails(
int program_id, int participant_id, int visit_id, string[] codes);
void AddChartDetail(
int program_id, int participant_id, int visit_id, string code, string modifier);

How this Web Service is designed to be used.


1. Add/Get the Participant record.
2. Add Patient Visit

Code Sample (XML):


// Create Service
PQRSPROWebService.Service1Client client = new PQRSPROWebService.Service1Client();

// Get ParticipantID (if not already known)


Int32 participantid = client.AddUser(0, 0, "MeasureSet", 2014, "Jeff", "Smith",
"jeff.smith@gmail.com", "jsmith", "password1", "Awesome EHR4U");

// Include the ParticipantID in the submission being generated.


String PatientVisit = [3rd Party Code];

// Add Patient Visit


client.AddPatientVisitXML(PatientVisit); // Where PatientVisit is XmlDocument

// Create Service
client.Close();

Code Sample (String):


// Create Service
PQRSPROWebService.Service1Client client = new PQRSPROWebService.Service1Client();

// Get ParticipantID (if not already known)


Int32 participantid = client.AddUser(0, 0, "MeasureSet", 2014, "Jeff", "Smith",
"jeff.smith@gmail.com", "jsmith", "password1", "Awesome EHR4U");

// Include the ParticipantID in the submission being generated.


String PatientVisit = [3rd Party Code];

// Add Patient Visit


client.AddPatientVisitSTR(PatientVisit); // Where PatientVisit is String

// Dispose Service
client.Close();

Data Schema:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="cptcode">
<xs:complexType>
<xs:sequence>
<xs:element name="ProgramID" type="xs:int"/>
<xs:element name="ParticipantID" type="xs:int"/>
<xs:element name="SubmissionYear" type="xs:int"/>
<xs:element name="PatientID" type="xs:string"/>
<xs:element name="VisitDate" type="xs:string"/>
<xs:element name="IsMedicare" type="xs:boolean"/>
<xs:element name="Age" type="xs:string"/>
<xs:element name="Gender" type="xs:string"/>
<xs:element name="CPTCode" type="xs:string"/>
<xs:element name="Modifier" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="visit">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element ref="cptcode"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

Data Sample
<?xml version="1.0" encoding="UTF-8"?>
<visit>
<cptcode>
<ProgramID>1</ ProgramID >
<ParticipantID>12345</ ParticipantID>
<SubmissionYear>2014</SubmissionYear>
<PatientID>P34X001</PatientID>
<VisitDate>03/04/2014</VisitDate>
<IsMedicare>1</IsMedicare>
<Age>56</Age>
<Gender>M</Gender>
<CPT>33405</CPT>
<Modifier />
</cptcode>
<cptcode>
<ProgramID>1</ ProgramID >
<ParticipantID>12345</ ParticipantID>
<SubmissionYear>2014</SubmissionYear>
<PatientID>P34X001</PatientID>
<VisitDate>03/04/2014</VisitDate>
<IsMedicare>1</IsMedicare>
<Age>56</Age>
<Gender>M</Gender>
<CPT>G8702</CPT>
<Modifier></Modifier>
</cptcode>
<cptcode>
<ProgramID>1</ ProgramID >
<ParticipantID>12345</ ParticipantID>
<SubmissionYear>2014</SubmissionYear>
<PatientID>P34X001</PatientID>
<VisitDate>03/04/2014</VisitDate>
<IsMedicare>1</IsMedicare>
<Age>56</Age>
<Gender>M</Gender>
<CPT>4110F</CPT>
<Modifier>8P</Modifier>
</cptcode>
</visit>

Usage Cases
The following usage cases provides step-by-step instructions for how to establish an integrated
relationship between a 3rd Party vendor/partner and the PQRSPRO.com registry.

User does not yet a PQRSPRO account


This will happen when the relationship between the provider (i.e. user) and the PQRSPRO registry is
initiated by the EHR/EMR.
1. Call AddUser and provide the same username and password as is used by the provider to access
your system. (This will create a uniform login and will enable the user to freely interact with
either system as needed.)
2. Inform the user of their new account and provide them with login credentials and a link to
https://www.pqrspro.com/account/login.aspx
3. Thats it! In terms of integration. See User has a PQRSPRO account for next steps.
Depending on the relationship and or partnership agreement, users may be required to complete a
registration payment step. If this is the case then information about the registration cost and the
DiscountCode that you can provide them should be included in the login notification as well.
A Direct Login link from your UI to the PQRSPRO.com registry can be setup upon request. This will
enable you to add a link to Go to the PQRSPRO.com registry that will auto-login the user and
bypass the need to login again (after having already successfully logged in to your system.)

User has a PQRSPRO account


1. Can you get, or do you already have, the ParticipantID?
If you know the users login credentials you can use AddUser to get the ParticipantID.
Once received, save the ParticipantID in your system and bypass the AddUser step when sending
patient visit information to the PQRSPRO.com registry for this user.

2. You need to match your user unique ID with a PQRSPRO.com ParticipantID


If the user has an existing PQRSPRO.com account but his/her login credentials and or ParticipantID is
unknown then:
1. Call IdentifyUser to try and identify a users ParticipantID.
2. If not successful, i.e. the return is 0 (zero), then call AddUser and create a new user account.
Any subsequent PQRSPRO account merging that may need to happen will be addressed on an as
needed basis.

You might also like