Skwerl / hs-util

0 stars 0 forks source link

PQRI failing validation #40

Closed ejancic closed 11 years ago

ejancic commented 11 years ago

Using the validation tool, got the following errors (XML pasted below)

Screen Shot 2013-04-02 at 11 36 32 PM

<?xml version="1.0"?>
<submission xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" type="PQRI-REGISTRY" option="TEST" version="2.0" xsi:noNamespaceSchemaLocation="Registry_Payment.xsd"><file-audit-data><create-date>04-02-2013</create-date><create-time>23:34</create-time><create-by></create-by><version>1</version><file-number>1</file-number><number-of-files>1</number-of-files></file-audit-data><registry><registry-name>Registry</registry-name><registry-id>0</registry-id><submission-method>A</submission-method></registry><measure-group ID="X"><provider><npi/><tin/><waiver-signed>Y</waiver-signed><encounter-from-date>01-01-2013</encounter-from-date><encounter-to-date>04-02-2013</encounter-to-date><measure-group-stat><ffs-patient-count>0</ffs-patient-count><group-reporting-rate-numerator>0</group-reporting-rate-numerator><group-eligible-instances>0</group-eligible-instances><group-reporting-rate>100</group-reporting-rate></measure-group-stat><pqri-measure><pqri-measure-number>128</pqri-measure-number><eligible-instances>2</eligible-instances><meets-performance-instances>1</meets-performance-instances><performance-exclusion-instances>0</performance-exclusion-instances><performance-not-met-instances>1</performance-not-met-instances><reporting-rate>100</reporting-rate><performance-rate>50</performance-rate></pqri-measure><pqri-measure><pqri-measure-number>237</pqri-measure-number><eligible-instances>2</eligible-instances><meets-performance-instances>1</meets-performance-instances><performance-exclusion-instances>0</performance-exclusion-instances><performance-not-met-instances>1</performance-not-met-instances><reporting-rate>100</reporting-rate><performance-rate>50</performance-rate></pqri-measure><pqri-measure><pqri-measure-number>226</pqri-measure-number><eligible-instances>2</eligible-instances><meets-performance-instances>1</meets-performance-instances><performance-exclusion-instances>0</performance-exclusion-instances><performance-not-met-instances>1</performance-not-met-instances><reporting-rate>100</reporting-rate><performance-rate>50</performance-rate></pqri-measure><pqri-measure><pqri-measure-number>226</pqri-measure-number><eligible-instances>1</eligible-instances><meets-performance-instances>1</meets-performance-instances><performance-exclusion-instances>0</performance-exclusion-instances><performance-not-met-instances>0</performance-not-met-instances><reporting-rate>100</reporting-rate><performance-rate>100</performance-rate></pqri-measure><pqri-measure><pqri-measure-number>236</pqri-measure-number><eligible-instances>2</eligible-instances><meets-performance-instances>1</meets-performance-instances><performance-exclusion-instances>0</performance-exclusion-instances><performance-not-met-instances>1</performance-not-met-instances><reporting-rate>100</reporting-rate><performance-rate>50</performance-rate></pqri-measure><pqri-measure><pqri-measure-number>110</pqri-measure-number><eligible-instances>2</eligible-instances><meets-performance-instances>1</meets-performance-instances><performance-exclusion-instances>0</performance-exclusion-instances><performance-not-met-instances>1</performance-not-met-instances><reporting-rate>100</reporting-rate><performance-rate>50</performance-rate></pqri-measure><pqri-measure><pqri-measure-number>239</pqri-measure-number><eligible-instances>3</eligible-instances><meets-performance-instances>1</meets-performance-instances><performance-exclusion-instances>0</performance-exclusion-instances><performance-not-met-instances>2</performance-not-met-instances><reporting-rate>100</reporting-rate><performance-rate>33.33</performance-rate></pqri-measure><pqri-measure><pqri-measure-number>53</pqri-measure-number><eligible-instances>1</eligible-instances><meets-performance-instances>1</meets-performance-instances><performance-exclusion-instances>0</performance-exclusion-instances><performance-not-met-instances>0</performance-not-met-instances><reporting-rate>100</reporting-rate><performance-rate>100</performance-rate></pqri-measure><pqri-measure><pqri-measure-number>111</pqri-measure-number><eligible-instances>1</eligible-instances><meets-performance-instances>1</meets-performance-instances><performance-exclusion-instances>0</performance-exclusion-instances><performance-not-met-instances>0</performance-not-met-instances><reporting-rate>100</reporting-rate><performance-rate>100</performance-rate></pqri-measure><pqri-measure><pqri-measure-number>240</pqri-measure-number><eligible-instances>5</eligible-instances><meets-performance-instances>2</meets-performance-instances><performance-exclusion-instances>0</performance-exclusion-instances><performance-not-met-instances>3</performance-not-met-instances><reporting-rate>100</reporting-rate><performance-rate>40</performance-rate></pqri-measure><pqri-measure><pqri-measure-number>240</pqri-measure-number><eligible-instances>5</eligible-instances><meets-performance-instances>1</meets-performance-instances><performance-exclusion-instances>0</performance-exclusion-instances><performance-not-met-instances>4</performance-not-met-instances><reporting-rate>100</reporting-rate><performance-rate>20</performance-rate></pqri-measure><pqri-measure><pqri-measure-number>240</pqri-measure-number><eligible-instances>5</eligible-instances><meets-performance-instances>2</meets-performance-instances><performance-exclusion-instances>0</performance-exclusion-instances><performance-not-met-instances>3</performance-not-met-instances><reporting-rate>100</reporting-rate><performance-rate>40</performance-rate></pqri-measure><pqri-measure><pqri-measure-number>240</pqri-measure-number><eligible-instances>5</eligible-instances><meets-performance-instances>1</meets-performance-instances><performance-exclusion-instances>0</performance-exclusion-instances><performance-not-met-instances>4</performance-not-met-instances><reporting-rate>100</reporting-rate><performance-rate>20</performance-rate></pqri-measure><pqri-measure><pqri-measure-number>240</pqri-measure-number><eligible-instances>5</eligible-instances><meets-performance-instances>2</meets-performance-instances><performance-exclusion-instances>0</performance-exclusion-instances><performance-not-met-instances>3</performance-not-met-instances><reporting-rate>100</reporting-rate><performance-rate>40</performance-rate></pqri-measure><pqri-measure><pqri-measure-number>240</pqri-measure-number><eligible-instances>5</eligible-instances><meets-performance-instances>1</meets-performance-instances><performance-exclusion-instances>0</performance-exclusion-instances><performance-not-met-instances>4</performance-not-met-instances><reporting-rate>100</reporting-rate><performance-rate>20</performance-rate></pqri-measure><pqri-measure><pqri-measure-number>240</pqri-measure-number><eligible-instances>5</eligible-instances><meets-performance-instances>1</meets-performance-instances><performance-exclusion-instances>0</performance-exclusion-instances><performance-not-met-instances>4</performance-not-met-instances><reporting-rate>100</reporting-rate><performance-rate>20</performance-rate></pqri-measure><pqri-measure><pqri-measure-number>240</pqri-measure-number><eligible-instances>5</eligible-instances><meets-performance-instances>3</meets-performance-instances><performance-exclusion-instances>0</performance-exclusion-instances><performance-not-met-instances>2</performance-not-met-instances><reporting-rate>100</reporting-rate><performance-rate>60</performance-rate></pqri-measure><pqri-measure><pqri-measure-number>240</pqri-measure-number><eligible-instances>5</eligible-instances><meets-performance-instances>1</meets-performance-instances><performance-exclusion-instances>0</performance-exclusion-instances><performance-not-met-instances>4</performance-not-met-instances><reporting-rate>100</reporting-rate><performance-rate>20</performance-rate></pqri-measure><pqri-measure><pqri-measure-number>240</pqri-measure-number><eligible-instances>5</eligible-instances><meets-performance-instances>1</meets-performance-instances><performance-exclusion-instances>0</performance-exclusion-instances><performance-not-met-instances>4</performance-not-met-instances><reporting-rate>100</reporting-rate><performance-rate>20</performance-rate></pqri-measure><pqri-measure><pqri-measure-number>240</pqri-measure-number><eligible-instances>5</eligible-instances><meets-performance-instances>1</meets-performance-instances><performance-exclusion-instances>0</performance-exclusion-instances><performance-not-met-instances>4</performance-not-met-instances><reporting-rate>100</reporting-rate><performance-rate>20</performance-rate></pqri-measure><pqri-measure><pqri-measure-number>240</pqri-measure-number><eligible-instances>5</eligible-instances><meets-performance-instances>1</meets-performance-instances><performance-exclusion-instances>0</performance-exclusion-instances><performance-not-met-instances>4</performance-not-met-instances><reporting-rate>100</reporting-rate><performance-rate>20</performance-rate></pqri-measure></provider></measure-group></submission>
ejancic commented 11 years ago

JSON from our system is below (we are fixing the patient count being 0 issue). NPI value should get pulled from groupNPI and TIN should get pulled from tin

"{ "categories": [ { "name": "Adult Weight Screening and Follow-Up", "categoryName": "ADULT_WEIGHT_SCREENING", "description": "Percentage of patients aged 18 years and older with a calculated BMI in the past six months or during the current visit documented in the medical record AND if the most recent BMI is outside parameters, a follow-up plan is documented", "qualifiedPatients": 2, "patientsMeetingRequirement": 1, "pqrs": 128, "percentPass": 50 }, { "name": "Hypertension: Blood Pressure Management", "categoryName": "HYPERTENSION", "description": "Percentage of patient visits for patients aged 18 years and older with a diagnosis of hypertension who have been seen for at least 2 office visits, with blood pressure (BP) recorded", "qualifiedPatients": 2, "patientsMeetingRequirement": 1, "pqrs": 237, "percentPass": 50 }, { "name": "Preventative Care and Screening Measure Pair - Tobacco Use Assessment", "categoryName": "TOBACCO_USE_ASSESSMENT", "description": "Percentage of patients aged 18 years and older identified as tobacco users within the past 24 months and have been seen for at least 2 office visits, who received cessation intervention.", "qualifiedPatients": 2, "patientsMeetingRequirement": 1, "pqrs": 226, "percentPass": 50 }, { "name": "Preventative Care and Screening Measure Pair - Tobacco Cessation", "categoryName": "TOBACCO_CESSATION", "description": "Percentage of patients aged 18 years and older identified as tobacco users within the past 24 months and have been seen for at least 2 office visits, who received cessation intervention.", "qualifiedPatients": 1, "patientsMeetingRequirement": 1, "pqrs": 226, "percentPass": 100 }, { "name": "Controlling High Blood Pressure", "categoryName": "CONTROL_HIGH_BLOOD_PRESSURE", "description": "The percentage of patients 18-85 years of age who had a diagnosis of hypertension and whose BP was adequately controlled during the measurement year.", "qualifiedPatients": 2, "patientsMeetingRequirement": 1, "pqrs": 236, "percentPass": 50 }, { "name": "Preventative Care ans Screening: Influenza Immunization for patients >= 50 years old", "categoryName": "FLU_SHOT", "description": "Percentage of patients aged 50 years and older who received an influenza immunization during the flu season (September through February).", "qualifiedPatients": 2, "patientsMeetingRequirement": 1, "pqrs": 110, "percentPass": 50 }, { "name": "Weight Assessment and Counseling for children and adolescents", "categoryName": "CHILD_WEIGHT_SCREENING", "description": "Percentage of patients 2 -17 years of age who had an outpatient visit with a Primary Care Physician (PCP) or OB/GYN and who had evidence of BMI percentile documentation, counseling for nutrition and counseling for physical activity during the measurement year.", "qualifiedPatients": 3, "patientsMeetingRequirement": 1, "pqrs": 239, "percentPass": 33 }, { "name": "Asthma Pharmacologic Therapy", "categoryName": "ASTHMA_THERAPY", "description": "Percentage of patients aged 5 through 40 years with a diagnosis of mild, moderate, or severe persistent asthma who were prescribed either the preferred long-term control medication (inhaled corticosteroid) or an acceptable alternative treatment.", "qualifiedPatients": 1, "patientsMeetingRequirement": 1, "pqrs": 53, "percentPass": 100 }, { "name": "Pneumonia Vaccination Status for Older Adults", "categoryName": "PNEUMONIA_VACCINE", "description": "Percentage of patients 65 years of age and older who have ever received a pneumococcal vaccine.", "qualifiedPatients": 1, "patientsMeetingRequirement": 1, "pqrs": 111, "percentPass": 100 }, { "name": "Childhood Immunization Status - diptheria, tetanus and acellular, pertussis (DTaP)", "categoryName": "DTAP", "description": "Percentage of children 2 years of age who had four diphtheria, tetanus and acellular pertussis (DTaP) vaccines.", "qualifiedPatients": 5, "patientsMeetingRequirement": 2, "pqrs": 240, "percentPass": 40 }, { "name": "Childhood Immunization Status - Polio (IPV)", "categoryName": "IPV", "description": "Percentage of children 2 years of age who had three polio (IPV) vaccines.", "qualifiedPatients": 5, "patientsMeetingRequirement": 1, "pqrs": 240, "percentPass": 20 }, { "name": "Childhood Immunization Status - Measles, Mumps and Rubella (MMR)", "categoryName": "MMR", "description": "Percentage of children 2 years of age who had one Measles, Mumps and Rubella (MMR) vaccine.", "qualifiedPatients": 5, "patientsMeetingRequirement": 2, "pqrs": 240, "percentPass": 40 }, { "name": "Childhood Immunization Status - H Influenza Type B (HiB)", "categoryName": "HIB", "description": "Percentage of children 2 years of age who had two H Influenza Type B (HiB) vaccines.", "qualifiedPatients": 5, "patientsMeetingRequirement": 1, "pqrs": 240, "percentPass": 20 }, { "name": "Childhood Immunization Status - Hepatitis B (Hep B)", "categoryName": "HEP_B", "description": "Percentage of children 2 years of age who had three Hepatitis B (Hep B) vaccines.", "qualifiedPatients": 5, "patientsMeetingRequirement": 2, "pqrs": 240, "percentPass": 40 }, { "name": "Childhood Immunization Status - Chicken Pox (VZV)", "categoryName": "VZV", "description": "Percentage of children 2 years of age who had one Chicken Pox (VZV) vaccine.", "qualifiedPatients": 5, "patientsMeetingRequirement": 1, "pqrs": 240, "percentPass": 20 }, { "name": "Childhood Immunization Status - Pneumonia (PCV)", "categoryName": "PCV", "description": "Percentage of children 2 years of age who had four Pneumococcal Conjugate (PCV) vaccines.", "qualifiedPatients": 5, "patientsMeetingRequirement": 1, "pqrs": 240, "percentPass": 20 }, { "name": "Childhood Immunization Status - Hepatitis A (Hep A)", "categoryName": "HEP_A", "description": "Percentage of children 2 years of age who had two Hepatitis A (Hep A) vaccines.", "qualifiedPatients": 5, "patientsMeetingRequirement": 3, "pqrs": 240, "percentPass": 60 }, { "name": "Childhood Immunization Status - Rotavirus (RV)", "categoryName": "RV", "description": "Percentage of children 2 years of age who had two Rotavirus (RV) vaccines.", "qualifiedPatients": 5, "patientsMeetingRequirement": 1, "pqrs": 240, "percentPass": 20 }, { "name": "Childhood Immunization Status - Influenza (flu)", "categoryName": "INFLUENZA", "description": "Percentage of children 2 years of age who had two Influenza (flu) vaccines.", "qualifiedPatients": 5, "patientsMeetingRequirement": 1, "pqrs": 240, "percentPass": 20 }, { "name": "Childhood Immunization Status - DTaP, Polio, MMR, Hepatitis B, and Chicken Pox", "categoryName": "CHILD_IMMUNIZATION_DTAP_IPV_MMR_HEPB_VZV", "description": "Percentage of children 2 years of age who had four diphtheria, tetanus and acellular pertussis (DTaP), three polio (IPV), one measles, mumps and rubella (MMR), three hepatitis B (Hep B) and one chicken pox (VZV) vaccines.", "qualifiedPatients": 5, "patientsMeetingRequirement": 1, "pqrs": 240, "percentPass": 20 }, { "name": "Childhood Immunization Status - DTaP, Polio, MMR, Hepatitis B, Chicken Pox, and PCV", "categoryName": "CHILD_IMMUNIZATION_DTAP_IPV_MMR_HEPB_VZV_PCV", "description": "Percentage of children 2 years of age who had four diphtheria, tetanus and acellular pertussis (DTaP), three polio (IPV), one measles, mumps and rubella (MMR), three hepatitis B (Hep B), one chicken pox (VZV) and four pneumococcal conjugate (PCV) vaccines.", "qualifiedPatients": 5, "patientsMeetingRequirement": 1, "pqrs": 240, "percentPass": 20 } ], "cqmUser": { "identity": "1a4fe7cf-9389-4ff0-805c-10aa7606199f", "firstName": "chuck", "lastName": "norris", "phone": [ { "areaCode": "234", "prefix": "837", "suffix": "2345", "type": "OFFICE" } ], "defaultRole": "Physician", "specialty": "Student", "settings": null, "renderingNpi": "999", "groupNpi": "444", "dea": "222", "licenseNumber": "0990", "username": "44335@rspec.com", "password": null, "pin": null, "title": "Mr.", "email": [ { "emailAddress": "user@rspec.com", "primary": true } ], "prescriptionProfile": { "username": "hprovider10", "stateLicense": [ { "licenseNumber": "1234", "expirationDate": null, "state": null, "npi": null }, { "licenseNumber": null, "expirationDate": "12/12/2015", "state": null, "npi": null }, { "licenseNumber": null, "expirationDate": null, "state": "California", "npi": null }, { "licenseNumber": null, "expirationDate": null, "state": null, "npi": "0111" } ], "upin": "12345", "suffix": "Jr.", "prefix": null, "lastName": "Smith", "firstName": "Joe", "middleName": "K" }, "tin": "234" }, "patientCount": 0 }

Skwerl commented 11 years ago

Ah, looks like the user object was changed back to cqmUser. It used to be cqmUser, and then one of the sample JSON dumps had shown it changed to muUser. I've changed it back to cqmUser on dev, and the problems go away.

Any time you guys change the JSON structure (especially the names of fields/objects), I need to know so the CMTS can be updated.

ejancic commented 11 years ago

Passing validation now