quality-measure-engine 3.0.0.beta.2 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: beaf9a738f7e5f96a38c9a957f67f8f217488d3b
4
- data.tar.gz: 521284050bb03474124e0f9b7dce44d80ef624cd
3
+ metadata.gz: 2af206454a8b465c2207f525604a84827d18e6d1
4
+ data.tar.gz: fc9aad778f5014c59771570e77b60332f1dc8eaf
5
5
  SHA512:
6
- metadata.gz: f7e4d5734807a301d90ede1db6bb6b5792b54bbb552bf4db1787ee4abb6cd838337dd111f3c10265fa2b631fc3e278c479ecfcd05b6bcc301bab75e973cfbc1f
7
- data.tar.gz: 3d5b2930490049194049608781fc2c865034ebfd62ba9c7ca3568590a05a30d1db1cbf79a62a15ef72decb9e539bfe4de703fa69d460411a22739e8b388fe793
6
+ metadata.gz: c33fd660df2f2de767c24324826642a9d4f51c52035b847191e0b7250791a4d7618e0443c9e6a0aa35c5ca6cbb5bf1c1272a481375f019d2fa6f97efcd7a0bea
7
+ data.tar.gz: d9794593aca2991df48f09266443724c29c80cfeef51f1486269f599a93e637a3f734741146341e490c6ada740202c01d9019f29be883484233fc357e016d2ce
data/Gemfile.lock CHANGED
@@ -1,12 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- quality-measure-engine (3.0.0.beta.2)
4
+ quality-measure-engine (3.0.0)
5
5
  delayed_job_mongoid (~> 2.0.0)
6
6
  mongoid (~> 3.1.4)
7
7
  moped (~> 1.5.1)
8
- nokogiri (~> 1.6.0)
9
- rubyXL (~> 1.2.10)
10
8
  rubyzip (~> 0.9.9)
11
9
 
12
10
  GEM
@@ -62,7 +60,6 @@ GEM
62
60
  treetop (~> 1.4.8)
63
61
  method_source (0.8.2)
64
62
  mime-types (1.24)
65
- mini_portile (0.5.2)
66
63
  minitest (4.7.5)
67
64
  mongoid (3.1.6)
68
65
  activemodel (~> 3.2)
@@ -71,8 +68,6 @@ GEM
71
68
  tzinfo (~> 0.3.29)
72
69
  moped (1.5.2)
73
70
  multi_json (1.8.2)
74
- nokogiri (1.6.0)
75
- mini_portile (~> 0.5.0)
76
71
  origin (1.1.0)
77
72
  polyglot (0.3.3)
78
73
  pry (0.9.12.2)
@@ -112,7 +107,6 @@ GEM
112
107
  rake (10.1.0)
113
108
  rdoc (3.12.2)
114
109
  json (~> 1.4)
115
- rubyXL (1.2.10)
116
110
  rubyzip (0.9.9)
117
111
  simplecov (0.7.1)
118
112
  multi_json (~> 1.0)
@@ -1,6 +1,6 @@
1
1
  module QME
2
2
  class QualityMeasure
3
-
3
+
4
4
  include Mongoid::Document
5
5
  store_in collection: 'measures'
6
6
 
@@ -13,5 +13,6 @@ module QME
13
13
  field :map_fn, type: String
14
14
  field :population_ids, type: Hash
15
15
  field :parameters, type: Hash, default: {}
16
+
16
17
  end
17
18
  end
@@ -153,36 +153,45 @@ module QME
153
153
  end
154
154
 
155
155
 
156
- def patient_cache_matcher
157
- match = {'value.measure_id' => self.measure_id,
158
- 'value.sub_id' => self.sub_id,
159
- 'value.effective_date' => self.effective_date,
160
- 'value.test_id' => test_id,
161
- 'value.manual_exclusion' => {'$in' => [nil, false]}}
162
-
163
- if(filters)
164
- if (filters['races'] && filters['races'].size > 0)
165
- match['value.race.code'] = {'$in' => filters['races']}
166
- end
167
- if (filters['ethnicities'] && filters['ethnicities'].size > 0)
168
- match['value.ethnicity.code'] = {'$in' => filters['ethnicities']}
169
- end
170
- if (filters['genders'] && filters['genders'].size > 0)
171
- match['value.gender'] = {'$in' => filters['genders']}
172
- end
173
- if (filters['providers'] && filters['providers'].size > 0)
174
- providers = filters['providers'].map { |pv| Moped::BSON::ObjectId(pv) }
175
- match['value.provider_performances.provider_id'] = {'$in' => providers}
176
- end
177
- if (filters['languages'] && filters['languages'].size > 0)
178
- match["value.languages"] = {'$in' => filters['languages']}
156
+ def patient_cache_matcher
157
+ match = {'value.measure_id' => self.measure_id,
158
+ 'value.sub_id' => self.sub_id,
159
+ 'value.effective_date' => self.effective_date,
160
+ 'value.test_id' => test_id,
161
+ 'value.manual_exclusion' => {'$in' => [nil, false]}}
162
+
163
+ if(filters)
164
+ if (filters['races'] && filters['races'].size > 0)
165
+ match['value.race.code'] = {'$in' => filters['races']}
166
+ end
167
+ if (filters['ethnicities'] && filters['ethnicities'].size > 0)
168
+ match['value.ethnicity.code'] = {'$in' => filters['ethnicities']}
169
+ end
170
+ if (filters['genders'] && filters['genders'].size > 0)
171
+ match['value.gender'] = {'$in' => filters['genders']}
172
+ end
173
+ if (filters['providers'] && filters['providers'].size > 0)
174
+ providers = filters['providers'].map { |pv| Moped::BSON::ObjectId(pv) }
175
+ match['value.provider_performances.provider_id'] = {'$in' => providers}
176
+ end
177
+ if (filters['languages'] && filters['languages'].size > 0)
178
+ match["value.languages"] = {'$in' => filters['languages']}
179
+ end
179
180
  end
181
+ match
180
182
  end
181
- match
182
- end
183
-
184
183
 
184
+ protected
185
+
186
+ #In the older version of QME QualityReport was not treated as apersisted object. As
187
+ # a result anytime you wanted to get the cached results for a calculation you would create
188
+ # a new QR object which would then go to the db and see if the calculation was performed or
189
+ # not yet and then return the results. now that QR objects are persisted you need to go through
190
+ # the find_or_create by method to ensure that duplicate entries are not being created. Protecting
191
+ # this method causes an exception to be thrown for anyone attempting to use this version of QME with the
192
+ # sematics of the older version to highlight the issue
193
+ def initialize(attrs = nil, options = nil)
194
+ super(attrs, options)
195
+ end
185
196
  end
186
-
187
-
188
197
  end
data/lib/qme/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module QME
2
- VERSION = "3.0.0.beta.2"
2
+ VERSION = "3.0.0"
3
3
  end
@@ -3,7 +3,6 @@ require "bundler/setup"
3
3
  require 'moped'
4
4
  require 'delayed_job_mongoid'
5
5
  require 'zip/zip'
6
- require 'rubyXL'
7
6
 
8
7
  require "qme/version"
9
8
  require 'qme/database_access'
@@ -21,8 +21,6 @@ Gem::Specification.new do |gem|
21
21
  gem.add_dependency 'mongoid', '~> 3.1.4'
22
22
  gem.add_dependency 'rubyzip', '~> 0.9.9'
23
23
  gem.add_dependency 'delayed_job_mongoid', '~> 2.0.0'
24
- gem.add_dependency 'nokogiri', '~> 1.6.0'
25
- gem.add_dependency 'rubyXL', '~> 1.2.10'
26
24
 
27
25
  gem.add_development_dependency "minitest", "~> 4.1.0"
28
26
  gem.add_development_dependency "simplecov", "~> 0.7.1"
@@ -97,4 +97,16 @@ class MapReduceExecutorTest < MiniTest::Unit::TestCase
97
97
  assert_equal 0, QME::PatientCache.count
98
98
  assert result[QME::QualityReport::NUMERATOR]
99
99
  end
100
+
101
+ def test_get_patient_result_with_bundle_id
102
+ measure_id = "2E679CD2-3FEC-4A75-A75A-61403E5EFEE8"
103
+ bundle_id = get_db()['bundles'].find.first
104
+ get_db()['measures'].find('id' => measure_id).update(:$set => {'bundle_id' => bundle_id})
105
+ executor = QME::MapReduce::Executor.new(measure_id, nil,
106
+ 'effective_date' => Time.gm(2011, 1, 15).to_i, 'bundle_id' => bundle_id)
107
+ result = executor.get_patient_result("12345")
108
+ assert_equal 0, get_db['patient_cache'].find().count
109
+ assert result[QME::QualityReport::NUMERATOR]
110
+ end
111
+
100
112
  end
@@ -1,7 +1,7 @@
1
1
  require 'test_helper'
2
2
 
3
3
  class QualityMeasureTest < MiniTest::Unit::TestCase
4
- include QME::DatabaseAccess
4
+ include QME::DatabaseAccess
5
5
  def setup
6
6
 
7
7
  collection_fixtures(get_db(), 'measures')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quality-measure-engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0.beta.2
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marc Hadley
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2014-02-28 00:00:00.000000000 Z
15
+ date: 2014-03-25 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: moped
@@ -70,34 +70,6 @@ dependencies:
70
70
  - - "~>"
71
71
  - !ruby/object:Gem::Version
72
72
  version: 2.0.0
73
- - !ruby/object:Gem::Dependency
74
- name: nokogiri
75
- requirement: !ruby/object:Gem::Requirement
76
- requirements:
77
- - - "~>"
78
- - !ruby/object:Gem::Version
79
- version: 1.6.0
80
- type: :runtime
81
- prerelease: false
82
- version_requirements: !ruby/object:Gem::Requirement
83
- requirements:
84
- - - "~>"
85
- - !ruby/object:Gem::Version
86
- version: 1.6.0
87
- - !ruby/object:Gem::Dependency
88
- name: rubyXL
89
- requirement: !ruby/object:Gem::Requirement
90
- requirements:
91
- - - "~>"
92
- - !ruby/object:Gem::Version
93
- version: 1.2.10
94
- type: :runtime
95
- prerelease: false
96
- version_requirements: !ruby/object:Gem::Requirement
97
- requirements:
98
- - - "~>"
99
- - !ruby/object:Gem::Version
100
- version: 1.2.10
101
73
  - !ruby/object:Gem::Dependency
102
74
  name: minitest
103
75
  requirement: !ruby/object:Gem::Requirement
@@ -207,12 +179,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
207
179
  version: '0'
208
180
  required_rubygems_version: !ruby/object:Gem::Requirement
209
181
  requirements:
210
- - - ">"
182
+ - - ">="
211
183
  - !ruby/object:Gem::Version
212
- version: 1.3.1
184
+ version: '0'
213
185
  requirements: []
214
186
  rubyforge_project:
215
- rubygems_version: 2.2.2
187
+ rubygems_version: 2.0.14
216
188
  signing_key:
217
189
  specification_version: 4
218
190
  summary: This library can run JavaScript based clinical quality measures on a repository