Coverage for tasks/tests/factories.py: 94%
810 statements
« prev ^ index » next coverage.py v7.9.2, created at 2025-07-15 15:51 +0100
« prev ^ index » next coverage.py v7.9.2, created at 2025-07-15 15:51 +0100
1"""
2camcops_server/tasks/tests/factories.py
4===============================================================================
6 Copyright (C) 2012, University of Cambridge, Department of Psychiatry.
7 Created by Rudolf Cardinal (rnc1001@cam.ac.uk).
9 This file is part of CamCOPS.
11 CamCOPS is free software: you can redistribute it and/or modify
12 it under the terms of the GNU General Public License as published by
13 the Free Software Foundation, either version 3 of the License, or
14 (at your option) any later version.
16 CamCOPS is distributed in the hope that it will be useful,
17 but WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 GNU General Public License for more details.
21 You should have received a copy of the GNU General Public License
22 along with CamCOPS. If not, see <https://www.gnu.org/licenses/>.
24===============================================================================
26**Factory Boy SQL Alchemy test factories for tasks.**
28"""
30import factory
31import pendulum
32from typing import Any, cast, TYPE_CHECKING
34from camcops_server.cc_modules.cc_task import Task
35from camcops_server.cc_modules.cc_testfactories import (
36 BlobFactory,
37 Fake,
38 GenericTabletRecordFactory,
39)
41from camcops_server.tasks.ace3 import Ace3, MiniAce
42from camcops_server.tasks.aims import Aims
43from camcops_server.tasks.apeqpt import Apeqpt
44from camcops_server.tasks.apeq_cpft_perinatal import APEQCPFTPerinatal
45from camcops_server.tasks.aq import Aq
46from camcops_server.tasks.asdas import Asdas
47from camcops_server.tasks.audit import Audit, AuditC
48from camcops_server.tasks.badls import Badls
49from camcops_server.tasks.basdai import Basdai
50from camcops_server.tasks.bdi import Bdi
51from camcops_server.tasks.bmi import Bmi
52from camcops_server.tasks.bprs import Bprs
53from camcops_server.tasks.bprse import Bprse
54from camcops_server.tasks.cage import Cage
55from camcops_server.tasks.cape42 import Cape42
56from camcops_server.tasks.caps import Caps
57from camcops_server.tasks.cardinal_expdetthreshold import (
58 CardinalExpDetThreshold,
59)
60from camcops_server.tasks.cardinal_expectationdetection import (
61 CardinalExpectationDetection,
62 ExpDetTrial,
63 ExpDetTrialGroupSpec,
64)
65from camcops_server.tasks.cbir import CbiR
66from camcops_server.tasks.ceca import CecaQ3
67from camcops_server.tasks.cesd import Cesd
68from camcops_server.tasks.cesdr import Cesdr
69from camcops_server.tasks.cet import Cet
70from camcops_server.tasks.cgi_task import Cgi, CgiI
71from camcops_server.tasks.cgisch import CgiSch
72from camcops_server.tasks.chit import Chit
73from camcops_server.tasks.cia import Cia
74from camcops_server.tasks.cisr import Cisr
75from camcops_server.tasks.ciwa import Ciwa
76from camcops_server.tasks.contactlog import ContactLog
77from camcops_server.tasks.cope import CopeBrief
78from camcops_server.tasks.core10 import Core10
79from camcops_server.tasks.cpft_covid_medical import CpftCovidMedical
80from camcops_server.tasks.cpft_lps import (
81 CPFTLPSDischarge,
82 CPFTLPSReferral,
83 CPFTLPSResetResponseClock,
84)
85from camcops_server.tasks.cpft_research_preferences import (
86 CpftResearchPreferences,
87)
88from camcops_server.tasks.dad import Dad
89from camcops_server.tasks.das28 import Das28
90from camcops_server.tasks.dast import Dast
91from camcops_server.tasks.deakin_s1_healthreview import DeakinS1HealthReview
92from camcops_server.tasks.demoquestionnaire import DemoQuestionnaire
93from camcops_server.tasks.demqol import Demqol, DemqolProxy
94from camcops_server.tasks.diagnosis import (
95 DiagnosisIcd10,
96 DiagnosisIcd10Item,
97 DiagnosisIcd9CM,
98 DiagnosisIcd9CMItem,
99)
100from camcops_server.tasks.distressthermometer import DistressThermometer
101from camcops_server.tasks.edeq import Edeq
102from camcops_server.tasks.elixhauserci import ElixhauserCI
103from camcops_server.tasks.epds import Epds
104from camcops_server.tasks.empsa import Empsa
105from camcops_server.tasks.eq5d5l import Eq5d5l
106from camcops_server.tasks.esspri import Esspri
107from camcops_server.tasks.factg import Factg
108from camcops_server.tasks.fast import Fast
109from camcops_server.tasks.fft import Fft
110from camcops_server.tasks.frs import Frs
111from camcops_server.tasks.gad7 import Gad7
112from camcops_server.tasks.gaf import Gaf
113from camcops_server.tasks.gbo import Gbogpc, Gbogras, Gbogres
114from camcops_server.tasks.gds import Gds15
115from camcops_server.tasks.gmcpq import GMCPQ
116from camcops_server.tasks.hads import Hads, HadsRespondent
117from camcops_server.tasks.hama import Hama
118from camcops_server.tasks.hamd import Hamd
119from camcops_server.tasks.hamd7 import Hamd7
120from camcops_server.tasks.honos import Honos, Honos65, Honosca
121from camcops_server.tasks.icd10depressive import Icd10Depressive
122from camcops_server.tasks.icd10manic import Icd10Manic
123from camcops_server.tasks.icd10mixed import Icd10Mixed
124from camcops_server.tasks.icd10schizophrenia import Icd10Schizophrenia
125from camcops_server.tasks.icd10schizotypal import Icd10Schizotypal
126from camcops_server.tasks.icd10specpd import Icd10SpecPD
127from camcops_server.tasks.ided3d import IDED3D
128from camcops_server.tasks.iesr import Iesr
129from camcops_server.tasks.ifs import Ifs
130from camcops_server.tasks.irac import Irac
131from camcops_server.tasks.isaaq10 import Isaaq10
132from camcops_server.tasks.isaaqed import IsaaqEd
133from camcops_server.tasks.khandaker_insight_medical import (
134 KhandakerInsightMedical,
135)
136from camcops_server.tasks.khandaker_mojo_medical import KhandakerMojoMedical
137from camcops_server.tasks.khandaker_mojo_sociodemographics import (
138 KhandakerMojoSociodemographics,
139)
140from camcops_server.tasks.khandaker_mojo_medicationtherapy import (
141 KhandakerMojoMedicationTherapy,
142)
143from camcops_server.tasks.kirby_mcq import Kirby
144from camcops_server.tasks.lynall_iam_life import LynallIamLifeEvents
145from camcops_server.tasks.lynall_iam_medical import LynallIamMedicalHistory
146from camcops_server.tasks.maas import Maas
147from camcops_server.tasks.mast import Mast
148from camcops_server.tasks.mds_updrs import MdsUpdrs
149from camcops_server.tasks.mfi20 import Mfi20
150from camcops_server.tasks.moca import Moca
151from camcops_server.tasks.nart import Nart
152from camcops_server.tasks.npiq import NpiQ
153from camcops_server.tasks.ors import Ors
154from camcops_server.tasks.panss import Panss
155from camcops_server.tasks.paradise24 import Paradise24
156from camcops_server.tasks.pbq import Pbq
157from camcops_server.tasks.pcl5 import Pcl5
158from camcops_server.tasks.pcl import PclC, PclM, PclS
159from camcops_server.tasks.pdss import Pdss
160from camcops_server.tasks.perinatalpoem import PerinatalPoem
161from camcops_server.tasks.photo import (
162 Photo,
163 PhotoSequence,
164 PhotoSequenceSinglePhoto,
165)
166from camcops_server.tasks.phq15 import Phq15
167from camcops_server.tasks.phq8 import Phq8
168from camcops_server.tasks.phq9 import Phq9
169from camcops_server.tasks.progressnote import ProgressNote
170from camcops_server.tasks.pswq import Pswq
171from camcops_server.tasks.psychiatricclerking import PsychiatricClerking
172from camcops_server.tasks.qolbasic import QolBasic
173from camcops_server.tasks.qolsg import QolSG
174from camcops_server.tasks.rand36 import Rand36
175from camcops_server.tasks.rapid3 import Rapid3
176from camcops_server.tasks.service_satisfaction import (
177 PatientSatisfaction,
178 ReferrerSatisfactionGen,
179 ReferrerSatisfactionSpec,
180)
181from camcops_server.tasks.sfmpq2 import Sfmpq2
182from camcops_server.tasks.shaps import Shaps
183from camcops_server.tasks.slums import Slums
184from camcops_server.tasks.smast import Smast
185from camcops_server.tasks.srs import Srs
186from camcops_server.tasks.suppsp import Suppsp
187from camcops_server.tasks.wemwbs import Swemwbs, Wemwbs
188from camcops_server.tasks.wsas import Wsas
189from camcops_server.tasks.ybocs import Ybocs, YbocsSc
190from camcops_server.tasks.zbi import Zbi12
192if TYPE_CHECKING:
193 from factory.builder import Resolver
196class TaskFactory(GenericTabletRecordFactory):
197 class Meta:
198 abstract = True
200 @factory.lazy_attribute
201 def when_created(self) -> pendulum.DateTime:
202 datetime = cast(
203 pendulum.DateTime, pendulum.parse(self.default_iso_datetime)
204 )
206 return datetime
209class TaskHasPatientFactory(TaskFactory):
210 class Meta:
211 abstract = True
213 patient_id = None
215 @classmethod
216 def create(cls, *args: Any, **kwargs: Any) -> Task:
217 patient = kwargs.pop("patient", None)
218 if patient is not None:
219 if "patient_id" in kwargs:
220 raise TypeError(
221 "Both 'patient' and 'patient_id' keyword arguments "
222 "unexpectedly passed to a task factory. Use one or the "
223 "other."
224 )
225 kwargs["patient_id"] = patient.id
227 if "_device" not in kwargs:
228 kwargs["_device"] = patient._device
230 if "_era" not in kwargs:
231 kwargs["_era"] = patient._era
233 if "_group" not in kwargs:
234 kwargs["_group"] = patient._group
236 if "_current" not in kwargs:
237 kwargs["_current"] = True
239 return super().create(*args, **kwargs)
242class APEQCPFTPerinatalFactory(TaskFactory):
243 class Meta:
244 model = APEQCPFTPerinatal
246 id = factory.Sequence(lambda n: n + 1)
249class ApeqptFactory(TaskFactory):
250 class Meta:
251 model = Apeqpt
253 id = factory.Sequence(lambda n: n + 1)
256class BmiFactory(TaskHasPatientFactory):
257 class Meta:
258 model = Bmi
260 id = factory.Sequence(lambda n: n + 1)
262 height_m = factory.LazyFunction(Fake.en_gb.height_m)
263 mass_kg = factory.LazyFunction(Fake.en_gb.mass_kg)
264 waist_cm = factory.LazyFunction(Fake.en_gb.waist_cm)
267class Core10Factory(TaskHasPatientFactory):
268 class Meta:
269 model = Core10
271 id = factory.Sequence(lambda n: n + 1)
273 q1 = 0
274 q2 = 0
275 q3 = 0
276 q4 = 0
277 q5 = 0
278 q6 = 0
279 q7 = 0
280 q8 = 0
281 q9 = 0
282 q10 = 0
285class DiagnosisIcd10Factory(TaskHasPatientFactory):
286 class Meta:
287 model = DiagnosisIcd10
289 id = factory.Sequence(lambda n: n + 1)
292class DiagnosisItemFactory(GenericTabletRecordFactory):
293 class Meta:
294 abstract = True
297class DiagnosisIcd10ItemFactory(DiagnosisItemFactory):
298 class Meta:
299 model = DiagnosisIcd10Item
301 id = factory.Sequence(lambda n: n + 1)
302 seqnum = factory.Sequence(lambda n: n + 1)
304 @classmethod
305 def create(cls, *args: Any, **kwargs: Any) -> DiagnosisIcd10Item:
306 diagnosis_icd10 = kwargs.pop("diagnosis_icd10", None)
307 if diagnosis_icd10 is not None:
308 if "diagnosis_icd10_id" in kwargs:
309 raise TypeError(
310 "Both 'diagnosis_icd10' and 'diagnosis_icd10_id' keyword "
311 "arguments unexpectedly passed to a task factory. Use one "
312 "or the other."
313 )
314 kwargs["diagnosis_icd10_id"] = diagnosis_icd10.id
316 if "_device" not in kwargs:
317 kwargs["_device"] = diagnosis_icd10._device
319 if "_era" not in kwargs:
320 kwargs["_era"] = diagnosis_icd10._era
322 if "_current" not in kwargs:
323 kwargs["_current"] = True
325 return super().create(*args, **kwargs)
328class DiagnosisIcd9CMFactory(TaskHasPatientFactory):
329 class Meta:
330 model = DiagnosisIcd9CM
332 id = factory.Sequence(lambda n: n + 1)
335class DiagnosisIcd9CMItemFactory(DiagnosisItemFactory):
336 class Meta:
337 model = DiagnosisIcd9CMItem
339 id = factory.Sequence(lambda n: n + 1)
340 seqnum = factory.Sequence(lambda n: n + 1)
342 @classmethod
343 def create(cls, *args: Any, **kwargs: Any) -> DiagnosisIcd9CMItem:
344 diagnosis_icd9cm = kwargs.pop("diagnosis_icd9cm", None)
345 if diagnosis_icd9cm is not None:
346 if "diagnosis_icd9cm_id" in kwargs:
347 raise TypeError(
348 "Both 'diagnosis_icd9cm' and 'diagnosis_icd9cm_id' "
349 "keyword arguments unexpectedly passed to a task factory. "
350 "Use one or the other."
351 )
352 kwargs["diagnosis_icd9cm_id"] = diagnosis_icd9cm.id
354 if "_device" not in kwargs:
355 kwargs["_device"] = diagnosis_icd9cm._device
357 if "_era" not in kwargs:
358 kwargs["_era"] = diagnosis_icd9cm._era
360 if "_current" not in kwargs:
361 kwargs["_current"] = True
363 return super().create(*args, **kwargs)
366class Gad7Factory(TaskHasPatientFactory):
367 class Meta:
368 model = Gad7
370 id = factory.Sequence(lambda n: n + 1)
373class KhandakerMojoMedicationTherapyFactory(TaskHasPatientFactory):
374 class Meta:
375 model = KhandakerMojoMedicationTherapy
377 id = factory.Sequence(lambda n: n + 1)
380class MaasFactory(TaskHasPatientFactory):
381 class Meta:
382 model = Maas
384 id = factory.Sequence(lambda n: n + 1)
387class PerinatalPoemFactory(TaskFactory):
388 class Meta:
389 model = PerinatalPoem
391 id = factory.Sequence(lambda n: n + 1)
394class Phq9Factory(TaskHasPatientFactory):
395 class Meta:
396 model = Phq9
398 id = factory.Sequence(lambda n: n + 1)
401class Ace3Factory(TaskHasPatientFactory):
402 class Meta:
403 model = Ace3
405 id = factory.Sequence(lambda n: n + 1)
408class AimsFactory(TaskHasPatientFactory):
409 class Meta:
410 model = Aims
412 id = factory.Sequence(lambda n: n + 1)
415class AqFactory(TaskHasPatientFactory):
416 class Meta:
417 model = Aq
419 id = factory.Sequence(lambda n: n + 1)
422class AsdasFactory(TaskHasPatientFactory):
423 class Meta:
424 model = Asdas
426 id = factory.Sequence(lambda n: n + 1)
429class AuditFactory(TaskHasPatientFactory):
430 class Meta:
431 model = Audit
433 id = factory.Sequence(lambda n: n + 1)
436class AuditCFactory(TaskHasPatientFactory):
437 class Meta:
438 model = AuditC
440 id = factory.Sequence(lambda n: n + 1)
443class BadlsFactory(TaskHasPatientFactory):
444 class Meta:
445 model = Badls
447 id = factory.Sequence(lambda n: n + 1)
450class BasdaiFactory(TaskHasPatientFactory):
451 class Meta:
452 model = Basdai
454 id = factory.Sequence(lambda n: n + 1)
457class BdiFactory(TaskHasPatientFactory):
458 class Meta:
459 model = Bdi
461 id = factory.Sequence(lambda n: n + 1)
464class BprsFactory(TaskHasPatientFactory):
465 class Meta:
466 model = Bprs
468 id = factory.Sequence(lambda n: n + 1)
471class BprseFactory(TaskHasPatientFactory):
472 class Meta:
473 model = Bprse
475 id = factory.Sequence(lambda n: n + 1)
478class CageFactory(TaskHasPatientFactory):
479 class Meta:
480 model = Cage
482 id = factory.Sequence(lambda n: n + 1)
485class Cape42Factory(TaskHasPatientFactory):
486 class Meta:
487 model = Cape42
489 id = factory.Sequence(lambda n: n + 1)
492class CapsFactory(TaskHasPatientFactory):
493 class Meta:
494 model = Caps
496 id = factory.Sequence(lambda n: n + 1)
499class CardinalExpectationDetectionFactory(TaskHasPatientFactory):
500 class Meta:
501 model = CardinalExpectationDetection
503 id = factory.Sequence(lambda n: n + 1)
504 num_blocks = factory.LazyFunction(Fake.en_gb.pyint)
506 @factory.post_generation
507 def trials(
508 obj: "Resolver", create: bool, num_trials: int, **kwargs: Any
509 ) -> None:
510 if not create:
511 return
513 if num_trials:
514 ExpDetTrialFactory.create_batch(
515 size=num_trials,
516 cardinal_expdet_id=obj.id,
517 _device=obj._device,
518 )
520 @factory.post_generation
521 def groupspecs(
522 obj: "Resolver", create: bool, num_groupspecs: int, **kwargs: Any
523 ) -> None:
524 if not create:
525 return
527 if num_groupspecs:
528 ExpDetTrialGroupSpecFactory.create_batch(
529 size=num_groupspecs,
530 cardinal_expdet_id=obj.id,
531 _device=obj._device,
532 )
535class ExpDetTrialFactory(GenericTabletRecordFactory):
536 class Meta:
537 model = ExpDetTrial
539 id = factory.Sequence(lambda n: n + 1)
540 trial = factory.Sequence(lambda n: n + 1)
543class ExpDetTrialGroupSpecFactory(GenericTabletRecordFactory):
544 class Meta:
545 model = ExpDetTrialGroupSpec
547 id = factory.Sequence(lambda n: n + 1)
548 group_num = factory.Sequence(lambda n: n + 1)
551class CardinalExpDetThresholdFactory(TaskHasPatientFactory):
552 class Meta:
553 model = CardinalExpDetThreshold
555 id = factory.Sequence(lambda n: n + 1)
558class CbiRFactory(TaskHasPatientFactory):
559 class Meta:
560 model = CbiR
562 id = factory.Sequence(lambda n: n + 1)
565class CecaQ3Factory(TaskHasPatientFactory):
566 class Meta:
567 model = CecaQ3
569 id = factory.Sequence(lambda n: n + 1)
572class CesdFactory(TaskHasPatientFactory):
573 class Meta:
574 model = Cesd
576 id = factory.Sequence(lambda n: n + 1)
579class CesdrFactory(TaskHasPatientFactory):
580 class Meta:
581 model = Cesdr
583 id = factory.Sequence(lambda n: n + 1)
586class CetFactory(TaskHasPatientFactory):
587 class Meta:
588 model = Cet
590 id = factory.Sequence(lambda n: n + 1)
593class CgiFactory(TaskHasPatientFactory):
594 class Meta:
595 model = Cgi
597 id = factory.Sequence(lambda n: n + 1)
600class CgiIFactory(TaskHasPatientFactory):
601 class Meta:
602 model = CgiI
604 id = factory.Sequence(lambda n: n + 1)
607class CgiSchFactory(TaskHasPatientFactory):
608 class Meta:
609 model = CgiSch
611 id = factory.Sequence(lambda n: n + 1)
614class ChitFactory(TaskHasPatientFactory):
615 class Meta:
616 model = Chit
618 id = factory.Sequence(lambda n: n + 1)
621class CiaFactory(TaskHasPatientFactory):
622 class Meta:
623 model = Cia
625 id = factory.Sequence(lambda n: n + 1)
628class CisrFactory(TaskHasPatientFactory):
629 class Meta:
630 model = Cisr
632 id = factory.Sequence(lambda n: n + 1)
635class CiwaFactory(TaskHasPatientFactory):
636 class Meta:
637 model = Ciwa
639 id = factory.Sequence(lambda n: n + 1)
642class ContactLogFactory(TaskHasPatientFactory):
643 class Meta:
644 model = ContactLog
646 id = factory.Sequence(lambda n: n + 1)
649class CopeBriefFactory(TaskHasPatientFactory):
650 class Meta:
651 model = CopeBrief
653 id = factory.Sequence(lambda n: n + 1)
656class CpftCovidMedicalFactory(TaskHasPatientFactory):
657 class Meta:
658 model = CpftCovidMedical
660 id = factory.Sequence(lambda n: n + 1)
663class CPFTLPSDischargeFactory(TaskHasPatientFactory):
664 class Meta:
665 model = CPFTLPSDischarge
667 id = factory.Sequence(lambda n: n + 1)
670class CPFTLPSReferralFactory(TaskHasPatientFactory):
671 class Meta:
672 model = CPFTLPSReferral
674 id = factory.Sequence(lambda n: n + 1)
677class CPFTLPSResetResponseClockFactory(TaskHasPatientFactory):
678 class Meta:
679 model = CPFTLPSResetResponseClock
681 id = factory.Sequence(lambda n: n + 1)
684class CpftResearchPreferencesFactory(TaskHasPatientFactory):
685 class Meta:
686 model = CpftResearchPreferences
688 id = factory.Sequence(lambda n: n + 1)
691class DadFactory(TaskHasPatientFactory):
692 class Meta:
693 model = Dad
695 id = factory.Sequence(lambda n: n + 1)
698class Das28Factory(TaskHasPatientFactory):
699 class Meta:
700 model = Das28
702 id = factory.Sequence(lambda n: n + 1)
705class DastFactory(TaskHasPatientFactory):
706 class Meta:
707 model = Dast
709 id = factory.Sequence(lambda n: n + 1)
712class DeakinS1HealthReviewFactory(TaskHasPatientFactory):
713 class Meta:
714 model = DeakinS1HealthReview
716 id = factory.Sequence(lambda n: n + 1)
719class DemoQuestionnaireFactory(TaskFactory):
720 class Meta:
721 model = DemoQuestionnaire
723 id = factory.Sequence(lambda n: n + 1)
726class DemqolFactory(TaskHasPatientFactory):
727 class Meta:
728 model = Demqol
730 id = factory.Sequence(lambda n: n + 1)
733class DemqolProxyFactory(TaskHasPatientFactory):
734 class Meta:
735 model = DemqolProxy
737 id = factory.Sequence(lambda n: n + 1)
740class DistressThermometerFactory(TaskHasPatientFactory):
741 class Meta:
742 model = DistressThermometer
744 id = factory.Sequence(lambda n: n + 1)
747class EdeqFactory(TaskHasPatientFactory):
748 class Meta:
749 model = Edeq
751 id = factory.Sequence(lambda n: n + 1)
754class ElixhauserCIFactory(TaskHasPatientFactory):
755 class Meta:
756 model = ElixhauserCI
758 id = factory.Sequence(lambda n: n + 1)
761class EmpsaFactory(TaskHasPatientFactory):
762 class Meta:
763 model = Empsa
765 id = factory.Sequence(lambda n: n + 1)
768class EpdsFactory(TaskHasPatientFactory):
769 class Meta:
770 model = Epds
772 id = factory.Sequence(lambda n: n + 1)
775class Eq5d5lFactory(TaskHasPatientFactory):
776 class Meta:
777 model = Eq5d5l
779 id = factory.Sequence(lambda n: n + 1)
782class EsspriFactory(TaskHasPatientFactory):
783 class Meta:
784 model = Esspri
786 id = factory.Sequence(lambda n: n + 1)
789class FactgFactory(TaskHasPatientFactory):
790 class Meta:
791 model = Factg
793 id = factory.Sequence(lambda n: n + 1)
796class FastFactory(TaskHasPatientFactory):
797 class Meta:
798 model = Fast
800 id = factory.Sequence(lambda n: n + 1)
803class FftFactory(TaskHasPatientFactory):
804 class Meta:
805 model = Fft
807 id = factory.Sequence(lambda n: n + 1)
810class FrsFactory(TaskHasPatientFactory):
811 class Meta:
812 model = Frs
814 id = factory.Sequence(lambda n: n + 1)
817class GafFactory(TaskHasPatientFactory):
818 class Meta:
819 model = Gaf
821 id = factory.Sequence(lambda n: n + 1)
824class GbogpcFactory(TaskHasPatientFactory):
825 class Meta:
826 model = Gbogpc
828 id = factory.Sequence(lambda n: n + 1)
831class GbograsFactory(TaskHasPatientFactory):
832 class Meta:
833 model = Gbogras
835 id = factory.Sequence(lambda n: n + 1)
838class GbogresFactory(TaskHasPatientFactory):
839 class Meta:
840 model = Gbogres
842 id = factory.Sequence(lambda n: n + 1)
845class Gds15Factory(TaskHasPatientFactory):
846 class Meta:
847 model = Gds15
849 id = factory.Sequence(lambda n: n + 1)
852class GMCPQFactory(TaskFactory):
853 class Meta:
854 model = GMCPQ
856 id = factory.Sequence(lambda n: n + 1)
859class HadsFactory(TaskHasPatientFactory):
860 class Meta:
861 model = Hads
863 id = factory.Sequence(lambda n: n + 1)
866class HadsRespondentFactory(TaskHasPatientFactory):
867 class Meta:
868 model = HadsRespondent
870 id = factory.Sequence(lambda n: n + 1)
873class HamaFactory(TaskHasPatientFactory):
874 class Meta:
875 model = Hama
877 id = factory.Sequence(lambda n: n + 1)
880class HamdFactory(TaskHasPatientFactory):
881 class Meta:
882 model = Hamd
884 id = factory.Sequence(lambda n: n + 1)
887class Hamd7Factory(TaskHasPatientFactory):
888 class Meta:
889 model = Hamd7
891 id = factory.Sequence(lambda n: n + 1)
894class HonosFactory(TaskHasPatientFactory):
895 class Meta:
896 model = Honos
898 id = factory.Sequence(lambda n: n + 1)
901class Honos65Factory(TaskHasPatientFactory):
902 class Meta:
903 model = Honos65
905 id = factory.Sequence(lambda n: n + 1)
908class HonoscaFactory(TaskHasPatientFactory):
909 class Meta:
910 model = Honosca
912 id = factory.Sequence(lambda n: n + 1)
915class Icd10DepressiveFactory(TaskHasPatientFactory):
916 class Meta:
917 model = Icd10Depressive
919 id = factory.Sequence(lambda n: n + 1)
922class Icd10ManicFactory(TaskHasPatientFactory):
923 class Meta:
924 model = Icd10Manic
926 id = factory.Sequence(lambda n: n + 1)
929class Icd10MixedFactory(TaskHasPatientFactory):
930 class Meta:
931 model = Icd10Mixed
933 id = factory.Sequence(lambda n: n + 1)
936class Icd10SchizophreniaFactory(TaskHasPatientFactory):
937 class Meta:
938 model = Icd10Schizophrenia
940 id = factory.Sequence(lambda n: n + 1)
943class Icd10SchizotypalFactory(TaskHasPatientFactory):
944 class Meta:
945 model = Icd10Schizotypal
947 id = factory.Sequence(lambda n: n + 1)
950class Icd10SpecPDFactory(TaskHasPatientFactory):
951 class Meta:
952 model = Icd10SpecPD
954 id = factory.Sequence(lambda n: n + 1)
957class IDED3DFactory(TaskHasPatientFactory):
958 class Meta:
959 model = IDED3D
961 id = factory.Sequence(lambda n: n + 1)
964class IesrFactory(TaskHasPatientFactory):
965 class Meta:
966 model = Iesr
968 id = factory.Sequence(lambda n: n + 1)
971class IfsFactory(TaskHasPatientFactory):
972 class Meta:
973 model = Ifs
975 id = factory.Sequence(lambda n: n + 1)
978class IracFactory(TaskHasPatientFactory):
979 class Meta:
980 model = Irac
982 id = factory.Sequence(lambda n: n + 1)
985class Isaaq10Factory(TaskHasPatientFactory):
986 class Meta:
987 model = Isaaq10
989 id = factory.Sequence(lambda n: n + 1)
992class IsaaqEdFactory(TaskHasPatientFactory):
993 class Meta:
994 model = IsaaqEd
996 id = factory.Sequence(lambda n: n + 1)
999class KhandakerInsightMedicalFactory(TaskHasPatientFactory):
1000 class Meta:
1001 model = KhandakerInsightMedical
1003 id = factory.Sequence(lambda n: n + 1)
1006class KhandakerMojoMedicalFactory(TaskHasPatientFactory):
1007 class Meta:
1008 model = KhandakerMojoMedical
1010 id = factory.Sequence(lambda n: n + 1)
1013class KhandakerMojoSociodemographicsFactory(TaskHasPatientFactory):
1014 class Meta:
1015 model = KhandakerMojoSociodemographics
1017 id = factory.Sequence(lambda n: n + 1)
1020class KirbyFactory(TaskHasPatientFactory):
1021 class Meta:
1022 model = Kirby
1024 id = factory.Sequence(lambda n: n + 1)
1027class LynallIamMedicalHistoryFactory(TaskHasPatientFactory):
1028 class Meta:
1029 model = LynallIamMedicalHistory
1031 id = factory.Sequence(lambda n: n + 1)
1034class LynallIamLifeEventsFactory(TaskHasPatientFactory):
1035 class Meta:
1036 model = LynallIamLifeEvents
1038 id = factory.Sequence(lambda n: n + 1)
1041class MastFactory(TaskHasPatientFactory):
1042 class Meta:
1043 model = Mast
1045 id = factory.Sequence(lambda n: n + 1)
1048class MdsUpdrsFactory(TaskHasPatientFactory):
1049 class Meta:
1050 model = MdsUpdrs
1052 id = factory.Sequence(lambda n: n + 1)
1055class Mfi20Factory(TaskHasPatientFactory):
1056 class Meta:
1057 model = Mfi20
1059 id = factory.Sequence(lambda n: n + 1)
1062class MiniAceFactory(TaskHasPatientFactory):
1063 class Meta:
1064 model = MiniAce
1066 id = factory.Sequence(lambda n: n + 1)
1069class MocaFactory(TaskHasPatientFactory):
1070 class Meta:
1071 model = Moca
1073 id = factory.Sequence(lambda n: n + 1)
1076class NartFactory(TaskHasPatientFactory):
1077 class Meta:
1078 model = Nart
1080 id = factory.Sequence(lambda n: n + 1)
1083class NpiQFactory(TaskHasPatientFactory):
1084 class Meta:
1085 model = NpiQ
1087 id = factory.Sequence(lambda n: n + 1)
1090class OrsFactory(TaskHasPatientFactory):
1091 class Meta:
1092 model = Ors
1094 id = factory.Sequence(lambda n: n + 1)
1097class PanssFactory(TaskHasPatientFactory):
1098 class Meta:
1099 model = Panss
1101 id = factory.Sequence(lambda n: n + 1)
1104class Paradise24Factory(TaskHasPatientFactory):
1105 class Meta:
1106 model = Paradise24
1108 id = factory.Sequence(lambda n: n + 1)
1111class PbqFactory(TaskHasPatientFactory):
1112 class Meta:
1113 model = Pbq
1115 id = factory.Sequence(lambda n: n + 1)
1118class Pcl5Factory(TaskHasPatientFactory):
1119 class Meta:
1120 model = Pcl5
1122 id = factory.Sequence(lambda n: n + 1)
1125class PclCFactory(TaskHasPatientFactory):
1126 class Meta:
1127 model = PclC
1129 id = factory.Sequence(lambda n: n + 1)
1132class PclMFactory(TaskHasPatientFactory):
1133 class Meta:
1134 model = PclM
1136 id = factory.Sequence(lambda n: n + 1)
1139class PclSFactory(TaskHasPatientFactory):
1140 class Meta:
1141 model = PclS
1143 id = factory.Sequence(lambda n: n + 1)
1146class PdssFactory(TaskHasPatientFactory):
1147 class Meta:
1148 model = Pdss
1150 id = factory.Sequence(lambda n: n + 1)
1153class PhotoFactory(TaskHasPatientFactory):
1154 class Meta:
1155 model = Photo
1157 id = factory.Sequence(lambda n: n + 1)
1159 @factory.post_generation
1160 def create_blob(
1161 obj: "Resolver", create: bool, extracted: None, **kwargs: Any
1162 ) -> None:
1163 if not create:
1164 return
1166 if "fieldname" not in kwargs:
1167 kwargs["fieldname"] = "photo_blobid"
1169 if "tablename" not in kwargs:
1170 kwargs["tablename"] = "photo"
1172 if "tablepk" not in kwargs:
1173 kwargs["tablepk"] = obj.id
1175 obj.photo = BlobFactory.create(**kwargs)
1178class PhotoSequenceFactory(TaskHasPatientFactory):
1179 class Meta:
1180 model = PhotoSequence
1182 id = factory.Sequence(lambda n: n + 1)
1184 @factory.post_generation
1185 def photos(
1186 obj: "Resolver", create: bool, num_photos: int, **kwargs: Any
1187 ) -> None:
1188 if not create:
1189 return
1191 if num_photos:
1192 PhotoSequenceSinglePhotoFactory.create_batch(
1193 size=num_photos,
1194 photosequence_id=obj.id,
1195 _device=obj._device,
1196 photo__patient=obj.patient,
1197 )
1200class PhotoSequenceSinglePhotoFactory(GenericTabletRecordFactory):
1201 class Meta:
1202 model = PhotoSequenceSinglePhoto
1204 id = factory.Sequence(lambda n: n + 1)
1205 seqnum = factory.Sequence(lambda n: n + 1)
1207 @factory.post_generation
1208 def photo(
1209 obj: "Resolver", create: bool, num_photos: int, **kwargs: Any
1210 ) -> None:
1211 if not create:
1212 return
1214 patient = kwargs["patient"]
1215 obj.photo = PhotoFactory(patient=patient)
1218class Phq15Factory(TaskHasPatientFactory):
1219 class Meta:
1220 model = Phq15
1222 id = factory.Sequence(lambda n: n + 1)
1225class Phq8Factory(TaskHasPatientFactory):
1226 class Meta:
1227 model = Phq8
1229 id = factory.Sequence(lambda n: n + 1)
1232class ProgressNoteFactory(TaskHasPatientFactory):
1233 class Meta:
1234 model = ProgressNote
1236 id = factory.Sequence(lambda n: n + 1)
1239class PswqFactory(TaskHasPatientFactory):
1240 class Meta:
1241 model = Pswq
1243 id = factory.Sequence(lambda n: n + 1)
1246class PsychiatricClerkingFactory(TaskHasPatientFactory):
1247 class Meta:
1248 model = PsychiatricClerking
1250 id = factory.Sequence(lambda n: n + 1)
1253class PatientSatisfactionFactory(TaskHasPatientFactory):
1254 class Meta:
1255 model = PatientSatisfaction
1257 id = factory.Sequence(lambda n: n + 1)
1260class QolBasicFactory(TaskHasPatientFactory):
1261 class Meta:
1262 model = QolBasic
1264 id = factory.Sequence(lambda n: n + 1)
1267class QolSGFactory(TaskHasPatientFactory):
1268 class Meta:
1269 model = QolSG
1271 id = factory.Sequence(lambda n: n + 1)
1274class Rand36Factory(TaskHasPatientFactory):
1275 class Meta:
1276 model = Rand36
1278 id = factory.Sequence(lambda n: n + 1)
1281class Rapid3Factory(TaskHasPatientFactory):
1282 class Meta:
1283 model = Rapid3
1285 id = factory.Sequence(lambda n: n + 1)
1288class ReferrerSatisfactionGenFactory(TaskFactory):
1289 class Meta:
1290 model = ReferrerSatisfactionGen
1292 id = factory.Sequence(lambda n: n + 1)
1295class ReferrerSatisfactionSpecFactory(TaskHasPatientFactory):
1296 class Meta:
1297 model = ReferrerSatisfactionSpec
1299 id = factory.Sequence(lambda n: n + 1)
1302class Sfmpq2Factory(TaskHasPatientFactory):
1303 class Meta:
1304 model = Sfmpq2
1306 id = factory.Sequence(lambda n: n + 1)
1309class ShapsFactory(TaskHasPatientFactory):
1310 class Meta:
1311 model = Shaps
1313 id = factory.Sequence(lambda n: n + 1)
1316class SlumsFactory(TaskHasPatientFactory):
1317 class Meta:
1318 model = Slums
1320 id = factory.Sequence(lambda n: n + 1)
1323class SmastFactory(TaskHasPatientFactory):
1324 class Meta:
1325 model = Smast
1327 id = factory.Sequence(lambda n: n + 1)
1330class SrsFactory(TaskHasPatientFactory):
1331 class Meta:
1332 model = Srs
1334 id = factory.Sequence(lambda n: n + 1)
1337class SuppspFactory(TaskHasPatientFactory):
1338 class Meta:
1339 model = Suppsp
1341 id = factory.Sequence(lambda n: n + 1)
1344class SwemwbsFactory(TaskHasPatientFactory):
1345 class Meta:
1346 model = Swemwbs
1348 id = factory.Sequence(lambda n: n + 1)
1351class WemwbsFactory(TaskHasPatientFactory):
1352 class Meta:
1353 model = Wemwbs
1355 id = factory.Sequence(lambda n: n + 1)
1358class WsasFactory(TaskHasPatientFactory):
1359 class Meta:
1360 model = Wsas
1362 id = factory.Sequence(lambda n: n + 1)
1365class YbocsFactory(TaskHasPatientFactory):
1366 class Meta:
1367 model = Ybocs
1369 id = factory.Sequence(lambda n: n + 1)
1372class YbocsScFactory(TaskHasPatientFactory):
1373 class Meta:
1374 model = YbocsSc
1376 id = factory.Sequence(lambda n: n + 1)
1379class Zbi12Factory(TaskHasPatientFactory):
1380 class Meta:
1381 model = Zbi12
1383 id = factory.Sequence(lambda n: n + 1)