Need someone who can help build an audit of the Standard Measures Report and CQM

fsgl wrote on Monday, November 11, 2013:

I’ve requested help.

fsgl wrote on Thursday, November 14, 2013:

Found other places to troubleshoot, see attachment 1 and if your CDR page is the same.

On the 4.1.2 Demo, when the report ran with a single provider, it came up blank, but with All (Cumulative), everything populated. Hopefully there is only 1 Podiatrist involved.
Just took another look at your screenshot and you ran in Cumulative. Oh, well.

On my own machine, either singly or cumulatively produced the same result because we are a solo practice.

MI-Squared’s CDR Guide said that the denominator for Tobacco Cessation Intervention comes from clicking that item in Clinical Reminders and data entry in the dialog box which pops up. Be certain to use the PostNuke Calendar, otherwise cannot save info. See attachments 2 & 3.

donelewis wrote on Thursday, November 14, 2013:

So kind of you to try and help. We actually need the hypertension and diabetic alerts to work. Tobacco and adult weight are working. When we turn on the hypertension alert then the report fails. I would love to help audit this if someone can tell me which function to add some code to display the data examined for the report.

donelewis wrote on Thursday, November 14, 2013:

BTW the report doesn’t even start on Windows 8 with IE10. I have to use Firefox.

fsgl wrote on Thursday, November 14, 2013:

If you have been running your reports on Windows 8, is it possible to put a backup on the old Windows 7 machine and try again?

If not, does the CDR page in Administration/Globals match?

If not, can you run the report with just Hypertension all by itself? Go to Alerts and just check it and uncheck everything else.

If all of the above is a dead end, do the following:

  1. Follow the instructions above for getting the numbers for Tobacco Cessation Intervention. This way you will have both Parts A & B for the second Core Clinical Quality Measure.
  2. Go to Reports/Clients/Clinical and run for Diabetes Mellitus in the Problem DX box. When you click in that box, an ICD-9 search will pop up, enter 250.00. A list of all the Diabetic patients will appear. Add the CPT code of 2028F (explained in this .pdf) to their encounters if you have not done so already.
  3. At the end of the reporting period, run the Clinical report for 250.00 again. To get a report for 2028F; in the Options box, select Service Codes from the drop down menu and enter 2028F in the Code box that will appear under the Options box. The 250.00 report will give the denominator and the 2028F report will give the numerator.

If you do 1-3, you should have 2 Core CQM’s and 1 Additional CQM’s. Only need 3 CQM’s to attest successfully.

It’s a shame that you have to go through all this rigmarole, when the data is just sitting there. The problem is that we cannot get at it.

fsgl wrote on Thursday, November 14, 2013:

I vaguely remember that there was a CDR Activation Manager ( a separate module from Alerts) which cannot be found. This may have control over the Standard Measures Report. It had been in Administation/Other or in Miscellaneous.

I’m unable to find it in the 4.1.1 or 4.1.2 Demo’s. The 4.1.0 Demo is locked out.

In the meantime, I’ll search for the .php file for the Standard Measures Report. If I can find it, you can look through to see if your copy had been inadvertently changed. I’ll post the path, if found.

donelewis wrote on Thursday, November 14, 2013:

OK thanks! I got Hypertension to work as an ACTIVE ALERT RULE. I don’t know the reason for passive and active.

donelewis wrote on Thursday, November 14, 2013:

The provider with the large practice did not work though.

fsgl wrote on Thursday, November 14, 2013:

As explained in MI2’s white paper:

"Active Alert – Will show a pop up for the rule that is triggered when opening a patient’s demographics

Passive Alert –Alert will show in widget only when the rule is triggered".

If the data for Hypertension, Active Alert, is correct; then it can be used.

Has the problem been resolved to permit attestation? I know the Standard Measures Report is still wacky.

donelewis wrote on Thursday, November 14, 2013:

I will let you know. For now I added high BMI and high BP to my own audit report I do for AMS.

fsgl wrote on Friday, November 15, 2013:

Brady has been up to his ears at his day job so he has been unable to answer directly.

He wrote this:
"Two things to consider:

  1. check if there are php errors being logged.
  2. get the OpenEMR version (and patch); OpenEMR 4.1.1 (without recent patch) can take hours/days in very large practices and will essentially time out after awhile. (the fact that it times out with more rules makes me think this is the issue)."

All of this makes sense because I remember that it took almost 30 minutes for us to run the AMC Reports for only 1500 patients before Brady sped things up.

Be certain that if the Podiatrist is still on 4.1.1, his machine has been patched to 14 (needs to be at least Patch 6 to run faster, avoid timing out and going blank). Would be nice if this is the solution.

donelewis wrote on Saturday, November 16, 2013:

How do I read the php errors?

I wrote this query on the rules table

SELECT item , (
SELECT providerID
FROM patient_data
WHERE patient_data.pid = rule_patient_data.pid
) AS DrID
, (
SELECT fname
FROM patient_data
WHERE patient_data.pid = rule_patient_data.pid
) AS Fname

, (
SELECT lname
FROM patient_data
WHERE patient_data.pid = rule_patient_data.pid
) AS Lname

FROM rule_patient_data order by DrID

Don Lewis DC CEO
www.emr4doctors.com
800.758.9539


From: fsgl fsgl@users.sf.net
To: [openemr:discussion] 202506@discussion.openemr.p.re.sf.net
Sent: Friday, November 15, 2013 1:33 AM
Subject: [openemr:discussion] Need someone who can help build an audit of the Standard Measures Report and CQM

Brady has been up to his ears at his day job so he has been unable to answer directly.
He wrote this:
"Two things to consider:

  1. check if there are php errors being logged.
  2. get the OpenEMR version (and patch); OpenEMR 4.1.1 (without recent patch) can take hours/days in very large practices and will essentially time out after awhile. (the fact that it times out with more rules makes me think this is the issue)."

Need someone who can help build an audit of the Standard Measures Report and CQM


Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/openemr/discussion/202506/
To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/

tmccormi wrote on Saturday, November 16, 2013:

  1. Please start an new topic for new questions.
  2. This is an SQL statement not PHP.

Try just running it by itself as PHP query and see what error’s you get. Then post the actual error in that new message.

–Tony

fsgl wrote on Saturday, November 16, 2013:

1.Load all 3 measures in Alerts; Weight, both Smoking and Hypertension.

2.After getting the blank Standard Measures Report, go to xampp\php\logs\php_error_log, copy the error and paste same in a post here. One of the developers will interpret the error log and give you the diagnosis.

3.What version and patch is the Podiatrist on, presently?

donelewis wrote on Saturday, November 16, 2013:

No php_error.log file found. It seems to be off. I tried to change php.ini to these settings to no help…still no error log.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Error handling and logging ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; This directive informs PHP of which errors, warnings and notices you would like
; it to take action for. The recommended way of setting values for this
; directive is through the use of the error level constants and bitwise
; operators. The error level constants are below here for convenience as well as
; some common settings and their meanings.
; By default, PHP is set to take action on all errors, notices and warnings EXCEPT
; those related to E_NOTICE and E_STRICT, which together cover best practices and
; recommended coding standards in PHP. For performance reasons, this is the
; recommend error reporting setting. Your production server shouldn’t be wasting
; resources complaining about best practices and coding standards. That’s what
; development servers and development settings are for.
; Note: The php.ini-development file has this setting as E_ALL | E_STRICT. This
; means it pretty much reports everything which is exactly what you want during
; development and early testing.
;
; Error Level Constants:
; E_ALL - All errors and warnings (includes E_STRICT as of PHP 6.0.0)
; E_ERROR - fatal run-time errors
; E_RECOVERABLE_ERROR - almost fatal run-time errors
; E_WARNING - run-time warnings (non-fatal errors)
; E_PARSE - compile-time parse errors
; E_NOTICE - run-time notices (these are warnings which often result
; from a bug in your code, but it’s possible that it was
; intentional (e.g., using an uninitialized variable and
; relying on the fact it’s automatically initialized to an
; empty string)
; E_STRICT - run-time notices, enable to have PHP suggest changes
; to your code which will ensure the best interoperability
; and forward compatibility of your code
; E_CORE_ERROR - fatal errors that occur during PHP’s initial startup
; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP’s
; initial startup
; E_COMPILE_ERROR - fatal compile-time errors
; E_COMPILE_WARNING - compile-time warnings (non-fatal errors)
; E_USER_ERROR - user-generated error message
; E_USER_WARNING - user-generated warning message
; E_USER_NOTICE - user-generated notice message
; E_DEPRECATED - warn about code that will not work in future versions
; of PHP
; E_USER_DEPRECATED - user-generated deprecation warnings
;
; Common Values:
; E_ALL & ~E_NOTICE (Show all errors, except for notices and coding standards warnings.)
; E_ALL & ~E_NOTICE | E_STRICT (Show all errors, except for notices)
; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors)
; E_ALL | E_STRICT (Show all errors, warnings and notices including coding standards.)
; Default Value: E_ALL & ~E_NOTICE
; Development Value: E_ALL | E_STRICT
; Production Value: E_ALL & ~E_DEPRECATED
; http://php.net/error-reporting
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT

; This directive controls whether or not and where PHP will output errors,
; notices and warnings too. Error output is very useful during development, but
; it could be very dangerous in production environments. Depending on the code
; which is triggering the error, sensitive information could potentially leak
; out of your application such as database usernames and passwords or worse.
; It’s recommended that errors be logged on production servers rather than
; having the errors sent to STDOUT.
; Possible Values:
; Off = Do not display any errors
; stderr = Display errors to STDERR (affects only CGI/CLI binaries!)
; On or stdout = Display errors to STDOUT
; Default Value: On
; Development Value: On
; Production Value: Off
; http://php.net/display-errors
display_errors = On

; The display of errors which occur during PHP’s startup sequence are handled
; separately from display_errors. PHP’s default behavior is to suppress those
; errors from clients. Turning the display of startup errors on can be useful in
; debugging configuration problems. But, it’s strongly recommended that you
; leave this setting off on production servers.
; Default Value: Off
; Development Value: On
; Production Value: Off
; http://php.net/display-startup-errors
display_startup_errors = Off

; Besides displaying errors, PHP can also log errors to locations such as a
; server-specific log, STDERR, or a location specified by the error_log
; directive found below. While errors should not be displayed on productions
; servers they should still be monitored and logging is a great way to do that.
; Default Value: Off
; Development Value: On
; Production Value: On
; http://php.net/log-errors
log_errors = On

; Set maximum length of log_errors. In error_log information about the source is
; added. The default is 1024 and 0 allows to not apply any maximum length at all.
; http://php.net/log-errors-max-len
log_errors_max_len = 1024

; Do not log repeated messages. Repeated errors must occur in same file on same
; line unless ignore_repeated_source is set true.
; http://php.net/ignore-repeated-errors
ignore_repeated_errors = Off

; Ignore source of message when ignoring repeated messages. When this setting
; is On you will not log errors with repeated messages from different files or
; source lines.
; http://php.net/ignore-repeated-source
ignore_repeated_source = Off

; If this parameter is set to Off, then memory leaks will not be shown (on
; stdout or in the log). This has only effect in a debug compile, and if
; error reporting includes E_WARNING in the allowed list
; http://php.net/report-memleaks
report_memleaks = On

; This setting is on by default.
;report_zend_debug = 0

; Store the last error/warning message in $php_errormsg (boolean). Setting this value
; to On can assist in debugging and is appropriate for development servers. It should
; however be disabled on production servers.
; Default Value: Off
; Development Value: On
; Production Value: Off
; http://php.net/track-errors
track_errors = On

; Turn off normal error reporting and emit XML-RPC error XML
; http://php.net/xmlrpc-errors
;xmlrpc_errors = 0

; An XML-RPC faultCode
;xmlrpc_error_number = 0

; When PHP displays or logs an error, it has the capability of inserting html
; links to documentation related to that error. This directive controls whether
; those HTML links appear in error messages or not. For performance and security
; reasons, it’s recommended you disable this on production servers.
; Note: This directive is hardcoded to Off for the CLI SAPI
; Default Value: On
; Development Value: On
; Production value: Off
; http://php.net/html-errors
html_errors = On

; If html_errors is set On PHP produces clickable error messages that direct
; to a page describing the error or function causing the error in detail.
; You can download a copy of the PHP manual from http://php.net/docs
; and change docref_root to the base URL of your local copy including the
; leading ‘/’. You must also specify the file extension being used including
; the dot. PHP’s default behavior is to leave these settings empty.
; Note: Never use this feature for production boxes.
; http://php.net/docref-root
; Examples
;docref_root = “/phpmanual/”

; http://php.net/docref-ext
;docref_ext = .html

; String to output before an error message. PHP’s default behavior is to leave
; this setting blank.
; http://php.net/error-prepend-string
; Example:
;error_prepend_string = “”

; String to output after an error message. PHP’s default behavior is to leave
; this setting blank.
; http://php.net/error-append-string
; Example:
;error_append_string = “”

; Log errors to specified file. PHP’s default behavior is to leave this value
; empty.
; http://php.net/error-log
; Example:
;error_log = php_errors.log
; Log errors to syslog (Event Log on NT, not valid in Windows 95).
;error_log = syslog
error_log = “\xampp\apache\logs\php_error.log”

donelewis wrote on Saturday, November 16, 2013:

OK I got the error file by restarting Apache :slight_smile:

We’re using build 4.1.0

Here’s what it has… Note: Providers with little or no data work ok. Also we must always click start twice.

[16-Nov-2013 09:06:53] PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Openemr_HealthSync2\library\adodb\adodb.inc.php on line 861

[16-Nov-2013 09:06:54] PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Openemr_HealthSync2\library\adodb\adodb.inc.php on line 867

[16-Nov-2013 09:06:54] PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Openemr_HealthSync2\library\adodb\adodb.inc.php on line 1175

[16-Nov-2013 09:06:54] PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Openemr_HealthSync2\library\adodb\adodb.inc.php on line 1940

[16-Nov-2013 09:06:54] PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Openemr_HealthSync2\library\adodb\adodb.inc.php on line 2960

[16-Nov-2013 09:06:54] PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Openemr_HealthSync2\library\adodb\adodb.inc.php on line 3486

[16-Nov-2013 09:06:54] PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Openemr_HealthSync2\library\adodb\adodb.inc.php on line 3526

[16-Nov-2013 09:06:54] PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Openemr_HealthSync2\library\adodb\adodb.inc.php on line 3545

[16-Nov-2013 09:07:03] PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Openemr_HealthSync2\library\adodb\adodb.inc.php on line 861

[16-Nov-2013 09:07:03] PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Openemr_HealthSync2\library\adodb\adodb.inc.php on line 867

[16-Nov-2013 09:07:03] PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Openemr_HealthSync2\library\adodb\adodb.inc.php on line 1175

[16-Nov-2013 09:07:03] PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Openemr_HealthSync2\library\adodb\adodb.inc.php on line 1940

[16-Nov-2013 09:07:03] PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Openemr_HealthSync2\library\adodb\adodb.inc.php on line 2960

[16-Nov-2013 09:07:03] PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Openemr_HealthSync2\library\adodb\adodb.inc.php on line 3486

[16-Nov-2013 09:07:03] PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Openemr_HealthSync2\library\adodb\adodb.inc.php on line 3526

[16-Nov-2013 09:07:03] PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Openemr_HealthSync2\library\adodb\adodb.inc.php on line 3545

[16-Nov-2013 09:07:29] PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Openemr_HealthSync2\library\adodb\adodb.inc.php on line 861

[16-Nov-2013 09:07:29] PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Openemr_HealthSync2\library\adodb\adodb.inc.php on line 867

[16-Nov-2013 09:07:29] PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Openemr_HealthSync2\library\adodb\adodb.inc.php on line 1175

[16-Nov-2013 09:07:29] PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Openemr_HealthSync2\library\adodb\adodb.inc.php on line 1940

[16-Nov-2013 09:07:29] PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Openemr_HealthSync2\library\adodb\adodb.inc.php on line 2960

[16-Nov-2013 09:07:29] PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Openemr_HealthSync2\library\adodb\adodb.inc.php on line 3486

[16-Nov-2013 09:07:29] PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Openemr_HealthSync2\library\adodb\adodb.inc.php on line 3526

[16-Nov-2013 09:07:29] PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Openemr_HealthSync2\library\adodb\adodb.inc.php on line 3545

[16-Nov-2013 09:08:59] PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Openemr_HealthSync2\library\adodb\adodb.inc.php on line 861

[16-Nov-2013 09:08:59] PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Openemr_HealthSync2\library\adodb\adodb.inc.php on line 867

[16-Nov-2013 09:08:59] PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Openemr_HealthSync2\library\adodb\adodb.inc.php on line 1175

[16-Nov-2013 09:08:59] PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Openemr_HealthSync2\library\adodb\adodb.inc.php on line 1940

[16-Nov-2013 09:08:59] PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Openemr_HealthSync2\library\adodb\adodb.inc.php on line 2960

[16-Nov-2013 09:08:59] PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Openemr_HealthSync2\library\adodb\adodb.inc.php on line 3486

[16-Nov-2013 09:08:59] PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Openemr_HealthSync2\library\adodb\adodb.inc.php on line 3526

[16-Nov-2013 09:08:59] PHP Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Openemr_HealthSync2\library\adodb\adodb.inc.php on line 3545

fsgl wrote on Saturday, November 16, 2013:

While we wait for one of the developers to tell us what is the problem besides PHP being outdated, would suggest the following:

1.Backup your files.

2.Install XAMPP-OpenEMR Package.

3.Read this thread and follow CVerk’s MySqldump instructions during upgrade.

4.Do the Upgrade

5.Install Patch 3.

6.Run report with 3 Measures.

Any luck?

bradymiller wrote on Sunday, November 17, 2013:

Hi,

Need to ensure proper php settings:
http://www.open-emr.org/wiki/index.php/FAQ#What_are_the_correct_PHP_settings_.28can_be_found_in_the_php.ini_file.29_.3F

Also will need to upgrade to OpenEMR 4.1.2, since the CDR reporting engine in 4.1.0 is very, very, very slow (your script is essentially timing out). Note the 4.1.2 also has the Admin->Clinic->“Report Results” report which will save the CDR report results automatically and also track the progress of reports that are in progress.

As fsgl suggests above, definitely should test the upgrade on a testing instance first and backup your production instance before doing the upgrade.

-brady
OpenEMR

bradymiller wrote on Sunday, November 17, 2013:

A quick option to just get your CDR report results would be to copy your production server and data over to a testing instance, do the upgrade on that and run the reports off that (then would still be running your 4.1.0 in your production instance).

fsgl wrote on Sunday, November 17, 2013:

CVerk’s backup script works flawlessly.

Restoration with it is the easiest of all backup options described in the Wiki.

Would recommend it over the resident backup utility.