meta-edc 1.0.5__py3-none-any.whl → 1.0.7__py3-none-any.whl

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.
Files changed (42) hide show
  1. meta_ae/admin/modeladmin_mixins.py +0 -1
  2. meta_analytics/dataframes/__init__.py +3 -0
  3. meta_analytics/dataframes/constants.py +1 -1
  4. meta_analytics/dataframes/enrolled/__init__.py +0 -1
  5. meta_analytics/dataframes/get_eos_df.py +15 -2
  6. meta_analytics/dataframes/get_glucose_df.py +149 -0
  7. meta_analytics/dataframes/get_glucose_fbg_df.py +27 -0
  8. meta_analytics/dataframes/get_glucose_fbg_ogtt_df.py +22 -0
  9. meta_analytics/dataframes/glucose_endpoints/endpoint_by_date.py +106 -120
  10. meta_analytics/dataframes/glucose_endpoints/glucose_endpoints_by_date.py +36 -227
  11. meta_analytics/dataframes/utils.py +18 -4
  12. meta_analytics/notebooks/hiv_regimens.ipynb +425 -0
  13. meta_analytics/notebooks/monitoring_report.ipynb +1561 -0
  14. meta_analytics/notebooks/pharmacy.ipynb +971 -0
  15. meta_analytics/utils.py +81 -0
  16. {meta_edc-1.0.5.dist-info → meta_edc-1.0.7.dist-info}/METADATA +5 -4
  17. {meta_edc-1.0.5.dist-info → meta_edc-1.0.7.dist-info}/RECORD +41 -27
  18. {meta_edc-1.0.5.dist-info → meta_edc-1.0.7.dist-info}/WHEEL +1 -1
  19. meta_edc-1.0.7.dist-info/licenses/AUTHORS.rst +8 -0
  20. meta_prn/models/end_of_study.py +0 -2
  21. meta_prn/models/loss_to_followup.py +0 -2
  22. meta_prn/models/pregnancy_notification.py +0 -2
  23. meta_reports/migrations/0054_auto_20250422_2003.py +81 -0
  24. meta_reports/migrations/0055_alter_glucosesummary_table.py +17 -0
  25. meta_reports/migrations/0056_auto_20250422_2214.py +54 -0
  26. meta_reports/migrations/0057_auto_20250422_2224.py +54 -0
  27. meta_reports/migrations/0058_auto_20250422_2232.py +54 -0
  28. meta_reports/models/dbviews/glucose_summary/unmanaged_model.py +13 -1
  29. meta_reports/models/dbviews/glucose_summary/view_definition.py +8 -5
  30. meta_subject/form_validators/glucose_form_validator.py +16 -1
  31. meta_subject/forms/study_medication_form.py +5 -3
  32. meta_subject/migrations/0221_auto_20250402_1913.py +42 -0
  33. meta_subject/migrations/0222_alter_historicalstudymedication_stock_codes_and_more.py +46 -0
  34. meta_subject/models/blood_results/blood_results_hba1c.py +0 -1
  35. meta_subject/models/blood_results/blood_results_ins.py +0 -1
  36. meta_subject/models/blood_results/blood_results_lft.py +0 -1
  37. meta_subject/models/delivery.py +0 -2
  38. meta_subject/models/followup_examination.py +0 -2
  39. meta_analytics/dataframes/enrolled/get_glucose_df.py +0 -122
  40. /meta_edc-1.0.5.dist-info/AUTHORS → /meta_analytics/dataframes/glucose_endpoints/utils.py +0 -0
  41. {meta_edc-1.0.5.dist-info → meta_edc-1.0.7.dist-info/licenses}/LICENSE +0 -0
  42. {meta_edc-1.0.5.dist-info → meta_edc-1.0.7.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,81 @@
1
+ import pandas as pd
2
+ from great_tables import GT, html, loc, style
3
+
4
+
5
+ def df_as_great_table(
6
+ df_table: pd.DataFrame,
7
+ title=None,
8
+ subtitle=None,
9
+ ):
10
+ """Used by monitoring report"""
11
+ return (
12
+ GT(df_table)
13
+ .tab_header(title=html(f'<div class="table-header">{title}</div>'), subtitle=subtitle)
14
+ .cols_align(align="left", columns=[0, 1])
15
+ .cols_align(align="right", columns=list(range(2, len(df_table.columns))))
16
+ .opt_stylize(style=3)
17
+ .opt_row_striping(row_striping=True)
18
+ .opt_vertical_padding(scale=1.2)
19
+ .opt_horizontal_padding(scale=1.0)
20
+ .tab_options(
21
+ table_width="100%",
22
+ stub_background_color="snow",
23
+ row_group_border_bottom_style="hidden",
24
+ row_group_padding=0.5,
25
+ row_group_background_color="snow",
26
+ table_background_color="snow",
27
+ table_font_size=10,
28
+ )
29
+ .tab_style(
30
+ style=[style.fill(color="snow"), style.text(color="black")],
31
+ locations=loc.body(
32
+ columns=list(range(0, len(df_table.columns))),
33
+ rows=list(range(0, len(df_table))),
34
+ ),
35
+ )
36
+ .tab_style(
37
+ style=[style.fill(color="lightgray"), style.text(color="black")],
38
+ locations=loc.body(
39
+ columns=[0],
40
+ rows=list(range(0, len(df_table))),
41
+ ),
42
+ )
43
+ )
44
+
45
+
46
+ def df_as_great_table2(
47
+ df_table: pd.DataFrame,
48
+ title=None,
49
+ subtitle=None,
50
+ rowname_col: str | None = None,
51
+ groupname_col: str | None = None,
52
+ ):
53
+ """Used by monitoring report"""
54
+ rowname_col = rowname_col or "label"
55
+ groupname_col = groupname_col or "visit_code"
56
+ return (
57
+ GT(df_table, rowname_col=rowname_col, groupname_col=groupname_col)
58
+ .tab_header(title=html(f'<div class="table-header">{title}</div>'), subtitle=subtitle)
59
+ .cols_align(align="left", columns=[0, 1])
60
+ .cols_align(align="right", columns=list(range(2, len(df_table.columns))))
61
+ .opt_stylize(style=3)
62
+ .opt_row_striping(row_striping=True)
63
+ .opt_vertical_padding(scale=1.2)
64
+ .opt_horizontal_padding(scale=1.0)
65
+ .tab_options(
66
+ table_width="100%",
67
+ stub_background_color="snow",
68
+ row_group_border_bottom_style="hidden",
69
+ row_group_padding=0.5,
70
+ row_group_background_color="snow",
71
+ table_background_color="snow",
72
+ table_font_size=10,
73
+ )
74
+ .tab_style(
75
+ style=[style.fill(color="snow"), style.text(color="black")],
76
+ locations=loc.body(
77
+ columns=list(range(0, len(df_table.columns))),
78
+ rows=list(range(0, len(df_table))),
79
+ ),
80
+ )
81
+ )
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: meta-edc
3
- Version: 1.0.5
3
+ Version: 1.0.7
4
4
  Summary: META Trial EDC (http://www.isrctn.com/ISRCTN76157257)
5
5
  Home-page: https://github.com/meta-trial/meta-edc
6
6
  Author: Erik van Widenfelt
@@ -692,12 +692,13 @@ Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
692
692
  Requires-Python: >=3.12
693
693
  Description-Content-Type: text/x-rst
694
694
  License-File: LICENSE
695
- License-File: AUTHORS
696
- Requires-Dist: edc==1.0.8
695
+ License-File: AUTHORS.rst
696
+ Requires-Dist: edc==1.0.9
697
697
  Requires-Dist: edc-microscopy
698
698
  Requires-Dist: beautifulsoup4
699
699
  Requires-Dist: celery[redis]
700
700
  Requires-Dist: django-pylabels
701
+ Dynamic: license-file
701
702
 
702
703
  |pypi| |actions| |codecov| |downloads|
703
704
 
@@ -18,7 +18,7 @@ meta_ae/admin/death_report_admin.py,sha256=GvLgWZgil0Yorl8GxaOZOFu_YU9l-CtQQhL03
18
18
  meta_ae/admin/death_report_tmg_admin.py,sha256=iAYp1zgO96ioVHtUfAWw4PG_oLixTGbRpdszHlLjM0E,518
19
19
  meta_ae/admin/death_report_tmg_second_admin.py,sha256=4_Qg8S4yKF4kwKOEB1zVwfn_dlUWnTIim0wXrvrtz-0,548
20
20
  meta_ae/admin/hospitalization_admin.py,sha256=fk4i47ugp4Gg6CvW34l-LcRwM3JtAKg4MUs43rz5DzA,525
21
- meta_ae/admin/modeladmin_mixins.py,sha256=7NWVQSOzokbfYsGkkXspwLFFwdLgY59EWoFrU0HA05Q,4248
21
+ meta_ae/admin/modeladmin_mixins.py,sha256=1xr44vHHWHWtsz89wcoeXvEVwmHSz-6ClA53x90HwxA,4205
22
22
  meta_ae/forms/__init__.py,sha256=nl3x6_c9Kmcn3hpTQ9DUdZT6vT9k7RBmYD_meOUc7jQ,492
23
23
  meta_ae/forms/ae_followup_form.py,sha256=hnFlKLPWpJX172UF3C825hZMjM4NUeTI3b__AZt1MqU,298
24
24
  meta_ae/forms/ae_initial_form.py,sha256=rmu4qx84df5Gpvx0ZPa39EtSGP7JR8nh9mztcsE9O4Q,292
@@ -85,19 +85,26 @@ meta_analytics/README.rst,sha256=x5KDks1P2bSPdyq3f9CNkynAAgJaXl7AX_3rnmC16HU,357
85
85
  meta_analytics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
86
  meta_analytics/constants.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
87
87
  meta_analytics/get_tables.py,sha256=3jFmvLXWHY3FPd1u5OPVpAKWUcruCH0-A0KdKiiFGpc,2219
88
- meta_analytics/dataframes/__init__.py,sha256=DHO81CYc5foDgy2HBEnlaHRtohMo-blvSvZPMDQaHUk,547
89
- meta_analytics/dataframes/constants.py,sha256=Wcub_3U5xHa027ykotySiUxMECjmswGIADVeT0iJXXs,792
90
- meta_analytics/dataframes/get_eos_df.py,sha256=quWdYsgwna9wfJ8GJPiiNLreRIrD4lY9BkFNAAjb2ds,784
88
+ meta_analytics/utils.py,sha256=mVcjhfGqicJOAV9DPcslKCsSvAVmbPz_wiTU2jPMs30,2788
89
+ meta_analytics/dataframes/__init__.py,sha256=ioeo6piqRBz0zbysG59mKo9bNJpvQgzDD3L9iN873r8,702
90
+ meta_analytics/dataframes/constants.py,sha256=D1rxTWPql3W8LalaerSvGgkHotL77e9JlH2O5kwZeTY,791
91
+ meta_analytics/dataframes/get_eos_df.py,sha256=HlDFaA6SVj2Idihk0R2m9KUm5PEdbh0FWOM-NmSYUoM,1246
92
+ meta_analytics/dataframes/get_glucose_df.py,sha256=aPxzuion67lRZJmL6mhFWKnaTC0f9VAkx4lHcSohWK0,5201
93
+ meta_analytics/dataframes/get_glucose_fbg_df.py,sha256=iVWHRDwUeSt1PuUBRgJOyZKIVEwvYghUurz6cAF2IhM,923
94
+ meta_analytics/dataframes/get_glucose_fbg_ogtt_df.py,sha256=ouRXlQKOws1CK38OgnKjGGEKf3sgG4e8Ktf9MP_SYzU,669
91
95
  meta_analytics/dataframes/get_last_imp_visits_df.py,sha256=cScwy_nBGHg04_AYpjz_pTq13Q4iyb33SiKk6CltbyQ,3803
92
- meta_analytics/dataframes/utils.py,sha256=2V3nFFnaysuJvNrcHUOLqOk8e_3aP71079kB_YBXcQw,2014
93
- meta_analytics/dataframes/enrolled/__init__.py,sha256=uKniE7L86umlSmGOjAFuwwsbyZj31mELGUpY3hByo4s,43
94
- meta_analytics/dataframes/enrolled/get_glucose_df.py,sha256=L4gzszNjYzu-QmYu4gs1c7_Edcv7FgAjucihxHtANSY,5004
96
+ meta_analytics/dataframes/utils.py,sha256=NNJ2EZmpSXJqa7jCoNgqd4F3irQ_93ZsNnv6PPIm7S8,2383
97
+ meta_analytics/dataframes/enrolled/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
95
98
  meta_analytics/dataframes/glucose_endpoints/__init__.py,sha256=a9RlAnFM0Z4AKw-WztBvnGMo3tLLe1dx3292A2n_CnA,107
96
- meta_analytics/dataframes/glucose_endpoints/endpoint_by_date.py,sha256=aOadsfeclOEGFo5agSZUbY2NdM8iZDsOLdg-5j8aelg,7011
97
- meta_analytics/dataframes/glucose_endpoints/glucose_endpoints_by_date.py,sha256=052BpLJoJezjr2tMXI5-GBRk_e6gT0bZZsjhx_Uhlm8,21550
99
+ meta_analytics/dataframes/glucose_endpoints/endpoint_by_date.py,sha256=4Qd3i9hfSSkn_El7QAjuJDUbzQ1LBpkmFw0rHSlBfG0,6531
100
+ meta_analytics/dataframes/glucose_endpoints/glucose_endpoints_by_date.py,sha256=Nr92PmfmaS_OPPp6hmK1OWZsOr3eQ5FMD5u_oDF8Ylk,13682
101
+ meta_analytics/dataframes/glucose_endpoints/utils.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
98
102
  meta_analytics/dataframes/screening/__init__.py,sha256=onGpmB4474gu_JcyRGdRy09YQyP2Np-mX-rYZTFdJoA,114
99
103
  meta_analytics/dataframes/screening/get_glucose_tested_only_df.py,sha256=0oMJIsIJRjurfpPONuJ4Aoab1UJikezGe3lQNWRoOo4,660
100
104
  meta_analytics/dataframes/screening/get_screening_df.py,sha256=t_xxr7YId3QsXbwjPpi7nIgkleKprmZSqAin2cuB2Vc,6273
105
+ meta_analytics/notebooks/hiv_regimens.ipynb,sha256=wmwhZnbP1HkVbk8yaHzrLikpNAHHNCXvVBhdyN-8TJw,15231
106
+ meta_analytics/notebooks/monitoring_report.ipynb,sha256=wUbL6-ljGZFbbt87lU6AvnBB_RyNj10PB7BJO0WHeUU,66290
107
+ meta_analytics/notebooks/pharmacy.ipynb,sha256=3PKWRNjx-uDMrrpkQth368d9hdtKrYijvv5RJW2TgEw,32585
101
108
  meta_analytics/notebooks/cleaning/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
102
109
  meta_analytics/tables/__init__.py,sha256=mhESCt0Lq4RJU-lbQ5fVfIbXzrEsootGYp7EzQIqDBI,70
103
110
  meta_analytics/tables/eligible.py,sha256=2q-SMbAsrBgOVc4Ttq5P3bpjsUKwP5hYhJBMgyH6GGI,3389
@@ -260,6 +267,8 @@ meta_edc/tests/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
260
267
  meta_edc/tests/tests/test_endpoints.py,sha256=5FdIHTd1xhUIgQLBzMV-Ml3VoFrlBrLLUbNarme5raw,23541
261
268
  meta_edc/views/__init__.py,sha256=TBXTih4Mpsg5Oh2jbyXqL9kH7bu3vWNRgVe93hvLCl8,32
262
269
  meta_edc/views/home_view.py,sha256=BXydy77TcdcM0-R3S_uHI4DtfnLMIzPJMyqjFJZFSsA,916
270
+ meta_edc-1.0.7.dist-info/licenses/AUTHORS.rst,sha256=wL4KUOd7FAFThhkLAJxSLQ2BPzd3ikG9q0UVZr3BbLg,244
271
+ meta_edc-1.0.7.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
263
272
  meta_export/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
264
273
  meta_export/admin_site.py,sha256=CiKAf0gDFvBKVc-1VM6KwM905ayVZuiY1tgaTeUeCi0,167
265
274
  meta_export/apps.py,sha256=3_5LB1MLtzfKekI2vT9Cm6puAx6t6AjtIfTTVdItdKg,226
@@ -448,12 +457,12 @@ meta_prn/migrations/0062_alter_endofstudy_offstudy_reason_and_more.py,sha256=L1Z
448
457
  meta_prn/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
449
458
  meta_prn/models/__init__.py,sha256=l06P7L2_Aye2h2VmAyb1XRcIbQAOyxws08IMc8sIops,717
450
459
  meta_prn/models/dm_referral.py,sha256=XyyB5ylcaMRCumGRFPlh2Op5VvT9ROJ1A9x5q55vUuc,1096
451
- meta_prn/models/end_of_study.py,sha256=TBvLrJO6hLNBc69w7jBgWesMoJvrdeiT1TzLPWZffd8,5418
452
- meta_prn/models/loss_to_followup.py,sha256=k4fXO6_U-IXiEOOnLrxhhuiTYgisPT5lqqA7mavZFfs,2436
460
+ meta_prn/models/end_of_study.py,sha256=3ZzuJfhZD5MONM8kS2nJQ7H76y2orqpGsVT3sT4O8uw,5379
461
+ meta_prn/models/loss_to_followup.py,sha256=qo2RrK5cVC1wLE7DdE6rTCCtYn7iAMomov9IbSCFuWg,2397
453
462
  meta_prn/models/off_study_medication.py,sha256=qq8DadWCNvFOYLkx9VoDMyLnbuZiRGc7-gmPSb-QVFk,1701
454
463
  meta_prn/models/offschedule.py,sha256=DjQvXteecXJOzN6ijdH36FCxXoR1halzxl9EliqQJk8,1717
455
464
  meta_prn/models/onschedule.py,sha256=xAlKzvcM5VzVfzaayjUEvUSL6rsALQQSm9iFCs1rnWc,930
456
- meta_prn/models/pregnancy_notification.py,sha256=ERSifeybl5zviBMsC-EGZ9I6KoZzW3t-paAprkkPhNs,3129
465
+ meta_prn/models/pregnancy_notification.py,sha256=HqRsonJ0F1nxLczVtgPkvGb7kWQOkJDz3w67jOxi5j4,3090
457
466
  meta_prn/models/protocol_incident.py,sha256=9oTTFbATlNN7VY7qcxfcIk9DxYwL3CCFknzuze_VrOM,1089
458
467
  meta_prn/models/signals.py,sha256=duIB07Ppg8fpFCoyaPJ_YpzGSacXU3hcEAG4TTRRMSc,3811
459
468
  meta_prn/models/subject_transfer.py,sha256=U-Y4sSfOR95jvDpxwu51Am_TyImvAAHZ3T2ENvx3OSk,266
@@ -567,6 +576,11 @@ meta_reports/migrations/0050_alter_endpoints_created.py,sha256=nqNIgK_cek2gtEhop
567
576
  meta_reports/migrations/0051_remove_endpoints_baseline_datetime_and_more.py,sha256=jq5N4un7QTCLe54WKJjfCL32X_QnyCiDRV3spwgseJI,1053
568
577
  meta_reports/migrations/0052_lastimpvisit.py,sha256=MWQhY3-2RGjB8k-cuiEVbWxeYNL7QfbngyaWIGgEsU4,2231
569
578
  meta_reports/migrations/0053_rename_lastimpvisit_lastimprefill_and_more.py,sha256=XYb3V0JQ0877DhaAaR0PxzPHdeBmmR_NQLJaGSzfHAI,887
579
+ meta_reports/migrations/0054_auto_20250422_2003.py,sha256=sMDsads7ydqAUmGRR6eaG0VwYTesAxDvw9RgUZ4O85E,10077
580
+ meta_reports/migrations/0055_alter_glucosesummary_table.py,sha256=q47-5ZSO8d5jUr76-iBAzGhwIo-6z_ZCPfNwKcAYE3U,363
581
+ meta_reports/migrations/0056_auto_20250422_2214.py,sha256=Tv1hp6K4GlSfUs-c7dzydPDtyihOtKUuPENNrUTzkx0,9138
582
+ meta_reports/migrations/0057_auto_20250422_2224.py,sha256=pGj-5Cr__ScaNtb8ROzm_4_Ke6jR8QlIIeXFAwiA5f8,9457
583
+ meta_reports/migrations/0058_auto_20250422_2232.py,sha256=SZ2RS5jUVhgnirgU2XAU-EIDtsbUWD1GDl5jg_hMTrc,9743
570
584
  meta_reports/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
571
585
  meta_reports/models/__init__.py,sha256=2F-4CS39Pu2LijF8ZkSn2nE3Lps3YEC9ZcBtNnmNXjI,423
572
586
  meta_reports/models/endpoints.py,sha256=iMx8QIi_hLANIwZmAw1OJ_jPuDdml8s181Skh8UF9bM,901
@@ -575,8 +589,8 @@ meta_reports/models/last_imp_refill.py,sha256=LkJtsZU7fhem5O-OqsyN-qgGQm_IUGAYEp
575
589
  meta_reports/models/dbviews/README,sha256=GdeboB7Xqb-Qo_rE1ondcxP8Ps93MIjLzCePQCePig0,686
576
590
  meta_reports/models/dbviews/__init__.py,sha256=C5YGOKwVAexjWxLh5vl0m561TBMWDM_yAvIrwqG_M70,559
577
591
  meta_reports/models/dbviews/glucose_summary/__init__.py,sha256=Tfgjso4TpxMCidAdRJp8g1Ykqqa43yWlQSotzAaORAo,93
578
- meta_reports/models/dbviews/glucose_summary/unmanaged_model.py,sha256=uqhD5JLXtyQ94zpG5Puxodjzli3quE4GgiFi7en6EeM,1055
579
- meta_reports/models/dbviews/glucose_summary/view_definition.py,sha256=Fc5KN-It9dcBvRta-b26kUl8uQEHA19vrYIhNRqe2Xo,1512
592
+ meta_reports/models/dbviews/glucose_summary/unmanaged_model.py,sha256=Z76vi6xCgLTq_QNeOPxzk3eRVZ3usTZdkZnoluI1GtU,1414
593
+ meta_reports/models/dbviews/glucose_summary/view_definition.py,sha256=mFv0Y6OQM6gwKRyNuTsJApeW6ehZmLNgtkaDVIIyuiQ,1735
580
594
  meta_reports/models/dbviews/imp_substitutions/__init__.py,sha256=N0507JzoVRtNA9W9_RoiAQYEQZGdvP2U8P83ZJMeZxQ,46
581
595
  meta_reports/models/dbviews/imp_substitutions/unmanaged_model.py,sha256=U3ZIggcWAokmeCFV6w-0TOwZQ6tjzH4ZGYwoqVPrd7M,1240
582
596
  meta_reports/models/dbviews/imp_substitutions/view_definition.py,sha256=1t6znTYQJxM_-nTRjMgEY3T2L_ZDFvh2tw-zT8fmxQU,897
@@ -815,7 +829,7 @@ meta_subject/form_validators/dm_endpoint_form_validator.py,sha256=XK7eZikVwBwSAe
815
829
  meta_subject/form_validators/dm_followup_form_validator.py,sha256=2ssfqmC8eKK0pwvi64dr0zOpioaNmJRtBtkj_YzTZY4,7962
816
830
  meta_subject/form_validators/egfr_drop_notification_form_validator.py,sha256=y5MUdRriMo8C2Qj_yzebDWsDkjQsFhcqTGrP8tBuhfA,530
817
831
  meta_subject/form_validators/followup_examination_form_validator.py,sha256=NS3Sa-bwC_HEe-CmezkFrbbjPanLe9p1v5ZOFspqgxg,4241
818
- meta_subject/form_validators/glucose_form_validator.py,sha256=ebtWmJo_0z8mlZzH377q4aTa9kY2R3CfCT5WtRxARb8,3371
832
+ meta_subject/form_validators/glucose_form_validator.py,sha256=Q3OydqNnIh6ucRqsiwakpdhNrz5GRsHJZEbbdbcM5pM,3986
819
833
  meta_subject/form_validators/health_economics_form_validator.py,sha256=kp-LQU4ydBXlnYFt-0xKuVSb8Y4irlhz9d_X8ppvWgE,250
820
834
  meta_subject/forms/__init__.py,sha256=LrGBLJ3Se3McgUOdcrDyTM4B7G8ChVCrxDq4DXiYDLE,1755
821
835
  meta_subject/forms/birth_outcomes_form.py,sha256=qqhZNQKiYk8C8CFebZTQB0hOm4ONrgkTG7hfuK7kW-o,374
@@ -841,7 +855,7 @@ meta_subject/forms/physical_exam_form.py,sha256=QgH1zAmYgp8Hi1tU-e68HaRRkZxf-6xG
841
855
  meta_subject/forms/pregnancy_update_form.py,sha256=BTiWPoQ-HYbZhW0Go2DSqYU_e51pmJ_UIxEdSNlzTwE,559
842
856
  meta_subject/forms/sf12_form.py,sha256=VDV4hyU9UckPX70isylfHWggcWZwiQfCWrpk9kGvxis,397
843
857
  meta_subject/forms/slider_widget.py,sha256=KOIyTfpl8yrcR9GZH4zrba8JUsVVEJME3AvrYiPHYJc,821
844
- meta_subject/forms/study_medication_form.py,sha256=at4ee0f5NNipYD15R_T8h3B7R9EH-H0V-co_B3n12WE,2969
858
+ meta_subject/forms/study_medication_form.py,sha256=KI-aFBQGZywwUUOlswTOiOrhR4jhOXfjTq7_SzZ3Y30,3104
845
859
  meta_subject/forms/subject_requisition_form.py,sha256=BWWk1njDTxenHAX1a-VHPgz9zAGTJxMNHtVsobO7Vqo,953
846
860
  meta_subject/forms/subject_visit_form.py,sha256=Zxyjb5-7wUmcLHD-M76ofuM8Vr92yzjvXqQ7GsB3U6o,1374
847
861
  meta_subject/forms/subject_visit_missed_form.py,sha256=Qrvo2A8836CspOKll_iN3a6U6ttzz1TFNbEbJRrg62g,2275
@@ -1088,6 +1102,8 @@ meta_subject/migrations/0217_alter_historicalnextappointment_appt_datetime_and_m
1088
1102
  meta_subject/migrations/0218_alter_historicalnextappointment_appt_date_and_more.py,sha256=4YpEw1btk2G3wjx2SJKqTOEWymCTbd8iD640Ttpf-cs,1848
1089
1103
  meta_subject/migrations/0219_remove_historicalnextappointment_allow_create_interim_and_more.py,sha256=UCSUXzoa-TSqv7pPfZpg5jI1siKDFBXRknH6OFv0tL4,3476
1090
1104
  meta_subject/migrations/0220_historicalbloodresultsgludummy_bloodresultsgludummy.py,sha256=6TT5p5hQAhkL-vc3mo7xAAoZlQSoPAQ_KBTWNxYkr-0,34009
1105
+ meta_subject/migrations/0221_auto_20250402_1913.py,sha256=4quuKgAvnd-_yRhyC211x6bMsCCI7csioPJoImrVn24,1486
1106
+ meta_subject/migrations/0222_alter_historicalstudymedication_stock_codes_and_more.py,sha256=hxGQ5E2_DG8RmBeg7rRxtODsigUOZANop8GJYHPNVqg,1544
1091
1107
  meta_subject/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1092
1108
  meta_subject/model_mixins/__init__.py,sha256=6DdDDOwDdagrz6Q7X9lxuAVszsFWFhwPqLz4JOD85Wo,286
1093
1109
  meta_subject/model_mixins/arv_history_model_mixin.py,sha256=6ILacF2koyYmwZIFHmmQO1uIT1eWzrahXxhAlxpQiX0,2898
@@ -1100,11 +1116,11 @@ meta_subject/models/birth_outcomes.py,sha256=zikxatYZvL1qvnJ6JtVZ5aw8LCKLwQNXi6c
1100
1116
  meta_subject/models/complications.py,sha256=lkUoM3wJ9GuCFkuBUVxbCRSWfl3UtiVNSoMmkPKQdzg,1849
1101
1117
  meta_subject/models/complications_glycemia.py,sha256=2wHind-dDsPY5J4M0pUbRzjp72Brz990oDzCbF-V1CM,6056
1102
1118
  meta_subject/models/concomitant_medication.py,sha256=4-ysyfwSyijpV4E20rJwSTz__kuz8a9dQ2vYjFlubmU,368
1103
- meta_subject/models/delivery.py,sha256=kG4AYYxZ5_zYtuHJQOMYDdNKAXTQK3EHxuVLUx6RvB0,5100
1119
+ meta_subject/models/delivery.py,sha256=yWgBkRcujUGq3hbIsa8emGb8Tuc0hVo1G8T1soyxtEY,5061
1104
1120
  meta_subject/models/diet_and_lifestyle.py,sha256=m7RiK_2flzxstpTzPmcHGp2mk4pR_FZRaD66yHArQ2g,1063
1105
1121
  meta_subject/models/egfr_drop_notification.py,sha256=LSA0s4klzQ69CwPDI_q89eQ49XbcBOQ-Q21IEyXdgOk,557
1106
1122
  meta_subject/models/eq5d3l.py,sha256=itRrbfzL7Jsg9u7ml0SXwsw4nMoMcNyG0-YCD2VeXB0,291
1107
- meta_subject/models/followup_examination.py,sha256=unmTcEgdxdak9R8HGfjL0Vi-UGCdjQ0Q7mSM1B8SKs4,8116
1123
+ meta_subject/models/followup_examination.py,sha256=0etqpRpwPhyLLHMTOjNc98awEPHUpxrbcW_6n1JTC58,8077
1108
1124
  meta_subject/models/followup_vitals.py,sha256=pBZt4xrw7eVUfHBRtotUh9orJdNjOGxSuNa6JeWQRqA,903
1109
1125
  meta_subject/models/glucose.py,sha256=Jynmu6G86RMXytgaECkWd4aHxYzv4hgj5PYS9KV8mTE,2240
1110
1126
  meta_subject/models/glucose_fbg.py,sha256=YFrB52ASpf3oSpdkxdGcw4lz6Wdxd5Y9oBdaS8HulBg,1579
@@ -1132,9 +1148,9 @@ meta_subject/models/urine_pregnancy.py,sha256=LVC4PonyoSbnMJJN0EVIZo7iCuBzm6-W6n
1132
1148
  meta_subject/models/blood_results/__init__.py,sha256=ktxJOUM5PO3mXpLHxiSjt7Tmi5JACUbeCWjXhUK6qyU,344
1133
1149
  meta_subject/models/blood_results/blood_results_fbc.py,sha256=kkOqCsqeIvCf2rw7vHGWMCEgo1_yiMDtTOi44aKtBro,1324
1134
1150
  meta_subject/models/blood_results/blood_results_glu.py,sha256=QvIZjXWQ4qLfbGz5TbTIPHMJh2dtmi2kXTjVXP9xqYg,1029
1135
- meta_subject/models/blood_results/blood_results_hba1c.py,sha256=KaPJhpRPmR_-9oRQ7cdiVPle9exGPZDxjMc6WeyS1mQ,1036
1136
- meta_subject/models/blood_results/blood_results_ins.py,sha256=uHHFdry5s70UGTxllAlN4hhF4rcC2ybc6mCV_Rd1lCY,1052
1137
- meta_subject/models/blood_results/blood_results_lft.py,sha256=VRWKM5292AuHd-BZDC9RHA9sb_xdPwlj2OIKeQAzpRE,1235
1151
+ meta_subject/models/blood_results/blood_results_hba1c.py,sha256=_5wNo3CCcHntSlQ3aUKV2Opg6bc_BfqH0lYWjCLCKAE,998
1152
+ meta_subject/models/blood_results/blood_results_ins.py,sha256=6zpKVm3blLsWp3P8cuzMnSECWfYrxFSmbLNnagVT-lI,1014
1153
+ meta_subject/models/blood_results/blood_results_lft.py,sha256=UJSzL8OtYd6cmhEQwPnPo3y4wXEyxvKNztWfRUvUDOg,1197
1138
1154
  meta_subject/models/blood_results/blood_results_lipids.py,sha256=r0mJM_NwqtucwwlZoZQVFwI9Yf1SXWYDewxQMX5RI8U,1171
1139
1155
  meta_subject/models/blood_results/blood_results_rft.py,sha256=QFwXCQ0mrfBAWHYGWjlYrNRzxX5a-80351Weu2xJtN4,1646
1140
1156
  meta_subject/models/diabetes/__init__.py,sha256=d67PnZ0__BwYYosLc1f11Y0PzwKFKodt-hdrorzBRWg,72
@@ -1195,9 +1211,7 @@ tests/etc/user-rsa-restricted-private.pem,sha256=CUcHW9bznWdmmASN00hCzvxFPAFl4N2
1195
1211
  tests/etc/user-rsa-restricted-public.pem,sha256=mt84djoL-uHw6Wc5SJh0zml6VzXulnf8eQSFg7-fheg,450
1196
1212
  tests/etc/user-salt-local.key,sha256=x5anBw9fvbHurczouT3CjrkWb_xs7Ypm1htIJsgiuiw,256
1197
1213
  tests/etc/user-salt-restricted.key,sha256=pxmpcfBRNB-4C6wTvHXz-9fOfJgKIFOjaAF8ZFfa4q4,256
1198
- meta_edc-1.0.5.dist-info/AUTHORS,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1199
- meta_edc-1.0.5.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
1200
- meta_edc-1.0.5.dist-info/METADATA,sha256=imVFGf73SKvHJ_AJl87iSCk0UhAjLGRd0OHNJhUYfAU,43529
1201
- meta_edc-1.0.5.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
1202
- meta_edc-1.0.5.dist-info/top_level.txt,sha256=RkzjNXwRq2kg_uZ_1bDwPUntijSXoY2YBqtByDwvvrc,244
1203
- meta_edc-1.0.5.dist-info/RECORD,,
1214
+ meta_edc-1.0.7.dist-info/METADATA,sha256=mIBIIbzD6U-aFyZ2rBrvnv60vNJM12xHlZa2-_avjFE,43555
1215
+ meta_edc-1.0.7.dist-info/WHEEL,sha256=ck4Vq1_RXyvS4Jt6SI0Vz6fyVs4GWg7AINwpsaGEgPE,91
1216
+ meta_edc-1.0.7.dist-info/top_level.txt,sha256=RkzjNXwRq2kg_uZ_1bDwPUntijSXoY2YBqtByDwvvrc,244
1217
+ meta_edc-1.0.7.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (76.0.0)
2
+ Generator: setuptools (80.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -0,0 +1,8 @@
1
+ Maintainers
2
+ ===========
3
+ - Erik van Widenfelt (`erikvw <https://github.com/erikvw>`__)
4
+
5
+ Authors
6
+ =======
7
+ - Erik van Widenfelt (`erikvw <https://github.com/erikvw>`_)
8
+ - Jonathan Willitts (`JonathanWillitts <https://github.com/JonathanWillitts>`_)
@@ -36,8 +36,6 @@ from ..constants import CLINICAL_WITHDRAWAL, COMPLETED_FOLLOWUP_48
36
36
  class EndOfStudy(ActionModelMixin, SiteModelMixin, OffstudyModelMixin, BaseUuidModel):
37
37
  action_name = END_OF_STUDY_ACTION
38
38
 
39
- tracking_identifier_prefix = "ST"
40
-
41
39
  last_seen_date = models.DateField(
42
40
  verbose_name="Date patient was last seen",
43
41
  validators=[date_not_future],
@@ -24,8 +24,6 @@ class LossToFollowup(
24
24
  ):
25
25
  action_name = LTFU_ACTION
26
26
 
27
- tracking_identifier_prefix = "LF"
28
-
29
27
  report_datetime = models.DateTimeField(
30
28
  verbose_name="Report Date and Time", default=get_utcnow
31
29
  )
@@ -24,8 +24,6 @@ class PregnancyNotification(
24
24
  ):
25
25
  action_name = PREGNANCY_NOTIFICATION_ACTION
26
26
 
27
- tracking_identifier_prefix = "PN"
28
-
29
27
  report_datetime = models.DateTimeField(
30
28
  verbose_name="Report Date and Time", default=get_utcnow
31
29
  )
@@ -0,0 +1,81 @@
1
+ # Generated by Django 6.0 on 2025-04-22 17:03
2
+
3
+ import django_db_views.migration_functions
4
+ import django_db_views.operations
5
+ from django.db import migrations
6
+
7
+
8
+ class Migration(migrations.Migration):
9
+
10
+ dependencies = [
11
+ ("meta_reports", "0053_rename_lastimpvisit_lastimprefill_and_more"),
12
+ ]
13
+
14
+ operations = [
15
+ django_db_views.operations.ViewRunPython(
16
+ code=django_db_views.migration_functions.ForwardViewMigration(
17
+ "select *, uuid() as id, now() as `created`, 'meta_reports.glucosesummaryview' as `report_model` from (SELECT v.subject_identifier, fbg_value, fbg_datetime, NULL AS `ogtt_value`, NULL AS `ogtt_datetime`, CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS `fasted`, fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime, fasting_duration_delta FROM meta_subject_glucosefbg AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier UNION SELECT v.subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime, CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS `fasted`, fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime, fasting_duration_delta FROM meta_subject_glucose AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier) as A ORDER BY subject_identifier, site_id",
18
+ "meta_reports_glucosesummaryview",
19
+ engine="django.db.backends.mysql",
20
+ ),
21
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
22
+ "", "meta_reports_glucosesummaryview", engine="django.db.backends.mysql"
23
+ ),
24
+ atomic=False,
25
+ ),
26
+ django_db_views.operations.ViewRunPython(
27
+ code=django_db_views.migration_functions.ForwardViewMigration(
28
+ "select *, get_random_uuid() as id, now() as created, 'meta_reports.glucosesummaryview' as report_model from (SELECT v.subject_identifier, fbg_value, fbg_datetime, NULL AS \"ogtt_value\", NULL AS \"ogtt_datetime\", CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS \"fasted\", fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime, fasting_duration_delta FROM meta_subject_glucosefbg AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier UNION SELECT v.subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime, CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS \"fasted\", fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime, fasting_duration_delta FROM meta_subject_glucose AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier) as A ORDER BY subject_identifier, site_id",
29
+ "meta_reports_glucosesummaryview",
30
+ engine="django.db.backends.postgresql",
31
+ ),
32
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
33
+ "", "meta_reports_glucosesummaryview", engine="django.db.backends.postgresql"
34
+ ),
35
+ atomic=False,
36
+ ),
37
+ django_db_views.operations.ViewRunPython(
38
+ code=django_db_views.migration_functions.ForwardViewMigration(
39
+ "select *, uuid() as id, datetime() as created, 'meta_reports.glucosesummaryview' as report_model from (SELECT v.subject_identifier, fbg_value, fbg_datetime, NULL AS \"ogtt_value\", NULL AS \"ogtt_datetime\", CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS \"fasted\", fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime, fasting_duration_delta FROM meta_subject_glucosefbg AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier UNION SELECT v.subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime, CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS \"fasted\", fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime, fasting_duration_delta FROM meta_subject_glucose AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier) as A ORDER BY subject_identifier, site_id",
40
+ "meta_reports_glucosesummaryview",
41
+ engine="django.db.backends.sqlite3",
42
+ ),
43
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
44
+ "", "meta_reports_glucosesummaryview", engine="django.db.backends.sqlite3"
45
+ ),
46
+ atomic=False,
47
+ ),
48
+ django_db_views.operations.ViewDropRunPython(
49
+ code=django_db_views.migration_functions.DropView(
50
+ "glucose_summary_view", engine="django.db.backends.mysql"
51
+ ),
52
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
53
+ "select *, uuid() as id, now() as `created`, 'meta_reports.glucose_summary_view' as `report_model` from (SELECT v.subject_identifier, fbg_value, fbg_datetime, NULL AS `ogtt_value`, NULL AS `ogtt_datetime`, CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS `fasted`, fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime FROM meta_subject_glucosefbg AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier UNION SELECT v.subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime, CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS `fasted`, fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime FROM meta_subject_glucose AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier) as A ORDER BY subject_identifier, site_id",
54
+ "glucose_summary_view",
55
+ engine="django.db.backends.mysql",
56
+ ),
57
+ atomic=False,
58
+ ),
59
+ django_db_views.operations.ViewDropRunPython(
60
+ code=django_db_views.migration_functions.DropView(
61
+ "glucose_summary_view", engine="django.db.backends.postgresql"
62
+ ),
63
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
64
+ "select *, get_random_uuid() as id, now() as created, 'meta_reports.glucose_summary_view' as report_model from (SELECT v.subject_identifier, fbg_value, fbg_datetime, NULL AS \"ogtt_value\", NULL AS \"ogtt_datetime\", CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS \"fasted\", fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime FROM meta_subject_glucosefbg AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier UNION SELECT v.subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime, CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS \"fasted\", fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime FROM meta_subject_glucose AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier) as A ORDER BY subject_identifier, site_id",
65
+ "glucose_summary_view",
66
+ engine="django.db.backends.postgresql",
67
+ ),
68
+ atomic=False,
69
+ ),
70
+ django_db_views.operations.ViewDropRunPython(
71
+ code=django_db_views.migration_functions.DropView(
72
+ "glucose_summary_view", engine="django.db.backends.sqlite3"
73
+ ),
74
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
75
+ "select *, uuid() as id, datetime() as created, 'meta_reports.glucose_summary_view' as report_model from (SELECT v.subject_identifier, fbg_value, fbg_datetime, NULL AS \"ogtt_value\", NULL AS \"ogtt_datetime\", CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS \"fasted\", fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime FROM meta_subject_glucosefbg AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier UNION SELECT v.subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime, CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS \"fasted\", fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime FROM meta_subject_glucose AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier) as A ORDER BY subject_identifier, site_id",
76
+ "glucose_summary_view",
77
+ engine="django.db.backends.sqlite3",
78
+ ),
79
+ atomic=False,
80
+ ),
81
+ ]
@@ -0,0 +1,17 @@
1
+ # Generated by Django 6.0 on 2025-04-22 19:14
2
+
3
+ from django.db import migrations
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ("meta_reports", "0054_auto_20250422_2003"),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.AlterModelTable(
14
+ name="glucosesummary",
15
+ table="meta_reports_glucosesummaryview",
16
+ ),
17
+ ]
@@ -0,0 +1,54 @@
1
+ # Generated by Django 6.0 on 2025-04-22 19:14
2
+
3
+ import django_db_views.migration_functions
4
+ import django_db_views.operations
5
+ from django.db import migrations
6
+
7
+
8
+ class Migration(migrations.Migration):
9
+
10
+ dependencies = [
11
+ ("meta_reports", "0055_alter_glucosesummary_table"),
12
+ ]
13
+
14
+ operations = [
15
+ django_db_views.operations.ViewRunPython(
16
+ code=django_db_views.migration_functions.ForwardViewMigration(
17
+ "select *, uuid() as id, now() as `created`, 'meta_reports.glucosesummaryview' as `report_model` from (SELECT v.subject_identifier, fbg_value, fbg_datetime, NULL AS `ogtt_value`, NULL AS `ogtt_datetime`, CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS `fasted`, fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime, fasting_duration_delta, 'meta_subject.glucosefbg' AS source FROM meta_subject_glucosefbg AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier UNION SELECT v.subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime, CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS `fasted`, fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime, fasting_duration_delta, 'meta_subject.glucose' AS source FROM meta_subject_glucose AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier) as A ORDER BY subject_identifier, site_id",
18
+ "meta_reports_glucosesummaryview",
19
+ engine="django.db.backends.mysql",
20
+ ),
21
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
22
+ "select *, uuid() as id, now() as `created`, 'meta_reports.glucosesummaryview' as `report_model` from (SELECT v.subject_identifier, fbg_value, fbg_datetime, NULL AS `ogtt_value`, NULL AS `ogtt_datetime`, CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS `fasted`, fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime, fasting_duration_delta FROM meta_subject_glucosefbg AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier UNION SELECT v.subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime, CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS `fasted`, fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime, fasting_duration_delta FROM meta_subject_glucose AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier) as A ORDER BY subject_identifier, site_id",
23
+ "meta_reports_glucosesummaryview",
24
+ engine="django.db.backends.mysql",
25
+ ),
26
+ atomic=False,
27
+ ),
28
+ django_db_views.operations.ViewRunPython(
29
+ code=django_db_views.migration_functions.ForwardViewMigration(
30
+ "select *, get_random_uuid() as id, now() as created, 'meta_reports.glucosesummaryview' as report_model from (SELECT v.subject_identifier, fbg_value, fbg_datetime, NULL AS \"ogtt_value\", NULL AS \"ogtt_datetime\", CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS \"fasted\", fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime, fasting_duration_delta, 'meta_subject.glucosefbg' AS source FROM meta_subject_glucosefbg AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier UNION SELECT v.subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime, CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS \"fasted\", fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime, fasting_duration_delta, 'meta_subject.glucose' AS source FROM meta_subject_glucose AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier) as A ORDER BY subject_identifier, site_id",
31
+ "meta_reports_glucosesummaryview",
32
+ engine="django.db.backends.postgresql",
33
+ ),
34
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
35
+ "select *, get_random_uuid() as id, now() as created, 'meta_reports.glucosesummaryview' as report_model from (SELECT v.subject_identifier, fbg_value, fbg_datetime, NULL AS \"ogtt_value\", NULL AS \"ogtt_datetime\", CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS \"fasted\", fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime, fasting_duration_delta FROM meta_subject_glucosefbg AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier UNION SELECT v.subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime, CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS \"fasted\", fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime, fasting_duration_delta FROM meta_subject_glucose AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier) as A ORDER BY subject_identifier, site_id",
36
+ "meta_reports_glucosesummaryview",
37
+ engine="django.db.backends.postgresql",
38
+ ),
39
+ atomic=False,
40
+ ),
41
+ django_db_views.operations.ViewRunPython(
42
+ code=django_db_views.migration_functions.ForwardViewMigration(
43
+ "select *, uuid() as id, datetime() as created, 'meta_reports.glucosesummaryview' as report_model from (SELECT v.subject_identifier, fbg_value, fbg_datetime, NULL AS \"ogtt_value\", NULL AS \"ogtt_datetime\", CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS \"fasted\", fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime, fasting_duration_delta, 'meta_subject.glucosefbg' AS source FROM meta_subject_glucosefbg AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier UNION SELECT v.subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime, CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS \"fasted\", fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime, fasting_duration_delta, 'meta_subject.glucose' AS source FROM meta_subject_glucose AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier) as A ORDER BY subject_identifier, site_id",
44
+ "meta_reports_glucosesummaryview",
45
+ engine="django.db.backends.sqlite3",
46
+ ),
47
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
48
+ "select *, uuid() as id, datetime() as created, 'meta_reports.glucosesummaryview' as report_model from (SELECT v.subject_identifier, fbg_value, fbg_datetime, NULL AS \"ogtt_value\", NULL AS \"ogtt_datetime\", CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS \"fasted\", fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime, fasting_duration_delta FROM meta_subject_glucosefbg AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier UNION SELECT v.subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime, CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS \"fasted\", fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime, fasting_duration_delta FROM meta_subject_glucose AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier) as A ORDER BY subject_identifier, site_id",
49
+ "meta_reports_glucosesummaryview",
50
+ engine="django.db.backends.sqlite3",
51
+ ),
52
+ atomic=False,
53
+ ),
54
+ ]
@@ -0,0 +1,54 @@
1
+ # Generated by Django 6.0 on 2025-04-22 19:24
2
+
3
+ import django_db_views.migration_functions
4
+ import django_db_views.operations
5
+ from django.db import migrations
6
+
7
+
8
+ class Migration(migrations.Migration):
9
+
10
+ dependencies = [
11
+ ("meta_reports", "0056_auto_20250422_2214"),
12
+ ]
13
+
14
+ operations = [
15
+ django_db_views.operations.ViewRunPython(
16
+ code=django_db_views.migration_functions.ForwardViewMigration(
17
+ "select *, uuid() as id, now() as `created`, 'meta_reports.glucosesummaryview' as `report_model` from (SELECT v.subject_identifier, fbg_value, fbg_datetime, NULL AS `ogtt_value`, NULL AS `ogtt_datetime`, CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS `fasted`, fbg.site_id, v.visit_code, v.visit_code_sequence, v.report_datetime, v.appointment_id, eos.offstudy_datetime, fasting_duration_delta, 'meta_subject.glucosefbg' AS source FROM meta_subject_glucosefbg AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier UNION SELECT v.subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime, CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS `fasted`, fbg.site_id, v.visit_code, v.visit_code_sequence, v.report_datetime, v.appointment_id, eos.offstudy_datetime, fasting_duration_delta, 'meta_subject.glucose' AS source FROM meta_subject_glucose AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier) as A ORDER BY subject_identifier, site_id",
18
+ "meta_reports_glucosesummaryview",
19
+ engine="django.db.backends.mysql",
20
+ ),
21
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
22
+ "select *, uuid() as id, now() as `created`, 'meta_reports.glucosesummaryview' as `report_model` from (SELECT v.subject_identifier, fbg_value, fbg_datetime, NULL AS `ogtt_value`, NULL AS `ogtt_datetime`, CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS `fasted`, fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime, fasting_duration_delta, 'meta_subject.glucosefbg' AS source FROM meta_subject_glucosefbg AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier UNION SELECT v.subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime, CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS `fasted`, fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime, fasting_duration_delta, 'meta_subject.glucose' AS source FROM meta_subject_glucose AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier) as A ORDER BY subject_identifier, site_id",
23
+ "meta_reports_glucosesummaryview",
24
+ engine="django.db.backends.mysql",
25
+ ),
26
+ atomic=False,
27
+ ),
28
+ django_db_views.operations.ViewRunPython(
29
+ code=django_db_views.migration_functions.ForwardViewMigration(
30
+ "select *, get_random_uuid() as id, now() as created, 'meta_reports.glucosesummaryview' as report_model from (SELECT v.subject_identifier, fbg_value, fbg_datetime, NULL AS \"ogtt_value\", NULL AS \"ogtt_datetime\", CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS \"fasted\", fbg.site_id, v.visit_code, v.visit_code_sequence, v.report_datetime, v.appointment_id, eos.offstudy_datetime, fasting_duration_delta, 'meta_subject.glucosefbg' AS source FROM meta_subject_glucosefbg AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier UNION SELECT v.subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime, CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS \"fasted\", fbg.site_id, v.visit_code, v.visit_code_sequence, v.report_datetime, v.appointment_id, eos.offstudy_datetime, fasting_duration_delta, 'meta_subject.glucose' AS source FROM meta_subject_glucose AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier) as A ORDER BY subject_identifier, site_id",
31
+ "meta_reports_glucosesummaryview",
32
+ engine="django.db.backends.postgresql",
33
+ ),
34
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
35
+ "select *, get_random_uuid() as id, now() as created, 'meta_reports.glucosesummaryview' as report_model from (SELECT v.subject_identifier, fbg_value, fbg_datetime, NULL AS \"ogtt_value\", NULL AS \"ogtt_datetime\", CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS \"fasted\", fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime, fasting_duration_delta, 'meta_subject.glucosefbg' AS source FROM meta_subject_glucosefbg AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier UNION SELECT v.subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime, CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS \"fasted\", fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime, fasting_duration_delta, 'meta_subject.glucose' AS source FROM meta_subject_glucose AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier) as A ORDER BY subject_identifier, site_id",
36
+ "meta_reports_glucosesummaryview",
37
+ engine="django.db.backends.postgresql",
38
+ ),
39
+ atomic=False,
40
+ ),
41
+ django_db_views.operations.ViewRunPython(
42
+ code=django_db_views.migration_functions.ForwardViewMigration(
43
+ "select *, uuid() as id, datetime() as created, 'meta_reports.glucosesummaryview' as report_model from (SELECT v.subject_identifier, fbg_value, fbg_datetime, NULL AS \"ogtt_value\", NULL AS \"ogtt_datetime\", CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS \"fasted\", fbg.site_id, v.visit_code, v.visit_code_sequence, v.report_datetime, v.appointment_id, eos.offstudy_datetime, fasting_duration_delta, 'meta_subject.glucosefbg' AS source FROM meta_subject_glucosefbg AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier UNION SELECT v.subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime, CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS \"fasted\", fbg.site_id, v.visit_code, v.visit_code_sequence, v.report_datetime, v.appointment_id, eos.offstudy_datetime, fasting_duration_delta, 'meta_subject.glucose' AS source FROM meta_subject_glucose AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier) as A ORDER BY subject_identifier, site_id",
44
+ "meta_reports_glucosesummaryview",
45
+ engine="django.db.backends.sqlite3",
46
+ ),
47
+ reverse_code=django_db_views.migration_functions.BackwardViewMigration(
48
+ "select *, uuid() as id, datetime() as created, 'meta_reports.glucosesummaryview' as report_model from (SELECT v.subject_identifier, fbg_value, fbg_datetime, NULL AS \"ogtt_value\", NULL AS \"ogtt_datetime\", CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS \"fasted\", fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime, fasting_duration_delta, 'meta_subject.glucosefbg' AS source FROM meta_subject_glucosefbg AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier UNION SELECT v.subject_identifier, fbg_value, fbg_datetime, ogtt_value, ogtt_datetime, CASE WHEN fasting = 'fasting' THEN 'Yes' WHEN fasting = 'non_fasting' THEN 'No' ELSE fasting END AS \"fasted\", fbg.site_id, v.visit_code, v.visit_code_sequence, v.appointment_id, eos.offstudy_datetime, fasting_duration_delta, 'meta_subject.glucose' AS source FROM meta_subject_glucose AS fbg LEFT JOIN meta_subject_subjectvisit AS v ON v.id = fbg.subject_visit_id LEFT JOIN meta_prn_endofstudy AS eos ON v.subject_identifier = eos.subject_identifier) as A ORDER BY subject_identifier, site_id",
49
+ "meta_reports_glucosesummaryview",
50
+ engine="django.db.backends.sqlite3",
51
+ ),
52
+ atomic=False,
53
+ ),
54
+ ]