meta-edc 0.3.25__py3-none-any.whl → 0.3.26__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.
- meta_analytics/dataframes/glucose_endpoints/glucose_endpoints_by_date.py +4 -4
- meta_dashboard/views/subject/dashboard/dashboard_view.py +26 -0
- {meta_edc-0.3.25.dist-info → meta_edc-0.3.26.dist-info}/METADATA +1 -1
- {meta_edc-0.3.25.dist-info → meta_edc-0.3.26.dist-info}/RECORD +11 -11
- meta_reports/tasks.py +1 -1
- meta_subject/models/__init__.py +1 -0
- meta_subject/models/signals.py +19 -0
- {meta_edc-0.3.25.dist-info → meta_edc-0.3.26.dist-info}/AUTHORS +0 -0
- {meta_edc-0.3.25.dist-info → meta_edc-0.3.26.dist-info}/LICENSE +0 -0
- {meta_edc-0.3.25.dist-info → meta_edc-0.3.26.dist-info}/WHEEL +0 -0
- {meta_edc-0.3.25.dist-info → meta_edc-0.3.26.dist-info}/top_level.txt +0 -0
@@ -436,14 +436,14 @@ class GlucoseEndpointsByDate:
|
|
436
436
|
self.df = self.df.sort_values(by=["subject_identifier", "fbg_datetime"])
|
437
437
|
self.df = self.df.reset_index(drop=True)
|
438
438
|
|
439
|
-
def to_model(self
|
439
|
+
def to_model(self):
|
440
440
|
"""Write endpoint_only_df to the Endpoints model"""
|
441
441
|
df = self.endpoint_only_df
|
442
|
-
model =
|
442
|
+
model = "meta_reports.endpoints"
|
443
443
|
now = get_utcnow()
|
444
444
|
model_cls = django_apps.get_model(model)
|
445
|
-
if subject_identifiers:
|
446
|
-
model_cls.objects.filter(subject_identifier__in=subject_identifiers).delete()
|
445
|
+
if self.subject_identifiers:
|
446
|
+
model_cls.objects.filter(subject_identifier__in=self.subject_identifiers).delete()
|
447
447
|
else:
|
448
448
|
model_cls.objects.all().delete()
|
449
449
|
created = 0
|
@@ -1,9 +1,35 @@
|
|
1
|
+
from typing import Any
|
2
|
+
|
3
|
+
from django.core.checks import messages
|
4
|
+
from django.core.exceptions import ObjectDoesNotExist
|
5
|
+
from django.urls import reverse
|
6
|
+
from django.utils.html import format_html
|
1
7
|
from django.utils.translation import gettext_lazy as _
|
2
8
|
from edc_subject_dashboard.views import SubjectDashboardView
|
3
9
|
|
10
|
+
from meta_reports.models import Endpoints, GlucoseSummary
|
11
|
+
|
4
12
|
|
5
13
|
class DashboardView(SubjectDashboardView):
|
6
14
|
consent_model = "meta_consent.subjectconsentv1"
|
7
15
|
navbar_selected_item = "consented_subject"
|
8
16
|
visit_model = "meta_subject.subjectvisit"
|
9
17
|
history_button_label = _("Audit")
|
18
|
+
|
19
|
+
def get_context_data(self, **kwargs) -> dict[str, Any]:
|
20
|
+
context = super().get_context_data(**kwargs)
|
21
|
+
try:
|
22
|
+
Endpoints.objects.get(subject_identifier=self.subject_identifier)
|
23
|
+
except ObjectDoesNotExist:
|
24
|
+
pass
|
25
|
+
else:
|
26
|
+
url = reverse("meta_reports_admin:meta_reports_glucosesummary_changelist")
|
27
|
+
url = f"{url}?q={self.subject_identifier}"
|
28
|
+
message = _(
|
29
|
+
format_html(
|
30
|
+
f"Subject has reached the protocol endpoint. "
|
31
|
+
f'See <A href="{url}">{GlucoseSummary._meta.verbose_name}</A>'
|
32
|
+
)
|
33
|
+
)
|
34
|
+
self.message_user(message, level=messages.WARNING)
|
35
|
+
return context
|
@@ -91,7 +91,7 @@ meta_analytics/dataframes/enrolled/get_glucose_df.py,sha256=L4gzszNjYzu-QmYu4gs1
|
|
91
91
|
meta_analytics/dataframes/glucose_endpoints/__init__.py,sha256=a9RlAnFM0Z4AKw-WztBvnGMo3tLLe1dx3292A2n_CnA,107
|
92
92
|
meta_analytics/dataframes/glucose_endpoints/constants.py,sha256=XIt19uf5aSxiOVzkvHtUHs1RJo-1XqJLQOySOJvhQb8,789
|
93
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=
|
94
|
+
meta_analytics/dataframes/glucose_endpoints/glucose_endpoints_by_date.py,sha256=Lqfa8YXiOJXrGNyXrbqOLXhkygZjtE5pGgemyYgeVik,19288
|
95
95
|
meta_analytics/dataframes/glucose_endpoints/utils.py,sha256=2V3nFFnaysuJvNrcHUOLqOk8e_3aP71079kB_YBXcQw,2014
|
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
|
@@ -204,7 +204,7 @@ meta_dashboard/views/screening/__init__.py,sha256=bjnvZdqdonOW_DPFs1MR2GQv2x4oqA
|
|
204
204
|
meta_dashboard/views/screening/listboard_view.py,sha256=DF42XR3ftCHO4vd3cuxtq5ir2NqOmQHGQV6cGObr7is,578
|
205
205
|
meta_dashboard/views/subject/__init__.py,sha256=s7l0halOqlqscWdMD_r98V4VKeEsgchhY3eAgs0EI3k,81
|
206
206
|
meta_dashboard/views/subject/dashboard/__init__.py,sha256=1961drFBW7OVhglUAL4OGFxLOU0tN3jOGMvO7Oone8U,42
|
207
|
-
meta_dashboard/views/subject/dashboard/dashboard_view.py,sha256=
|
207
|
+
meta_dashboard/views/subject/dashboard/dashboard_view.py,sha256=FBgOQpZAkTOSeZtUnKRc_CayACOTMeeH6lmwNvEG9vQ,1330
|
208
208
|
meta_dashboard/views/subject/listboard/__init__.py,sha256=WHtaM6dXPN7vtnROBOutMO9zEBVIkx3T0RPJdbq4sq4,49
|
209
209
|
meta_dashboard/views/subject/listboard/listboard_view.py,sha256=bQ5fPqbbkVvPNrmNvIGNZ_GoRIkqUFHk6T7p1dkjr_Y,601
|
210
210
|
meta_data_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -431,7 +431,7 @@ meta_reports/ae_report.py,sha256=K0DCdfVBOCqqWWvCsl-Tf8rRCnNv3W2xbUI10VCuEhI,154
|
|
431
431
|
meta_reports/apps.py,sha256=uQb4mBQ94Ij0luH5yzMF-a5t2N418JHcovYovislwS4,194
|
432
432
|
meta_reports/death_report.py,sha256=mJw08jMxOWIAtsKQN8zCP64HIrxW1fb48D9OXqEMpM0,4713
|
433
433
|
meta_reports/pdf_report.py,sha256=9lWnRc_BNieDFXC4VgA0QHK6g_ct58u8tupPRsbRvV0,2395
|
434
|
-
meta_reports/tasks.py,sha256=
|
434
|
+
meta_reports/tasks.py,sha256=wPzfm99Hox1AIvt1KxYg1r6g9v8ta2AHOHesoN6AxEk,370
|
435
435
|
meta_reports/urls.py,sha256=_c6AMrK4U5MsyFSU2JSPNfiZlbhuw24C7CyPNYpqGd0,206
|
436
436
|
meta_reports/admin/__init__.py,sha256=dpLUWcQsAUP-Mfx-eehY9Zegia9qp0uF82iwIdJCego,313
|
437
437
|
meta_reports/admin/endpoints_admin.py,sha256=L4mDLNIkR6203RI3ImBYel2kevaH_Nwa6KMYuoDwyNU,518
|
@@ -992,7 +992,7 @@ meta_subject/model_mixins/crf_model_mixin.py,sha256=UK1ycbYwaZ8LSNTJm74QJ5c-01HD
|
|
992
992
|
meta_subject/model_mixins/crf_with_action_model_mixin.py,sha256=q1Q16YyPjQlpDtCPOXRkO5C7Vr7JO_QL8xWC48Uz33M,298
|
993
993
|
meta_subject/model_mixins/search_slug_model_mixin.py,sha256=r5KmTykU0qV4JymMMKP2IBwAP8Z5hDnVJix-rO2PvME,296
|
994
994
|
meta_subject/model_mixins/vitals_fields_model_mixin.py,sha256=JYh0w1eEFLR_BCvzHb2ldwNIkyINbfvef-SL4_wA-NY,1160
|
995
|
-
meta_subject/models/__init__.py,sha256=
|
995
|
+
meta_subject/models/__init__.py,sha256=wHtGa2pg7-1rfAZRE2dMWpCyenLto4he0_YUaaWxQJo,1762
|
996
996
|
meta_subject/models/birth_outcomes.py,sha256=zikxatYZvL1qvnJ6JtVZ5aw8LCKLwQNXi6cP5F-5Jj0,3124
|
997
997
|
meta_subject/models/complications.py,sha256=lkUoM3wJ9GuCFkuBUVxbCRSWfl3UtiVNSoMmkPKQdzg,1849
|
998
998
|
meta_subject/models/complications_glycemia.py,sha256=2wHind-dDsPY5J4M0pUbRzjp72Brz990oDzCbF-V1CM,6056
|
@@ -1017,7 +1017,7 @@ meta_subject/models/patient_history.py,sha256=q1GFQYoH0rYowBFUDUYebYthKSdTHNuDnz
|
|
1017
1017
|
meta_subject/models/physical_exam.py,sha256=SlDJJQrCEouTMaETYGjjVzFYONVx6AdtalPioUCN9yg,1991
|
1018
1018
|
meta_subject/models/pregnancy_update.py,sha256=Cs5bZAslR7jtDS_dJE_btHN8Jw21KdqKCHA-Ll9ISO0,949
|
1019
1019
|
meta_subject/models/sf12.py,sha256=1f6cAMtBUXy7jMaacAU8RJFFv73r9c3rJjBbNl-bSM4,283
|
1020
|
-
meta_subject/models/signals.py,sha256=
|
1020
|
+
meta_subject/models/signals.py,sha256=N-Y-QmwSiiJnridHMrAm08YttRorjB9hzo9XTCdMzWk,4557
|
1021
1021
|
meta_subject/models/study_medication.py,sha256=1kA_w4pYT1gcunfiQ46KdM01pd1jrQqLt4JEPLvfTTo,461
|
1022
1022
|
meta_subject/models/subject_requisition.py,sha256=bSDwD-hpXeioH3xA7E6eGMu4hxWLDDSxhznfjrpXTjw,341
|
1023
1023
|
meta_subject/models/subject_visit.py,sha256=f49M7ywCQqdYdiT5dUhlWXTTXs5K6aKlxkMgzWyj3VE,2152
|
@@ -1089,9 +1089,9 @@ tests/etc/user-rsa-restricted-private.pem,sha256=CUcHW9bznWdmmASN00hCzvxFPAFl4N2
|
|
1089
1089
|
tests/etc/user-rsa-restricted-public.pem,sha256=mt84djoL-uHw6Wc5SJh0zml6VzXulnf8eQSFg7-fheg,450
|
1090
1090
|
tests/etc/user-salt-local.key,sha256=x5anBw9fvbHurczouT3CjrkWb_xs7Ypm1htIJsgiuiw,256
|
1091
1091
|
tests/etc/user-salt-restricted.key,sha256=pxmpcfBRNB-4C6wTvHXz-9fOfJgKIFOjaAF8ZFfa4q4,256
|
1092
|
-
meta_edc-0.3.
|
1093
|
-
meta_edc-0.3.
|
1094
|
-
meta_edc-0.3.
|
1095
|
-
meta_edc-0.3.
|
1096
|
-
meta_edc-0.3.
|
1097
|
-
meta_edc-0.3.
|
1092
|
+
meta_edc-0.3.26.dist-info/AUTHORS,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1093
|
+
meta_edc-0.3.26.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
1094
|
+
meta_edc-0.3.26.dist-info/METADATA,sha256=G4yeTPysQ4wOftmA6bRMObIYXwqjSanz2r6NCLcOAs0,2771
|
1095
|
+
meta_edc-0.3.26.dist-info/WHEEL,sha256=Mdi9PDNwEZptOjTlUcAth7XJDFtKrHYaQMPulZeBCiQ,91
|
1096
|
+
meta_edc-0.3.26.dist-info/top_level.txt,sha256=RkzjNXwRq2kg_uZ_1bDwPUntijSXoY2YBqtByDwvvrc,244
|
1097
|
+
meta_edc-0.3.26.dist-info/RECORD,,
|
meta_reports/tasks.py
CHANGED
@@ -9,4 +9,4 @@ def update_endpoints_table(subject_identifiers: list[str] | None = None):
|
|
9
9
|
subject_identifiers = []
|
10
10
|
cls = GlucoseEndpointsByDate(subject_identifiers=subject_identifiers)
|
11
11
|
cls.run()
|
12
|
-
return cls.to_model(
|
12
|
+
return cls.to_model()
|
meta_subject/models/__init__.py
CHANGED
@@ -36,6 +36,7 @@ from .pregnancy_update import PregnancyUpdate
|
|
36
36
|
from .sf12 import Sf12
|
37
37
|
from .signals import (
|
38
38
|
study_medication_on_pre_save,
|
39
|
+
update_glucose_endpoints_for_subject_on_post_save,
|
39
40
|
update_pregnancy_notification_on_delivery_post_save,
|
40
41
|
update_schedule_on_delivery_post_save,
|
41
42
|
)
|
meta_subject/models/signals.py
CHANGED
@@ -11,6 +11,7 @@ from meta_edc.meta_version import get_meta_version
|
|
11
11
|
from meta_pharmacy.constants import METFORMIN
|
12
12
|
from meta_visit_schedule.constants import SCHEDULE_PREGNANCY
|
13
13
|
|
14
|
+
from . import Glucose, GlucoseFbg
|
14
15
|
from .delivery import Delivery
|
15
16
|
from .study_medication import StudyMedication
|
16
17
|
from .subject_visit import SubjectVisit
|
@@ -105,3 +106,21 @@ def update_schedule_on_delivery_post_save(sender, instance, raw, **kwargs):
|
|
105
106
|
subject_identifier=instance.subject_identifier,
|
106
107
|
offschedule_datetime=offschedule_datetime,
|
107
108
|
)
|
109
|
+
|
110
|
+
|
111
|
+
@receiver(
|
112
|
+
post_save,
|
113
|
+
weak=False,
|
114
|
+
dispatch_uid="update_glucose_endpoints_for_subject_on_post_save",
|
115
|
+
)
|
116
|
+
def update_glucose_endpoints_for_subject_on_post_save(
|
117
|
+
sender, instance, raw, update_fields, **kwargs
|
118
|
+
):
|
119
|
+
if not raw and not update_fields and sender in [Glucose, GlucoseFbg]:
|
120
|
+
from meta_analytics.dataframes import GlucoseEndpointsByDate
|
121
|
+
|
122
|
+
cls = GlucoseEndpointsByDate(
|
123
|
+
subject_identifiers=[instance.subject_visit.subject_identifier]
|
124
|
+
)
|
125
|
+
cls.run()
|
126
|
+
cls.to_model()
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|