pophealth / pophealth Goto Github PK
View Code? Open in Web Editor NEWpopHealth - An Open Source Population Health Reporting Prototype
Home Page: http://projectpophealth.org
License: Apache License 2.0
popHealth - An Open Source Population Health Reporting Prototype
Home Page: http://projectpophealth.org
License: Apache License 2.0
The solution for this was identified by Andy, but I was asked to post it here as well.
(QRDA Cat1 included in the end )
Here are the details of the test we ran for NQF 0418. The data for the test patient was generated in cypress. I have also attached the QRDA cat1 file for reference.
Philip Tate (1972)
Dx= Depression (03/01/2012 10AM - unknown)
Procedure= Adult Depression Screening; LOINC value (03/01/2012 11-11:15 AM)
Result= Neg
Encounter= 99201; Office Visit (03/01/2012)
Encounter= 99201; Office Visit (07/01/2012)
IPP= Over the age of 12 + "Depression Screening" complete during MP
Denomoinator= Same as IPP
D Exclusion= Exclude consumers from the Denominator if the consumer has an active Dx of Depression or Bipolar before the Depression Screening
Numerator= Screening is Negative or Screening is Positive and had a follow-up event
D Exceptions= After Numerator calculation, evaluate remaining consumers and retroactively remove any from the Denominator if they have a Screening result of Medical or Patient Reason for not having it completed
Issues
When we looked at the data in popHealth, it only showed Philip Tate in the IPP and Denominator. Based on the above information, he should have also fallen into the Denominator Exclusion because he has a Diagnosis of Depression that was active during the time of him receiving the Depression Screening.
We then did a test by first changing the date and time for the diagnosis by making it no longer active when the screening occurred and then a second test of removing the diagnosis all together-- neither of those changes resulted in Philip Tate being placed in the Numerator; which was the expected result.
<title>QRDA Incidence Report</title>
202 Burlington Rd.
Bedford
MA
01730
US
Philip
Tate
202 Burlington Rd.
Bedford
MA
01730
US
Cypress
Cypress
Cypress Test Deck
202 Burlington Rd.
Bedford
MA
01730
US
202 Burlington Rd.
Bedford
MA
01730
US
Henry
Seven
Cypress
<title>Measure Section</title>
eMeasure Title
Version neutral identifier
eMeasure Version Number
Version specific identifier
Preventive Care and Screening: Screening for Clinical Depression and Follow-Up Plan
9A031E24-3D9B-11E1-8634-00237D5BF174
3
40280381-3E93-D1AF-013E-9F642782222A
Preventive Care and Screening: Screening for Clinical Depression and Follow-Up Plan
<component>
<section>
<!-- This is the templateId for Reporting Parameters section -->
<templateId root="2.16.840.1.113883.10.20.17.2.1"/>
<code code="55187-9" codeSystem="2.16.840.1.113883.6.1"/>
<title>Reporting Parameters</title>
<text>
<list>
<item>Reporting period: January 1st, 2012 00:00 - December 31st, 2012 23:59</item>
</list>
</text>
<entry typeCode="DRIV">
<act classCode="ACT" moodCode="EVN">
<!-- This is the templateId for Reporting Parameteres Act -->
<templateId root="2.16.840.1.113883.10.20.17.3.8"/>
<code code="252116004" codeSystem="2.16.840.1.113883.6.96" displayName="Observation Parameters"/>
<effectiveTime>
<low value="20120101000000"/>
<high value="20121231235900"/>
</effectiveTime>
</act>
</entry>
</section>
</component>
<component>
<section>
<!-- This is the templateId for Patient Data section -->
<templateId root="2.16.840.1.113883.10.20.17.2.4"/>
<!-- This is the templateId for Patient Data QDM section -->
<templateId root="2.16.840.1.113883.10.20.24.2.1"/>
<code code="55188-7" codeSystem="2.16.840.1.113883.6.1"/>
<title>Patient Data</title>
<text>
</text>
Risk Category Assessment: Adult Depression Screening (Code List: 2.16.840.1.113883.3.600.2449)
<effectiveTime>
<low value='20120301110000'/>
<high value='20120301111500'/>
</effectiveTime>
<value code="428171000124102" codeSystem="2.16.840.1.113883.6.96" xsi:type="CD" sdtc:valueSet='2.16.840.1.113883.3.600.2454'><originalText>Depression Screening Result</originalText></value>
Encounter, Performed: Office Visit (Code List: 2.16.840.1.113883.3.464.1003.101.12.1001)
Encounter, Performed: Office Visit (Code List: 2.16.840.1.113883.3.464.1003.101.12.1001)
Encounter, Performed: Office Visit (Code List: 2.16.840.1.113883.3.464.1003.101.12.1001)
Encounter, Performed: Office Visit (Code List: 2.16.840.1.113883.3.464.1003.101.12.1001)
Trying to install v2.0 by following instructions on https://github.com/pophealth/popHealth/wiki/Installation-v2.0
Getting an error at step "bundle exec rake bundle:import[/path/to/bundle.zip,true,'ep']"
It seems like quality-measure-engine v1.1.5 does not have rake task bundle (but it is present in quality-measure-engine-2.2.0).
There is a potential SQL Injection vulnerability when a user clicks on either the list view link, or individual patient record link.
Hi,
I have installed the popHealth on single Virtual Private server for testing purpose.
I have imported bundle-latest.zip size 13MB.
When I login as admin it says 56 patients loaded but browser is constantly showing progress bar for each data fields it needs to display.
I would like to know how much time does it takes to display the data ?
Thanks.
In its current state, the map_test does not work in any browser I tried, causing JS-errors when trying to calculate the measure (tried in Chrome, Firefox and IE8)
A few gems we use are not fully supported on Mavericks, so the install instructions aren't enough to get the project to build.
I made the following changes to my local Gemfile in order to build the project:
I'm not saying this is the solution. It's just what it took to get it running.
Currently, a provider needs to be referenced within a nested Source/Actor/ActorId
to be taken into account.
Then, in addition to the former reference, the Actor must have a mention of "care provider" within its Source/Actor/ActorRole/Text
element.
Would it be possible to replace this or provide support for the premises that a provider is a provider, based on the fact that an NPI is present?
The XPath to get all providers (as Actor array) would then become:
"//ccr:ContinuityOfCareRecord/ccr:Actors/ccr:Actor[ccr:IDs/ccr:Type/ccr:Text=\"NPI\"]"
Identify and publish a plan for digitally signing the PQRI XML report
After creating a user, I had to manually mark them as active and give them a role:
db.users.update({"username": "benwest"},
{ $set:
{ "staff_role": true,
"approved": true,
"admin": true
}
})
I had the default_user_approved: true
in my yaml file, but it didn't seem to work.
I also noticed that the admin:create_admin_account
rake task doesn't mark staff_role: true
, so the resulting account isn't usable.
It's very helpful to know what version of popHealth and what bundle version is being run.
The devise login screen already shows the popHealth version. Display the bundle version below.
Error:
Delayed Job is Failing with the following Error;
failed with error 16722: "exception: JavaScript execution failed: SyntaxError: Unexpected token ;"
Steps to reproduce:
I have a brand new install of popHealth on a new Ubuntu server installed following the steps from the 2.1 wiki install page.
After importing the bundle-latest.zip and running the rake db:seed I have a clean db with 56 patient records and 22 measures.
I turn on the delayed job queue with the rake task and log the output to a file.
I register a new user on popHealth, approve them with the rake task and grant them admin rights.
I login with the user and click on any checkbox on the left, for example 'Home Management Plan of Care (HMPC) Document Given to Patient/Caregiver'
Delayed Job logs a large map reduce section that errors with the exception.
Log is attached at dropbox
When using the provider view in Pophealth, the number of patients is always zero (and the bar charts always remain gray, even if the measure calculates to be something other than 0/0).
This is caused by the following code block in provider.rb:
def records(effective_date=nil) Record.by_provider(self, effective_date) end
There is no by_provider method defined on record, only on PatientCache.
Replacing the Record with PatientCache makes the number of patients show, but only when measures have been calculated (which isn't good either).
The current Admin Page is the Laika look and feel. It needs to be re-branded to be popHealth.
The other NQF we had an issue with was 0712. This measure is asking about the depression tool PHQ-9 and has three populations based on month ranges. We had the following data:
Jan-April
Allison, Terrance
Depression + 2 Office Visits (99201)
Based on the above information, this consumer is in correct Population + IPP only
Roy, Bobby
Depression (2012/03/01) + 2 Office Visits (99201-- 2012/03/01, 2012/07/01)
Based on the above information, this consumer is in correct Population + IPP only
May-Aug
Allison, Terrance
Dx= Depression + 2 Office Visits (99201)
Based on the above information, this consumer is in correct Population + IPP only
Foster, Freddie
Depression (2011) + 2 Office Visits (99201-- 2012/06/16, 2011) + PHQ-9 (2011/09/03)
This consumer is in correct Population + IPP only w/ initial information
We changed the date on PHQ-9 from 2011/09/03 to 2012/06/16 and consumer did NOT appear in the Numerator. This is not correct
Roy, Bobby
Depression (2012/03/01) + 2 Office Visits (99201-- 2012/03/01, 2012/07/01)
Based on the above information, this consumer is in correct Population + IPP only
Stewart, Terrance
Depression (2012/09/03) + 2 Office Visits (99201-- 2012/09/03, 2012/10/31)
This consumer should be in the Sept-Dec population only. This is not correct
Stokes, Leonard
Depression (2011/10/01) + 2 Offive Visits (99201-- 2011/10/01, 2012/06/17) + PHQ-9 (2011/10/01)
Based on the above information, this consumer is in correct Population + IPP only
Sept-Dec
Cooper, Darren
PHQ-9 (2011/09/24, 2012/11/01)
This consumer only appeared in the IPP but because of the PHQ-9 on 2012/11/01, the consumer should be in the Numerator. The PHQ-9 is going under procedure and instead needs to be under result because of the LOINC code. This is not correct.
Gilbert, Louis
Depression (2012/10/01) + 2 Office Visits (99201-- 2011/11/01, 2012/10/01) + PHQ-9 (2012/11/01)
This consumer should appear in the Numerator and IPP but is only showing in the IPP. This is not correct.
Price, Leonard
Depression (2012/10/01) + 2 Office Visits (99201-- 2012/10/01, 2012/11/01)
Based on the above information, this consumer is in correct Population + IPP only
Steward, Terrence
Depression (2012/09/03) + 2 Office Visits (99201-- 2012/09/03, 2012/10/31)
Based on the above information, this consumer is in correct Population + IPP only
I have a small question related to CCR import, I've been looking around how to enable JAVA, but nothing worked, I tried to look into the configuration files, I found this file: pophealth.conf at the home directory. it implies that you are using rvm to control which version of ruby to use, I changed that to 'rvm use jruby', and restarted the vmware (the one I downloaded from your web-site), but also I still get linux-i686 as ruby platform...Could you please help me how to force pophealth to use jruby?
My objective is to enable CCR support as it seems to be disabled by default.
The Create Account Page still has the Laika wording and logo around it. This needs to be fixed, and re-branded as popHealth
When clicking on a patient in the measure details, the following error occurs:
---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---
Mongo::OperationFailure in PatientsController#show
Database command 'mapreduce' failed: {"assertion"=>"Invalid BSONObj size: 998050363 (0x3B0A7D3B) first element: : null", "assertionCode"=>10334, "errmsg"=>"db assertion failure", "ok"=>0.0}
Rails.root: C:/_work/pophealth/popHealth
Application Trace | Framework Trace | Full Trace
app/controllers/patients_controller.rb:38:in 'block in show'
app/controllers/patients_controller.rb:36:in 'show'
Request
Parameters:
{"id"=>"4f54b94da4f3d31cc4000004"}
Show session dump
_csrf_token: "46A5q6UNOFUK4SLqffeZsscMQrpA7G7VSNTmuyWSmAo="
session_id: "f7d916bb595db4043b1c5ac6e1487ce5"
warden.user.user.key: ["User", [BSON::ObjectId('4f4e2eb5a4f3d31f88000036')], "$2a$10$WP9SV8UHs9zL/f.52Nh0se"]
Show env dump
GATEWAY_INTERFACE: "CGI/1.1"
HTTP_ACCEPT: "text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8"
HTTP_ACCEPT_CHARSET: "ISO-8859-1,utf-8;q=0.7,*;q=0.3"
HTTP_ACCEPT_ENCODING: "gzip,deflate,sdch"
HTTP_ACCEPT_LANGUAGE: "en-US,en;q=0.8"
REMOTE_ADDR: "127.0.0.1"
REMOTE_HOST: "localhost"
SERVER_NAME: "localhost"
SERVER_PROTOCOL: "HTTP/1.1"
Response
Headers:
None
---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---
I follow the Installation v2.1 and successfully run all the 11 steps
when I approach the ip address http://10.1.21.49:78/ I see it works but there is nothing of pophealth
how could I find where the problem is and fix it
There is no button.css in the development and main branches.
Started GET "/assets/button.css" for 192.168.110.31 at 2013-06-25 17:17:46 -0400
ActionController::RoutingError (No route matches [GET] "/assets/button.css"):
actionpack (3.2.12) lib/action_dispatch/middleware/debug_exceptions.rb:21:in call' actionpack (3.2.12) lib/action_dispatch/middleware/show_exceptions.rb:56:in
call'
railties (3.2.12) lib/rails/rack/logger.rb:32:in call_app' railties (3.2.12) lib/rails/rack/logger.rb:16:in
block in call'
activesupport (3.2.12) lib/active_support/tagged_logging.rb:22:in tagged' railties (3.2.12) lib/rails/rack/logger.rb:16:in
call'
actionpack (3.2.12) lib/action_dispatch/middleware/request_id.rb:22:in call' rack (1.4.5) lib/rack/methodoverride.rb:21:in
call'
rack (1.4.5) lib/rack/runtime.rb:17:in call' activesupport (3.2.12) lib/active_support/cache/strategy/local_cache.rb:72:in
call'
rack (1.4.5) lib/rack/lock.rb:15:in call' rack-cache (1.2) lib/rack/cache/context.rb:136:in
forward'
rack-cache (1.2) lib/rack/cache/context.rb:245:in fetch' rack-cache (1.2) lib/rack/cache/context.rb:185:in
lookup'
rack-cache (1.2) lib/rack/cache/context.rb:66:in call!' rack-cache (1.2) lib/rack/cache/context.rb:51:in
call'
railties (3.2.12) lib/rails/engine.rb:479:in call' railties (3.2.12) lib/rails/application.rb:223:in
call'
railties (3.2.12) lib/rails/railtie/configurable.rb:30:in method_missing' passenger (3.0.18) lib/phusion_passenger/rack/request_handler.rb:96:in
process_request'
passenger (3.0.18) lib/phusion_passenger/abstract_request_handler.rb:516:in accept_and_process_next_request' passenger (3.0.18) lib/phusion_passenger/abstract_request_handler.rb:274:in
main_loop'
passenger (3.0.18) lib/phusion_passenger/rack/application_spawner.rb:206:in start_request_handler' passenger (3.0.18) lib/phusion_passenger/rack/application_spawner.rb:171:in
block in handle_spawn_application'
passenger (3.0.18) lib/phusion_passenger/utils.rb:470:in safe_fork' passenger (3.0.18) lib/phusion_passenger/rack/application_spawner.rb:166:in
handle_spawn_application'
passenger (3.0.18) lib/phusion_passenger/abstract_server.rb:357:in server_main_loop' passenger (3.0.18) lib/phusion_passenger/abstract_server.rb:206:in
start_synchronously'
passenger (3.0.18) lib/phusion_passenger/abstract_server.rb:180:in start' passenger (3.0.18) lib/phusion_passenger/rack/application_spawner.rb:129:in
start'
passenger (3.0.18) lib/phusion_passenger/spawn_manager.rb:253:in block (2 levels) in spawn_rack_application' passenger (3.0.18) lib/phusion_passenger/abstract_server_collection.rb:132:in
lookup_or_add'
passenger (3.0.18) lib/phusion_passenger/spawn_manager.rb:246:in block in spawn_rack_application' passenger (3.0.18) lib/phusion_passenger/abstract_server_collection.rb:82:in
block in synchronize'
internal:prelude:10:in synchronize' passenger (3.0.18) lib/phusion_passenger/abstract_server_collection.rb:79:in
synchronize'
passenger (3.0.18) lib/phusion_passenger/spawn_manager.rb:244:in spawn_rack_application' passenger (3.0.18) lib/phusion_passenger/spawn_manager.rb:137:in
spawn_application'
passenger (3.0.18) lib/phusion_passenger/spawn_manager.rb:275:in handle_spawn_application' passenger (3.0.18) lib/phusion_passenger/abstract_server.rb:357:in
server_main_loop'
passenger (3.0.18) lib/phusion_passenger/abstract_server.rb:206:in start_synchronously' passenger (3.0.18) helper-scripts/passenger-spawn-server:99:in
Receive server error after selecting 'Continue' at https://demo.projectpophealth.org/users/password/new
NOTE: I have not had a chance to set up a local instance so I do not know if this is specific to the demo environment or an issue in the code base itself
Enhancement request to add Gender/Language/Race/Ethnicity to CCR import:
/ContinuityOfCareRecord/Actors/Actor/Person/Gender
./Code/CodeSystem
HL70001./Code/Value
(M, F, ...)./Text
(Male)/ContinuityOfCareRecord/Body/SocialHistory/SocialHistoryElement[./Type/Text= "Ethnicity"]
./Description/Code/CodingSystem
HL70189./Description/Code/Value
(H, ...)./Description/Text
(Hispanic, ...)/ContinuityOfCareRecord/Body/SocialHistory/SocialHistoryElement[./Type/Text= "Race"]
./Description/Code/CodingSystem
HL70005./Description/Code/Value
(2028-9, ...)./Description/Text
(Asian, ...)/ContinuityOfCareRecord/Body/SocialHistory/SocialHistoryElement[./Type/Text= "Language"]
./Description/Code/CodingSystem
ISO639-1./Description/Code/Value
(en, ...)./Description/Text
(English, ...)Navigating to Admin/Log/Patients and clicking on "delete providers" seems to throw a 404
Draft and publish a white paper on the state of the practice of the HITSP C32 XML. This needs to include the tractability issues associated with extracting data from the HITSP C32 continuity of care record, and an assessment for how difficult it will be to ensure that data can be correctly parsed and extracted from any C32 XML file that is currently being produced by Electronic Health Record vendors.
We’re checking off all our metrics, but we came across a strange requirement in metric NFQ0032, which was explicitly put in as part of a bug fix by Andre on 2/12: “fixed “bug” in measure where encounters should ==1”.
However, looking at the official (?) metrics definition given on qualiftyforum.org , it says:
Can this restriction be lifted again? Or why was it put in?
I think the data we pushed to PopHealth is correct because we are able to see the measure for the patient when we log in as admin. Please see attachment.
I include the measure 0421 under the provider. Hope you can point us to any other piece of data that we should look into to find the root cause.
We also wonder if this issue has anything to do with the dates in provider_performances ?
"0421" : { "encounter_outpatient_encounter" : [
1364860800,
1364774400,
1363219200,
1367539200 ],
"bmi_physical_exam_finding" : [
{ "date" : 1367452800,
"value" : 31.32 } ],
"dietary_consultation_order_communication_provider_to_provider" : [
1367539200 ] },
Error when clicking "manage patients" in the manage->providers screen (any patient)
---8<---8<---8<---8<---8<---8<---8<---8<---8<---
NoMethodError in Patients#manage
Showing C:/_work/pophealth/popHealth/app/views/patients/_provider_patients.html.erb where line #16 raised:
undefined method `by_provider' for #Array:0x33da118
Extracted source (around line #16):
13: <%= record.medical_record_number %>
14: <%= record.last %>
15: <%= record.first %>
16: <% perfs = record.provider_performances.by_provider(@Provider) %>
17:
18: <% perfs.each do |perf| %>
19: <%= text_field_tag "records[#{record.id}][start_date]", Time.at(perf.start_date).strftime("%m/%d/%y") if perf.start_date %>
Trace of template inclusion: app/views/patients/manage.html.erb
Rails.root: C:/_work/pophealth/popHealth
Application Trace | Framework Trace | Full Trace
app/views/patients/_provider_patients.html.erb:16:in block (2 levels) in _app_views_patients__provider_patients_html_erb___561547690_29424816' app/views/patients/_provider_patients.html.erb:11:in
block in _app_views_patients__provider_patients_html_erb___561547690_29424816'
app/views/patients/_provider_patients.html.erb:1:in _app_views_patients__provider_patients_html_erb___561547690_29424816' app/views/patients/manage.html.erb:21:in
block in _app_views_patients_manage_html_erb__552378752_29550084'
app/views/patients/manage.html.erb:17:in `_app_views_patients_manage_html_erb__552378752_29550084'
Request
Parameters:
{"provider_id"=>"4f54d732a4f3d31fd800002e"}
Show session dump
_csrf_token: "loMKR9N0E5Wz2DI4zL5Rfc3bcYbtsiVElt9qofehvmQ="
session_id: "4dbc1e81c977896638e277003c7edd90"
warden.user.user.key: ["User", [BSON::ObjectId('4f4e2e6aa4f3d31f88000006')], "$2a$10$Dj.TXkL1Bz0qnMZy.agknO"]
Show env dump
GATEWAY_INTERFACE: "CGI/1.1"
HTTP_ACCEPT: "text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8"
HTTP_ACCEPT_CHARSET: "ISO-8859-1,utf-8;q=0.7,*;q=0.3"
HTTP_ACCEPT_ENCODING: "gzip,deflate,sdch"
HTTP_ACCEPT_LANGUAGE: "en-US,en;q=0.8"
REMOTE_ADDR: "127.0.0.1"
REMOTE_HOST: "localhost"
SERVER_NAME: "localhost"
SERVER_PROTOCOL: "HTTP/1.1"
Response
Headers:
None
---8<---8<---8<---8<---8<---8<---8<---8<---8<---
When the currently logged on user is not an admin or staff member, the element is missing from the html, causing the description of the measure not to appear when hoovering over the measure with the cursor.
Unified diff follows against current develop branch.
A demo instance of popHealth needs to be publicly available on EC2 as an AMI
We have installed PopHealth using the tarball referenced in the latest install documentation:
https://github.com/pophealth/popHealth/wiki/Installation-v2.1
However that version is reproducing this bug:
#39
Which is supposed to have been fixed six months ago. How do I get the latest tarball? Or are we expected to install from source?
Main page - Reporting range UI behavior
Tested on Chrome 25.0.1364.172 (Mac OS X 10.8.3), Firefox 20.0 (Mac OS X 10.8.3)
- Changing date by hand without using picker doesn't work. Date simply resets to previous values when submitted either by carriage return or hitting "refresh" button
- Firefox (Mac) - cannot change reporting range using either picker or date entry
When attempting to change reporting range, the date keeps resetting itself. (Using picker works in Chrome)
- Chrome (Mac) - can change reporting range using calendar picker (but not directly editing text)
We use pophealth as part of our CQM reports for our application.
We got the dashboard page up with measures data for patients. When clicking on patients under one specific measure, we got the progress bar spinning and never got any results.
Could anyone give us any tips where should we look in the code or configuration or even mongo data for trouble shooting. Attached is the screenshot.
Thanks for any hints.
extract_value in section_importer.rb:
def extract_value(parent_element, entry)
value_element = parent_element.at_xpath('./ccr:TestResult')
if value_element
value_element = value_element.at_xpath('./ccr:Value')
value = value_element ? value_element.content : nil
unit_element = value_element.at_xpath('./ccr:Units/ccr:Unit')
unit = unit_element ? unit_element.content : nil
if value
entry.set_value(value, unit)
end
end
end # extract_value
Fails when feeding it the following piece of ccr:
<ccr:Units>
<ccr:Unit></ccr:Unit>
</ccr:Units>
</ccr:TestResult>
The offending code is here:
value_element = value_element.at_xpath('./ccr:Value')
value = value_element ? value_element.content : nil
unit_element = value_element.at_xpath('./ccr:Units/ccr:Unit')
I think this is due to value_element being reassigned to something else, when it should be 2 variables.
With the current code, it tries to get the ccc:Units from ccc:Value, instead of ccr:TestResult.
Subsequently, because of this, if ccr:Value does not exist, the code fails with a nil-error.
the maintenance support for ruby 1.9.3 has lapsed on Feb 23rd 2014. The security updates will be provided until Feb 23rd 2015 but we should consider upgrading to ruby 2.1.1 or atleast 2.0.0
There is a potential SQL Injection vulnerability when a user clicks on either the list view link, or individual patient record link.
We need to clearly document the plan for HITSP C106 XML import to express a new quality report.
I receive the following error when clicking on a Patient ID in the Patients list of a measure.
The system is Windows 7 64-bit with 6 gigs of ram.
Same error on Windows 7 64-bit with 8 gigs of ram.
Same error on Windows Server 2008 R2 with 4 gigs of ram.
The windows installer version 1.4.1 64 bit was used.
Mongo::OperationFailure in PatientsController#show
Database command 'mapreduce' failed: {"assertion"=>"Invalid BSONObj size: 998050363 (0x3B0A7D3B) first element: : null", "assertionCode"=>10334, "errmsg"=>"db assertion failure", "ok"=>0.0}
Rails.root: C:/proj/popHealth/popHealth
Application Trace | Framework Trace | Full Trace
app/controllers/patients_controller.rb:38:in block in show' app/controllers/patients_controller.rb:36:in
show'
Request
Parameters:
{"id"=>"502d58de96298613b400014b"}
Show session dump
_csrf_token: "+IsPUgV92aSEfwMKF/SmJcN5tK/9i1WyBnbIOG6vg4c="
session_id: "89d19d77fbb5e2fb8cf8e3cbaeb5fc6a"
warden.user.user.key: ["User", [BSON::ObjectId('502d603b9629860fb8000015')], "$2a$10$DNVVPu.LMykO3LuOrtE0JO"]
Show env dump
GATEWAY_INTERFACE: "CGI/1.1"
HTTP_ACCEPT: "text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8"
HTTP_ACCEPT_CHARSET: "ISO-8859-1,utf-8;q=0.7,*;q=0.3"
HTTP_ACCEPT_ENCODING: "gzip,deflate,sdch"
HTTP_ACCEPT_LANGUAGE: "en-US,en;q=0.8"
REMOTE_ADDR: "127.0.0.1"
REMOTE_HOST: "dhitLaptop8.DHIT.local"
SERVER_NAME: "127.0.0.1"
SERVER_PROTOCOL: "HTTP/1.1"
Response
Headers:
I've been trying to install PopHealth for a few days now, unsuccessfully. I'm using the Installation v2.1 instructions, but there seems to be some errors of some kind.
I believe the installation gets closest when I use the 'install_pophealth.sh' script - everything completes, but then when I try to access the web page, it redirects to /users/sign_in correctly, but the page that comes up is the 500 error page. I've tried to debug this situation, but have not come up with any solutions.
If I follow the instructions manually instead of using the script, I get an error on the 'bundle install' step when it's attempting to install therubyracer.
I've tried to install all the pieces separately, getting them to work and them bringing it all together, but I can't manage to do that either.
You should be able to duplicate the issues by just following the instructions. I've done it many times, and it always breaks the same ways.
When saving dates in the provider-patient association code, we call start_date = Time.parse(dates[:start_date]).to_i
. This assumes d/m/y
format. Displaying dates in that page calls Time.at(perf.start_date).strftime("%m/%d/%y")
which is m/d/y. This means that loading the page, making no changes, and saving will result in the dates being changed.
These should either both be m/d/y or d/m/y, depending on who the target audience of popHealth is.
Also client side validation would be good - if I enter 10/31/13 expecting the dates to be in m/d/y format I get the error page because Time.at
fails.
Currently, the patient ID is retrieved as the ActorId.
This leads to problems when importing CCR's of different patients but with identical Actor ID's (which are merely references within the CCR).
Proposal to retrieve the ID from the IDs section as such:
patient['medical_record_number'] = patientActor.at_xpath('./ccr:IDs/ccr:ID[../ccr:Type/ccr:Text="<systemname>"]').content
Where systemname
is a configurable identifier from pophealth.yml
When no systemname
is defined, the first ID could be used:
patient['medical_record_number'] = patientActor.at_xpath('./ccr:IDs/ccr:ID').content
When no IDs are defined, as a last resort, the ActorID could be used.
I think I have discovered a bug in the way Pophealth handles immunizations that are defined with a CVX code.
In the measure definitions, the CXV codes are part of json blocks of QDS_data_type "procedure_performed", so they are expected to be in the patient's procedures when calculating the measure.
However, both C32 and CCR importers put immunizations in the immunizations collection of a patient, making them accessible only under the immunizations and all_meds properties of the patients.
This mismatch causes immunizations not to work at all if they are only defined by means of CVX codes.
They only work when defining them as a procedure (with CPT code = verified by us) or as a medication (with RxNorm code = not verified by us).
Please help to give us any hints to figure out this issue. Please see the attached screen.
Wonder why the pophealth dashboard page for user shows Welcome Master but also shows all providers on Providers list on left panel and practice as GENERAL HOSPITAL on top. It seems it shows everything as admin user.
If you can point us to what to look in database to see any column value tor authentication configuration we should investigate ?
Thanks so much for any response.
After font-awesome was added, the project no longer compiles properly. When running:
bundle exec rake assets:precompile RAILS_ENV=production
It throws the error:
Asset logical path has no extension: font-awesome/Gemfile
This is due to vendor/assets/components/font-awesome containing a Gemfile, which is causing the precompile to fail. It seems there isn't any easy way mentioned of working around this. This seems that it may be due to issue sstephenson/sprockets#347. It was mentioned in #66 that a more long term solution is available, and I think that might be a good idea.
The end-date gets passed as a parameter to the measure and that the start date is calculated in some measures in JavaScript.
But what is the mention of the period start in the UI? Isn’t this confusing/wrong? Shouldn’t the measure itself determine which period it has to report over or at least have the date be a parameter to be passed to the measure calculation as well?
If it’s just a visual indication because NQF measures need to be reported quarterly, then perhaps something can be done to make this more clear?
When defining custom measures, we’ll run into even more confusion with this seemingly useless field if those measure have an annual reporting period.
Suggestion/Question: possibility to pass starting date as parameter to measure and the possibility to enter this value (not being the hard coded 3 months)
I've found an error in the measure.
The measure defines the property antidepressant_medications_medication_order
The js definition of the denominator refers to the non-existing antidepressant_medications_medication_ordered
Diff attached as comment
Hi guys,
I've found quite a few errors in the measurement definitions. It's all related to grouping references not matching the coding block identifiers. This causes only the last code block to be included in the measure.
I'm sure you'll want to add them as a .patch file, but since I don't know how those work, I'll add them seperately as a diff file. One diff per comment.
The affected measures are 0036, 0038, 0056, 0059, 0061, 0062, 0084.
When trying to save an existing user that has an error, the registrations controller dies because it references render_with_scope
which doesn't exist (it was removed in Devise 2.x, we're using Devise 3.x).
There are two reasons we override the update
method in the registrations controller: (1) to control which method we call for updating the user (Devise calls update_with_password
by default, we call update_attributes
), and (2) to respond to JSON requests with a JSON response, instead of redirecting.
As far as the first one is concerned, our current form asks for the user to type in their current password, so it would seem that we actually want to use Devise's default, for HTML requests, but continue to use update_attributes
for JSON requests. The current version of Devise allows you to implement an update_resource(resource, params)
method on the controller to customize the behavior, that's how they recommend you to extend it.
Our implementation for this could be something like:
def update_resource(resource, params)
if request.xhr?
resource.update_attributes(params)
else
super(resource, params) # resource.update_with_password(params)
end
end
As far as the second issue is concerned, the current version of Devise calls respond_with resource, :location => after_update_path_for(resource)
at the end of update. If we want to respond to JSON requests by returning a JSON response, then I think we still need to override update
, but if we're ok with the server returning a 302, then we can stop overriding update
altogether. (Chrome seems to handle this fine, not sure about other browsers.) Not sure which is a higher priority: limiting excessive network traffic, or not overriding methods in Devise so we can avoid running into bugs like this.
I used the initial patient data from the latest bundle to check the patient view and its not getting populated.
http://cl.ly/image/3Z1h0G282D0H
the patient_results page shows up fine.. when i click the "patient_id" (which is actually the medical record number) it goes to the above page.. although I noticed the link is still using the patient_id
If i change that to medical_record_id
and api/patients_controller.rb#load_patient
to @patient = Record.by_patient_id(params[:id]).first
then the page works fine..
I pushed the changes here - addynaik@5e10ec1 but havent added the tests yet as I dont fully understand the impact.
I've discovered an error in the measure definition of metric 0038, namely in file NQF_Retooled_Measure_0038_xslx.json:1031
It reads:
"standard_code_list": "c1056, c1057",
but it should be:
"standard_code_list": "N_c1056, N_c1057",
With the current definition, only the CVX codes from N_c1057 are inserted, not the CPT's from N_c1056.
Request to add REST API to manage Provider and User entities.
Basic CRUDS operations would be sufficient.
On the dashboard page, we poll the server for each measure to see if its results have been calculated yet. Deselecting single measures successfully stops polling, but deselecting entire categories does not. I think this might be due to a Thorax issue walmartlabs/thorax#273. If so, any fix for that should be applied to PopHealth too.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.