Git Product home page Git Product logo

pophealth's Introduction

popHealth

popHealth is an open source tool that allows healthcare providers to calculate quality measures. A quality measure is a calculation of the number of individuals in a population that meet a specific standard of care.

popHealth can import patient summaries in either QRDA Cat I or HITSP C32 format. popHealth will extract information from the patient summaries and calculate quality reports.

Additional Information

Please check our wiki for more information.

License

Copyright 2013 The MITRE Corporation

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Project Practices

Please try to follow the GitHub Coding Style Guides. Additionally, we are switching to the git workflow described in Juan Batiz-Benet's Gist. If you are new to the project and would like to make changes, please fork and do your work in a feature branch. Submit a pull request and we'll check to see if it is suitable to be merged in.

pophealth's People

Contributors

addynaik avatar andrequina avatar carpeliam avatar dtkirsch avatar eedrummer avatar eknelson17 avatar hadleynet avatar jmccloud avatar johnwunder avatar lrasmus avatar mrnosal avatar noranda avatar pelargir avatar rbclark avatar rcchan avatar rdingwell avatar rmccready avatar schreiaj avatar sproinks avatar ssayer avatar ttaylor249 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pophealth's Issues

UI - Challenges Changing Reporting Range in UI

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)

Date format isn't consistent

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.

OperationFailure in PatientsController#show

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<---

C106 Integration Plan

We need to clearly document the plan for HITSP C106 XML import to express a new quality report.

Unnecessary restrictions on NQF0032

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:

  • Numerator: One or more Pap tests during the measurement year or the two years prior to the measurement year.
  • Denominator: Women 21–64 years of age during the measurement year.

Can this restriction be lifted again? Or why was it put in?

NoMethodError in Patients#manage

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:inblock 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:inblock 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<---

Font-awesome breaks rake assets:precompile

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.

Measure 105 json/js discrepancy

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

Period start date - confusing/wrong?

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)

Delayed Job exception - Unexpected Token ";"

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

https://www.dropbox.com/s/031x8xgq8cbq2zf/delayed_job.log

User creation doesn't work

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.

NQF 0712 not producing correct result

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


QRDA cat1 used was generated in Cypress.. I can paste them here if required.

registrations controller is broken when updating an existing user

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.

Various measure problems wrt GROUPING

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.

Not showing the measure data for single provider but admin

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 ] },

screen shot 2013-05-05 at 10 33 04 am

Progress bar in Patients page for a specific measure keeps running

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.

Screen Shot 2013-04-29 at 10 15 29 AM

REST API for User/Provider

Request to add REST API to manage Provider and User entities.
Basic CRUDS operations would be sufficient.

Error in definition of NQF0038

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.

CCR Import: Gender/Language/Race/Ethnicity

Enhancement request to add Gender/Language/Race/Ethnicity to CCR import:

  • Gender
    • Element: /ContinuityOfCareRecord/Actors/Actor/Person/Gender
    • CodeSystem: ./Code/CodeSystem HL70001
    • Value: ./Code/Value (M, F, ...)
    • Description: ./Text (Male)
  • Ethnicity
    • Element: /ContinuityOfCareRecord/Body/SocialHistory/SocialHistoryElement[./Type/Text= "Ethnicity"]
    • CodeSystem: ./Description/Code/CodingSystem HL70189
    • Value: ./Description/Code/Value (H, ...)
    • Description: ./Description/Text (Hispanic, ...)
  • Race
    • Element: /ContinuityOfCareRecord/Body/SocialHistory/SocialHistoryElement[./Type/Text= "Race"]
    • CodeSystem: ./Description/Code/CodingSystem HL70005
    • Value: ./Description/Code/Value (2028-9, ...)
    • Description: ./Description/Text (Asian, ...)
  • Language
    • Element: /ContinuityOfCareRecord/Body/SocialHistory/SocialHistoryElement[./Type/Text= "Language"]
    • CodeSystem: ./Description/Code/CodingSystem ISO639-1
    • Value: ./Description/Code/Value (en, ...)
    • Description: ./Description/Text (English, ...)

Immunizations with CVX code not picked up

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).

CCR import: Retrieving Patient ID

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.

upgrade ruby version

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

Provider view - # of patients: 0

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).

show bundle version

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.

CCR import: Retrieving Providers

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\"]"

Can't install on OSX 10.9 easily

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:

  • Removed specified version number for libv8 and therubyracer
  • Set version number for devise to 3.0.3

I'm not saying this is the solution. It's just what it took to get it running.

NQF0418 not producing correct results

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.


QRDA cat1 used in above test:

<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)

map_test application not working

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)

How much time does it take to display data ?

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 ?

screenshot from 2013-08-23 19 45 20

Thanks.

no asset/button.css

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:incall'
railties (3.2.12) lib/rails/rack/logger.rb:32:in call_app' railties (3.2.12) lib/rails/rack/logger.rb:16:inblock 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:incall'
actionpack (3.2.12) lib/action_dispatch/middleware/request_id.rb:22:in call' rack (1.4.5) lib/rack/methodoverride.rb:21:incall'
rack (1.4.5) lib/rack/runtime.rb:17:in call' activesupport (3.2.12) lib/active_support/cache/strategy/local_cache.rb:72:incall'
rack (1.4.5) lib/rack/lock.rb:15:in call' rack-cache (1.2) lib/rack/cache/context.rb:136:inforward'
rack-cache (1.2) lib/rack/cache/context.rb:245:in fetch' rack-cache (1.2) lib/rack/cache/context.rb:185:inlookup'
rack-cache (1.2) lib/rack/cache/context.rb:66:in call!' rack-cache (1.2) lib/rack/cache/context.rb:51:incall'
railties (3.2.12) lib/rails/engine.rb:479:in call' railties (3.2.12) lib/rails/application.rb:223:incall'
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:inprocess_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:inmain_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:inblock 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:inhandle_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:instart_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:instart'
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:inlookup_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:inblock in synchronize'
internal:prelude:10:in synchronize' passenger (3.0.18) lib/phusion_passenger/abstract_server_collection.rb:79:insynchronize'
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:inspawn_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:inserver_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

'

Issue of always showing all providers as admin user

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.
screen shot 2013-05-01 at 12 37 56 pm

CCR Import fails on <TestResult>

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.

Mongo::OperationFailure in PatientsController#show

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:inshow'
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:

None

Patient view not getting populated

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.

Install script not working

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.

White Paper on C32 State of Practice

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.

Enable CCR Import

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.