From 0fd241cc399e0e665d0a7614e1a75c7abdb20b42 Mon Sep 17 00:00:00 2001 From: thomaswoehlke <thomas.woehlke@gmail.com> Date: Sat, 23 Jan 2021 17:00:47 +0100 Subject: [PATCH] Vaccination --- app.py | 9 ++-- data/germany_vaccinations_timeseries_v2.tsv | 52 ++++++++++--------- .../vaccination/vaccination_service.py | 26 +++++----- server_mq.py | 17 +++++- 4 files changed, 60 insertions(+), 44 deletions(-) diff --git a/app.py b/app.py index 260f1a35..888cc52a 100644 --- a/app.py +++ b/app.py @@ -15,6 +15,7 @@ from server_mq import who_run_update_task, who_update_short_task, who_update_ini from server_mq import alive_message_task from server_mq import europe_update_initial_task from server_mq import vaccination_update_initial_task +from server_mq import admin_database_drop_create_task drop_and_create_data_again = True @@ -573,12 +574,8 @@ def url_admin_database_drop(): who_service.run_download() flash("vaccination_service.run_download started") vaccination_service.run_download() - flash("europe_update_initial_task async started") - flash("who_update_initial_task async started") - flash("vaccination_update_initial_task async started") - europe_update_initial_task.apply_async() - who_update_initial_task.apply_async() - vaccination_update_initial_task.apply_async() + flash("admin_database_drop_create_task async started") + admin_database_drop_create_task.apply_async() app.logger.info("url_admin_database_drop [done]") return redirect(url_for('url_admin_tasks')) diff --git a/data/germany_vaccinations_timeseries_v2.tsv b/data/germany_vaccinations_timeseries_v2.tsv index 242bb39f..50e178f5 100644 --- a/data/germany_vaccinations_timeseries_v2.tsv +++ b/data/germany_vaccinations_timeseries_v2.tsv @@ -1,24 +1,28 @@ -date dosen_kumulativ dosen_differenz_zum_vortag dosen_biontech_kumulativ dosen_moderna_kumulativ personen_erst_kumulativ personen_voll_kumulativ impf_quote_erst impf_quote_voll indikation_alter_dosen indikation_beruf_dosen indikation_medizinisch_dosen indikation_pflegeheim_dosen indikation_alter_erst indikation_beruf_erst indikation_medizinisch_erst indikation_pflegeheim_erst indikation_alter_voll indikation_beruf_voll indikation_medizinisch_voll indikation_pflegeheim_voll -2020-12-27 24179 0 24179 0 24179 0 0.00029 0.00000 5891 8178 976 13584 5891 8178 976 13584 0 0 0 0 -2020-12-28 43726 19547 43726 0 43726 0 0.00053 0.00000 12523 15574 1686 23354 12523 15574 1686 23354 0 0 0 0 -2020-12-29 86531 42805 86531 0 86531 0 0.00104 0.00000 21630 37283 2725 40245 21630 37283 2725 40245 0 0 0 0 -2020-12-30 143768 57237 143768 0 143768 0 0.00173 0.00000 32263 68330 3943 61490 32263 68330 3943 61490 0 0 0 0 -2020-12-31 181629 37861 181629 0 181629 0 0.00218 0.00000 40306 86774 5487 76865 40306 86774 5487 76865 0 0 0 0 -2021-01-01 212205 30576 212205 0 212205 0 0.00255 0.00000 47947 98956 6409 91734 47947 98956 6409 91734 0 0 0 0 -2021-01-02 256963 44758 256963 0 256963 0 0.00309 0.00000 57572 120155 7467 110570 57572 120155 7467 110570 0 0 0 0 -2021-01-03 281508 24545 281508 0 281508 0 0.00338 0.00000 64309 130734 8150 121462 64309 130734 8150 121462 0 0 0 0 -2021-01-04 330016 48508 330016 0 330016 0 0.00397 0.00000 75556 155413 10482 137731 75556 155413 10482 137731 0 0 0 0 -2021-01-05 380817 50801 380817 0 380817 0 0.00458 0.00000 87330 181726 12627 155645 87330 181726 12627 155645 0 0 0 0 -2021-01-06 436540 55723 436540 0 436540 0 0.00525 0.00000 97479 210848 15223 175734 97479 210848 15223 175734 0 0 0 0 -2021-01-07 493650 57110 493650 0 493650 0 0.00594 0.00000 111827 240025 17922 193472 111827 240025 17922 193472 0 0 0 0 -2021-01-08 551325 57675 551325 0 551325 0 0.00663 0.00000 124977 269829 20583 212622 124977 269829 20583 212622 0 0 0 0 -2021-01-09 604775 53450 604775 0 604775 0 0.00727 0.00000 138513 292637 22106 234466 138513 292637 22106 234466 0 0 0 0 -2021-01-10 636972 32197 636972 0 636972 0 0.00766 0.00000 148981 306273 23059 246201 148981 306273 23059 246201 0 0 0 0 -2021-01-11 702552 65580 702552 0 702552 0 0.00845 0.00000 168970 337618 25747 266395 168970 337618 25747 266395 0 0 0 0 -2021-01-12 782126 79574 782126 0 782126 0 0.00940 0.00000 190111 378649 28738 289894 190111 378649 28738 289894 0 0 0 0 -2021-01-13 875514 93388 875192 322 875514 0 0.01053 0.00000 211878 427187 30372 315929 211878 427187 30372 315929 0 0 0 0 -2021-01-14 973784 98270 970407 3377 973784 0 0.01171 0.00000 233588 476087 31872 346075 233588 476087 31872 346075 0 0 0 0 -2021-01-15 1062660 88876 1055282 7378 1062545 115 0.01278 0.00000 257103 520179 34251 371290 257103 520160 34251 371254 0 19 0 36 -2021-01-16 1116813 54153 1107679 9134 1116357 456 0.01342 0.00001 272722 543186 35530 388392 272722 543134 35530 388278 0 52 0 114 -2021-01-17 1157743 40930 1147194 10549 1146254 11489 0.01378 0.00014 283437 559748 36721 402176 280481 556578 36352 396419 2956 3170 369 5757 -2021-01-18 1220284 62541 1207954 12330 1195543 24741 0.01438 0.00030 305468 585039 38117 418626 299576 576794 37687 407835 5892 8245 430 10791 +date dosen_kumulativ dosen_differenz_zum_vortag dosen_biontech_kumulativ dosen_moderna_kumulativ personen_erst_kumulativ personen_voll_kumulativ impf_quote_erst impf_quote_voll indikation_alter_dosen indikation_beruf_dosen indikation_medizinisch_dosen indikation_pflegeheim_dosen indikation_alter_erst indikation_beruf_erst indikation_medizinisch_erst indikation_pflegeheim_erst indikation_alter_voll indikation_beruf_voll indikation_medizinisch_voll indikation_pflegeheim_voll +2020-12-27 24256 24256 24256 0 24256 0 0.00029 0.00000 6114 8238 877 13493 6114 8238 877 13493 0 0 0 0 +2020-12-28 43905 19649 43905 0 43905 0 0.00053 0.00000 12980 15463 1622 23294 12980 15463 1622 23294 0 0 0 0 +2020-12-29 86981 43076 86981 0 86981 0 0.00105 0.00000 22393 36876 2661 40452 22393 36876 2661 40452 0 0 0 0 +2020-12-30 144421 57440 144421 0 144421 0 0.00174 0.00000 33477 67667 3918 61679 33477 67667 3918 61679 0 0 0 0 +2020-12-31 182427 38006 182427 0 182427 0 0.00219 0.00000 41637 86182 5402 77086 41637 86182 5402 77086 0 0 0 0 +2021-01-01 213023 30596 213023 0 213023 0 0.00256 0.00000 49331 98437 6362 91825 49331 98437 6362 91825 0 0 0 0 +2021-01-02 257920 44897 257920 0 257920 0 0.00310 0.00000 59318 119388 7403 110722 59318 119388 7403 110722 0 0 0 0 +2021-01-03 282450 24530 282450 0 282450 0 0.00340 0.00000 66210 129823 8103 121545 66210 129823 8103 121545 0 0 0 0 +2021-01-04 331080 48630 331080 0 331080 0 0.00398 0.00000 78664 153812 10425 137430 78664 153812 10425 137430 0 0 0 0 +2021-01-05 382086 51006 382086 0 382086 0 0.00459 0.00000 92388 177809 13132 155384 92388 177809 13132 155384 0 0 0 0 +2021-01-06 438354 56268 438354 0 438354 0 0.00527 0.00000 104772 204934 16035 175580 104772 204934 16035 175580 0 0 0 0 +2021-01-07 496204 57850 496204 0 496204 0 0.00597 0.00000 121675 231486 19052 194012 121675 231486 19052 194012 0 0 0 0 +2021-01-08 554232 58028 554232 0 554232 0 0.00666 0.00000 136792 258787 22218 213632 136792 258787 22218 213632 0 0 0 0 +2021-01-09 607874 53642 607874 0 607874 0 0.00731 0.00000 151137 280356 23735 236133 151137 280356 23735 236133 0 0 0 0 +2021-01-10 640337 32463 640337 0 640337 0 0.00770 0.00000 161768 293787 24765 248098 161768 293787 24765 248098 0 0 0 0 +2021-01-11 706205 65868 706205 0 706205 0 0.00849 0.00000 183730 321246 27969 269979 183730 321246 27969 269979 0 0 0 0 +2021-01-12 786323 80118 786323 0 786323 0 0.00945 0.00000 207145 359019 31702 294265 207145 359019 31702 294265 0 0 0 0 +2021-01-13 880221 93898 879532 689 880221 0 0.01058 0.00000 230597 403991 33804 322197 230597 403991 33804 322197 0 0 0 0 +2021-01-14 978830 98609 975505 4684 978784 46 0.01177 0.00000 254201 448510 35929 354458 254200 448509 35929 354457 1 1 0 1 +2021-01-15 1069381 90551 1061220 9520 1069117 264 0.01286 0.00000 279630 490106 38231 381974 279628 490086 38231 381934 2 20 0 40 +2021-01-16 1124280 54899 1114269 11370 1123548 732 0.01351 0.00001 295724 512753 39670 399490 295719 512698 39670 399372 5 55 0 118 +2021-01-17 1169306 45026 1157880 12785 1154115 15191 0.01388 0.00018 307433 530983 40438 414535 303698 526311 40146 408100 3735 4672 292 6435 +2021-01-18 1237259 67953 1223892 14726 1205919 31340 0.01450 0.00038 331660 557508 42243 432560 323875 546885 41785 420487 7785 10623 458 12073 +2021-01-19 1321216 83957 1306374 16201 1262754 58462 0.01518 0.00070 359502 590538 44749 455695 346145 569257 43883 435846 13357 21281 866 19849 +2021-01-20 1439168 117952 1423197 17319 1334041 105127 0.01604 0.00126 389636 638228 47834 490809 369880 597936 46453 457000 19756 40292 1381 33809 +2021-01-21 1526041 86873 1508969 18416 1390052 135989 0.01671 0.00164 422935 674371 52442 519875 393711 619938 48808 473224 29224 54433 3634 46651 +2021-01-22 1632777 106736 1614470 19651 1469353 163424 0.01767 0.00197 456933 720183 55165 557621 419138 653041 50924 497963 37795 67142 4241 59658 diff --git a/org/woehlke/covid19/vaccination/vaccination_service.py b/org/woehlke/covid19/vaccination/vaccination_service.py index 6f0d4ad4..b3b752aa 100644 --- a/org/woehlke/covid19/vaccination/vaccination_service.py +++ b/org/woehlke/covid19/vaccination/vaccination_service.py @@ -1,8 +1,8 @@ import os from database import app -from org.woehlke.covid19.who.who_service_download import WhoServiceDownload -from org.woehlke.covid19.who.who_service_import import WhoServiceImport -from org.woehlke.covid19.who.who_service_update import WhoServiceUpdate +from org.woehlke.covid19.vaccination.vaccination_service_download import VaccinationServiceDownload +from org.woehlke.covid19.vaccination.vaccination_service_import import VaccinationServiceImport +from org.woehlke.covid19.vaccination.vaccination_service_update import VaccinationServiceUpdate vaccination_service = None @@ -14,13 +14,13 @@ class VaccinationService: app.logger.info("------------------------------------------------------------") self.__database = database self.limit_nr = 20 - self.__who_cvsfile_name = "WHO-COVID-19-global-data.csv" - self.__src_who_cvsfile_name = "data"+os.sep+self.__who_cvsfile_name - self.__src_who_cvsfile_tmp_name = "data"+os.sep+"tmp_"+self.__who_cvsfile_name - self.__url_src_data = "https://covid19.who.int/"+self.__who_cvsfile_name - self.vaccination_service_download = WhoServiceDownload(database) - self.vaccination_service_import = WhoServiceImport(database) - self.vaccination_service_update = WhoServiceUpdate(database) + self.__cvsfile_name = "germany_vaccinations_timeseries_v2.tsv" + self.__src_cvsfile_name = "data"+os.sep+self.__cvsfile_name + self.__src_cvsfile_tmp_name = "data"+os.sep+"tmp_"+self.__cvsfile_name + self.__url_src_data = "https://impfdashboard.de/static/data/germany_vaccinations_timeseries_v2.tsv" + self.vaccination_service_download = VaccinationServiceDownload(database) + self.vaccination_service_import = VaccinationServiceImport(database) + self.vaccination_service_update = VaccinationServiceUpdate(database) app.logger.info("------------------------------------------------------------") app.logger.info(" Vaccination Service [ready]") @@ -58,9 +58,9 @@ class VaccinationService: def run_update_initial(self, import_file=True): app.logger.info(" run update initial [begin]") app.logger.info("------------------------------------------------------------") - if import_file: - self.vaccination_service_import.import_file() - self.vaccination_service_update.update_db_initial() + #if import_file: + # self.vaccination_service_import.import_file() + #self.vaccination_service_update.update_db_initial() app.logger.info("") app.logger.info(" run update initial [done]") app.logger.info("------------------------------------------------------------") diff --git a/server_mq.py b/server_mq.py index b75c378c..353f31e8 100644 --- a/server_mq.py +++ b/server_mq.py @@ -83,9 +83,24 @@ def vaccination_update_initial_task(self): logger.info("------------------------------------------------------------") logger.info(" Received: vaccination_update_initial_task [OK] ") logger.info("------------------------------------------------------------") - #vaccination_service.run_update_initial() + vaccination_service.run_update_initial() self.update_state(state=states.SUCCESS) result = "OK (vaccination_update_initial_task)" return result +@celery.task(bind=True) +def admin_database_drop_create_task(self): + self.update_state(state=states.STARTED) + logger.info("------------------------------------------------------------") + logger.info(" Received: admin_database_drop_create_task [OK] ") + logger.info("------------------------------------------------------------") + who_service.run_update_initial() + europe_service.run_update_initial() + vaccination_service.run_update_initial() + self.update_state(state=states.SUCCESS) + result = "OK (admin_database_drop_create_task)" + return result + + + -- GitLab