meta-edc 0.3.32__py3-none-any.whl → 0.3.34__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 (46) hide show
  1. meta_analytics/dataframes/__init__.py +15 -0
  2. meta_analytics/dataframes/glucose_endpoints/endpoint_by_date.py +22 -13
  3. meta_analytics/dataframes/glucose_endpoints/glucose_endpoints_by_date.py +49 -21
  4. meta_auth/auth_objects.py +15 -0
  5. meta_auth/auths.py +5 -2
  6. meta_edc/settings/debug.py +2 -2
  7. meta_edc/settings/defaults.py +4 -0
  8. meta_edc/urls.py +1 -0
  9. {meta_edc-0.3.32.dist-info → meta_edc-0.3.34.dist-info}/METADATA +6 -3
  10. {meta_edc-0.3.32.dist-info → meta_edc-0.3.34.dist-info}/RECORD +45 -34
  11. {meta_edc-0.3.32.dist-info → meta_edc-0.3.34.dist-info}/WHEEL +1 -1
  12. meta_pharmacy/admin.py +128 -0
  13. meta_pharmacy/admin_site.py +5 -0
  14. meta_pharmacy/apps.py +3 -0
  15. meta_pharmacy/constants.py +10 -0
  16. meta_pharmacy/forms.py +65 -0
  17. meta_pharmacy/migrations/0002_initial.py +693 -0
  18. meta_pharmacy/migrations/0003_auto_20240909_2335.py +64 -0
  19. meta_pharmacy/models.py +102 -0
  20. meta_pharmacy/urls.py +8 -0
  21. meta_prn/action_items.py +9 -1
  22. meta_reports/admin/__init__.py +1 -0
  23. meta_reports/admin/dbviews/__init__.py +1 -0
  24. meta_reports/admin/dbviews/imp_substitutions_admin.py +88 -0
  25. meta_reports/migrations/0017_auto_20240819_1711.py +1 -0
  26. meta_reports/migrations/0047_impsubstitutions.py +56 -0
  27. meta_reports/migrations/0048_auto_20240909_2338.py +48 -0
  28. meta_reports/models/__init__.py +1 -0
  29. meta_reports/models/dbviews/__init__.py +1 -0
  30. meta_reports/models/dbviews/imp_substitutions/__init__.py +1 -0
  31. meta_reports/models/dbviews/imp_substitutions/unmanaged_model.py +37 -0
  32. meta_reports/models/dbviews/imp_substitutions/view_definition.py +20 -0
  33. meta_reports/models/dbviews/on_study_missing_values/qa_cases.py +0 -1
  34. meta_sites/tests/test_sites.py +1 -1
  35. meta_subject/migrations/0107_auto_20220415_0043.py +28 -22
  36. meta_subject/migrations/0126_auto_20220719_2142.py +4 -4
  37. meta_subject/migrations/0131_auto_20220722_0411.py +28 -23
  38. meta_subject/migrations/0132_auto_20220722_1825.py +10 -6
  39. meta_subject/migrations/0135_auto_20220722_2212.py +39 -35
  40. meta_subject/migrations/0150_auto_20220914_0039.py +15 -11
  41. meta_analytics/notebooks/meta_endpoints.ipynb +0 -201
  42. /meta_analytics/dataframes/{glucose_endpoints/constants.py → constants.py} +0 -0
  43. /meta_analytics/dataframes/{glucose_endpoints/utils.py → utils.py} +0 -0
  44. {meta_edc-0.3.32.dist-info → meta_edc-0.3.34.dist-info}/AUTHORS +0 -0
  45. {meta_edc-0.3.32.dist-info → meta_edc-0.3.34.dist-info}/LICENSE +0 -0
  46. {meta_edc-0.3.32.dist-info → meta_edc-0.3.34.dist-info}/top_level.txt +0 -0
@@ -1,2 +1,17 @@
1
+ from .constants import (
2
+ CASE_EOS,
3
+ CASE_FBG_ONLY,
4
+ CASE_FBGS_WITH_FIRST_OGTT,
5
+ CASE_FBGS_WITH_SECOND_OGTT,
6
+ CASE_OGTT,
7
+ endpoint_cases,
8
+ endpoint_columns,
9
+ )
1
10
  from .glucose_endpoints import EndpointByDate, GlucoseEndpointsByDate
2
11
  from .screening import get_glucose_tested_only_df, get_screening_df
12
+ from .utils import (
13
+ get_empty_endpoint_df,
14
+ get_test_string,
15
+ get_unique_subject_identifiers,
16
+ get_unique_visit_codes,
17
+ )
@@ -2,7 +2,7 @@ import numpy as np
2
2
  import pandas as pd
3
3
  from edc_constants.constants import YES
4
4
 
5
- from .constants import endpoint_cases
5
+ from ..constants import endpoint_cases
6
6
 
7
7
 
8
8
  class EndpointTdeltaError(Exception):
@@ -23,8 +23,8 @@ class EndpointByDate:
23
23
  Evaluation is done in order
24
24
 
25
25
  Order of protocol endpoint evaluation:
26
- * case 2. FBG >= 7 x 2, first OGTT<=11.1
27
- * case 3. FBG >= 7 x 2, second OGTT<=11.1
26
+ * case 2. FBG >= 7 x 2, first OGTT<11.1
27
+ * case 3. FBG >= 7 x 2, second OGTT<11.1
28
28
 
29
29
  Additional criteria considered:
30
30
  1. any threshhold FBG must be taken while fasted (fasting=YES)
@@ -96,7 +96,7 @@ class EndpointByDate:
96
96
  ] = self.endpoint_cases[case]
97
97
 
98
98
  def case_two(self, index: int):
99
- """FBG >= 7 x 2, first OGTT<=11.1.
99
+ """FBG >= 7 x 2, first OGTT<11.1.
100
100
 
101
101
  First FBG must be done with corresponding OGTT.
102
102
  """
@@ -104,11 +104,14 @@ class EndpointByDate:
104
104
  self.get_next("fbg_datetime", index)
105
105
  and self.get("fbg_value", index)
106
106
  and self.get("ogtt_value", index)
107
+ and self.get("fasting", index)
107
108
  and self.get_next("fbg_value", index)
109
+ and self.get_next("fasting", index)
108
110
  and self.get("fbg_value", index) >= self.fbg_threshhold
109
111
  and self.get("ogtt_value", index) < self.ogtt_threshhold
112
+ and self.get("fasting", index) == YES
110
113
  and self.get_next("fbg_value", index) >= self.fbg_threshhold
111
- and self.fasting(index)
114
+ and self.get_next("fasting", index) == YES
112
115
  and (self.get_next("fbg_datetime", index) - self.get("fbg_datetime", index)).days
113
116
  >= 7
114
117
  )
@@ -117,19 +120,22 @@ class EndpointByDate:
117
120
  return reached
118
121
 
119
122
  def case_three(self, index: int):
120
- """FBG >= 7 x 2, second OGTT<=11.1.
123
+ """FBG >= 7 x 2, second OGTT<11.1.
121
124
 
122
125
  Second FBG must be done with corresponding OGTT.
123
126
  """
124
127
  reached = (
125
128
  self.get_next("fbg_datetime", index)
126
129
  and self.get("fbg_value", index)
130
+ and self.get("fasting", index)
127
131
  and self.get_next("fbg_value", index)
128
132
  and self.get_next("ogtt_value", index)
133
+ and self.get_next("fasting", index)
129
134
  and self.get("fbg_value", index) >= self.fbg_threshhold
135
+ and self.get("fasting", index) == YES
130
136
  and self.get_next("fbg_value", index) >= self.fbg_threshhold
131
137
  and self.get_next("ogtt_value", index) < self.ogtt_threshhold
132
- and self.fasting(index)
138
+ and self.get_next("fasting", index) == YES
133
139
  and (self.get_next("fbg_datetime", index) - self.get("fbg_datetime", index)).days
134
140
  >= 7
135
141
  )
@@ -143,21 +149,24 @@ class EndpointByDate:
143
149
  This is not a protocol endpoint.
144
150
  """
145
151
  reached = (
146
- self.get_next("fbg_datetime", index)
147
- and self.get("fbg_value", index)
152
+ self.get("fbg_value", index)
153
+ and self.get("fbg_datetime", index)
154
+ and self.get("fasting", index)
148
155
  and self.get_next("fbg_value", index)
149
156
  and self.get_next("ogtt_value", index)
157
+ and self.get_next("fbg_datetime", index)
158
+ and self.get_next("fasting", index)
150
159
  and self.get("fbg_value", index) >= self.fbg_threshhold
160
+ and self.get("fasting", index) == YES
151
161
  and self.get_next("fbg_value", index) >= self.fbg_threshhold
152
- and self.fasting(index)
162
+ and self.get_next("fasting", index) == YES
163
+ and (self.get_next("fbg_datetime", index) - self.get("fbg_datetime", index)).days
164
+ >= 7
153
165
  )
154
166
  if reached:
155
167
  self.endpoint_reached(index, case=4, next_is_endpoint=True)
156
168
  return reached
157
169
 
158
- def fasting(self, index) -> bool:
159
- return self.get("fasting", index) == YES and self.get_next("fasting", index) == YES
160
-
161
170
  def sequential_assessments_in_days(self, index) -> int:
162
171
  if not self.get_next("fbg_value", index):
163
172
  raise EndpointTdeltaError
@@ -2,10 +2,15 @@ import numpy as np
2
2
  import pandas as pd
3
3
  from django.apps import apps as django_apps
4
4
  from edc_constants.constants import NO, YES
5
- from edc_pdutils.dataframes import get_crf, get_eos, get_subject_consent
5
+ from edc_pdutils.dataframes import (
6
+ get_crf,
7
+ get_eos,
8
+ get_subject_consent,
9
+ get_subject_visit,
10
+ )
6
11
  from edc_utils import get_utcnow
7
12
 
8
- from .constants import (
13
+ from ..constants import (
9
14
  CASE_EOS,
10
15
  CASE_FBG_ONLY,
11
16
  CASE_FBGS_WITH_FIRST_OGTT,
@@ -14,13 +19,13 @@ from .constants import (
14
19
  endpoint_cases,
15
20
  endpoint_columns,
16
21
  )
17
- from .endpoint_by_date import EndpointByDate
18
- from .utils import (
22
+ from ..utils import (
19
23
  get_empty_endpoint_df,
20
24
  get_test_string,
21
25
  get_unique_subject_identifiers,
22
26
  get_unique_visit_codes,
23
27
  )
28
+ from .endpoint_by_date import EndpointByDate
24
29
 
25
30
 
26
31
  def normalize_date_columns(df: pd.DataFrame, cols: list[str] = None) -> pd.DataFrame:
@@ -83,13 +88,12 @@ class GlucoseEndpointsByDate:
83
88
  self.endpoint_cases = {k: v for k, v in endpoint_cases.items() if k in self.case_list}
84
89
 
85
90
  # merge two model DFs
86
- self.df = pd.merge(
87
- self.glucose_fbg_ogtt_df,
91
+ self.df = self.glucose_fbg_ogtt_df.merge(
88
92
  self.glucose_fbg_df,
89
- on=["subject_visit_id", "fbg_datetime", "fbg_value"],
93
+ on=["subject_visit_id"],
90
94
  how="outer",
91
95
  indicator=True,
92
- suffixes=("", "2"),
96
+ suffixes=("", "_y"),
93
97
  )
94
98
  self.df = self.df.reset_index(drop=True)
95
99
 
@@ -97,13 +101,21 @@ class GlucoseEndpointsByDate:
97
101
  cols = {
98
102
  "fasting": None,
99
103
  "fasting_hrs": np.nan,
104
+ "fbg_value": None,
100
105
  "fbg_units": None,
106
+ "fbg_datetime": None,
101
107
  "source": None,
102
108
  "report_datetime": pd.NaT,
103
109
  }
104
110
  for col, null_value in cols.items():
105
- self.df.loc[self.df["_merge"] == "right_only", col] = self.df[f"{col}2"]
106
- cols = [col for col in self.df.columns if col.endswith("2")]
111
+ self.df.loc[
112
+ (self.df["_merge"].isin(["both", "right_only"])) & (self.df[col].isna()), col
113
+ ] = self.df[f"{col}_y"]
114
+ # if fbg_datetime still null, use visit datetime to sort order
115
+ self.df.loc[(self.df["fbg_datetime"].isna()), "fbg_datetime"] = self.df[
116
+ "visit_datetime"
117
+ ]
118
+ cols = [col for col in self.df.columns if col.endswith("_y")]
107
119
  cols.append("_merge")
108
120
  self.df = self.df.drop(columns=cols)
109
121
  self.df = self.df.reset_index(drop=True)
@@ -163,6 +175,11 @@ class GlucoseEndpointsByDate:
163
175
  subject_identifiers=self.subject_identifiers,
164
176
  subject_visit_model="meta_subject.subjectvisit",
165
177
  )
178
+ # merge w/ subject_visit
179
+ subject_visit_df = get_subject_visit("meta_subject.subjectvisit")
180
+ df = subject_visit_df.merge(
181
+ df, on=["subject_visit_id"], how="left", suffixes=("", "_y")
182
+ )
166
183
  df["source"] = "meta_subject.glucosefbg"
167
184
  df.rename(columns={"fbg_fasting": "fasting"}, inplace=True)
168
185
  df.loc[(df["fasting"] == "fasting"), "fasting"] = YES
@@ -189,6 +206,11 @@ class GlucoseEndpointsByDate:
189
206
  subject_visit_model="meta_subject.subjectvisit",
190
207
  )
191
208
  df["source"] = "meta_subject.glucose"
209
+ # merge w/ subject_visit
210
+ subject_visit_df = get_subject_visit("meta_subject.subjectvisit")
211
+ df = subject_visit_df.merge(
212
+ df, on=["subject_visit_id"], how="left", suffixes=("", "_y")
213
+ )
192
214
  df = calculate_fasting_hrs(df)
193
215
  df = df[self.keep_cols]
194
216
  df = df.reset_index(drop=True)
@@ -270,6 +292,12 @@ class GlucoseEndpointsByDate:
270
292
  & (self.working_df["fasting"] == YES)
271
293
  & (self.working_df["fbg_value"].notna())
272
294
  ].copy()
295
+ subject_endpoint_df.sort_values(by=["subject_identifier", "fbg_datetime"])
296
+ subject_endpoint_df = subject_endpoint_df.reset_index(drop=True)
297
+ subject_endpoint_df = subject_endpoint_df.drop_duplicates(
298
+ subset=["subject_identifier"], keep="first"
299
+ )
300
+ subject_endpoint_df = subject_endpoint_df.reset_index(drop=True)
273
301
  if not subject_endpoint_df.empty:
274
302
  # flag the selected endpoint rows as endpoints
275
303
  subject_endpoint_df["endpoint"] = 1
@@ -344,19 +372,19 @@ class GlucoseEndpointsByDate:
344
372
  subject_df["endpoint_type"] = None
345
373
  subject_df["endpoint_label"] = None
346
374
  subject_df["endpoint"] = 0
347
- subject_df = subject_df.sort_values(["subject_identifier", "fbg_datetime"])
348
- subject_df = subject_df.reset_index(drop=True)
349
375
  subject_df = subject_df[endpoint_columns]
350
- subject_df = subject_df.merge(
351
- self.visit_codes_df,
352
- on="visit_code",
353
- how="outer",
354
- indicator=False,
355
- suffixes=["", "2"],
356
- )
357
- subject_df["subject_identifier"] = subject_identifier
358
- subject_df = subject_df.drop(columns=["count"])
376
+ subject_df = subject_df.sort_values(["subject_identifier", "fbg_datetime"])
359
377
  subject_df = subject_df.reset_index(drop=True)
378
+ # subject_df = subject_df.merge(
379
+ # self.visit_codes_df,
380
+ # on="visit_code",
381
+ # how="outer",
382
+ # indicator=False,
383
+ # suffixes=["", "2"],
384
+ # )
385
+ # subject_df["subject_identifier"] = subject_identifier
386
+ # subject_df = subject_df.drop(columns=["count"])
387
+ # subject_df = subject_df.reset_index(drop=True)
360
388
  return subject_df
361
389
 
362
390
  def check_endpoint_by_fbg_for_subject(
meta_auth/auth_objects.py CHANGED
@@ -3,6 +3,7 @@ from edc_auth.get_app_codenames import get_app_codenames
3
3
 
4
4
  META_REPORTS = "META_REPORTS"
5
5
  META_REPORTS_AUDIT = "META_REPORTS_AUDIT"
6
+ META_PHARMACIST = "META_PHARMACIST"
6
7
 
7
8
 
8
9
  clinic_codenames = get_app_codenames(
@@ -10,6 +11,20 @@ clinic_codenames = get_app_codenames(
10
11
  )
11
12
 
12
13
  reports_codenames = get_app_codenames("meta_reports")
14
+ reports_codenames.remove("meta_reports.view_impsubstitutions")
15
+
16
+ meta_pharmacy_codenames = get_app_codenames("meta_pharmacy")
17
+ meta_pharmacy_codenames.append("meta_reports.view_impsubstitutions")
18
+ meta_pharmacy_codenames.append("meta_reports.viewallsites_impsubstitutions")
19
+ excluded_meta_pharmacy_codenames = [
20
+ "meta_pharmacy.add_rx",
21
+ "meta_pharmacy.change_rx",
22
+ "meta_pharmacy.delete_rx",
23
+ ]
24
+
25
+ meta_pharmacy_codenames = [
26
+ c for c in meta_pharmacy_codenames if c not in excluded_meta_pharmacy_codenames
27
+ ]
13
28
 
14
29
  add_perms = []
15
30
  if not settings.LIVE_SYSTEM:
meta_auth/auths.py CHANGED
@@ -28,15 +28,18 @@ from edc_subject_dashboard.auths import SUBJECT_VIEW
28
28
  from edc_unblinding.auth_objects import UNBLINDING_REQUESTORS
29
29
 
30
30
  from .auth_objects import (
31
+ META_PHARMACIST,
31
32
  META_REPORTS,
32
33
  META_REPORTS_AUDIT,
33
34
  clinic_codenames,
35
+ meta_pharmacy_codenames,
34
36
  reports_codenames,
35
37
  screening_codenames,
36
38
  )
37
39
 
38
40
  site_auths.add_group(*reports_codenames, name=META_REPORTS)
39
41
  site_auths.add_group(*reports_codenames, name=META_REPORTS_AUDIT, view_only=True)
42
+ site_auths.add_group(*meta_pharmacy_codenames, name=META_PHARMACIST)
40
43
 
41
44
  # update edc_auth default groups
42
45
  site_auths.update_group(*clinic_codenames, name=AUDITOR, view_only=True)
@@ -69,8 +72,8 @@ site_auths.update_role(
69
72
  DATA_MANAGER_EXPORT,
70
73
  name=DATA_EXPORTER_ROLE,
71
74
  )
72
- site_auths.update_role(RANDO_UNBLINDED, PII, name=PHARMACIST_ROLE)
73
- site_auths.update_role(RANDO_BLINDED, PII, name=SITE_PHARMACIST_ROLE)
75
+ site_auths.update_role(RANDO_UNBLINDED, PII, META_PHARMACIST, name=PHARMACIST_ROLE)
76
+ site_auths.update_role(RANDO_BLINDED, PII, META_PHARMACIST, name=SITE_PHARMACIST_ROLE)
74
77
  site_auths.update_role(SUBJECT_VIEW, SCREENING_VIEW, name=DATA_MANAGER_ROLE)
75
78
  site_auths.update_role(
76
79
  SUBJECT_VIEW, SCREENING_VIEW, ACTION_ITEM, UNBLINDING_REQUESTORS, name=TMG_ROLE
@@ -7,8 +7,8 @@ from .defaults import * # noqa
7
7
  print(f"Settings file {__file__}")
8
8
 
9
9
  # TZ Sites:
10
- SITE_ID = SiteID(default=20) # Amana
11
- # SITE_ID = SiteID(default=10) # Hindu Mandal
10
+ # SITE_ID = SiteID(default=20) # Amana
11
+ SITE_ID = SiteID(default=10) # Hindu Mandal
12
12
  # SITE_ID = SiteID(default=40) # Mwananyamala
13
13
  # SITE_ID = SiteID(default=50) # Mbagala
14
14
  # SITE_ID = SiteID(default=60) # Mnazi-Moja
@@ -188,6 +188,7 @@ MIDDLEWARE = [
188
188
  "django.contrib.sites.middleware.CurrentSiteMiddleware",
189
189
  "django.middleware.csrf.CsrfViewMiddleware",
190
190
  "django.contrib.auth.middleware.AuthenticationMiddleware",
191
+ "django.contrib.auth.middleware.LoginRequiredMiddleware",
191
192
  "defender.middleware.FailedLoginMiddleware",
192
193
  "django.contrib.messages.middleware.MessageMiddleware",
193
194
  "django.middleware.clickjacking.XFrameOptionsMiddleware",
@@ -413,6 +414,9 @@ EDC_RANDOMIZATION_SKIP_VERIFY_CHECKS = True
413
414
  # edc-sites
414
415
  EDC_SITES_MODULE_NAME = env.str("EDC_SITES_MODULE_NAME")
415
416
 
417
+ # meta_pharmacy
418
+ META_PHARMACY_RX_SUBSTITUTION_FILE = env.str("META_PHARMACY_RX_SUBSTITUTION_FILE")
419
+
416
420
  # django-multisite
417
421
  CACHE_MULTISITE_KEY_PREFIX = "meta4"
418
422
  SILENCED_SYSTEM_CHECKS = ["sites.E101"]
meta_edc/urls.py CHANGED
@@ -62,6 +62,7 @@ urlpatterns = [
62
62
  *paths_for_urlpatterns("meta_consent"),
63
63
  *paths_for_urlpatterns("meta_export"),
64
64
  *paths_for_urlpatterns("meta_lists"),
65
+ *paths_for_urlpatterns("meta_pharmacy"),
65
66
  *paths_for_urlpatterns("meta_prn"),
66
67
  *paths_for_urlpatterns("meta_screening"),
67
68
  *paths_for_urlpatterns("meta_subject"),
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: meta-edc
3
- Version: 0.3.32
3
+ Version: 0.3.34
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
@@ -20,7 +20,7 @@ Requires-Python: >=3.12
20
20
  Description-Content-Type: text/x-rst
21
21
  License-File: LICENSE
22
22
  License-File: AUTHORS
23
- Requires-Dist: edc ==0.6.10
23
+ Requires-Dist: edc ==0.6.11
24
24
  Requires-Dist: edc-microscopy
25
25
  Requires-Dist: beautifulsoup4
26
26
  Requires-Dist: edc-analytics
@@ -35,7 +35,10 @@ META Edc
35
35
 
36
36
  Metformin treatment in Africa- META
37
37
 
38
- https://www.lstmed.ac.uk/research/departments/international-public-health/respond-africa/meta
38
+ * https://www.ucl.ac.uk/global-health/research/z-research/respond-africa/metformin-treatment-africa-meta
39
+ * https://www.inteafrica.org/related-projects/meta-trial/
40
+ * https://www.lstmed.ac.uk/research/departments/international-public-health/respond-africa/meta
41
+ * http://www.isrctn.com/ISRCTN76157257
39
42
 
40
43
  py 3.12 / DJ 5.1 / edc 0.6.0 (META3)
41
44
 
@@ -85,18 +85,17 @@ meta_analytics/README.rst,sha256=x5KDks1P2bSPdyq3f9CNkynAAgJaXl7AX_3rnmC16HU,357
85
85
  meta_analytics/__init__.py,sha256=kw_E-hvxNPuGxraTF6L5MFzADYn3vTSmww1vcGr96CQ,104
86
86
  meta_analytics/constants.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
87
87
  meta_analytics/get_tables.py,sha256=KDCFdzQmwtCdTrMrODpEDHQXVNzztOa8UiqV6C4hzlc,3043
88
- meta_analytics/dataframes/__init__.py,sha256=yJQS5Ix7QTSGFwNnebSVMwYXAtxGQXxTtEOropiw-1A,138
88
+ meta_analytics/dataframes/__init__.py,sha256=EsDu7Dn6mz4yz2enKyrdZiQKN224VwcD7VqTzYGdYjs,453
89
+ meta_analytics/dataframes/constants.py,sha256=XIt19uf5aSxiOVzkvHtUHs1RJo-1XqJLQOySOJvhQb8,789
90
+ meta_analytics/dataframes/utils.py,sha256=2V3nFFnaysuJvNrcHUOLqOk8e_3aP71079kB_YBXcQw,2014
89
91
  meta_analytics/dataframes/enrolled/__init__.py,sha256=uKniE7L86umlSmGOjAFuwwsbyZj31mELGUpY3hByo4s,43
90
92
  meta_analytics/dataframes/enrolled/get_glucose_df.py,sha256=L4gzszNjYzu-QmYu4gs1c7_Edcv7FgAjucihxHtANSY,5004
91
93
  meta_analytics/dataframes/glucose_endpoints/__init__.py,sha256=a9RlAnFM0Z4AKw-WztBvnGMo3tLLe1dx3292A2n_CnA,107
92
- meta_analytics/dataframes/glucose_endpoints/constants.py,sha256=XIt19uf5aSxiOVzkvHtUHs1RJo-1XqJLQOySOJvhQb8,789
93
- meta_analytics/dataframes/glucose_endpoints/endpoint_by_date.py,sha256=MOIcrrdH26q2zrmQDXE-lxHg9klNuKjRjDAc4Elc9ZE,6506
94
- meta_analytics/dataframes/glucose_endpoints/glucose_endpoints_by_date.py,sha256=Lqfa8YXiOJXrGNyXrbqOLXhkygZjtE5pGgemyYgeVik,19288
95
- meta_analytics/dataframes/glucose_endpoints/utils.py,sha256=2V3nFFnaysuJvNrcHUOLqOk8e_3aP71079kB_YBXcQw,2014
94
+ meta_analytics/dataframes/glucose_endpoints/endpoint_by_date.py,sha256=aOadsfeclOEGFo5agSZUbY2NdM8iZDsOLdg-5j8aelg,7011
95
+ meta_analytics/dataframes/glucose_endpoints/glucose_endpoints_by_date.py,sha256=rWbCTg4D35Gp2BI3DjWZcfBOiMCwwTMyjewXsRNk1YE,20489
96
96
  meta_analytics/dataframes/screening/__init__.py,sha256=onGpmB4474gu_JcyRGdRy09YQyP2Np-mX-rYZTFdJoA,114
97
97
  meta_analytics/dataframes/screening/get_glucose_tested_only_df.py,sha256=0oMJIsIJRjurfpPONuJ4Aoab1UJikezGe3lQNWRoOo4,660
98
98
  meta_analytics/dataframes/screening/get_screening_df.py,sha256=_6AmaHvH06ubFGiQB6XbVRkVGE5kvtbVbDfs7k5TPX8,4854
99
- meta_analytics/notebooks/meta_endpoints.ipynb,sha256=dvLNb8nsCjM7upQhj7LIwwdv0Hv5gK54wAgfVAw0qXw,5816
100
99
  meta_analytics/tables/__init__.py,sha256=mhESCt0Lq4RJU-lbQ5fVfIbXzrEsootGYp7EzQIqDBI,70
101
100
  meta_analytics/tables/eligible.py,sha256=2q-SMbAsrBgOVc4Ttq5P3bpjsUKwP5hYhJBMgyH6GGI,3389
102
101
  meta_analytics/tables/has_dm.py,sha256=W6pObFI7k2hpL46Q7t2QIfYDVfo7-PHJMdCv6Q5EUQk,1739
@@ -106,8 +105,8 @@ meta_analytics/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
106
105
  meta_analytics/tests/test_endpoints_by_date.py,sha256=43uBO5VTcF5zq9I5ow9f6Isn-xs7Km_qOrXELJjaew4,3034
107
106
  meta_auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
108
107
  meta_auth/apps.py,sha256=AcVJmdM3EuebpqB7A1vXRfYBcovgsqPvE71lnGuM-qo,298
109
- meta_auth/auth_objects.py,sha256=6Y-PHb6SPEg99fOlV5tiL3rwq7eDmnKMpz390qf67VI,1988
110
- meta_auth/auths.py,sha256=keHTn95nxZ3Wm6vN9AxPDibaUOOw2YFAIBn_U-N8zTk,2855
108
+ meta_auth/auth_objects.py,sha256=C9ANQTiqML8oH8DharMc8JQYYKV0At9kGCysehcrTfU,2539
109
+ meta_auth/auths.py,sha256=EBdK6b5b2yduDvqYmnmJFRvuJ0fLDQ_q226iuwHA_QU,3008
111
110
  meta_auth/urls.py,sha256=_sVCnQeiAFRYKhxga3_DjoKj_4bgs1s2gjcynDiapvA,111
112
111
  meta_consent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
113
112
  meta_consent/action_items.py,sha256=JIU5DCNeenaOk0PVTsDkAvFmHCquXBeFZf4Vw7JONl0,756
@@ -219,7 +218,7 @@ meta_edc/meta_version.py,sha256=8IASYGnr43t18oDhNAPNnQoKvFYVAUnPILl6a05HAoc,211
219
218
  meta_edc/model_callers.py,sha256=PjQEW7Kp5HHcUMdmz7dvxg53HvGJHXUKr6QTd-4hsyE,1339
220
219
  meta_edc/models.py,sha256=DLA-hDdFszAVNCe1sZqVoLmIXifFW0HeZsipP9D1Ic4,46
221
220
  meta_edc/navbars.py,sha256=1E7JzjI9NUGKwOVvyMGE2Gs2FM40vImMcuB_01t5FTs,1099
222
- meta_edc/urls.py,sha256=Lqnu9siL9_Eu38DbgtSq2PxMP8Vv412RwXzbTOf9-yA,3489
221
+ meta_edc/urls.py,sha256=BpDuV2XX7Qe8xkSgjhT7ehiZ7QCVtQwzQiY2YPhta_I,3534
223
222
  meta_edc/utils.py,sha256=FdGGHT0zCUM9FLovLanH_ultcxbVitCvvPAwq0U3yYc,342
224
223
  meta_edc/wsgi.py,sha256=Ns9vu_jcEqpOLM5tb-hwVUh3ciInocrG3kUPAxh7nJg,165
225
224
  meta_edc/wsgi_live.py,sha256=EprgdsDiEvNN033w6lUQHaS8Y3ntpPrWHDTOgZcjaCQ,164
@@ -232,8 +231,8 @@ meta_edc/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
232
231
  meta_edc/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
233
232
  meta_edc/management/commands/update_forms_reference.py,sha256=_DiCqhHUk8lGhDGlsjOA069EE-g7UBDlZQCH6L1xiHo,1003
234
233
  meta_edc/settings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
235
- meta_edc/settings/debug.py,sha256=-PvZN-nPpEBr49ndpBHFcV71SDu1tAXmVfKESDFIr4Q,947
236
- meta_edc/settings/defaults.py,sha256=V7_2rZ6hQRix_pfzkzM4pAf_RSTQXDX3wCvsqGqadvs,18602
234
+ meta_edc/settings/debug.py,sha256=PUUzyXtMyiKYCyqHeD-mT6PjEKJS8ASDcSxtiG84E1Y,947
235
+ meta_edc/settings/defaults.py,sha256=Q1WJEfWQF5A-IvFoMeyQi0n5BaPmXSgpfAkJ011B_SY,18764
237
236
  meta_edc/settings/live.py,sha256=uLTlsIc3H6gdE_7pkL6vyOVa6V_74hnXFkiojqGFAYY,264
238
237
  meta_edc/settings/logging.py,sha256=6qVUE37OMkf5rzwTmMq4krFsZ2jcyCpWdFtGih_Cs4U,1938
239
238
  meta_edc/settings/minimal.py,sha256=3z-7GBluflnUkuSotKZlYvpL34NZ6tfFNuQNJLCyflo,592
@@ -290,14 +289,20 @@ meta_lists/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
290
289
  meta_lists/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
291
290
  meta_lists/tests/test_lists.py,sha256=qcp2emRyd5-cP2oLluy8MpUucBDQ8_GdUxjh2KbZPv4,212
292
291
  meta_pharmacy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
293
- meta_pharmacy/apps.py,sha256=KTBxPWUCPnN_0Vk7D3oJuz2R57TRssi8ftnkd-Yh1-0,599
294
- meta_pharmacy/constants.py,sha256=lxofauPDtINP7PyYbeJ7tY9vozdvH7pQ6jZ9RNXYRtk,24
295
- meta_pharmacy/models.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
292
+ meta_pharmacy/admin.py,sha256=xFFC-xROXqcWBsS1QYSFYJYdUzcTQMkzFHzEMniasNk,3255
293
+ meta_pharmacy/admin_site.py,sha256=Ekq8Z13f1w4Llm6exO5w4Jk4Bvt-5WN1ydy_BS2rbdI,171
294
+ meta_pharmacy/apps.py,sha256=VNiKT23F5d5nkXxzu1L-kAqovNOdfxzp-cUC6qcioVQ,732
295
+ meta_pharmacy/constants.py,sha256=d3NAZwpxCDm9LLQ_QGKBG2txooYg748Ajh8a2deF0kw,263
296
+ meta_pharmacy/forms.py,sha256=b02OM7TbMyQ12qrZ8WptmhIuGj87fgkQQkc0qVxMopw,2104
297
+ meta_pharmacy/models.py,sha256=stj6HnurPlnLKZi0tZKTzy3m24t26TsDMzydJklMQxg,3373
296
298
  meta_pharmacy/prepare_meta_pharmacy.py,sha256=5gNiPkmOzWwCW-_q6hgIzj_0tnPuN4Tl1lVI6FygNgs,2945
299
+ meta_pharmacy/urls.py,sha256=jncXssL_SeRhb_OJVXLdGFvPT3BqtrkSPdq-eyJnGfY,207
297
300
  meta_pharmacy/migrations/0001_initial.py,sha256=2uyWhZ-Qkjum1gJJA5v-BWUdpmKhkf8BcuDQMl8895s,1115
301
+ meta_pharmacy/migrations/0002_initial.py,sha256=zkPXmGhdEi-EM0HJRBaTUAltdiLRjW1BhU4GEydoBM8,27355
302
+ meta_pharmacy/migrations/0003_auto_20240909_2335.py,sha256=_hbzV6HaBm-VS_jQMhl3w5srvyaYOQclLBvr_8f79uk,2227
298
303
  meta_pharmacy/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
299
304
  meta_prn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
300
- meta_prn/action_items.py,sha256=kJ5RiMh0btpcDpHxEfqMI4MJ-4fp5Wh3dNTGabzkDBQ,8850
305
+ meta_prn/action_items.py,sha256=wz6X7Ve8ibqPBO5kB6S9rYYkWfx8JxsoYRVppzIGAzk,9110
301
306
  meta_prn/admin_site.py,sha256=E4dJ6ofu9Kp-1SIWIuY3PraVPbEJSWBBqhorJPGUNqU,161
302
307
  meta_prn/apps.py,sha256=NEqrwzEW277BAPGeL1H1KdK9e74FqXfYHK6o46BtaJA,280
303
308
  meta_prn/baker_recipes.py,sha256=jDGg3btxjtvnsph_AnKoZBDUeTfokMs5iQWnQBJD-jw,660
@@ -434,13 +439,14 @@ meta_reports/pdf_report.py,sha256=9lWnRc_BNieDFXC4VgA0QHK6g_ct58u8tupPRsbRvV0,23
434
439
  meta_reports/tasks.py,sha256=wPzfm99Hox1AIvt1KxYg1r6g9v8ta2AHOHesoN6AxEk,370
435
440
  meta_reports/urls.py,sha256=_c6AMrK4U5MsyFSU2JSPNfiZlbhuw24C7CyPNYpqGd0,206
436
441
  meta_reports/utils.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
437
- meta_reports/admin/__init__.py,sha256=W9unT8v7A8yHLn0WS8Wn4ZRk6W32POBS-ePh1UA-DHE,407
442
+ meta_reports/admin/__init__.py,sha256=3GDQM-HA1h8FdsmGSAiPaCd1paMGGJHTq6Ivd4Ob9bA,434
438
443
  meta_reports/admin/endpoints_admin.py,sha256=L4mDLNIkR6203RI3ImBYel2kevaH_Nwa6KMYuoDwyNU,518
439
444
  meta_reports/admin/endpoints_all_admin.py,sha256=_czdezZf9fSjwZJmO-3HbmdXrXP6nk8-HdiweqUzPRE,476
440
445
  meta_reports/admin/list_filters.py,sha256=pByBzz9-qGwqBfdZFlByxJUZDTJQXOTWfNLjmK8KF00,870
441
446
  meta_reports/admin/modeladmin_mixins.py,sha256=RhdkF5W9ccuwaX5NTMF4b9shQJgDFaOlj7ENOTBAG0g,3669
442
- meta_reports/admin/dbviews/__init__.py,sha256=5NoJxTvBaZX0hJnE9Bf-HyJBEgGd59Hebj50Q23gguk,616
447
+ meta_reports/admin/dbviews/__init__.py,sha256=2yPu0SO7ZX9yjan0OS9izzws14YYoXcGXmZhwJhax1I,675
443
448
  meta_reports/admin/dbviews/glucose_summary_admin.py,sha256=NqnDKx5l0Q-2xxRGdnf50DaRX1Sn8-DC0jHSk96LkRo,4005
449
+ meta_reports/admin/dbviews/imp_substitutions_admin.py,sha256=um7UEmwQH7V3PH5NASG3lYHqsrIux0mkVgVcU7m7rAI,3257
444
450
  meta_reports/admin/dbviews/patient_history_missing_baseline_cd4_admin.py,sha256=XyroEqxlX816xrdi0IVSelNPxPBWi96niKa-MQVGkck,2058
445
451
  meta_reports/admin/dbviews/unattended_three_in_row2_admin.py,sha256=0r13KRr0gsH2osmSlffRV11SpSBpWM612AYl-GOoYm0,1347
446
452
  meta_reports/admin/dbviews/unattended_three_in_row_admin.py,sha256=i_-H3pMXRjssf8jFw8gJ8_b0FaM4tX2AI4xfHQDyssU,1121
@@ -473,7 +479,7 @@ meta_reports/migrations/0013_auto_20240813_1516.py,sha256=6m7f0kzDjmQ1WuvTe2YmYc
473
479
  meta_reports/migrations/0014_auto_20240813_1517.py,sha256=73gFSbkF_1Ujj-ynf6kzpVw7-iJjyxBhwTQwek0gbM0,5506
474
480
  meta_reports/migrations/0015_alter_endpoints_site.py,sha256=j3SqxCkI6MO3-SdDkmYPtRJ8tidcXL5RJ_IK42R6soQ,551
475
481
  meta_reports/migrations/0016_missingscreeningogtt.py,sha256=Dmgh4Hmzrye_GHGXNksBCt6p-cI4U5qakj3RHYi4sOw,1962
476
- meta_reports/migrations/0017_auto_20240819_1711.py,sha256=B0QpypzPM5VRL05VuYxdREBXgdNFk1wjrW_uNVvR93Y,36679
482
+ meta_reports/migrations/0017_auto_20240819_1711.py,sha256=OJmsJFp7eMoBOphCNaJEDvwnHzab6Q8tl92Uxdqir20,36773
477
483
  meta_reports/migrations/0018_auto_20240819_1713.py,sha256=BaYwu6TA-wNzKqR-1GJ3fzrZ9b9Oj6C7M5f32QFyPGU,5309
478
484
  meta_reports/migrations/0019_auto_20240819_1721.py,sha256=oxpy4mTbvJoBC2AqDg5FXkjOhTKmr6LiF4x74-yUr_k,5594
479
485
  meta_reports/migrations/0020_auto_20240819_1811.py,sha256=CgjDxYzefPLngSZ8l4XSm3K086-2SCbK6S_8tuMgS6w,6038
@@ -503,15 +509,20 @@ meta_reports/migrations/0043_auto_20240828_2309.py,sha256=ZQUFjpWb6Jl2__ghkXL_gv
503
509
  meta_reports/migrations/0044_auto_20240828_2323.py,sha256=oOuxdpmk3NjdkljjqtSHOPv-C2cFNgHquTz-qjPwff4,143236
504
510
  meta_reports/migrations/0045_auto_20240829_0248.py,sha256=V9F3yLQsbvUL40Fei3FrhBB4t7eReGGW4tnkx2lAjrw,33850
505
511
  meta_reports/migrations/0046_auto_20240829_0250.py,sha256=lKVlj7LrkOJ49LJxccYvQdYEZhnSKTcZEcZMYj7h9q8,30676
512
+ meta_reports/migrations/0047_impsubstitutions.py,sha256=VPTb5j2t9IvwR-Bq0lnVBGLAVKdL7IbY8DD-cjl_m5o,2088
513
+ meta_reports/migrations/0048_auto_20240909_2338.py,sha256=mYAOUzJohv9eW9y93fpZTmlgmx_eOBRhUBMr0F3_-_M,3169
506
514
  meta_reports/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
507
- meta_reports/models/__init__.py,sha256=1tv2jW-ZAwyC6g2SUvrSGkmuLYquupfut1qEQJqm5Z0,358
515
+ meta_reports/models/__init__.py,sha256=8JnKMG9devIPboCCGj423x77Ylry2ROdGOnDSk5Xo4w,380
508
516
  meta_reports/models/endpoints.py,sha256=HfxQuKkzu883xbTeVfIEktN-ARoGe1qC6KgEAzRtV5E,925
509
517
  meta_reports/models/endpoints_proxy.py,sha256=3h3JGaPmnJedFPVWGrk4idV4YtdihqiCI5W7QomwG4E,318
510
518
  meta_reports/models/dbviews/README,sha256=GdeboB7Xqb-Qo_rE1ondcxP8Ps93MIjLzCePQCePig0,686
511
- meta_reports/models/dbviews/__init__.py,sha256=T7HZj0LAVw0kWKDV8c8aLrQj5gwwgEZ0wD5orCxImTQ,511
519
+ meta_reports/models/dbviews/__init__.py,sha256=C5YGOKwVAexjWxLh5vl0m561TBMWDM_yAvIrwqG_M70,559
512
520
  meta_reports/models/dbviews/glucose_summary/__init__.py,sha256=Tfgjso4TpxMCidAdRJp8g1Ykqqa43yWlQSotzAaORAo,93
513
521
  meta_reports/models/dbviews/glucose_summary/unmanaged_model.py,sha256=uqhD5JLXtyQ94zpG5Puxodjzli3quE4GgiFi7en6EeM,1055
514
522
  meta_reports/models/dbviews/glucose_summary/view_definition.py,sha256=Fc5KN-It9dcBvRta-b26kUl8uQEHA19vrYIhNRqe2Xo,1512
523
+ meta_reports/models/dbviews/imp_substitutions/__init__.py,sha256=N0507JzoVRtNA9W9_RoiAQYEQZGdvP2U8P83ZJMeZxQ,46
524
+ meta_reports/models/dbviews/imp_substitutions/unmanaged_model.py,sha256=KxynevJevXVj0zVHf7_DIjw_EZzDt3BszEcfEHygPGc,1168
525
+ meta_reports/models/dbviews/imp_substitutions/view_definition.py,sha256=FRAssQC9e48ZoBEScGuiRV61ZX3KvuW29l-XqPNsTbg,870
515
526
  meta_reports/models/dbviews/missing_screening_ogtt/__init__.py,sha256=7uX_2HfVU-3G1O_xecfGnE5_pcX5eceiRaapeDQtzIw,105
516
527
  meta_reports/models/dbviews/missing_screening_ogtt/note_model.py,sha256=JHItVS11WDFg3lTe7ayH9T7Epd-VvXXD_79FssrmAwc,1813
517
528
  meta_reports/models/dbviews/missing_screening_ogtt/unmanaged_model.py,sha256=_XFzpOiMoxr-F0ebKNEnyXqS6dnb3P5tBRnZlbrQ2x8,1346
@@ -521,7 +532,7 @@ meta_reports/models/dbviews/on_study_missing_lab_values/qa_cases.py,sha256=QBptc
521
532
  meta_reports/models/dbviews/on_study_missing_lab_values/unmanged_model.py,sha256=QI9T3K35pAAUMCiIbtwU_cf9kPodBfG9jwNeahPzTMQ,647
522
533
  meta_reports/models/dbviews/on_study_missing_lab_values/view_definition.py,sha256=Z0dnJZZT7EokC0M2TVSCjcLU0SyFfjxydjYmHqZcNag,568
523
534
  meta_reports/models/dbviews/on_study_missing_values/__init__.py,sha256=bxRAXRocUIdUCg9jARlztOE2co9LqgHbBOkU1Bykz9M,49
524
- meta_reports/models/dbviews/on_study_missing_values/qa_cases.py,sha256=pbs6VIY6_6gsz-zJqIQeu2U5TagcRmCCAV7OaZdy30A,1956
535
+ meta_reports/models/dbviews/on_study_missing_values/qa_cases.py,sha256=NiqcSU5ZQD6zSgn08yPY0TEFqmeHSpH6DHFX8ns_XaI,1920
525
536
  meta_reports/models/dbviews/on_study_missing_values/unmanged_model.py,sha256=TQptzrx1Xv-sE_3ioO9BZ1ZE7CKZG8JWXsFD6-ZxI8k,632
526
537
  meta_reports/models/dbviews/on_study_missing_values/view_definition.py,sha256=W7MgZo51Y3nzQ7lUDtmZquRnC5ELdKGnpsscaCC9ouM,564
527
538
  meta_reports/models/dbviews/patient_history_missing_baseline_cd4/__init__.py,sha256=eIyKY9mdIE3-J2vtQtY7MOg_RQkwKj7aserwO5PBNQQ,62
@@ -686,7 +697,7 @@ meta_sites/models.py,sha256=DLA-hDdFszAVNCe1sZqVoLmIXifFW0HeZsipP9D1Ic4,46
686
697
  meta_sites/sites.py,sha256=H26Erar3_fLVl5wf2ILDM5C6wGEoi0dQbiSPmzb9OGw,1625
687
698
  meta_sites/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
688
699
  meta_sites/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
689
- meta_sites/tests/test_sites.py,sha256=yWzygYo1vQIBDv1-_ujNtNK6VxnSptf4s874vSAWlto,415
700
+ meta_sites/tests/test_sites.py,sha256=WkI87TUqTsVxbIPh4wQdJ15FOoGE6R5oGPXqUpO0ntE,426
690
701
  meta_sites/tests/urls.py,sha256=_sVCnQeiAFRYKhxga3_DjoKj_4bgs1s2gjcynDiapvA,111
691
702
  meta_stats/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
692
703
  meta_stats/incidence.py,sha256=59-BOn4nw-U79Ku4SxiPkJIse2pi467dOMTnLGmZvgI,540
@@ -912,7 +923,7 @@ meta_subject/migrations/0103_auto_20220324_0326.py,sha256=gBiNh4-CElPRQcGqb04t4Y
912
923
  meta_subject/migrations/0104_auto_20220412_2151.py,sha256=lruwZFW9lyRzAJ-13bJZh19ZhFYMKX6k-TUjuXWIZAY,966
913
924
  meta_subject/migrations/0105_auto_20220412_2310.py,sha256=wEJsJDk_cwh-JW8ZPxg9HGE3YKKtOPRQJTo6xywX5nk,1290
914
925
  meta_subject/migrations/0106_auto_20220414_1741.py,sha256=tUQQG1JgKa_XrTL2Paz83YaEs8LhIl9gph5OyiV22nk,772
915
- meta_subject/migrations/0107_auto_20220415_0043.py,sha256=8tI8HUNY0jUK5TmyUTMSJ5-HOPGLu8u79GzYXPSq4oc,1492
926
+ meta_subject/migrations/0107_auto_20220415_0043.py,sha256=PWxsJHxonC9L0nTWJnNF-oc3dcZfzkJPNvI38DYDbD8,1718
916
927
  meta_subject/migrations/0108_auto_20220415_1747.py,sha256=4HHVMatXiqavoutbzbZY7TlTHxg32uQYP7gHWg27DX8,688
917
928
  meta_subject/migrations/0109_auto_20220415_1758.py,sha256=FNBIWr0sCmXCvzI0yNVeMSrPup7vMQJhnYxrzHu9DSA,556
918
929
  meta_subject/migrations/0110_auto_20220512_1811.py,sha256=iKRSR0qkKbgOGQUT3zyz7SWN7kyrfJtFH98c1QTu8gM,2516
@@ -931,16 +942,16 @@ meta_subject/migrations/0122_auto_20220708_2144.py,sha256=qEaeHaf0Ab3SwvlENZxP4H
931
942
  meta_subject/migrations/0123_auto_20220714_2136.py,sha256=4ZOX8z0-GjWDTNu9DkZNxZtKIyFcMaEHMdzL4zf_pwA,8262
932
943
  meta_subject/migrations/0124_auto_20220714_2303.py,sha256=M_QpUhj8K-LD5HLytzYH7n59bqlruHzCGpozKjPaCY0,1206
933
944
  meta_subject/migrations/0125_auto_20220719_2134.py,sha256=ijk0rLwlXCxft3tPptVpqfDrtuk6ud5Cxh_EFTZ8FW8,1568
934
- meta_subject/migrations/0126_auto_20220719_2142.py,sha256=56lSoGrf97pUjLmH4GajJKmwkevXtpVZ7QI3s_xTp8I,776
945
+ meta_subject/migrations/0126_auto_20220719_2142.py,sha256=etZtba3l2cN_QQqEKEIrKpKOsotCifX85Y8P6ge2if4,784
935
946
  meta_subject/migrations/0127_auto_20220720_0053.py,sha256=YAJ2xlCKC-0oin-XxnfzyZcsAF9ozNx_a_5cP8WJ1i4,5488
936
947
  meta_subject/migrations/0128_auto_20220720_0055.py,sha256=voqWxaEfSrFSCzXglIfZLRdQpAx_MZ6GZIJmjMr9j50,778
937
948
  meta_subject/migrations/0129_auto_20220720_0108.py,sha256=XBant365dtOEYMtVcbs0yKgbCGP_GIg3azqvX2TGGc8,490
938
949
  meta_subject/migrations/0130_auto_20220720_0216.py,sha256=S7Q7TAl97ZCVpum2zmOtHqeeV4kmo4tbLa-hOKtO-rs,683
939
- meta_subject/migrations/0131_auto_20220722_0411.py,sha256=31XxxCy7ejTqeC9OjrCcb_6otTRb437PrFcxIhbcUgc,1932
940
- meta_subject/migrations/0132_auto_20220722_1825.py,sha256=z_wSesQHtoSTIcKTELb0oH_EhDnXL2HNlOpyhbAmqEI,843
950
+ meta_subject/migrations/0131_auto_20220722_0411.py,sha256=h0fzn1OsT_tvx5LMDyrh9t3HUsXzcpGwA19regX_jO4,2153
951
+ meta_subject/migrations/0132_auto_20220722_1825.py,sha256=TmWCNPi8rdNvA7qfWZ-iVAzlXBrN_FE5uATEzVNFxXY,979
941
952
  meta_subject/migrations/0133_auto_20220722_2140.py,sha256=Un8wWZeac9RdJ3cUUo43bAHsOAm489wyhXcaeTBeve4,28130
942
953
  meta_subject/migrations/0134_auto_20220722_2211.py,sha256=Ez2ur6gngrz2y82Hsgx-Ag3HJXr8htcsGS4BxnjX-eU,1806
943
- meta_subject/migrations/0135_auto_20220722_2212.py,sha256=5g2Odlht0qXpRu-ZAbIB97dXZd8QGDP-lDKArRKfR_Y,2263
954
+ meta_subject/migrations/0135_auto_20220722_2212.py,sha256=34qNpdc0c-LkK0MhSh9ofJP50Ckut4c9yWwVyfU5fvY,2463
944
955
  meta_subject/migrations/0136_egfrdropnotification_creatinine_quantifier_and_more.py,sha256=4vWNQUmziJFlktyOekNqC_lx0ybywCx0FMaIE5_9oRE,8660
945
956
  meta_subject/migrations/0137_alter_egfrdropnotification_egfr_percent_change_and_more.py,sha256=OQA1uVxwReY4osMsbhT_MGVfOBaopBI4s7GW56ba3vU,1138
946
957
  meta_subject/migrations/0138_alter_glucose_fbg_datetime_and_more.py,sha256=JdZ1KW-PnapQm81_THgm-ty3_AeOmbujZoxfRE1cjY8,3531
@@ -955,7 +966,7 @@ meta_subject/migrations/0146_auto_20220907_0207.py,sha256=1va3UjUI5bD3yey08Fk3rp
955
966
  meta_subject/migrations/0147_auto_20220907_1505.py,sha256=kRJWQ81XsX_poQBS_u0tuiQBfRhnP4lQeNzfDTOeOmw,1906
956
967
  meta_subject/migrations/0148_auto_20220908_1826.py,sha256=iHN59ZuFFYQCbLYZAebF_kaiP8m-twUnwUAzrgtFOXU,1814
957
968
  meta_subject/migrations/0149_auto_20220913_2139.py,sha256=V27KGY9t6IV8Xzf0wgcLQseM1DBcXGXY3ReNC_iRUe0,1000
958
- meta_subject/migrations/0150_auto_20220914_0039.py,sha256=BmtWEsWQooijWvqQxTlTSq93GLfRM0kwDdUsJQaZEAQ,1222
969
+ meta_subject/migrations/0150_auto_20220914_0039.py,sha256=qB-6YVz3lloQf6JbbwZACGyf68n2LtlGcFX8v_NY9Qc,1322
959
970
  meta_subject/migrations/0151_auto_20220918_0508.py,sha256=tcQ-eyK-2cIqTLDtL9QsfDi4F9fu8UGHVye6QSBDYLA,52998
960
971
  meta_subject/migrations/0152_auto_20220925_0509.py,sha256=Zd_1TRIXLzw323ccrwHT_k76HgEqVCEBqvqbjlNYCto,738
961
972
  meta_subject/migrations/0153_auto_20220928_0250.py,sha256=nmYfG7zYmrRW4JQXoZQlE3aQQBBehDJrtVRIb4AWtK0,1172
@@ -1123,9 +1134,9 @@ tests/etc/user-rsa-restricted-private.pem,sha256=CUcHW9bznWdmmASN00hCzvxFPAFl4N2
1123
1134
  tests/etc/user-rsa-restricted-public.pem,sha256=mt84djoL-uHw6Wc5SJh0zml6VzXulnf8eQSFg7-fheg,450
1124
1135
  tests/etc/user-salt-local.key,sha256=x5anBw9fvbHurczouT3CjrkWb_xs7Ypm1htIJsgiuiw,256
1125
1136
  tests/etc/user-salt-restricted.key,sha256=pxmpcfBRNB-4C6wTvHXz-9fOfJgKIFOjaAF8ZFfa4q4,256
1126
- meta_edc-0.3.32.dist-info/AUTHORS,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1127
- meta_edc-0.3.32.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
1128
- meta_edc-0.3.32.dist-info/METADATA,sha256=tgPYtAEnHgFjGbzUMFZz-kjnkjIX4KhiOaREbrxoUm0,2811
1129
- meta_edc-0.3.32.dist-info/WHEEL,sha256=UvcQYKBHoFqaQd6LKyqHw9fxEolWLQnlzP0h_LgJAfI,91
1130
- meta_edc-0.3.32.dist-info/top_level.txt,sha256=RkzjNXwRq2kg_uZ_1bDwPUntijSXoY2YBqtByDwvvrc,244
1131
- meta_edc-0.3.32.dist-info/RECORD,,
1137
+ meta_edc-0.3.34.dist-info/AUTHORS,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1138
+ meta_edc-0.3.34.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
1139
+ meta_edc-0.3.34.dist-info/METADATA,sha256=cIWKUxcvH6QDWYsXm16RB4_qh4XxjQwGUPxSNLSp4nM,3015
1140
+ meta_edc-0.3.34.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
1141
+ meta_edc-0.3.34.dist-info/top_level.txt,sha256=RkzjNXwRq2kg_uZ_1bDwPUntijSXoY2YBqtByDwvvrc,244
1142
+ meta_edc-0.3.34.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (74.0.0)
2
+ Generator: setuptools (74.1.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5