his_emr_api_lab 1.1.22 → 1.1.23

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +71 -0
  4. data/Rakefile +32 -0
  5. data/app/controllers/lab/application_controller.rb +6 -0
  6. data/app/controllers/lab/labels_controller.rb +17 -0
  7. data/app/controllers/lab/orders_controller.rb +38 -0
  8. data/app/controllers/lab/reasons_for_test_controller.rb +9 -0
  9. data/app/controllers/lab/results_controller.rb +19 -0
  10. data/app/controllers/lab/specimen_types_controller.rb +15 -0
  11. data/app/controllers/lab/test_result_indicators_controller.rb +9 -0
  12. data/app/controllers/lab/test_types_controller.rb +15 -0
  13. data/app/controllers/lab/tests_controller.rb +26 -0
  14. data/app/jobs/lab/application_job.rb +4 -0
  15. data/app/jobs/lab/push_order_job.rb +12 -0
  16. data/app/jobs/lab/update_patient_orders_job.rb +32 -0
  17. data/app/jobs/lab/void_order_job.rb +17 -0
  18. data/app/mailers/lab/application_mailer.rb +6 -0
  19. data/app/models/lab/application_record.rb +5 -0
  20. data/app/models/lab/lab_accession_number_counter.rb +13 -0
  21. data/app/models/lab/lab_encounter.rb +7 -0
  22. data/app/models/lab/lab_order.rb +58 -0
  23. data/app/models/lab/lab_result.rb +31 -0
  24. data/app/models/lab/lab_test.rb +19 -0
  25. data/app/models/lab/lims_failed_import.rb +4 -0
  26. data/app/models/lab/lims_order_mapping.rb +10 -0
  27. data/app/serializers/lab/lab_order_serializer.rb +55 -0
  28. data/app/serializers/lab/result_serializer.rb +36 -0
  29. data/app/serializers/lab/test_serializer.rb +29 -0
  30. data/app/services/lab/accession_number_service.rb +77 -0
  31. data/app/services/lab/concepts_service.rb +82 -0
  32. data/app/services/lab/labelling_service/order_label.rb +106 -0
  33. data/app/services/lab/lims/api/blackhole_api.rb +21 -0
  34. data/app/services/lab/lims/api/couchdb_api.rb +53 -0
  35. data/app/services/lab/lims/api/mysql_api.rb +316 -0
  36. data/app/services/lab/lims/api/rest_api.rb +416 -0
  37. data/app/services/lab/lims/api/ws_api.rb +121 -0
  38. data/app/services/lab/lims/api_factory.rb +19 -0
  39. data/app/services/lab/lims/config.rb +100 -0
  40. data/app/services/lab/lims/exceptions.rb +11 -0
  41. data/app/services/lab/lims/migrator.rb +216 -0
  42. data/app/services/lab/lims/order_dto.rb +105 -0
  43. data/app/services/lab/lims/order_serializer.rb +244 -0
  44. data/app/services/lab/lims/pull_worker.rb +289 -0
  45. data/app/services/lab/lims/push_worker.rb +149 -0
  46. data/app/services/lab/lims/utils.rb +91 -0
  47. data/app/services/lab/lims/worker.rb +86 -0
  48. data/app/services/lab/metadata.rb +24 -0
  49. data/app/services/lab/orders_search_service.rb +66 -0
  50. data/app/services/lab/orders_service.rb +212 -0
  51. data/app/services/lab/results_service.rb +149 -0
  52. data/app/services/lab/tests_service.rb +93 -0
  53. data/config/routes.rb +17 -0
  54. data/db/migrate/20210126092910_create_lab_lab_accession_number_counters.rb +12 -0
  55. data/db/migrate/20210310115457_create_lab_lims_order_mappings.rb +15 -0
  56. data/db/migrate/20210323080140_change_lims_id_to_string_in_lims_order_mapping.rb +15 -0
  57. data/db/migrate/20210326195504_add_order_revision_to_lims_order_mapping.rb +5 -0
  58. data/db/migrate/20210407071728_create_lab_lims_failed_imports.rb +19 -0
  59. data/db/migrate/20210610095024_fix_numeric_results_value_type.rb +20 -0
  60. data/db/migrate/20210807111531_add_default_to_lims_order_mapping.rb +7 -0
  61. data/lib/auto12epl.rb +201 -0
  62. data/lib/couch_bum/couch_bum.rb +92 -0
  63. data/lib/generators/lab/install/USAGE +9 -0
  64. data/lib/generators/lab/install/install_generator.rb +19 -0
  65. data/lib/generators/lab/install/templates/rswag-ui-lab.rb +5 -0
  66. data/lib/generators/lab/install/templates/start_worker.rb +32 -0
  67. data/lib/generators/lab/install/templates/swagger.yaml +714 -0
  68. data/lib/his_emr_api_lab.rb +5 -0
  69. data/lib/lab/engine.rb +15 -0
  70. data/lib/lab/version.rb +5 -0
  71. data/lib/logger_multiplexor.rb +38 -0
  72. data/lib/tasks/lab_tasks.rake +25 -0
  73. data/lib/tasks/loaders/data/reasons-for-test.csv +7 -0
  74. data/lib/tasks/loaders/data/test-measures.csv +225 -0
  75. data/lib/tasks/loaders/data/tests.csv +161 -0
  76. data/lib/tasks/loaders/loader_mixin.rb +53 -0
  77. data/lib/tasks/loaders/metadata_loader.rb +26 -0
  78. data/lib/tasks/loaders/reasons_for_test_loader.rb +23 -0
  79. data/lib/tasks/loaders/specimens_loader.rb +65 -0
  80. data/lib/tasks/loaders/test_result_indicators_loader.rb +54 -0
  81. metadata +81 -2
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'csv'
4
+ require_relative './loader_mixin'
5
+
6
+ module Lab
7
+ module Loaders
8
+ ##
9
+ # Load specimens and their tests into the database
10
+ module TestResultIndicatorsLoader
11
+ class << self
12
+ include LoaderMixin
13
+
14
+ def load
15
+ puts "------- Loading measures ------------"
16
+ CSV.open(data_path('test-measures.csv'), headers: :first_row) do |csv|
17
+ csv.each_with_object({}) do |row, test_measures|
18
+ test_name = row['test_name']
19
+ measure_name = row['measure_name']
20
+
21
+ ActiveRecord::Base.transaction do
22
+ measure_concept = find_or_create_concept(measure_name)
23
+ add_measure_to_test(test_name, measure_concept)
24
+ end
25
+
26
+ puts "Created measure #{test_name} <--< #{measure_name}"
27
+ rescue StandardError => e
28
+ puts "Error: #{measure_name}: #{e}"
29
+ end
30
+ end
31
+ end
32
+
33
+ def create_test_type(name)
34
+ concept_id = find_or_create_concept(name, is_set: true).concept_id
35
+
36
+ create_concept_set(concept_set: test_type_concept_id, concept_id: concept_id)
37
+ rescue StandardError => e
38
+ raise "Failed to create test type `#{name}`: #{e}"
39
+ end
40
+
41
+ def add_measure_to_test(test_name, measure_concept)
42
+ [
43
+ add_concept_to_set(set_concept_id: find_or_create_concept(Lab::Metadata::TEST_RESULT_INDICATOR_CONCEPT_NAME).concept_id,
44
+ concept_id: measure_concept.concept_id),
45
+ add_concept_to_set(set_concept_id: measure_concept.concept_id,
46
+ concept_id: find_or_create_concept(test_name).concept_id)
47
+ ]
48
+ rescue StandardError => e
49
+ raise "Failed to create measure for test `#{name}`: #{e}"
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: his_emr_api_lab
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.22
4
+ version: 1.1.23
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elizabeth Glaser Pediatric Foundation Malawi
@@ -234,7 +234,86 @@ email:
234
234
  executables: []
235
235
  extensions: []
236
236
  extra_rdoc_files: []
237
- files: []
237
+ files:
238
+ - MIT-LICENSE
239
+ - README.md
240
+ - Rakefile
241
+ - app/controllers/lab/application_controller.rb
242
+ - app/controllers/lab/labels_controller.rb
243
+ - app/controllers/lab/orders_controller.rb
244
+ - app/controllers/lab/reasons_for_test_controller.rb
245
+ - app/controllers/lab/results_controller.rb
246
+ - app/controllers/lab/specimen_types_controller.rb
247
+ - app/controllers/lab/test_result_indicators_controller.rb
248
+ - app/controllers/lab/test_types_controller.rb
249
+ - app/controllers/lab/tests_controller.rb
250
+ - app/jobs/lab/application_job.rb
251
+ - app/jobs/lab/push_order_job.rb
252
+ - app/jobs/lab/update_patient_orders_job.rb
253
+ - app/jobs/lab/void_order_job.rb
254
+ - app/mailers/lab/application_mailer.rb
255
+ - app/models/lab/application_record.rb
256
+ - app/models/lab/lab_accession_number_counter.rb
257
+ - app/models/lab/lab_encounter.rb
258
+ - app/models/lab/lab_order.rb
259
+ - app/models/lab/lab_result.rb
260
+ - app/models/lab/lab_test.rb
261
+ - app/models/lab/lims_failed_import.rb
262
+ - app/models/lab/lims_order_mapping.rb
263
+ - app/serializers/lab/lab_order_serializer.rb
264
+ - app/serializers/lab/result_serializer.rb
265
+ - app/serializers/lab/test_serializer.rb
266
+ - app/services/lab/accession_number_service.rb
267
+ - app/services/lab/concepts_service.rb
268
+ - app/services/lab/labelling_service/order_label.rb
269
+ - app/services/lab/lims/api/blackhole_api.rb
270
+ - app/services/lab/lims/api/couchdb_api.rb
271
+ - app/services/lab/lims/api/mysql_api.rb
272
+ - app/services/lab/lims/api/rest_api.rb
273
+ - app/services/lab/lims/api/ws_api.rb
274
+ - app/services/lab/lims/api_factory.rb
275
+ - app/services/lab/lims/config.rb
276
+ - app/services/lab/lims/exceptions.rb
277
+ - app/services/lab/lims/migrator.rb
278
+ - app/services/lab/lims/order_dto.rb
279
+ - app/services/lab/lims/order_serializer.rb
280
+ - app/services/lab/lims/pull_worker.rb
281
+ - app/services/lab/lims/push_worker.rb
282
+ - app/services/lab/lims/utils.rb
283
+ - app/services/lab/lims/worker.rb
284
+ - app/services/lab/metadata.rb
285
+ - app/services/lab/orders_search_service.rb
286
+ - app/services/lab/orders_service.rb
287
+ - app/services/lab/results_service.rb
288
+ - app/services/lab/tests_service.rb
289
+ - config/routes.rb
290
+ - db/migrate/20210126092910_create_lab_lab_accession_number_counters.rb
291
+ - db/migrate/20210310115457_create_lab_lims_order_mappings.rb
292
+ - db/migrate/20210323080140_change_lims_id_to_string_in_lims_order_mapping.rb
293
+ - db/migrate/20210326195504_add_order_revision_to_lims_order_mapping.rb
294
+ - db/migrate/20210407071728_create_lab_lims_failed_imports.rb
295
+ - db/migrate/20210610095024_fix_numeric_results_value_type.rb
296
+ - db/migrate/20210807111531_add_default_to_lims_order_mapping.rb
297
+ - lib/auto12epl.rb
298
+ - lib/couch_bum/couch_bum.rb
299
+ - lib/generators/lab/install/USAGE
300
+ - lib/generators/lab/install/install_generator.rb
301
+ - lib/generators/lab/install/templates/rswag-ui-lab.rb
302
+ - lib/generators/lab/install/templates/start_worker.rb
303
+ - lib/generators/lab/install/templates/swagger.yaml
304
+ - lib/his_emr_api_lab.rb
305
+ - lib/lab/engine.rb
306
+ - lib/lab/version.rb
307
+ - lib/logger_multiplexor.rb
308
+ - lib/tasks/lab_tasks.rake
309
+ - lib/tasks/loaders/data/reasons-for-test.csv
310
+ - lib/tasks/loaders/data/test-measures.csv
311
+ - lib/tasks/loaders/data/tests.csv
312
+ - lib/tasks/loaders/loader_mixin.rb
313
+ - lib/tasks/loaders/metadata_loader.rb
314
+ - lib/tasks/loaders/reasons_for_test_loader.rb
315
+ - lib/tasks/loaders/specimens_loader.rb
316
+ - lib/tasks/loaders/test_result_indicators_loader.rb
238
317
  homepage: https://github.com/EGPAFMalawiHIS/his_emr_api_lab
239
318
  licenses:
240
319
  - MIT