malawi_hiv_program_reports 1.0.20 → 1.0.22
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
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9c5eda4737dd9269c63b370e6cb50a0189778b2bf740b26891dd69765356a81a
|
4
|
+
data.tar.gz: 9b9ddbc36fdd5b5e0c16c909c5dfd8ea979a69c9ea7736abe1fddb4bb6af4ca7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 22544af6a23a6e6babe971dcbd9ce6a1366150e61f80e24f94ed2f4570c19a93417f7d3a05db3d2e60df6634ad04663be428af3bfe4ca52c7700a68d72b07dda
|
7
|
+
data.tar.gz: 1c2bf313e182a4bcfa73fa3ee3bd9c497ae99f172cf12fefbc4ec371e6ac0219de847b5280b5d4c2ed355b36056ce3a3df8d795700ea9fe57098d09d47653d6c
|
@@ -69,6 +69,7 @@ module MalawiHivProgramReports
|
|
69
69
|
# rubocop:enable Metrics/MethodLength
|
70
70
|
|
71
71
|
def process_data(location)
|
72
|
+
start_time = Time.now
|
72
73
|
cdr_other_patient_types location
|
73
74
|
external_clients location
|
74
75
|
transfer_ins location
|
@@ -78,6 +79,9 @@ module MalawiHivProgramReports
|
|
78
79
|
cohort_members location
|
79
80
|
outcome = MalawiHivProgramReports::Moh::CumulativeOutcome.new(end_date:, location:, definition:, rebuild:)
|
80
81
|
outcome.find_report
|
82
|
+
end_time = Time.now
|
83
|
+
time_taken = ((end_time - start_time) / 60).round(2)
|
84
|
+
save_completed_site(location:, time_taken:)
|
81
85
|
end
|
82
86
|
|
83
87
|
# rubocop:disable Metrics/CyclomaticComplexity
|
@@ -89,9 +93,30 @@ module MalawiHivProgramReports
|
|
89
93
|
create_external_clients_table unless check_if_table_exists('cdr_temp_external_clients')
|
90
94
|
create_temp_cohort_members_table unless check_if_table_exists('cdr_temp_cohort_members')
|
91
95
|
create_cdr_reason_for_starting_art unless check_if_table_exists('cdr_reason_for_starting_art')
|
96
|
+
create_cdr_temp_cohort_status unless check_if_table_exists('cdr_temp_cohort_status')
|
92
97
|
end
|
93
98
|
# rubocop:enable Metrics/CyclomaticComplexity
|
94
99
|
|
100
|
+
def save_completed_site(location:, time_taken:)
|
101
|
+
ActiveRecord::Base.connection.execute <<~SQL
|
102
|
+
INSERT INTO cdr_temp_cohort_status
|
103
|
+
VALUES (#{location}, DATE(#{start_date}), DATE(#{end_date}), 'completed', #{time_taken})
|
104
|
+
SQL
|
105
|
+
end
|
106
|
+
|
107
|
+
def create_cdr_temp_cohort_status
|
108
|
+
ActiveRecord::Base.connection.execute <<~SQL
|
109
|
+
CREATE TABLE IF NOT EXISTS cdr_temp_cohort_status (
|
110
|
+
site_id INT NOT NULL,
|
111
|
+
start_date DATE NOT NULL,
|
112
|
+
end_date DATE NOT NULL,
|
113
|
+
status VARCHAR(50) NOT NULL,
|
114
|
+
time_taken DECIMAL(40,2) DEFAULT NULL,
|
115
|
+
PRIMARY KEY (site_id, start_date, end_date)
|
116
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8
|
117
|
+
SQL
|
118
|
+
end
|
119
|
+
|
95
120
|
def create_external_clients_table
|
96
121
|
ActiveRecord::Base.connection.execute <<~SQL
|
97
122
|
CREATE TABLE IF NOT EXISTS cdr_temp_external_clients (
|
@@ -383,6 +408,7 @@ module MalawiHivProgramReports
|
|
383
408
|
ActiveRecord::Base.connection.execute('TRUNCATE TABLE cdr_temp_cohort_members')
|
384
409
|
ActiveRecord::Base.connection.execute('TRUNCATE TABLE cdr_temp_external_clients')
|
385
410
|
ActiveRecord::Base.connection.execute('TRUNCATE TABLE cdr_reason_for_starting_art')
|
411
|
+
ActiveRecord::Base.connection.execute('TRUNCATE TABLE cdr_temp_cohort_status')
|
386
412
|
else
|
387
413
|
ActiveRecord::Base.connection.execute("DELETE FROM cdr_other_patient_types WHERE site_id IN (#{locations.join(',')})")
|
388
414
|
ActiveRecord::Base.connection.execute("DELETE FROM cdr_temp_potential_cohort_members WHERE site_id IN (#{locations.join(',')})")
|
@@ -391,6 +417,7 @@ module MalawiHivProgramReports
|
|
391
417
|
ActiveRecord::Base.connection.execute("DELETE FROM cdr_temp_cohort_members WHERE site_id IN (#{locations.join(',')})")
|
392
418
|
ActiveRecord::Base.connection.execute("DELETE FROM cdr_temp_external_clients WHERE site_id IN (#{locations.join(',')})")
|
393
419
|
ActiveRecord::Base.connection.execute("DELETE FROM cdr_reason_for_starting_art WHERE site_id IN (#{locations.join(',')})")
|
420
|
+
ActiveRecord::Base.connection.execute("DELETE FROM cdr_temp_cohort_status WHERE site_id IN (#{locations.join(',')})")
|
394
421
|
end
|
395
422
|
end
|
396
423
|
end
|
@@ -16,15 +16,10 @@ module MalawiHivProgramReports
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def find_report
|
19
|
-
start_time = Time.now
|
20
19
|
prepare_tables
|
21
20
|
clear_tables if rebuild
|
22
21
|
update_steps unless rebuild
|
23
22
|
process_data
|
24
|
-
end_time = Time.now
|
25
|
-
total_time_in_minutes = ((end_time - start_time) / 60).round(2)
|
26
|
-
Rails.logger.info("Cumulative Outcome report completed in #{total_time_in_minutes} minutes for location: #{location}")
|
27
|
-
{ cumulative_outcome_time: total_time_in_minutes, definition: }
|
28
23
|
end
|
29
24
|
|
30
25
|
private
|
@@ -531,12 +526,14 @@ module MalawiHivProgramReports
|
|
531
526
|
ActiveRecord::Base.connection.execute('TRUNCATE cdr_temp_min_auto_expire_date')
|
532
527
|
ActiveRecord::Base.connection.execute('TRUNCATE cdr_temp_max_patient_state')
|
533
528
|
ActiveRecord::Base.connection.execute('TRUNCATE cdr_temp_max_patient_appointment')
|
529
|
+
ActiveRecord::Base.connection.execute('TRUNCATE cdr_temp_cohort_status')
|
534
530
|
else
|
535
531
|
ActiveRecord::Base.connection.execute("DELETE FROM cdr_temp_patient_outcomes WHERE site_id = #{location}")
|
536
532
|
ActiveRecord::Base.connection.execute("DELETE FROM cdr_temp_max_drug_orders WHERE site_id = #{location}")
|
537
533
|
ActiveRecord::Base.connection.execute("DELETE FROM cdr_temp_min_auto_expire_date WHERE site_id = #{location}")
|
538
534
|
ActiveRecord::Base.connection.execute("DELETE FROM cdr_temp_max_patient_state WHERE site_id = #{location}")
|
539
535
|
ActiveRecord::Base.connection.execute("DELETE FROM cdr_temp_max_patient_appointment WHERE site_id = #{location}")
|
536
|
+
ActiveRecord::Base.connection.execute("DELETE FROM cdr_temp_cohort_status WHERE site_id = #{location}")
|
540
537
|
end
|
541
538
|
end
|
542
539
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: malawi_hiv_program_reports
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.22
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Roy Chanunkha
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-05-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|