meta-edc 1.5.2__py3-none-any.whl → 1.5.4__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meta-edc
3
- Version: 1.5.2
3
+ Version: 1.5.4
4
4
  Summary: META Trial EDC (https://www.isrctn.com/ISRCTN76157257)
5
5
  Keywords: django,clinicedc,META EDC,EDC,clinical trials,META Trial,ISRCTN76157257
6
6
  Author: Erik van Widenfelt, Jonathan Willitts
@@ -89,8 +89,8 @@ Assuming you are logged into the account ``myaccount``:
89
89
  mkdir ~/edc && \
90
90
  cd ~/edc && \
91
91
  uv venv && \
92
- uv pip install -U meta-edc==1.5.1 && \
93
- wget https://raw.githubusercontent.com/meta-trial/meta-edc/1.5.1/manage.py && \
92
+ uv pip install -U meta-edc==1.5.3 && \
93
+ wget https://raw.githubusercontent.com/meta-trial/meta-edc/1.5.3/manage.py && \
94
94
  uv pip freeze | grep meta-edc
95
95
 
96
96
  Copy your ``.env`` file to ``~/.etc``.
@@ -140,7 +140,7 @@ From the above example:
140
140
 
141
141
  cd ~/edc && \
142
142
  uv venv --clear && \
143
- uv pip install -U meta-edc==1.5.1 && \
143
+ uv pip install -U meta-edc==1.5.3 && \
144
144
  wget -O manage.py https://raw.githubusercontent.com/meta-trial/meta-edc/1.1.10/manage.py && \
145
145
  uv pip freeze | grep meta-edc && \
146
146
  python manage.py check
@@ -796,7 +796,7 @@ meta_subject/forms/blood_results/blood_results_hba1c_form.py,sha256=2eugHsvMxwD0
796
796
  meta_subject/forms/blood_results/blood_results_ins_form.py,sha256=zKwobon8wRBrwpAMxonbXtR-Bg2wsJbcHraLjsqcAhY,722
797
797
  meta_subject/forms/blood_results/blood_results_lft_form.py,sha256=WKCGZXTk9ndlASymnKKIAo0rBtE9uoE_gzKsx19p-LQ,714
798
798
  meta_subject/forms/blood_results/blood_results_lipids_form.py,sha256=YcqETGjN1LH_kKTGVD0a-gW4z6X3PmM8z1xQmI0-Yfg,735
799
- meta_subject/forms/blood_results/blood_results_rft_form.py,sha256=FOBxOmSurSctidPkAvOS1XZ6-xQ5VQaubdc-pG3H6Es,3474
799
+ meta_subject/forms/blood_results/blood_results_rft_form.py,sha256=HHDHbI_imJllaB1rKuVRjNxjqYjgYkYDbtWOA1I5lPw,2777
800
800
  meta_subject/forms/complications_glycemia_form.py,sha256=yTm3qRDJ1wPuukmpf0s0lg-oXi8fZ5Y7D7T9V-CsOXk,375
801
801
  meta_subject/forms/concomitant_medication_form.py,sha256=eznM4YOSV0eSsc-qaQgkga76T76Oz6i8svyBaleW-gQ,375
802
802
  meta_subject/forms/delivery_form.py,sha256=L4WZqWbo9gz_BzxSdckh3e0v6DojOSoygD2xEcT4P78,484
@@ -841,8 +841,8 @@ meta_subject/management/commands/create_missing_refills.py,sha256=PlL0ZQwPuIMA_Y
841
841
  meta_subject/management/commands/create_missing_rx.py,sha256=KhQGCP6NCuiniMTXGFW33z0-dpZsTEPPCxpDOOenm7M,1484
842
842
  meta_subject/management/commands/missed.py,sha256=-6u4ECdvB0bSasO0ZZE4Cj9WSPUPe-anf2JpXiMqjrI,8148
843
843
  meta_subject/metadata_rules/__init__.py,sha256=oCYvXgdEXNDdg3uxsseQbgv877E1u7RAtHPM-hpKB1s,93
844
- meta_subject/metadata_rules/metadata_rules.py,sha256=CeZKXkr_sFsMlZK3CoU8buF51hqSH5hyxTWS92ZfBGk,4323
845
- meta_subject/metadata_rules/predicates.py,sha256=PVO6bSvQloW13Vtnc5ihEOhdUR2b4gEfvO95zszbSVI,10035
844
+ meta_subject/metadata_rules/metadata_rules.py,sha256=pKE13pdTywxwZ8JXAgwKPXrSIJrOYV_d-bfv6j06qMU,4673
845
+ meta_subject/metadata_rules/predicates.py,sha256=D_2uzeAGiF6YOTi2kktqN939pOuYKJFBMSvM2s6UoMo,10195
846
846
  meta_subject/migrations/0001_initial.py,sha256=U6ULFoW9DxoI0Ts98ulh76Ngj62z_04okiVqm9sa8RA,407349
847
847
  meta_subject/migrations/0002_auto_20191021_0353.py,sha256=2fyDZciaIc06BA-9abijvb-tW2_pi0hJa7BJrhqLlH8,29224
848
848
  meta_subject/migrations/0003_auto_20191021_0534.py,sha256=Ye9au73hXxbvd1tBmrafin20NPWUZfhxj50x4S-tYqk,4024
@@ -1158,7 +1158,7 @@ meta_visit_schedule/visit_schedules/phase_three/schedule.py,sha256=LU1HRaV6o1UeK
1158
1158
  meta_visit_schedule/visit_schedules/phase_three/schedule_dm_referral.py,sha256=q12p5wXc2D7lSiJVBnoSQw8Q3vL6uDx1t3PuDJO-Z-U,1735
1159
1159
  meta_visit_schedule/visit_schedules/phase_three/schedule_pregnancy.py,sha256=bEpbpCX3vfZmnsqudr0z8PU5kiaX4ws1sO5Im98Mo28,1106
1160
1160
  meta_visit_schedule/visit_schedules/phase_three/visit_schedule.py,sha256=ak4qazeKlpIlvpqrK9hDDO0fwWuWyvb4Ec-JU31IJxc,654
1161
- meta_edc-1.5.2.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
1162
- meta_edc-1.5.2.dist-info/WHEEL,sha256=ZHijuPszqKbNczrBXkSuoxdxocbxgFghqnequ9ZQlVk,79
1163
- meta_edc-1.5.2.dist-info/METADATA,sha256=obgIfLrCBL7boOhiRrCm9fAFpOVHsWanM3Z7GzmVSkg,5162
1164
- meta_edc-1.5.2.dist-info/RECORD,,
1161
+ meta_edc-1.5.4.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
1162
+ meta_edc-1.5.4.dist-info/WHEEL,sha256=ZHijuPszqKbNczrBXkSuoxdxocbxgFghqnequ9ZQlVk,79
1163
+ meta_edc-1.5.4.dist-info/METADATA,sha256=Yy_GfVEQPUXQrQnYSt2Cm1-8_E4ah4HmxmS279I477A,5162
1164
+ meta_edc-1.5.4.dist-info/RECORD,,
@@ -11,9 +11,7 @@ from edc_utils import age
11
11
  from edc_visit_schedule.utils import is_baseline
12
12
  from edc_vitals.form_validators import BmiFormValidatorMixin
13
13
 
14
- from meta_visit_schedule.constants import DAY1
15
-
16
- from ...models import BloodResultsRft, FollowupVitals, PhysicalExam, SubjectVisit
14
+ from ...models import BloodResultsRft, FollowupVitals, PhysicalExam
17
15
 
18
16
 
19
17
  class BloodResultsRftFormValidator(
@@ -30,28 +28,13 @@ class BloodResultsRftFormValidator(
30
28
  if self.cleaned_data.get("creatinine_value") and self.cleaned_data.get(
31
29
  "creatinine_units"
32
30
  ):
33
- if is_baseline(self.related_visit):
34
- baseline_egfr_value = None
35
- else:
36
- baseline_visit = SubjectVisit.objects.get(
37
- subject_identifier=self.related_visit.subject_identifier,
38
- visit_code=DAY1,
39
- visit_code_sequence=0,
40
- )
41
- baseline_egfr_value = BloodResultsRft.objects.get(
42
- subject_visit=baseline_visit
43
- ).egfr_value
44
31
  rs = RegisteredSubject.objects.get(
45
32
  subject_identifier=self.related_visit.subject_identifier
46
33
  )
47
34
  age_in_years = age(rs.dob, self.report_datetime).years
48
35
 
49
36
  self.validate_egfr(
50
- gender=rs.gender,
51
- age_in_years=age_in_years,
52
- ethnicity=rs.ethnicity,
53
- weight_in_kgs=self.get_weight_in_kgs(),
54
- baseline_egfr_value=baseline_egfr_value,
37
+ gender=rs.gender, age_in_years=age_in_years, ethnicity=rs.ethnicity
55
38
  )
56
39
 
57
40
  def get_weight_in_kgs(self) -> float | None:
@@ -174,3 +174,17 @@ class NextAppointmentRuleGroup(CrfRuleGroup):
174
174
  class Meta:
175
175
  app_label = "meta_subject"
176
176
  source_model = "meta_subject.subjectvisit"
177
+
178
+
179
+ @register()
180
+ class HivExitReviewRuleGroup(CrfRuleGroup):
181
+ hiv_exit_review = CrfRule(
182
+ predicate=pc.hiv_exit_review_required,
183
+ consequence=REQUIRED,
184
+ alternative=NOT_REQUIRED,
185
+ target_models=["hivexitreview"],
186
+ )
187
+
188
+ class Meta:
189
+ app_label = "meta_subject"
190
+ source_model = "meta_subject.subjectvisit"
@@ -282,3 +282,6 @@ class Predicates(PersistantSingletonMixin):
282
282
  if obj.offschedule_today == YES:
283
283
  return True
284
284
  return False
285
+
286
+ def hiv_exit_review_required(self, visit, **kwargs) -> bool: # noqa: ARG002
287
+ return self.offschedule_today(visit) or visit.visit_code in [MONTH48]