Source code for camcops_server.tasks.tests.factories

"""
camcops_server/tasks/tests/factories.py

===============================================================================

    Copyright (C) 2012, University of Cambridge, Department of Psychiatry.
    Created by Rudolf Cardinal (rnc1001@cam.ac.uk).

    This file is part of CamCOPS.

    CamCOPS is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    CamCOPS is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with CamCOPS. If not, see <https://www.gnu.org/licenses/>.

===============================================================================

**Factory Boy SQL Alchemy test factories for tasks.**

"""

import factory
import pendulum
from typing import Any, cast, TYPE_CHECKING

from camcops_server.cc_modules.cc_task import Task
from camcops_server.cc_modules.cc_testfactories import (
    BlobFactory,
    Fake,
    GenericTabletRecordFactory,
)

from camcops_server.tasks.ace3 import Ace3, MiniAce
from camcops_server.tasks.aims import Aims
from camcops_server.tasks.apeqpt import Apeqpt
from camcops_server.tasks.apeq_cpft_perinatal import APEQCPFTPerinatal
from camcops_server.tasks.aq import Aq
from camcops_server.tasks.asdas import Asdas
from camcops_server.tasks.audit import Audit, AuditC
from camcops_server.tasks.badls import Badls
from camcops_server.tasks.basdai import Basdai
from camcops_server.tasks.bdi import Bdi
from camcops_server.tasks.bmi import Bmi
from camcops_server.tasks.bprs import Bprs
from camcops_server.tasks.bprse import Bprse
from camcops_server.tasks.cage import Cage
from camcops_server.tasks.cape42 import Cape42
from camcops_server.tasks.caps import Caps
from camcops_server.tasks.cardinal_expdetthreshold import (
    CardinalExpDetThreshold,
)
from camcops_server.tasks.cardinal_expectationdetection import (
    CardinalExpectationDetection,
    ExpDetTrial,
    ExpDetTrialGroupSpec,
)
from camcops_server.tasks.cbir import CbiR
from camcops_server.tasks.ceca import CecaQ3
from camcops_server.tasks.cesd import Cesd
from camcops_server.tasks.cesdr import Cesdr
from camcops_server.tasks.cet import Cet
from camcops_server.tasks.cgi_task import Cgi, CgiI
from camcops_server.tasks.cgisch import CgiSch
from camcops_server.tasks.chit import Chit
from camcops_server.tasks.cia import Cia
from camcops_server.tasks.cisr import Cisr
from camcops_server.tasks.ciwa import Ciwa
from camcops_server.tasks.contactlog import ContactLog
from camcops_server.tasks.cope import CopeBrief
from camcops_server.tasks.core10 import Core10
from camcops_server.tasks.cpft_covid_medical import CpftCovidMedical
from camcops_server.tasks.cpft_lps import (
    CPFTLPSDischarge,
    CPFTLPSReferral,
    CPFTLPSResetResponseClock,
)
from camcops_server.tasks.cpft_research_preferences import (
    CpftResearchPreferences,
)
from camcops_server.tasks.dad import Dad
from camcops_server.tasks.das28 import Das28
from camcops_server.tasks.dast import Dast
from camcops_server.tasks.deakin_s1_healthreview import DeakinS1HealthReview
from camcops_server.tasks.demoquestionnaire import DemoQuestionnaire
from camcops_server.tasks.demqol import Demqol, DemqolProxy
from camcops_server.tasks.diagnosis import (
    DiagnosisIcd10,
    DiagnosisIcd10Item,
    DiagnosisIcd9CM,
    DiagnosisIcd9CMItem,
)
from camcops_server.tasks.distressthermometer import DistressThermometer
from camcops_server.tasks.edeq import Edeq
from camcops_server.tasks.elixhauserci import ElixhauserCI
from camcops_server.tasks.epds import Epds
from camcops_server.tasks.empsa import Empsa
from camcops_server.tasks.eq5d5l import Eq5d5l
from camcops_server.tasks.esspri import Esspri
from camcops_server.tasks.factg import Factg
from camcops_server.tasks.fast import Fast
from camcops_server.tasks.fft import Fft
from camcops_server.tasks.frs import Frs
from camcops_server.tasks.gad7 import Gad7
from camcops_server.tasks.gaf import Gaf
from camcops_server.tasks.gbo import Gbogpc, Gbogras, Gbogres
from camcops_server.tasks.gds import Gds15
from camcops_server.tasks.gmcpq import GMCPQ
from camcops_server.tasks.hads import Hads, HadsRespondent
from camcops_server.tasks.hama import Hama
from camcops_server.tasks.hamd import Hamd
from camcops_server.tasks.hamd7 import Hamd7
from camcops_server.tasks.honos import Honos, Honos65, Honosca
from camcops_server.tasks.icd10depressive import Icd10Depressive
from camcops_server.tasks.icd10manic import Icd10Manic
from camcops_server.tasks.icd10mixed import Icd10Mixed
from camcops_server.tasks.icd10schizophrenia import Icd10Schizophrenia
from camcops_server.tasks.icd10schizotypal import Icd10Schizotypal
from camcops_server.tasks.icd10specpd import Icd10SpecPD
from camcops_server.tasks.ided3d import IDED3D
from camcops_server.tasks.iesr import Iesr
from camcops_server.tasks.ifs import Ifs
from camcops_server.tasks.irac import Irac
from camcops_server.tasks.isaaq10 import Isaaq10
from camcops_server.tasks.isaaqed import IsaaqEd
from camcops_server.tasks.khandaker_insight_medical import (
    KhandakerInsightMedical,
)
from camcops_server.tasks.khandaker_mojo_medical import KhandakerMojoMedical
from camcops_server.tasks.khandaker_mojo_sociodemographics import (
    KhandakerMojoSociodemographics,
)
from camcops_server.tasks.khandaker_mojo_medicationtherapy import (
    KhandakerMojoMedicationTherapy,
)
from camcops_server.tasks.kirby_mcq import Kirby
from camcops_server.tasks.lynall_iam_life import LynallIamLifeEvents
from camcops_server.tasks.lynall_iam_medical import LynallIamMedicalHistory
from camcops_server.tasks.maas import Maas
from camcops_server.tasks.mast import Mast
from camcops_server.tasks.mds_updrs import MdsUpdrs
from camcops_server.tasks.mfi20 import Mfi20
from camcops_server.tasks.moca import Moca
from camcops_server.tasks.nart import Nart
from camcops_server.tasks.npiq import NpiQ
from camcops_server.tasks.ors import Ors
from camcops_server.tasks.panss import Panss
from camcops_server.tasks.paradise24 import Paradise24
from camcops_server.tasks.pbq import Pbq
from camcops_server.tasks.pcl5 import Pcl5
from camcops_server.tasks.pcl import PclC, PclM, PclS
from camcops_server.tasks.pdss import Pdss
from camcops_server.tasks.perinatalpoem import PerinatalPoem
from camcops_server.tasks.photo import (
    Photo,
    PhotoSequence,
    PhotoSequenceSinglePhoto,
)
from camcops_server.tasks.phq15 import Phq15
from camcops_server.tasks.phq8 import Phq8
from camcops_server.tasks.phq9 import Phq9
from camcops_server.tasks.progressnote import ProgressNote
from camcops_server.tasks.pswq import Pswq
from camcops_server.tasks.psychiatricclerking import PsychiatricClerking
from camcops_server.tasks.qolbasic import QolBasic
from camcops_server.tasks.qolsg import QolSG
from camcops_server.tasks.rand36 import Rand36
from camcops_server.tasks.rapid3 import Rapid3
from camcops_server.tasks.service_satisfaction import (
    PatientSatisfaction,
    ReferrerSatisfactionGen,
    ReferrerSatisfactionSpec,
)
from camcops_server.tasks.sfmpq2 import Sfmpq2
from camcops_server.tasks.shaps import Shaps
from camcops_server.tasks.slums import Slums
from camcops_server.tasks.smast import Smast
from camcops_server.tasks.srs import Srs
from camcops_server.tasks.suppsp import Suppsp
from camcops_server.tasks.wemwbs import Swemwbs, Wemwbs
from camcops_server.tasks.wsas import Wsas
from camcops_server.tasks.ybocs import Ybocs, YbocsSc
from camcops_server.tasks.zbi import Zbi12

if TYPE_CHECKING:
    from factory.builder import Resolver


[docs]class TaskFactory(GenericTabletRecordFactory): class Meta: abstract = True @factory.lazy_attribute def when_created(self) -> pendulum.DateTime: datetime = cast( pendulum.DateTime, pendulum.parse(self.default_iso_datetime) ) return datetime
[docs]class TaskHasPatientFactory(TaskFactory): class Meta: abstract = True patient_id = None @classmethod def create(cls, *args: Any, **kwargs: Any) -> Task: patient = kwargs.pop("patient", None) if patient is not None: if "patient_id" in kwargs: raise TypeError( "Both 'patient' and 'patient_id' keyword arguments " "unexpectedly passed to a task factory. Use one or the " "other." ) kwargs["patient_id"] = patient.id if "_device" not in kwargs: kwargs["_device"] = patient._device if "_era" not in kwargs: kwargs["_era"] = patient._era if "_group" not in kwargs: kwargs["_group"] = patient._group if "_current" not in kwargs: kwargs["_current"] = True return super().create(*args, **kwargs)
[docs]class APEQCPFTPerinatalFactory(TaskFactory): class Meta: model = APEQCPFTPerinatal id = factory.Sequence(lambda n: n + 1)
[docs]class ApeqptFactory(TaskFactory): class Meta: model = Apeqpt id = factory.Sequence(lambda n: n + 1)
[docs]class BmiFactory(TaskHasPatientFactory): class Meta: model = Bmi id = factory.Sequence(lambda n: n + 1) height_m = factory.LazyFunction(Fake.en_gb.height_m) mass_kg = factory.LazyFunction(Fake.en_gb.mass_kg) waist_cm = factory.LazyFunction(Fake.en_gb.waist_cm)
[docs]class Core10Factory(TaskHasPatientFactory): class Meta: model = Core10 id = factory.Sequence(lambda n: n + 1) q1 = 0 q2 = 0 q3 = 0 q4 = 0 q5 = 0 q6 = 0 q7 = 0 q8 = 0 q9 = 0 q10 = 0
[docs]class DiagnosisIcd10Factory(TaskHasPatientFactory): class Meta: model = DiagnosisIcd10 id = factory.Sequence(lambda n: n + 1)
[docs]class DiagnosisItemFactory(GenericTabletRecordFactory): class Meta: abstract = True
[docs]class DiagnosisIcd10ItemFactory(DiagnosisItemFactory): class Meta: model = DiagnosisIcd10Item id = factory.Sequence(lambda n: n + 1) seqnum = factory.Sequence(lambda n: n + 1) @classmethod def create(cls, *args: Any, **kwargs: Any) -> DiagnosisIcd10Item: diagnosis_icd10 = kwargs.pop("diagnosis_icd10", None) if diagnosis_icd10 is not None: if "diagnosis_icd10_id" in kwargs: raise TypeError( "Both 'diagnosis_icd10' and 'diagnosis_icd10_id' keyword " "arguments unexpectedly passed to a task factory. Use one " "or the other." ) kwargs["diagnosis_icd10_id"] = diagnosis_icd10.id if "_device" not in kwargs: kwargs["_device"] = diagnosis_icd10._device if "_era" not in kwargs: kwargs["_era"] = diagnosis_icd10._era if "_current" not in kwargs: kwargs["_current"] = True return super().create(*args, **kwargs)
[docs]class DiagnosisIcd9CMFactory(TaskHasPatientFactory): class Meta: model = DiagnosisIcd9CM id = factory.Sequence(lambda n: n + 1)
[docs]class DiagnosisIcd9CMItemFactory(DiagnosisItemFactory): class Meta: model = DiagnosisIcd9CMItem id = factory.Sequence(lambda n: n + 1) seqnum = factory.Sequence(lambda n: n + 1) @classmethod def create(cls, *args: Any, **kwargs: Any) -> DiagnosisIcd9CMItem: diagnosis_icd9cm = kwargs.pop("diagnosis_icd9cm", None) if diagnosis_icd9cm is not None: if "diagnosis_icd9cm_id" in kwargs: raise TypeError( "Both 'diagnosis_icd9cm' and 'diagnosis_icd9cm_id' " "keyword arguments unexpectedly passed to a task factory. " "Use one or the other." ) kwargs["diagnosis_icd9cm_id"] = diagnosis_icd9cm.id if "_device" not in kwargs: kwargs["_device"] = diagnosis_icd9cm._device if "_era" not in kwargs: kwargs["_era"] = diagnosis_icd9cm._era if "_current" not in kwargs: kwargs["_current"] = True return super().create(*args, **kwargs)
[docs]class Gad7Factory(TaskHasPatientFactory): class Meta: model = Gad7 id = factory.Sequence(lambda n: n + 1)
[docs]class KhandakerMojoMedicationTherapyFactory(TaskHasPatientFactory): class Meta: model = KhandakerMojoMedicationTherapy id = factory.Sequence(lambda n: n + 1)
[docs]class MaasFactory(TaskHasPatientFactory): class Meta: model = Maas id = factory.Sequence(lambda n: n + 1)
[docs]class PerinatalPoemFactory(TaskFactory): class Meta: model = PerinatalPoem id = factory.Sequence(lambda n: n + 1)
[docs]class Phq9Factory(TaskHasPatientFactory): class Meta: model = Phq9 id = factory.Sequence(lambda n: n + 1)
[docs]class Ace3Factory(TaskHasPatientFactory): class Meta: model = Ace3 id = factory.Sequence(lambda n: n + 1)
[docs]class AimsFactory(TaskHasPatientFactory): class Meta: model = Aims id = factory.Sequence(lambda n: n + 1)
[docs]class AqFactory(TaskHasPatientFactory): class Meta: model = Aq id = factory.Sequence(lambda n: n + 1)
[docs]class AsdasFactory(TaskHasPatientFactory): class Meta: model = Asdas id = factory.Sequence(lambda n: n + 1)
[docs]class AuditFactory(TaskHasPatientFactory): class Meta: model = Audit id = factory.Sequence(lambda n: n + 1)
[docs]class AuditCFactory(TaskHasPatientFactory): class Meta: model = AuditC id = factory.Sequence(lambda n: n + 1)
[docs]class BadlsFactory(TaskHasPatientFactory): class Meta: model = Badls id = factory.Sequence(lambda n: n + 1)
[docs]class BasdaiFactory(TaskHasPatientFactory): class Meta: model = Basdai id = factory.Sequence(lambda n: n + 1)
[docs]class BdiFactory(TaskHasPatientFactory): class Meta: model = Bdi id = factory.Sequence(lambda n: n + 1)
[docs]class BprsFactory(TaskHasPatientFactory): class Meta: model = Bprs id = factory.Sequence(lambda n: n + 1)
[docs]class BprseFactory(TaskHasPatientFactory): class Meta: model = Bprse id = factory.Sequence(lambda n: n + 1)
[docs]class CageFactory(TaskHasPatientFactory): class Meta: model = Cage id = factory.Sequence(lambda n: n + 1)
[docs]class Cape42Factory(TaskHasPatientFactory): class Meta: model = Cape42 id = factory.Sequence(lambda n: n + 1)
[docs]class CapsFactory(TaskHasPatientFactory): class Meta: model = Caps id = factory.Sequence(lambda n: n + 1)
[docs]class CardinalExpectationDetectionFactory(TaskHasPatientFactory): class Meta: model = CardinalExpectationDetection id = factory.Sequence(lambda n: n + 1) num_blocks = factory.LazyFunction(Fake.en_gb.pyint) @factory.post_generation def trials( obj: "Resolver", create: bool, num_trials: int, **kwargs: Any ) -> None: if not create: return if num_trials: ExpDetTrialFactory.create_batch( size=num_trials, cardinal_expdet_id=obj.id, _device=obj._device, ) @factory.post_generation def groupspecs( obj: "Resolver", create: bool, num_groupspecs: int, **kwargs: Any ) -> None: if not create: return if num_groupspecs: ExpDetTrialGroupSpecFactory.create_batch( size=num_groupspecs, cardinal_expdet_id=obj.id, _device=obj._device, )
[docs]class ExpDetTrialFactory(GenericTabletRecordFactory): class Meta: model = ExpDetTrial id = factory.Sequence(lambda n: n + 1) trial = factory.Sequence(lambda n: n + 1)
[docs]class ExpDetTrialGroupSpecFactory(GenericTabletRecordFactory): class Meta: model = ExpDetTrialGroupSpec id = factory.Sequence(lambda n: n + 1) group_num = factory.Sequence(lambda n: n + 1)
[docs]class CardinalExpDetThresholdFactory(TaskHasPatientFactory): class Meta: model = CardinalExpDetThreshold id = factory.Sequence(lambda n: n + 1)
[docs]class CbiRFactory(TaskHasPatientFactory): class Meta: model = CbiR id = factory.Sequence(lambda n: n + 1)
[docs]class CecaQ3Factory(TaskHasPatientFactory): class Meta: model = CecaQ3 id = factory.Sequence(lambda n: n + 1)
[docs]class CesdFactory(TaskHasPatientFactory): class Meta: model = Cesd id = factory.Sequence(lambda n: n + 1)
[docs]class CesdrFactory(TaskHasPatientFactory): class Meta: model = Cesdr id = factory.Sequence(lambda n: n + 1)
[docs]class CetFactory(TaskHasPatientFactory): class Meta: model = Cet id = factory.Sequence(lambda n: n + 1)
[docs]class CgiFactory(TaskHasPatientFactory): class Meta: model = Cgi id = factory.Sequence(lambda n: n + 1)
[docs]class CgiIFactory(TaskHasPatientFactory): class Meta: model = CgiI id = factory.Sequence(lambda n: n + 1)
[docs]class CgiSchFactory(TaskHasPatientFactory): class Meta: model = CgiSch id = factory.Sequence(lambda n: n + 1)
[docs]class ChitFactory(TaskHasPatientFactory): class Meta: model = Chit id = factory.Sequence(lambda n: n + 1)
[docs]class CiaFactory(TaskHasPatientFactory): class Meta: model = Cia id = factory.Sequence(lambda n: n + 1)
[docs]class CisrFactory(TaskHasPatientFactory): class Meta: model = Cisr id = factory.Sequence(lambda n: n + 1)
[docs]class CiwaFactory(TaskHasPatientFactory): class Meta: model = Ciwa id = factory.Sequence(lambda n: n + 1)
[docs]class ContactLogFactory(TaskHasPatientFactory): class Meta: model = ContactLog id = factory.Sequence(lambda n: n + 1)
[docs]class CopeBriefFactory(TaskHasPatientFactory): class Meta: model = CopeBrief id = factory.Sequence(lambda n: n + 1)
[docs]class CpftCovidMedicalFactory(TaskHasPatientFactory): class Meta: model = CpftCovidMedical id = factory.Sequence(lambda n: n + 1)
[docs]class CPFTLPSDischargeFactory(TaskHasPatientFactory): class Meta: model = CPFTLPSDischarge id = factory.Sequence(lambda n: n + 1)
[docs]class CPFTLPSReferralFactory(TaskHasPatientFactory): class Meta: model = CPFTLPSReferral id = factory.Sequence(lambda n: n + 1)
[docs]class CPFTLPSResetResponseClockFactory(TaskHasPatientFactory): class Meta: model = CPFTLPSResetResponseClock id = factory.Sequence(lambda n: n + 1)
[docs]class CpftResearchPreferencesFactory(TaskHasPatientFactory): class Meta: model = CpftResearchPreferences id = factory.Sequence(lambda n: n + 1)
[docs]class DadFactory(TaskHasPatientFactory): class Meta: model = Dad id = factory.Sequence(lambda n: n + 1)
[docs]class Das28Factory(TaskHasPatientFactory): class Meta: model = Das28 id = factory.Sequence(lambda n: n + 1)
[docs]class DastFactory(TaskHasPatientFactory): class Meta: model = Dast id = factory.Sequence(lambda n: n + 1)
[docs]class DeakinS1HealthReviewFactory(TaskHasPatientFactory): class Meta: model = DeakinS1HealthReview id = factory.Sequence(lambda n: n + 1)
[docs]class DemoQuestionnaireFactory(TaskFactory): class Meta: model = DemoQuestionnaire id = factory.Sequence(lambda n: n + 1)
[docs]class DemqolFactory(TaskHasPatientFactory): class Meta: model = Demqol id = factory.Sequence(lambda n: n + 1)
[docs]class DemqolProxyFactory(TaskHasPatientFactory): class Meta: model = DemqolProxy id = factory.Sequence(lambda n: n + 1)
[docs]class DistressThermometerFactory(TaskHasPatientFactory): class Meta: model = DistressThermometer id = factory.Sequence(lambda n: n + 1)
[docs]class EdeqFactory(TaskHasPatientFactory): class Meta: model = Edeq id = factory.Sequence(lambda n: n + 1)
[docs]class ElixhauserCIFactory(TaskHasPatientFactory): class Meta: model = ElixhauserCI id = factory.Sequence(lambda n: n + 1)
[docs]class EmpsaFactory(TaskHasPatientFactory): class Meta: model = Empsa id = factory.Sequence(lambda n: n + 1)
[docs]class EpdsFactory(TaskHasPatientFactory): class Meta: model = Epds id = factory.Sequence(lambda n: n + 1)
[docs]class Eq5d5lFactory(TaskHasPatientFactory): class Meta: model = Eq5d5l id = factory.Sequence(lambda n: n + 1)
[docs]class EsspriFactory(TaskHasPatientFactory): class Meta: model = Esspri id = factory.Sequence(lambda n: n + 1)
[docs]class FactgFactory(TaskHasPatientFactory): class Meta: model = Factg id = factory.Sequence(lambda n: n + 1)
[docs]class FastFactory(TaskHasPatientFactory): class Meta: model = Fast id = factory.Sequence(lambda n: n + 1)
[docs]class FftFactory(TaskHasPatientFactory): class Meta: model = Fft id = factory.Sequence(lambda n: n + 1)
[docs]class FrsFactory(TaskHasPatientFactory): class Meta: model = Frs id = factory.Sequence(lambda n: n + 1)
[docs]class GafFactory(TaskHasPatientFactory): class Meta: model = Gaf id = factory.Sequence(lambda n: n + 1)
[docs]class GbogpcFactory(TaskHasPatientFactory): class Meta: model = Gbogpc id = factory.Sequence(lambda n: n + 1)
[docs]class GbograsFactory(TaskHasPatientFactory): class Meta: model = Gbogras id = factory.Sequence(lambda n: n + 1)
[docs]class GbogresFactory(TaskHasPatientFactory): class Meta: model = Gbogres id = factory.Sequence(lambda n: n + 1)
[docs]class Gds15Factory(TaskHasPatientFactory): class Meta: model = Gds15 id = factory.Sequence(lambda n: n + 1)
[docs]class GMCPQFactory(TaskFactory): class Meta: model = GMCPQ id = factory.Sequence(lambda n: n + 1)
[docs]class HadsFactory(TaskHasPatientFactory): class Meta: model = Hads id = factory.Sequence(lambda n: n + 1)
[docs]class HadsRespondentFactory(TaskHasPatientFactory): class Meta: model = HadsRespondent id = factory.Sequence(lambda n: n + 1)
[docs]class HamaFactory(TaskHasPatientFactory): class Meta: model = Hama id = factory.Sequence(lambda n: n + 1)
[docs]class HamdFactory(TaskHasPatientFactory): class Meta: model = Hamd id = factory.Sequence(lambda n: n + 1)
[docs]class Hamd7Factory(TaskHasPatientFactory): class Meta: model = Hamd7 id = factory.Sequence(lambda n: n + 1)
[docs]class HonosFactory(TaskHasPatientFactory): class Meta: model = Honos id = factory.Sequence(lambda n: n + 1)
[docs]class Honos65Factory(TaskHasPatientFactory): class Meta: model = Honos65 id = factory.Sequence(lambda n: n + 1)
[docs]class HonoscaFactory(TaskHasPatientFactory): class Meta: model = Honosca id = factory.Sequence(lambda n: n + 1)
[docs]class Icd10DepressiveFactory(TaskHasPatientFactory): class Meta: model = Icd10Depressive id = factory.Sequence(lambda n: n + 1)
[docs]class Icd10ManicFactory(TaskHasPatientFactory): class Meta: model = Icd10Manic id = factory.Sequence(lambda n: n + 1)
[docs]class Icd10MixedFactory(TaskHasPatientFactory): class Meta: model = Icd10Mixed id = factory.Sequence(lambda n: n + 1)
[docs]class Icd10SchizophreniaFactory(TaskHasPatientFactory): class Meta: model = Icd10Schizophrenia id = factory.Sequence(lambda n: n + 1)
[docs]class Icd10SchizotypalFactory(TaskHasPatientFactory): class Meta: model = Icd10Schizotypal id = factory.Sequence(lambda n: n + 1)
[docs]class Icd10SpecPDFactory(TaskHasPatientFactory): class Meta: model = Icd10SpecPD id = factory.Sequence(lambda n: n + 1)
[docs]class IDED3DFactory(TaskHasPatientFactory): class Meta: model = IDED3D id = factory.Sequence(lambda n: n + 1)
[docs]class IesrFactory(TaskHasPatientFactory): class Meta: model = Iesr id = factory.Sequence(lambda n: n + 1)
[docs]class IfsFactory(TaskHasPatientFactory): class Meta: model = Ifs id = factory.Sequence(lambda n: n + 1)
[docs]class IracFactory(TaskHasPatientFactory): class Meta: model = Irac id = factory.Sequence(lambda n: n + 1)
[docs]class Isaaq10Factory(TaskHasPatientFactory): class Meta: model = Isaaq10 id = factory.Sequence(lambda n: n + 1)
[docs]class IsaaqEdFactory(TaskHasPatientFactory): class Meta: model = IsaaqEd id = factory.Sequence(lambda n: n + 1)
[docs]class KhandakerInsightMedicalFactory(TaskHasPatientFactory): class Meta: model = KhandakerInsightMedical id = factory.Sequence(lambda n: n + 1)
[docs]class KhandakerMojoMedicalFactory(TaskHasPatientFactory): class Meta: model = KhandakerMojoMedical id = factory.Sequence(lambda n: n + 1)
[docs]class KhandakerMojoSociodemographicsFactory(TaskHasPatientFactory): class Meta: model = KhandakerMojoSociodemographics id = factory.Sequence(lambda n: n + 1)
[docs]class KirbyFactory(TaskHasPatientFactory): class Meta: model = Kirby id = factory.Sequence(lambda n: n + 1)
[docs]class LynallIamMedicalHistoryFactory(TaskHasPatientFactory): class Meta: model = LynallIamMedicalHistory id = factory.Sequence(lambda n: n + 1)
[docs]class LynallIamLifeEventsFactory(TaskHasPatientFactory): class Meta: model = LynallIamLifeEvents id = factory.Sequence(lambda n: n + 1)
[docs]class MastFactory(TaskHasPatientFactory): class Meta: model = Mast id = factory.Sequence(lambda n: n + 1)
[docs]class MdsUpdrsFactory(TaskHasPatientFactory): class Meta: model = MdsUpdrs id = factory.Sequence(lambda n: n + 1)
[docs]class Mfi20Factory(TaskHasPatientFactory): class Meta: model = Mfi20 id = factory.Sequence(lambda n: n + 1)
[docs]class MiniAceFactory(TaskHasPatientFactory): class Meta: model = MiniAce id = factory.Sequence(lambda n: n + 1)
[docs]class MocaFactory(TaskHasPatientFactory): class Meta: model = Moca id = factory.Sequence(lambda n: n + 1)
[docs]class NartFactory(TaskHasPatientFactory): class Meta: model = Nart id = factory.Sequence(lambda n: n + 1)
[docs]class NpiQFactory(TaskHasPatientFactory): class Meta: model = NpiQ id = factory.Sequence(lambda n: n + 1)
[docs]class OrsFactory(TaskHasPatientFactory): class Meta: model = Ors id = factory.Sequence(lambda n: n + 1)
[docs]class PanssFactory(TaskHasPatientFactory): class Meta: model = Panss id = factory.Sequence(lambda n: n + 1)
[docs]class Paradise24Factory(TaskHasPatientFactory): class Meta: model = Paradise24 id = factory.Sequence(lambda n: n + 1)
[docs]class PbqFactory(TaskHasPatientFactory): class Meta: model = Pbq id = factory.Sequence(lambda n: n + 1)
[docs]class Pcl5Factory(TaskHasPatientFactory): class Meta: model = Pcl5 id = factory.Sequence(lambda n: n + 1)
[docs]class PclCFactory(TaskHasPatientFactory): class Meta: model = PclC id = factory.Sequence(lambda n: n + 1)
[docs]class PclMFactory(TaskHasPatientFactory): class Meta: model = PclM id = factory.Sequence(lambda n: n + 1)
[docs]class PclSFactory(TaskHasPatientFactory): class Meta: model = PclS id = factory.Sequence(lambda n: n + 1)
[docs]class PdssFactory(TaskHasPatientFactory): class Meta: model = Pdss id = factory.Sequence(lambda n: n + 1)
[docs]class PhotoFactory(TaskHasPatientFactory): class Meta: model = Photo id = factory.Sequence(lambda n: n + 1) @factory.post_generation def create_blob( obj: "Resolver", create: bool, extracted: None, **kwargs: Any ) -> None: if not create: return if "fieldname" not in kwargs: kwargs["fieldname"] = "photo_blobid" if "tablename" not in kwargs: kwargs["tablename"] = "photo" if "tablepk" not in kwargs: kwargs["tablepk"] = obj.id obj.photo = BlobFactory.create(**kwargs)
[docs]class PhotoSequenceFactory(TaskHasPatientFactory): class Meta: model = PhotoSequence id = factory.Sequence(lambda n: n + 1) @factory.post_generation def photos( obj: "Resolver", create: bool, num_photos: int, **kwargs: Any ) -> None: if not create: return if num_photos: PhotoSequenceSinglePhotoFactory.create_batch( size=num_photos, photosequence_id=obj.id, _device=obj._device, photo__patient=obj.patient, )
[docs]class PhotoSequenceSinglePhotoFactory(GenericTabletRecordFactory): class Meta: model = PhotoSequenceSinglePhoto id = factory.Sequence(lambda n: n + 1) seqnum = factory.Sequence(lambda n: n + 1) @factory.post_generation def photo( obj: "Resolver", create: bool, num_photos: int, **kwargs: Any ) -> None: if not create: return patient = kwargs["patient"] obj.photo = PhotoFactory(patient=patient)
[docs]class Phq15Factory(TaskHasPatientFactory): class Meta: model = Phq15 id = factory.Sequence(lambda n: n + 1)
[docs]class Phq8Factory(TaskHasPatientFactory): class Meta: model = Phq8 id = factory.Sequence(lambda n: n + 1)
[docs]class ProgressNoteFactory(TaskHasPatientFactory): class Meta: model = ProgressNote id = factory.Sequence(lambda n: n + 1)
[docs]class PswqFactory(TaskHasPatientFactory): class Meta: model = Pswq id = factory.Sequence(lambda n: n + 1)
[docs]class PsychiatricClerkingFactory(TaskHasPatientFactory): class Meta: model = PsychiatricClerking id = factory.Sequence(lambda n: n + 1)
[docs]class PatientSatisfactionFactory(TaskHasPatientFactory): class Meta: model = PatientSatisfaction id = factory.Sequence(lambda n: n + 1)
[docs]class QolBasicFactory(TaskHasPatientFactory): class Meta: model = QolBasic id = factory.Sequence(lambda n: n + 1)
[docs]class QolSGFactory(TaskHasPatientFactory): class Meta: model = QolSG id = factory.Sequence(lambda n: n + 1)
[docs]class Rand36Factory(TaskHasPatientFactory): class Meta: model = Rand36 id = factory.Sequence(lambda n: n + 1)
[docs]class Rapid3Factory(TaskHasPatientFactory): class Meta: model = Rapid3 id = factory.Sequence(lambda n: n + 1)
[docs]class ReferrerSatisfactionGenFactory(TaskFactory): class Meta: model = ReferrerSatisfactionGen id = factory.Sequence(lambda n: n + 1)
[docs]class ReferrerSatisfactionSpecFactory(TaskHasPatientFactory): class Meta: model = ReferrerSatisfactionSpec id = factory.Sequence(lambda n: n + 1)
[docs]class Sfmpq2Factory(TaskHasPatientFactory): class Meta: model = Sfmpq2 id = factory.Sequence(lambda n: n + 1)
[docs]class ShapsFactory(TaskHasPatientFactory): class Meta: model = Shaps id = factory.Sequence(lambda n: n + 1)
[docs]class SlumsFactory(TaskHasPatientFactory): class Meta: model = Slums id = factory.Sequence(lambda n: n + 1)
[docs]class SmastFactory(TaskHasPatientFactory): class Meta: model = Smast id = factory.Sequence(lambda n: n + 1)
[docs]class SrsFactory(TaskHasPatientFactory): class Meta: model = Srs id = factory.Sequence(lambda n: n + 1)
[docs]class SuppspFactory(TaskHasPatientFactory): class Meta: model = Suppsp id = factory.Sequence(lambda n: n + 1)
[docs]class SwemwbsFactory(TaskHasPatientFactory): class Meta: model = Swemwbs id = factory.Sequence(lambda n: n + 1)
[docs]class WemwbsFactory(TaskHasPatientFactory): class Meta: model = Wemwbs id = factory.Sequence(lambda n: n + 1)
[docs]class WsasFactory(TaskHasPatientFactory): class Meta: model = Wsas id = factory.Sequence(lambda n: n + 1)
[docs]class YbocsFactory(TaskHasPatientFactory): class Meta: model = Ybocs id = factory.Sequence(lambda n: n + 1)
[docs]class YbocsScFactory(TaskHasPatientFactory): class Meta: model = YbocsSc id = factory.Sequence(lambda n: n + 1)
[docs]class Zbi12Factory(TaskHasPatientFactory): class Meta: model = Zbi12 id = factory.Sequence(lambda n: n + 1)