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

Sign up to get free protection for your applications and to get access to all the features.
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