emr_ohsp_interface 0.5.2 → 0.5.3

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
  SHA256:
3
- metadata.gz: 629a2399385ed5e066c4d90ccf234d6c166434ddf72ab0b68d61399843bc877c
4
- data.tar.gz: f69c5c3b41882bb75659e79a6163947e18bf5792663958ff6d183a61784855ed
3
+ metadata.gz: 145e8b4a017e7cbec4cc4ace99ca78f853f16bf5048a7043e1c8eba6b5486a54
4
+ data.tar.gz: 741d47d437d4334b0218b9dbce8cdb328df9839ee68c95a71dc285c780a96425
5
5
  SHA512:
6
- metadata.gz: 4f4e46beb7306b3658ad83032b71046837c4cf6981f0d3fd79c43b0fc948ca599ad14c805971c6cd8565eca03859c99ed2a3809fbcf6b9c9bb10056203e7b883
7
- data.tar.gz: b2d705a3019ed894f969bf005c5abe897d76d7375c956fff979e72c88a4635251176dc0fec022cd15e2d297d6b5038eeff57205d3ca7ae1fad6eed13384aa05b
6
+ metadata.gz: 6b5c9d1df00c1e00065fd95966924a4c28f130cdf9f7302ed7a7b7071288dcce42f9d1995c2e7d22307bd81749abf28879ef40a1c6f9abef4c1cb2990fe20ceb
7
+ data.tar.gz: 78e83895b4a74c5d45bc1abdd420aff1003380bc0ba474f6b4d64dfb879309ef1989113f56e178c6f6a2fd52a16549810d3a077547d2482cb46b809ecbba1377
@@ -105,7 +105,12 @@ module EmrOhspInterface
105
105
  type = EncounterType.find_by_name 'Outpatient diagnosis'
106
106
  collection = {}
107
107
 
108
- special_indicators = ["Malaria in Pregnancy","HIV New Initiated on ART"]
108
+ special_indicators = ["Malaria in Pregnancy",
109
+ "HIV New Initiated on ART",
110
+ "Diarrhoea In Under 5",
111
+ "Malnutrition In Under 5",
112
+ "Underweight Newborns < 2500g in Under 5 Cases",
113
+ "Severe Pneumonia in under 5 cases"]
109
114
 
110
115
  diag_map.each do |key,value|
111
116
  options = {"<5yrs"=>nil,">=5yrs"=>nil}
@@ -172,6 +177,76 @@ module EmrOhspInterface
172
177
 
173
178
  collection[key] = options
174
179
  end
180
+
181
+ if key.eql?("Diarrhoea In Under 5")
182
+ data = Encounter.where('encounter_datetime BETWEEN ? AND ?
183
+ AND encounter_type = ? AND value_coded IN (?)
184
+ AND concept_id IN(6543, 6542)',
185
+ start_date.to_date.strftime('%Y-%m-%d 00:00:00'),
186
+ end_date.to_date.strftime('%Y-%m-%d 23:59:59'),type.id,concept_ids).\
187
+ joins('INNER JOIN obs ON obs.encounter_id = encounter.encounter_id
188
+ INNER JOIN person p ON p.person_id = encounter.patient_id').\
189
+ select('encounter.encounter_type, obs.value_coded, p.*')
190
+
191
+ #under_five
192
+ under_five = data.select{|record| calculate_age(record["birthdate"]) < 5}.\
193
+ collect{|record| record.person_id}
194
+ options["<5yrs"] = under_five
195
+ collection[key] = options
196
+ end
197
+
198
+
199
+ if key.eql?("Malnutrition In Under 5")
200
+ data = Encounter.where('encounter_datetime BETWEEN ? AND ?
201
+ AND encounter_type = ? AND value_coded IN (?)
202
+ AND concept_id IN(6543, 6542)',
203
+ start_date.to_date.strftime('%Y-%m-%d 00:00:00'),
204
+ end_date.to_date.strftime('%Y-%m-%d 23:59:59'),type.id,concept_ids).\
205
+ joins('INNER JOIN obs ON obs.encounter_id = encounter.encounter_id
206
+ INNER JOIN person p ON p.person_id = encounter.patient_id').\
207
+ select('encounter.encounter_type, obs.value_coded, p.*')
208
+
209
+ #under_five
210
+ under_five = data.select{|record| calculate_age(record["birthdate"]) < 5}.\
211
+ collect{|record| record.person_id}
212
+ options["<5yrs"] = under_five
213
+ collection[key] = options
214
+ end
215
+
216
+
217
+ if key.eql?("Underweight Newborns < 2500g in Under 5 Cases")
218
+ data = Encounter.where('encounter_datetime BETWEEN ? AND ?
219
+ AND encounter_type = ? AND value_coded IN (?)
220
+ AND concept_id IN(6543, 6542)',
221
+ start_date.to_date.strftime('%Y-%m-%d 00:00:00'),
222
+ end_date.to_date.strftime('%Y-%m-%d 23:59:59'),type.id,concept_ids).\
223
+ joins('INNER JOIN obs ON obs.encounter_id = encounter.encounter_id
224
+ INNER JOIN person p ON p.person_id = encounter.patient_id').\
225
+ select('encounter.encounter_type, obs.value_coded, p.*')
226
+
227
+ #under_five
228
+ under_five = data.select{|record| calculate_age(record["birthdate"]) < 5}.\
229
+ collect{|record| record.person_id}
230
+ options["<5yrs"] = under_five
231
+ collection[key] = options
232
+ end
233
+
234
+ if key.eql?("Severe Pneumonia in under 5 cases")
235
+ data = Encounter.where('encounter_datetime BETWEEN ? AND ?
236
+ AND encounter_type = ? AND value_coded IN (?)
237
+ AND concept_id IN(6543, 6542)',
238
+ start_date.to_date.strftime('%Y-%m-%d 00:00:00'),
239
+ end_date.to_date.strftime('%Y-%m-%d 23:59:59'),type.id,concept_ids).\
240
+ joins('INNER JOIN obs ON obs.encounter_id = encounter.encounter_id
241
+ INNER JOIN person p ON p.person_id = encounter.patient_id').\
242
+ select('encounter.encounter_type, obs.value_coded, p.*')
243
+
244
+ #under_five
245
+ under_five = data.select{|record| calculate_age(record["birthdate"]) < 5}.\
246
+ collect{|record| record.person_id}
247
+ options["<5yrs"] = under_five
248
+ collection[key] = options
249
+ end
175
250
  end
176
251
  end
177
252
  if request == nil
@@ -1,3 +1,3 @@
1
1
  module EmrOhspInterface
2
- VERSION = '0.5.2'
2
+ VERSION = '0.5.3'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: emr_ohsp_interface
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Manda and Petros Kayange
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-01-06 00:00:00.000000000 Z
11
+ date: 2022-01-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails