nci-cidc-api-modules 1.2.22__py3-none-any.whl → 1.2.24__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.
- cidc_api/models/db/stage2/__init__.py +78 -0
- cidc_api/models/db/stage2/additional_treatment_orm.py +22 -0
- cidc_api/models/db/stage2/administrative_person_orm.py +25 -0
- cidc_api/models/db/stage2/administrative_role_assignment_orm.py +28 -0
- cidc_api/models/db/stage2/adverse_event_orm.py +47 -0
- cidc_api/models/db/stage2/arm_orm.py +23 -0
- cidc_api/models/db/stage2/baseline_clinical_assessment_orm.py +23 -0
- cidc_api/models/db/stage2/cohort_orm.py +23 -0
- cidc_api/models/db/stage2/comorbidity_orm.py +24 -0
- cidc_api/models/db/stage2/consent_group_orm.py +31 -0
- cidc_api/models/db/stage2/contact_orm.py +32 -0
- cidc_api/models/db/stage2/demographic_orm.py +44 -0
- cidc_api/models/db/stage2/disease_orm.py +53 -0
- cidc_api/models/db/stage2/exposure_orm.py +21 -0
- cidc_api/models/db/stage2/file_orm.py +38 -0
- cidc_api/models/db/stage2/gvhd_diagnosis_acute_orm.py +33 -0
- cidc_api/models/db/stage2/gvhd_diagnosis_chronic_orm.py +37 -0
- cidc_api/models/db/stage2/gvhd_organ_acute_orm.py +20 -0
- cidc_api/models/db/stage2/gvhd_organ_chronic_orm.py +20 -0
- cidc_api/models/db/stage2/institution_orm.py +33 -0
- cidc_api/models/db/stage2/medical_history_orm.py +29 -0
- cidc_api/models/db/stage2/other_clinical_endpoint_orm.py +28 -0
- cidc_api/models/db/stage2/other_malignancy_orm.py +30 -0
- cidc_api/models/db/stage2/participant_orm.py +79 -0
- cidc_api/models/db/stage2/prior_treatment_orm.py +28 -0
- cidc_api/models/db/stage2/publication_orm.py +31 -0
- cidc_api/models/db/stage2/radiotherapy_dose_orm.py +39 -0
- cidc_api/models/db/stage2/response_by_system_orm.py +28 -0
- cidc_api/models/db/stage2/response_orm.py +27 -0
- cidc_api/models/db/stage2/shipment_orm.py +47 -0
- cidc_api/models/db/stage2/shipment_specimen_orm.py +24 -0
- cidc_api/models/db/stage2/specimen_orm.py +100 -0
- cidc_api/models/db/stage2/stem_cell_transplant_orm.py +25 -0
- cidc_api/models/db/stage2/surgery_orm.py +27 -0
- cidc_api/models/db/stage2/therapy_agent_dose_orm.py +31 -0
- cidc_api/models/db/stage2/treatment_orm.py +39 -0
- cidc_api/models/db/stage2/trial_orm.py +60 -0
- cidc_api/models/pydantic/stage2/__init__.py +78 -0
- cidc_api/models/pydantic/stage2/additional_treatment.py +23 -0
- cidc_api/models/pydantic/stage2/administrative_person.py +30 -0
- cidc_api/models/pydantic/stage2/administrative_role_assignment.py +16 -0
- cidc_api/models/pydantic/stage2/adverse_event.py +100 -0
- cidc_api/models/pydantic/stage2/arm.py +16 -0
- cidc_api/models/pydantic/stage2/base.py +30 -0
- cidc_api/models/pydantic/stage2/baseline_clinical_assessment.py +23 -0
- cidc_api/models/pydantic/stage2/cohort.py +16 -0
- cidc_api/models/pydantic/stage2/comorbidity.py +36 -0
- cidc_api/models/pydantic/stage2/consent_group.py +30 -0
- cidc_api/models/pydantic/stage2/contact.py +35 -0
- cidc_api/models/pydantic/stage2/demographic.py +114 -0
- cidc_api/models/pydantic/stage2/disease.py +144 -0
- cidc_api/models/pydantic/stage2/exposure.py +32 -0
- cidc_api/models/pydantic/stage2/file.py +44 -0
- cidc_api/models/pydantic/stage2/gvhd_diagnosis_acute.py +33 -0
- cidc_api/models/pydantic/stage2/gvhd_diagnosis_chronic.py +32 -0
- cidc_api/models/pydantic/stage2/gvhd_organ_acute.py +22 -0
- cidc_api/models/pydantic/stage2/gvhd_organ_chronic.py +23 -0
- cidc_api/models/pydantic/stage2/institution.py +10 -0
- cidc_api/models/pydantic/stage2/medical_history.py +36 -0
- cidc_api/models/pydantic/stage2/other_clinical_endpoint.py +32 -0
- cidc_api/models/pydantic/stage2/other_malignancy.py +45 -0
- cidc_api/models/pydantic/stage2/participant.py +47 -0
- cidc_api/models/pydantic/stage2/prior_treatment.py +52 -0
- cidc_api/models/pydantic/stage2/publication.py +37 -0
- cidc_api/models/pydantic/stage2/radiotherapy_dose.py +79 -0
- cidc_api/models/pydantic/stage2/response.py +71 -0
- cidc_api/models/pydantic/stage2/response_by_system.py +109 -0
- cidc_api/models/pydantic/stage2/shipment.py +48 -0
- cidc_api/models/pydantic/stage2/shipment_specimen.py +15 -0
- cidc_api/models/pydantic/stage2/specimen.py +211 -0
- cidc_api/models/pydantic/stage2/stem_cell_transplant.py +35 -0
- cidc_api/models/pydantic/stage2/surgery.py +49 -0
- cidc_api/models/pydantic/stage2/therapy_agent_dose.py +67 -0
- cidc_api/models/pydantic/stage2/treatment.py +50 -0
- cidc_api/models/pydantic/stage2/trial.py +85 -0
- {nci_cidc_api_modules-1.2.22.dist-info → nci_cidc_api_modules-1.2.24.dist-info}/METADATA +1 -1
- nci_cidc_api_modules-1.2.24.dist-info/RECORD +104 -0
- nci_cidc_api_modules-1.2.22.dist-info/RECORD +0 -29
- {nci_cidc_api_modules-1.2.22.dist-info → nci_cidc_api_modules-1.2.24.dist-info}/WHEEL +0 -0
- {nci_cidc_api_modules-1.2.22.dist-info → nci_cidc_api_modules-1.2.24.dist-info}/licenses/LICENSE +0 -0
- {nci_cidc_api_modules-1.2.22.dist-info → nci_cidc_api_modules-1.2.24.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
from .additional_treatment_orm import AdditionalTreatmentORM
|
|
2
|
+
from .administrative_person_orm import AdministrativePersonORM
|
|
3
|
+
from .administrative_role_assignment_orm import AdministrativeRoleAssignmentORM
|
|
4
|
+
from .adverse_event_orm import AdverseEventORM
|
|
5
|
+
from .arm_orm import ArmORM
|
|
6
|
+
from .baseline_clinical_assessment_orm import BaselineClinicalAssessmentORM
|
|
7
|
+
from .cohort_orm import CohortORM
|
|
8
|
+
from .comorbidity_orm import ComorbidityORM
|
|
9
|
+
from .consent_group_orm import ConsentGroupORM
|
|
10
|
+
from .contact_orm import ContactORM
|
|
11
|
+
from .demographic_orm import DemographicORM
|
|
12
|
+
from .disease_orm import DiseaseORM
|
|
13
|
+
from .exposure_orm import ExposureORM
|
|
14
|
+
from .file_orm import FileORM
|
|
15
|
+
from .gvhd_diagnosis_acute_orm import GVHDDiagnosisAcuteORM
|
|
16
|
+
from .gvhd_diagnosis_chronic_orm import GVHDDiagnosisChronicORM
|
|
17
|
+
from .gvhd_organ_acute_orm import GVHDOrganAcuteORM
|
|
18
|
+
from .gvhd_organ_chronic_orm import GVHDOrganChronicORM
|
|
19
|
+
from .institution_orm import InstitutionORM
|
|
20
|
+
from .medical_history_orm import MedicalHistoryORM
|
|
21
|
+
from .other_clinical_endpoint_orm import OtherClinicalEndpointORM
|
|
22
|
+
from .other_malignancy_orm import OtherMalignancyORM
|
|
23
|
+
from .participant_orm import ParticipantORM
|
|
24
|
+
from .prior_treatment_orm import PriorTreatmentORM
|
|
25
|
+
from .publication_orm import PublicationORM
|
|
26
|
+
from .radiotherapy_dose_orm import RadiotherapyDoseORM
|
|
27
|
+
from .response_by_system_orm import ResponseBySystemORM
|
|
28
|
+
from .response_orm import ResponseORM
|
|
29
|
+
from .shipment_orm import ShipmentORM
|
|
30
|
+
from .shipment_specimen_orm import ShipmentSpecimenORM
|
|
31
|
+
from .specimen_orm import SpecimenORM
|
|
32
|
+
from .stem_cell_transplant_orm import StemCellTransplantORM
|
|
33
|
+
from .surgery_orm import SurgeryORM
|
|
34
|
+
from .therapy_agent_dose_orm import TherapyAgentDoseORM
|
|
35
|
+
from .treatment_orm import TreatmentORM
|
|
36
|
+
from .trial_orm import TrialORM
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
__all__ = [
|
|
40
|
+
"AdditionalTreatmentORM",
|
|
41
|
+
"AdministrativePersonORM",
|
|
42
|
+
"AdministrativeRoleAssignmentORM",
|
|
43
|
+
"AdverseEventORM",
|
|
44
|
+
"ArmORM",
|
|
45
|
+
"BaselineClinicalAssessmentORM",
|
|
46
|
+
"CohortORM",
|
|
47
|
+
"ComorbidityORM",
|
|
48
|
+
"ConsentGroupORM",
|
|
49
|
+
"ContactORM",
|
|
50
|
+
"DemographicORM",
|
|
51
|
+
"DiseaseORM",
|
|
52
|
+
"ExposureORM",
|
|
53
|
+
"FileORM",
|
|
54
|
+
"GVHDDiagnosisAcuteORM",
|
|
55
|
+
"GVHDDiagnosisChronicORM",
|
|
56
|
+
"GVHDOrganAcuteORM",
|
|
57
|
+
"GVHDOrganChronicORM",
|
|
58
|
+
"InstitutionORM",
|
|
59
|
+
"MedicalHistoryORM",
|
|
60
|
+
"OtherClinicalEndpointORM",
|
|
61
|
+
"OtherMalignancyORM",
|
|
62
|
+
"ParticipantORM",
|
|
63
|
+
"PriorTreatmentORM",
|
|
64
|
+
"PublicationORM",
|
|
65
|
+
"RadiotherapyDoseORM",
|
|
66
|
+
"ResponseBySystemORM",
|
|
67
|
+
"ResponseORM",
|
|
68
|
+
"ShipmentORM",
|
|
69
|
+
"ShipmentSpecimenORM",
|
|
70
|
+
"SpecimenORM",
|
|
71
|
+
"StemCellTransplantORM",
|
|
72
|
+
"SurgeryORM",
|
|
73
|
+
"TherapyAgentDoseORM",
|
|
74
|
+
"TreatmentORM",
|
|
75
|
+
"TrialORM",
|
|
76
|
+
]
|
|
77
|
+
|
|
78
|
+
all_models = [globals()[cls_name] for cls_name in __all__]
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
from pydantic import NonNegativeInt
|
|
2
|
+
from typing import Optional
|
|
3
|
+
|
|
4
|
+
from sqlalchemy import ForeignKey
|
|
5
|
+
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
6
|
+
|
|
7
|
+
from cidc_api.models.db.base_orm import BaseORM
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class AdditionalTreatmentORM(BaseORM):
|
|
11
|
+
__tablename__ = "additional_treatment"
|
|
12
|
+
__repr_attrs__ = ["additional_treatment_id", "participant_id", "description"]
|
|
13
|
+
__table_args__ = {"schema": "stage2"}
|
|
14
|
+
|
|
15
|
+
additional_treatment_id: Mapped[int] = mapped_column(primary_key=True)
|
|
16
|
+
participant_id: Mapped[int] = mapped_column(ForeignKey("stage2.participant.participant_id", ondelete="CASCADE"))
|
|
17
|
+
|
|
18
|
+
days_to_start: Mapped[Optional[NonNegativeInt]]
|
|
19
|
+
days_to_end: Mapped[Optional[NonNegativeInt]]
|
|
20
|
+
description: Mapped[str]
|
|
21
|
+
|
|
22
|
+
participant: Mapped["ParticipantORM"] = relationship(back_populates="additional_treatments", cascade="all, delete")
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
from typing import List
|
|
2
|
+
|
|
3
|
+
from sqlalchemy import ForeignKey
|
|
4
|
+
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
5
|
+
|
|
6
|
+
from cidc_api.models.db.base_orm import BaseORM
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class AdministrativePersonORM(BaseORM):
|
|
10
|
+
__tablename__ = "administrative_person"
|
|
11
|
+
__repr_attrs__ = ["first_name", "last_name"]
|
|
12
|
+
__table_args__ = {"schema": "stage2"}
|
|
13
|
+
|
|
14
|
+
administrative_person_id: Mapped[int] = mapped_column(primary_key=True)
|
|
15
|
+
institution_id: Mapped[int] = mapped_column(ForeignKey("stage2.institution.institution_id", ondelete="CASCADE"))
|
|
16
|
+
first_name: Mapped[str]
|
|
17
|
+
middle_name: Mapped[str | None]
|
|
18
|
+
last_name: Mapped[str]
|
|
19
|
+
email: Mapped[str | None]
|
|
20
|
+
phone_number: Mapped[str | None]
|
|
21
|
+
|
|
22
|
+
institution: Mapped["InstitutionORM"] = relationship(back_populates="administrative_people", cascade="all, delete")
|
|
23
|
+
administrative_role_assignments: Mapped[List["AdministrativeRoleAssignmentORM"]] = relationship(
|
|
24
|
+
back_populates="administrative_person", cascade="all, delete", passive_deletes=True
|
|
25
|
+
)
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
from sqlalchemy import ForeignKeyConstraint, ForeignKey
|
|
2
|
+
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
3
|
+
|
|
4
|
+
from cidc_api.models.db.base_orm import BaseORM
|
|
5
|
+
from cidc_api.models.types import AdministrativeRole
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class AdministrativeRoleAssignmentORM(BaseORM):
|
|
9
|
+
__tablename__ = "administrative_role_assignment"
|
|
10
|
+
__repr_attrs__ = ["trial_id", "administrative_person_id", "administrative_role"]
|
|
11
|
+
__table_args__ = (
|
|
12
|
+
ForeignKeyConstraint(
|
|
13
|
+
["trial_id", "version"], ["stage2.trial.trial_id", "stage2.trial.version"], ondelete="CASCADE"
|
|
14
|
+
),
|
|
15
|
+
{"schema": "stage2"},
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
trial_id: Mapped[str] = mapped_column(primary_key=True)
|
|
19
|
+
version: Mapped[str] = mapped_column(primary_key=True)
|
|
20
|
+
administrative_person_id: Mapped[int] = mapped_column(
|
|
21
|
+
ForeignKey("stage2.administrative_person.administrative_person_id", ondelete="CASCADE"), primary_key=True
|
|
22
|
+
)
|
|
23
|
+
administrative_role: Mapped[AdministrativeRole] = mapped_column(primary_key=True)
|
|
24
|
+
|
|
25
|
+
trial: Mapped["TrialORM"] = relationship(back_populates="administrative_role_assignments", cascade="all, delete")
|
|
26
|
+
administrative_person: Mapped["AdministrativePersonORM"] = relationship(
|
|
27
|
+
back_populates="administrative_role_assignments", cascade="all, delete"
|
|
28
|
+
)
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
|
|
3
|
+
from pydantic import NonNegativeInt
|
|
4
|
+
from sqlalchemy import ForeignKey
|
|
5
|
+
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
6
|
+
|
|
7
|
+
from cidc_api.models.db.base_orm import BaseORM
|
|
8
|
+
from cidc_api.models.types import (
|
|
9
|
+
CTCAEEventTerm,
|
|
10
|
+
CTCAEEventCode,
|
|
11
|
+
SeverityGradeSystem,
|
|
12
|
+
SeverityGradeSystemVersion,
|
|
13
|
+
SeverityGrade,
|
|
14
|
+
SystemOrganClass,
|
|
15
|
+
AttributionCause,
|
|
16
|
+
AttributionLikelihood,
|
|
17
|
+
YNU,
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class AdverseEventORM(BaseORM):
|
|
22
|
+
__tablename__ = "adverse_event"
|
|
23
|
+
__repr_attrs__ = ["adverse_event_id", "participant_id", "event_term"]
|
|
24
|
+
__table_args__ = {"schema": "stage2"}
|
|
25
|
+
|
|
26
|
+
adverse_event_id: Mapped[int] = mapped_column(primary_key=True)
|
|
27
|
+
participant_id: Mapped[int] = mapped_column(ForeignKey("stage2.participant.participant_id", ondelete="CASCADE"))
|
|
28
|
+
treatment_id: Mapped[Optional[int]] = mapped_column(ForeignKey("stage2.treatment.treatment_id", ondelete="CASCADE"))
|
|
29
|
+
|
|
30
|
+
event_term: Mapped[Optional[CTCAEEventTerm]]
|
|
31
|
+
event_code: Mapped[Optional[CTCAEEventCode]]
|
|
32
|
+
severity_grade_system: Mapped[SeverityGradeSystem]
|
|
33
|
+
severity_grade_system_version: Mapped[SeverityGradeSystemVersion]
|
|
34
|
+
severity_grade: Mapped[SeverityGrade]
|
|
35
|
+
event_other_specify: Mapped[Optional[str]]
|
|
36
|
+
system_organ_class: Mapped[Optional[SystemOrganClass]]
|
|
37
|
+
discontinuation_due_to_event: Mapped[bool]
|
|
38
|
+
days_to_onset_of_event: Mapped[NonNegativeInt]
|
|
39
|
+
days_to_resolution_of_event: Mapped[Optional[NonNegativeInt]]
|
|
40
|
+
serious_adverse_event: Mapped[YNU]
|
|
41
|
+
dose_limiting_toxicity: Mapped[YNU]
|
|
42
|
+
attribution_cause: Mapped[AttributionCause]
|
|
43
|
+
attribution_likelihood: Mapped[AttributionLikelihood]
|
|
44
|
+
individual_therapy: Mapped[Optional[str]]
|
|
45
|
+
|
|
46
|
+
participant: Mapped["ParticipantORM"] = relationship(back_populates="adverse_events", cascade="all, delete")
|
|
47
|
+
treatment: Mapped["TreatmentORM"] = relationship(back_populates="adverse_events", cascade="all, delete")
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
from sqlalchemy import ForeignKey, ForeignKeyConstraint
|
|
2
|
+
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
3
|
+
|
|
4
|
+
from cidc_api.models.db.base_orm import BaseORM
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class ArmORM(BaseORM):
|
|
8
|
+
__tablename__ = "arm"
|
|
9
|
+
__repr_attrs__ = ["trial_id", "arm_name"]
|
|
10
|
+
__table_args__ = (
|
|
11
|
+
ForeignKeyConstraint(
|
|
12
|
+
["trial_id", "version"], ["stage2.trial.trial_id", "stage2.trial.version"], ondelete="CASCADE"
|
|
13
|
+
),
|
|
14
|
+
{"schema": "stage2"},
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
arm_id: Mapped[int] = mapped_column(primary_key=True)
|
|
18
|
+
trial_id: Mapped[str]
|
|
19
|
+
version: Mapped[str]
|
|
20
|
+
|
|
21
|
+
name: Mapped[str]
|
|
22
|
+
|
|
23
|
+
trial: Mapped["TrialORM"] = relationship(back_populates="arms", cascade="all, delete")
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
|
|
3
|
+
from sqlalchemy import ForeignKey
|
|
4
|
+
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
5
|
+
|
|
6
|
+
from cidc_api.models.db.base_orm import BaseORM
|
|
7
|
+
from cidc_api.models.types import ECOGScore, KarnofskyScore
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class BaselineClinicalAssessmentORM(BaseORM):
|
|
11
|
+
__tablename__ = "baseline_clinical_assessment"
|
|
12
|
+
__repr_attrs__ = ["baseline_clinical_assessment_id", "participant_id"]
|
|
13
|
+
__table_args__ = {"schema": "stage2"}
|
|
14
|
+
|
|
15
|
+
baseline_clinical_assessment_id: Mapped[int] = mapped_column(primary_key=True)
|
|
16
|
+
participant_id: Mapped[int] = mapped_column(ForeignKey("stage2.participant.participant_id", ondelete="CASCADE"))
|
|
17
|
+
|
|
18
|
+
ecog_score: Mapped[Optional[ECOGScore]]
|
|
19
|
+
karnofsky_score: Mapped[Optional[KarnofskyScore]]
|
|
20
|
+
|
|
21
|
+
participant: Mapped["ParticipantORM"] = relationship(
|
|
22
|
+
back_populates="baseline_clinical_assessment", cascade="all, delete"
|
|
23
|
+
)
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
from sqlalchemy import ForeignKeyConstraint
|
|
2
|
+
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
3
|
+
|
|
4
|
+
from cidc_api.models.db.base_orm import BaseORM
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class CohortORM(BaseORM):
|
|
8
|
+
__tablename__ = "cohort"
|
|
9
|
+
__repr_attrs__ = ["trial_id", "cohort_name"]
|
|
10
|
+
__table_args__ = (
|
|
11
|
+
ForeignKeyConstraint(
|
|
12
|
+
["trial_id", "version"], ["stage2.trial.trial_id", "stage2.trial.version"], ondelete="CASCADE"
|
|
13
|
+
),
|
|
14
|
+
{"schema": "stage2"},
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
cohort_id: Mapped[int] = mapped_column(primary_key=True)
|
|
18
|
+
trial_id: Mapped[str]
|
|
19
|
+
version: Mapped[str]
|
|
20
|
+
|
|
21
|
+
name: Mapped[str]
|
|
22
|
+
|
|
23
|
+
trial: Mapped["TrialORM"] = relationship(back_populates="cohorts", cascade="all, delete")
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
|
|
3
|
+
from sqlalchemy import ForeignKey
|
|
4
|
+
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
5
|
+
|
|
6
|
+
from cidc_api.models.db.base_orm import BaseORM
|
|
7
|
+
from cidc_api.models.types import ICD10CMCode, ICD10CMTerm
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class ComorbidityORM(BaseORM):
|
|
11
|
+
__tablename__ = "comorbidity"
|
|
12
|
+
__repr_attrs__ = ["comorbidity_id", "comorbidity_term"]
|
|
13
|
+
__table_args__ = {"schema": "stage2"}
|
|
14
|
+
|
|
15
|
+
comorbidity_id: Mapped[int] = mapped_column(primary_key=True)
|
|
16
|
+
medical_history_id: Mapped[int] = mapped_column(
|
|
17
|
+
ForeignKey("stage2.medical_history.medical_history_id", ondelete="CASCADE")
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
comorbidity_code: Mapped[Optional[ICD10CMCode]]
|
|
21
|
+
comorbidity_term: Mapped[Optional[ICD10CMTerm]]
|
|
22
|
+
comorbidity_other: Mapped[Optional[str]]
|
|
23
|
+
|
|
24
|
+
medical_history: Mapped["MedicalHistoryORM"] = relationship(back_populates="comorbidities", cascade="all, delete")
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
from typing import List
|
|
2
|
+
|
|
3
|
+
from pydantic import NonNegativeInt
|
|
4
|
+
from sqlalchemy import ForeignKeyConstraint
|
|
5
|
+
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
6
|
+
|
|
7
|
+
from cidc_api.models.db.base_orm import BaseORM
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class ConsentGroupORM(BaseORM):
|
|
11
|
+
__tablename__ = "consent_group"
|
|
12
|
+
__repr_attrs__ = ["consent_group_id", "consent_group_name"]
|
|
13
|
+
__table_args__ = (
|
|
14
|
+
ForeignKeyConstraint(
|
|
15
|
+
["trial_id", "version"], ["stage2.trial.trial_id", "stage2.trial.version"], ondelete="CASCADE"
|
|
16
|
+
),
|
|
17
|
+
{"schema": "stage2"},
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
consent_group_id: Mapped[int] = mapped_column(primary_key=True)
|
|
21
|
+
trial_id: Mapped[str]
|
|
22
|
+
version: Mapped[str]
|
|
23
|
+
|
|
24
|
+
consent_group_short_name: Mapped[str]
|
|
25
|
+
consent_group_name: Mapped[str]
|
|
26
|
+
consent_group_number: Mapped[NonNegativeInt]
|
|
27
|
+
|
|
28
|
+
trial: Mapped["TrialORM"] = relationship(back_populates="consent_groups", cascade="all, delete")
|
|
29
|
+
participants: Mapped[List["ParticipantORM"]] = relationship(
|
|
30
|
+
back_populates="consent_group", cascade="all, delete", passive_deletes=True
|
|
31
|
+
)
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
|
|
3
|
+
from sqlalchemy import ForeignKey
|
|
4
|
+
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
5
|
+
|
|
6
|
+
from cidc_api.models.db.base_orm import BaseORM
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class ContactORM(BaseORM):
|
|
10
|
+
__tablename__ = "contact"
|
|
11
|
+
__table_args__ = {"schema": "stage2"}
|
|
12
|
+
|
|
13
|
+
contact_id: Mapped[int] = mapped_column(primary_key=True)
|
|
14
|
+
institution_id: Mapped[int] = mapped_column(ForeignKey("stage2.institution.institution_id", ondelete="CASCADE"))
|
|
15
|
+
shipment_from_id: Mapped[Optional[int]] = mapped_column(
|
|
16
|
+
ForeignKey("stage2.shipment.shipment_id", ondelete="CASCADE")
|
|
17
|
+
)
|
|
18
|
+
shipment_to_id: Mapped[Optional[int]] = mapped_column(ForeignKey("stage2.shipment.shipment_id", ondelete="CASCADE"))
|
|
19
|
+
|
|
20
|
+
name: Mapped[Optional[str]]
|
|
21
|
+
email: Mapped[Optional[str]]
|
|
22
|
+
phone: Mapped[Optional[str]]
|
|
23
|
+
street1: Mapped[Optional[str]]
|
|
24
|
+
street2: Mapped[Optional[str]]
|
|
25
|
+
city: Mapped[Optional[str]]
|
|
26
|
+
state: Mapped[Optional[str]]
|
|
27
|
+
zip: Mapped[Optional[str]]
|
|
28
|
+
country: Mapped[Optional[str]]
|
|
29
|
+
|
|
30
|
+
institution: Mapped[Optional["InstitutionORM"]] = relationship(back_populates="contacts", cascade="all, delete")
|
|
31
|
+
shipment_from: Mapped["ShipmentORM"] = relationship(cascade="all, delete", foreign_keys=[shipment_from_id])
|
|
32
|
+
shipment_to: Mapped["ShipmentORM"] = relationship(cascade="all, delete", foreign_keys=[shipment_to_id])
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
from pydantic import NonNegativeFloat, PositiveFloat, PositiveInt
|
|
2
|
+
|
|
3
|
+
from sqlalchemy import ForeignKey
|
|
4
|
+
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
5
|
+
|
|
6
|
+
from cidc_api.models.db.base_orm import BaseORM
|
|
7
|
+
from cidc_api.models.types import (
|
|
8
|
+
Sex,
|
|
9
|
+
Race,
|
|
10
|
+
Ethnicity,
|
|
11
|
+
HeightUnits,
|
|
12
|
+
WeightUnits,
|
|
13
|
+
BodySurfaceAreaUnits,
|
|
14
|
+
Occupation,
|
|
15
|
+
Education,
|
|
16
|
+
AgeAtEnrollmentUnits,
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class DemographicORM(BaseORM):
|
|
21
|
+
__tablename__ = "demographic"
|
|
22
|
+
__repr_attrs__ = ["demographic_id", "participant_id", "age_at_enrollment", "sex"]
|
|
23
|
+
__table_args__ = {"schema": "stage2"}
|
|
24
|
+
|
|
25
|
+
demographic_id: Mapped[int] = mapped_column(primary_key=True)
|
|
26
|
+
participant_id: Mapped[int] = mapped_column(ForeignKey("stage2.participant.participant_id", ondelete="CASCADE"))
|
|
27
|
+
age_at_enrollment: Mapped[PositiveInt | None]
|
|
28
|
+
age_at_enrollment_units: Mapped[AgeAtEnrollmentUnits | None]
|
|
29
|
+
age_90_or_older: Mapped[bool]
|
|
30
|
+
sex: Mapped[Sex]
|
|
31
|
+
race: Mapped[Race]
|
|
32
|
+
ethnicity: Mapped[Ethnicity]
|
|
33
|
+
height: Mapped[PositiveFloat]
|
|
34
|
+
height_units: Mapped[HeightUnits]
|
|
35
|
+
weight: Mapped[PositiveFloat]
|
|
36
|
+
weight_units: Mapped[WeightUnits]
|
|
37
|
+
body_mass_index: Mapped[PositiveFloat]
|
|
38
|
+
body_surface_area: Mapped[PositiveFloat]
|
|
39
|
+
body_surface_area_units: Mapped[BodySurfaceAreaUnits]
|
|
40
|
+
occupation: Mapped[Occupation | None]
|
|
41
|
+
income: Mapped[NonNegativeFloat | None]
|
|
42
|
+
highest_level_of_education: Mapped[Education | None]
|
|
43
|
+
|
|
44
|
+
participant: Mapped["ParticipantORM"] = relationship(back_populates="demographic", cascade="all, delete")
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
from typing import List, Optional
|
|
2
|
+
|
|
3
|
+
from pydantic import NonPositiveInt
|
|
4
|
+
from sqlalchemy import ForeignKey
|
|
5
|
+
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
6
|
+
from sqlalchemy.types import JSON
|
|
7
|
+
|
|
8
|
+
from cidc_api.models.db.base_orm import BaseORM
|
|
9
|
+
from cidc_api.models.types import (
|
|
10
|
+
PrimaryDiagnosisDiseaseGroup,
|
|
11
|
+
TumorGrade,
|
|
12
|
+
CancerStageSystem,
|
|
13
|
+
CancerStageSystemVersion,
|
|
14
|
+
CancerStage,
|
|
15
|
+
TCategory,
|
|
16
|
+
NCategory,
|
|
17
|
+
MCategory,
|
|
18
|
+
UberonAnatomicalTerm,
|
|
19
|
+
ICDO3MorphologicalCode,
|
|
20
|
+
ICDO3MorphologicalTerm,
|
|
21
|
+
YNU,
|
|
22
|
+
)
|
|
23
|
+
from sqlalchemy import String
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class DiseaseORM(BaseORM):
|
|
27
|
+
__tablename__ = "disease"
|
|
28
|
+
__repr_attrs__ = [
|
|
29
|
+
"disease_id",
|
|
30
|
+
"participant_id",
|
|
31
|
+
]
|
|
32
|
+
__table_args__ = {"schema": "stage2"}
|
|
33
|
+
|
|
34
|
+
disease_id: Mapped[int] = mapped_column(primary_key=True)
|
|
35
|
+
participant_id: Mapped[int] = mapped_column(ForeignKey("stage2.participant.participant_id", ondelete="CASCADE"))
|
|
36
|
+
primary_diagnosis_disease_group: Mapped[PrimaryDiagnosisDiseaseGroup]
|
|
37
|
+
primary_disease_site: Mapped[UberonAnatomicalTerm]
|
|
38
|
+
morphological_code: Mapped[ICDO3MorphologicalCode]
|
|
39
|
+
morphological_term: Mapped[ICDO3MorphologicalTerm]
|
|
40
|
+
cancer_type_description: Mapped[str | None]
|
|
41
|
+
days_since_original_diagnosis: Mapped[NonPositiveInt]
|
|
42
|
+
tumor_grade: Mapped[TumorGrade | None]
|
|
43
|
+
cancer_stage_system: Mapped[CancerStageSystem]
|
|
44
|
+
cancer_stage_system_version: Mapped[CancerStageSystemVersion | None] = mapped_column(String, nullable=True)
|
|
45
|
+
cancer_stage: Mapped[CancerStage] = mapped_column(String)
|
|
46
|
+
t_category: Mapped[TCategory]
|
|
47
|
+
n_category: Mapped[NCategory]
|
|
48
|
+
m_category: Mapped[MCategory]
|
|
49
|
+
metastatic_organ: Mapped[List[UberonAnatomicalTerm]] = mapped_column(JSON, nullable=True)
|
|
50
|
+
solely_extramedullary_disease: Mapped[YNU]
|
|
51
|
+
extramedullary_organ: Mapped[List[UberonAnatomicalTerm]] = mapped_column(JSON, nullable=True)
|
|
52
|
+
|
|
53
|
+
participant: Mapped["ParticipantORM"] = relationship(back_populates="diseases", cascade="all, delete")
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
from typing import List
|
|
2
|
+
|
|
3
|
+
from sqlalchemy import ForeignKey
|
|
4
|
+
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
5
|
+
|
|
6
|
+
from cidc_api.models.db.base_orm import BaseORM
|
|
7
|
+
from cidc_api.models.types import YNU, ExposureType
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class ExposureORM(BaseORM):
|
|
11
|
+
__tablename__ = "exposure"
|
|
12
|
+
__repr_attrs__ = ["exposure_id", "exposure_type", "carcinogen_exposure"]
|
|
13
|
+
__table_args__ = {"schema": "stage2"}
|
|
14
|
+
|
|
15
|
+
exposure_id: Mapped[int] = mapped_column(primary_key=True)
|
|
16
|
+
participant_id: Mapped[int] = mapped_column(ForeignKey("stage2.participant.participant_id", ondelete="CASCADE"))
|
|
17
|
+
|
|
18
|
+
carcinogen_exposure: Mapped[YNU]
|
|
19
|
+
exposure_type: Mapped[ExposureType]
|
|
20
|
+
|
|
21
|
+
participant: Mapped["ParticipantORM"] = relationship(back_populates="exposures", cascade="all, delete")
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
from datetime import datetime
|
|
2
|
+
from typing import Optional
|
|
3
|
+
|
|
4
|
+
from sqlalchemy import ForeignKeyConstraint, ForeignKey
|
|
5
|
+
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
6
|
+
|
|
7
|
+
from cidc_api.models.db.base_orm import BaseORM
|
|
8
|
+
from cidc_api.models.types import ChecksumType, FileFormat
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class FileORM(BaseORM):
|
|
12
|
+
__tablename__ = "file"
|
|
13
|
+
__table_args__ = (
|
|
14
|
+
ForeignKeyConstraint(
|
|
15
|
+
["trial_id", "version"], ["stage2.trial.trial_id", "stage2.trial.version"], ondelete="CASCADE"
|
|
16
|
+
),
|
|
17
|
+
{"schema": "stage2"},
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
file_id: Mapped[int] = mapped_column(primary_key=True)
|
|
21
|
+
trial_id: Mapped[str]
|
|
22
|
+
version: Mapped[str]
|
|
23
|
+
|
|
24
|
+
creator_id: Mapped[Optional[int]] = mapped_column(
|
|
25
|
+
ForeignKey("stage2.institution.institution_id", ondelete="CASCADE")
|
|
26
|
+
)
|
|
27
|
+
description: Mapped[Optional[str]]
|
|
28
|
+
uuid: Mapped[str]
|
|
29
|
+
file_name: Mapped[str]
|
|
30
|
+
object_url: Mapped[str]
|
|
31
|
+
uploaded_timestamp: Mapped[datetime]
|
|
32
|
+
file_size_bytes: Mapped[int]
|
|
33
|
+
checksum_value: Mapped[str]
|
|
34
|
+
checksum_type: Mapped[ChecksumType]
|
|
35
|
+
file_format: Mapped[FileFormat]
|
|
36
|
+
|
|
37
|
+
trial: Mapped["TrialORM"] = relationship(back_populates="files", cascade="all, delete")
|
|
38
|
+
creator: Mapped[Optional["InstitutionORM"]] = relationship(back_populates="files", cascade="all, delete")
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
from typing import List
|
|
2
|
+
|
|
3
|
+
from sqlalchemy import ForeignKey, UniqueConstraint
|
|
4
|
+
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
5
|
+
|
|
6
|
+
from cidc_api.models.db.base_orm import BaseORM
|
|
7
|
+
from cidc_api.models.types import (
|
|
8
|
+
GVHDDiagnosisAcuteAssessmentSystem,
|
|
9
|
+
GVHDDiagnosisAcuteAssessmentSystemVersion,
|
|
10
|
+
GVHDDiagnosisAcuteGrade,
|
|
11
|
+
PreOrPostEnrollment,
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class GVHDDiagnosisAcuteORM(BaseORM):
|
|
16
|
+
__tablename__ = "gvhd_diagnosis_acute"
|
|
17
|
+
__table_args__ = (
|
|
18
|
+
UniqueConstraint("participant_id", "pre_or_post_enrollment", name="unique_ix_gvhd_diagnosis_acute_pre_or_post"),
|
|
19
|
+
{"schema": "stage2"},
|
|
20
|
+
)
|
|
21
|
+
__repr_attrs__ = ["gvhd_diagnosis_acute_id", "pre_or_post_enrollment"]
|
|
22
|
+
|
|
23
|
+
gvhd_diagnosis_acute_id: Mapped[int] = mapped_column(primary_key=True)
|
|
24
|
+
participant_id: Mapped[int] = mapped_column(ForeignKey("stage2.participant.participant_id", ondelete="CASCADE"))
|
|
25
|
+
acute_assessment_system: Mapped[GVHDDiagnosisAcuteAssessmentSystem]
|
|
26
|
+
system_version: Mapped[GVHDDiagnosisAcuteAssessmentSystemVersion]
|
|
27
|
+
acute_grade: Mapped[GVHDDiagnosisAcuteGrade]
|
|
28
|
+
pre_or_post_enrollment: Mapped[PreOrPostEnrollment]
|
|
29
|
+
|
|
30
|
+
participant: Mapped["ParticipantORM"] = relationship(back_populates="gvhd_diagnosis_acutes", cascade="all, delete")
|
|
31
|
+
organs: Mapped[List["GVHDOrganAcuteORM"]] = relationship(
|
|
32
|
+
back_populates="diagnosis", cascade="all, delete", passive_deletes=True
|
|
33
|
+
)
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
from typing import List
|
|
2
|
+
|
|
3
|
+
from sqlalchemy import ForeignKey, UniqueConstraint
|
|
4
|
+
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
5
|
+
|
|
6
|
+
from cidc_api.models.db.base_orm import BaseORM
|
|
7
|
+
from cidc_api.models.types import (
|
|
8
|
+
GVHDDiagnosisChronicAssessmentSystem,
|
|
9
|
+
GVHDDiagnosisChronicAssessmentSystemVersion,
|
|
10
|
+
GVHDDiagnosisChronicGlobalSeverity,
|
|
11
|
+
PreOrPostEnrollment,
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class GVHDDiagnosisChronicORM(BaseORM):
|
|
16
|
+
__tablename__ = "gvhd_diagnosis_chronic"
|
|
17
|
+
__table_args__ = (
|
|
18
|
+
UniqueConstraint(
|
|
19
|
+
"participant_id", "pre_or_post_enrollment", name="unique_ix_gvhd_diagnosis_chronic_pre_or_post"
|
|
20
|
+
),
|
|
21
|
+
{"schema": "stage2"},
|
|
22
|
+
)
|
|
23
|
+
__repr_attrs__ = ["gvhd_diagnosis_chronic_id", "pre_or_post_enrollment"]
|
|
24
|
+
|
|
25
|
+
gvhd_diagnosis_chronic_id: Mapped[int] = mapped_column(primary_key=True)
|
|
26
|
+
participant_id: Mapped[int] = mapped_column(ForeignKey("stage2.participant.participant_id", ondelete="CASCADE"))
|
|
27
|
+
chronic_assessment_system: Mapped[GVHDDiagnosisChronicAssessmentSystem]
|
|
28
|
+
system_version: Mapped[GVHDDiagnosisChronicAssessmentSystemVersion]
|
|
29
|
+
chronic_global_severity: Mapped[GVHDDiagnosisChronicGlobalSeverity]
|
|
30
|
+
pre_or_post_enrollment: Mapped[PreOrPostEnrollment]
|
|
31
|
+
|
|
32
|
+
participant: Mapped["ParticipantORM"] = relationship(
|
|
33
|
+
back_populates="gvhd_diagnosis_chronics", cascade="all, delete"
|
|
34
|
+
)
|
|
35
|
+
organs: Mapped[List["GVHDOrganChronicORM"]] = relationship(
|
|
36
|
+
back_populates="diagnosis", cascade="all, delete", passive_deletes=True
|
|
37
|
+
)
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
from sqlalchemy import ForeignKey
|
|
2
|
+
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
3
|
+
|
|
4
|
+
from cidc_api.models.db.base_orm import BaseORM
|
|
5
|
+
from cidc_api.models.types import GVHDOrgan, GVHDOrganAcuteStage
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class GVHDOrganAcuteORM(BaseORM):
|
|
9
|
+
__tablename__ = "gvhd_organ_acute"
|
|
10
|
+
__repr_attrs__ = ["gvhd_organ_acute_id", "organ"]
|
|
11
|
+
__table_args__ = {"schema": "stage2"}
|
|
12
|
+
|
|
13
|
+
gvhd_organ_acute_id: Mapped[int] = mapped_column(primary_key=True)
|
|
14
|
+
gvhd_diagnosis_acute_id: Mapped[int] = mapped_column(
|
|
15
|
+
ForeignKey("stage2.gvhd_diagnosis_acute.gvhd_diagnosis_acute_id", ondelete="CASCADE")
|
|
16
|
+
)
|
|
17
|
+
organ: Mapped[GVHDOrgan]
|
|
18
|
+
acute_stage: Mapped[GVHDOrganAcuteStage]
|
|
19
|
+
|
|
20
|
+
diagnosis: Mapped["GVHDDiagnosisAcuteORM"] = relationship(back_populates="organs", cascade="all, delete")
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
from sqlalchemy import ForeignKey
|
|
2
|
+
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
3
|
+
|
|
4
|
+
from cidc_api.models.db.base_orm import BaseORM
|
|
5
|
+
from cidc_api.models.types import GVHDOrgan, GVHDOrganChronicScore
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class GVHDOrganChronicORM(BaseORM):
|
|
9
|
+
__tablename__ = "gvhd_organ_chronic"
|
|
10
|
+
__repr_attrs__ = ["gvhd_organ_chronic_id", "organ"]
|
|
11
|
+
__table_args__ = {"schema": "stage2"}
|
|
12
|
+
|
|
13
|
+
gvhd_organ_chronic_id: Mapped[int] = mapped_column(primary_key=True)
|
|
14
|
+
gvhd_diagnosis_chronic_id: Mapped[int] = mapped_column(
|
|
15
|
+
ForeignKey("stage2.gvhd_diagnosis_chronic.gvhd_diagnosis_chronic_id", ondelete="CASCADE")
|
|
16
|
+
)
|
|
17
|
+
organ: Mapped[GVHDOrgan]
|
|
18
|
+
chronic_score: Mapped[GVHDOrganChronicScore]
|
|
19
|
+
|
|
20
|
+
diagnosis: Mapped["GVHDDiagnosisChronicORM"] = relationship(back_populates="organs", cascade="all, delete")
|