nci-cidc-api-modules 1.2.28__tar.gz → 1.2.33__tar.gz
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.
- {nci_cidc_api_modules-1.2.28/nci_cidc_api_modules.egg-info → nci_cidc_api_modules-1.2.33}/PKG-INFO +2 -1
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/data.py +4 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/additional_treatment_orm.py +4 -3
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/adverse_event_orm.py +1 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/baseline_clinical_assessment_orm.py +1 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/comorbidity_orm.py +1 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/consent_group_orm.py +1 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/demographic_orm.py +8 -5
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/disease_orm.py +9 -10
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/exposure_orm.py +2 -1
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/gvhd_diagnosis_acute_orm.py +1 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/gvhd_diagnosis_chronic_orm.py +1 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/gvhd_organ_acute_orm.py +1 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/gvhd_organ_chronic_orm.py +1 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/medical_history_orm.py +1 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/other_malignancy_orm.py +7 -6
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/participant_orm.py +5 -4
- nci_cidc_api_modules-1.2.33/cidc_api/models/db/stage2/prior_treatment_orm.py +30 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/radiotherapy_dose_orm.py +1 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/response_by_system_orm.py +2 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/response_orm.py +3 -2
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/stem_cell_transplant_orm.py +1 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/surgery_orm.py +1 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/therapy_agent_dose_orm.py +1 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/treatment_orm.py +1 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/trial_orm.py +20 -17
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/models.py +1 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/additional_treatment.py +6 -4
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/adverse_event.py +1 -1
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/base.py +19 -1
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/baseline_clinical_assessment.py +1 -1
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/demographic.py +26 -17
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/disease.py +32 -18
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/exposure.py +2 -2
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/gvhd_diagnosis_acute.py +1 -1
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/gvhd_diagnosis_chronic.py +1 -1
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/medical_history.py +1 -1
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/other_malignancy.py +11 -7
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/participant.py +6 -5
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/prior_treatment.py +12 -12
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/radiotherapy_dose.py +1 -1
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/response.py +4 -10
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/response_by_system.py +9 -6
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/specimen.py +2 -2
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/treatment.py +1 -1
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/trial.py +13 -7
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/types.py +18 -29
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33/nci_cidc_api_modules.egg-info}/PKG-INFO +2 -1
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/nci_cidc_api_modules.egg-info/requires.txt +1 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/pyproject.toml +3 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/requirements.modules.txt +1 -0
- nci_cidc_api_modules-1.2.28/cidc_api/models/db/stage2/prior_treatment_orm.py +0 -28
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/LICENSE +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/MANIFEST.in +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/README.md +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/config/__init__.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/config/db.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/config/logging.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/config/secrets.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/config/settings.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/__init__.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/base_orm.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/__init__.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/administrative_person_orm.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/administrative_role_assignment_orm.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/arm_orm.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/cohort_orm.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/contact_orm.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/file_orm.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/institution_orm.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/other_clinical_endpoint_orm.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/publication_orm.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/shipment_orm.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/shipment_specimen_orm.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/specimen_orm.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/files/__init__.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/files/details.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/files/facets.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/migrations.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/__init__.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/administrative_person.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/administrative_role_assignment.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/arm.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/cohort.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/comorbidity.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/consent_group.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/contact.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/file.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/gvhd_organ_acute.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/gvhd_organ_chronic.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/institution.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/other_clinical_endpoint.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/publication.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/shipment.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/shipment_specimen.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/stem_cell_transplant.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/surgery.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/therapy_agent_dose.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/schemas.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/reference/ctcae.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/reference/gvhd.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/reference/icd10cm.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/reference/icdo3.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/reference/uberon.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/shared/__init__.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/shared/auth.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/shared/email_layout.html +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/shared/emails.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/shared/file_handling.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/shared/gcloud_client.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/shared/jose.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/shared/rest_utils.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/shared/utils.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/nci_cidc_api_modules.egg-info/SOURCES.txt +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/nci_cidc_api_modules.egg-info/dependency_links.txt +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/nci_cidc_api_modules.egg-info/not-zip-safe +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/nci_cidc_api_modules.egg-info/top_level.txt +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/setup.cfg +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/setup.py +0 -0
- {nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/tests/test_api.py +0 -0
{nci_cidc_api_modules-1.2.28/nci_cidc_api_modules.egg-info → nci_cidc_api_modules-1.2.33}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nci_cidc_api_modules
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.33
|
|
4
4
|
Summary: SQLAlchemy data models and configuration tools used in the NCI CIDC API
|
|
5
5
|
Home-page: https://github.com/NCI-CIDC/cidc-api-gae
|
|
6
6
|
License: MIT license
|
|
@@ -12,6 +12,7 @@ Requires-Dist: cloud-sql-python-connector[pg8000]>=1.18.5
|
|
|
12
12
|
Requires-Dist: flask>=3.1.2
|
|
13
13
|
Requires-Dist: flask-migrate>=4.1.0
|
|
14
14
|
Requires-Dist: flask-sqlalchemy>=3.1.1
|
|
15
|
+
Requires-Dist: flask-talisman>=0.7.0
|
|
15
16
|
Requires-Dist: google-auth==2.43.0
|
|
16
17
|
Requires-Dist: google-api-python-client>=2.185.0
|
|
17
18
|
Requires-Dist: google-cloud-bigquery>=3.38.0
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from cidc_api.models.pydantic.stage2 import all_models
|
|
2
|
+
from cidc_api.models.db.stage2 import all_models as all_db_models
|
|
2
3
|
|
|
3
4
|
standard_data_categories = [model.__data_category__ for model in all_models if hasattr(model, "__data_category__")]
|
|
4
5
|
|
|
@@ -13,3 +14,6 @@ class Dataset(dict):
|
|
|
13
14
|
|
|
14
15
|
# Maps data categories like "treatment" to their associated pydantic model
|
|
15
16
|
data_category_to_model = {model.__data_category__: model for model in all_models if hasattr(model, "__data_category__")}
|
|
17
|
+
data_category_to_db_model = {
|
|
18
|
+
model.__data_category__: model for model in all_db_models if hasattr(model, "__data_category__")
|
|
19
|
+
}
|
|
@@ -11,12 +11,13 @@ class AdditionalTreatmentORM(BaseORM):
|
|
|
11
11
|
__tablename__ = "additional_treatment"
|
|
12
12
|
__repr_attrs__ = ["additional_treatment_id", "participant_id", "description"]
|
|
13
13
|
__table_args__ = {"schema": "stage2"}
|
|
14
|
+
__data_category__ = "additional_treatment"
|
|
14
15
|
|
|
15
16
|
additional_treatment_id: Mapped[int] = mapped_column(primary_key=True)
|
|
16
17
|
participant_id: Mapped[int] = mapped_column(ForeignKey("stage2.participant.participant_id", ondelete="CASCADE"))
|
|
17
18
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
additional_treatment_days_to_start: Mapped[Optional[NonNegativeInt]]
|
|
20
|
+
additional_treatment_days_to_end: Mapped[Optional[NonNegativeInt]]
|
|
21
|
+
additional_treatment_description: Mapped[str]
|
|
21
22
|
|
|
22
23
|
participant: Mapped["ParticipantORM"] = relationship(back_populates="additional_treatments", cascade="all, delete")
|
|
@@ -22,6 +22,7 @@ class AdverseEventORM(BaseORM):
|
|
|
22
22
|
__tablename__ = "adverse_event"
|
|
23
23
|
__repr_attrs__ = ["adverse_event_id", "participant_id", "event_term"]
|
|
24
24
|
__table_args__ = {"schema": "stage2"}
|
|
25
|
+
__data_category__ = "adverse_event"
|
|
25
26
|
|
|
26
27
|
adverse_event_id: Mapped[int] = mapped_column(primary_key=True)
|
|
27
28
|
participant_id: Mapped[int] = mapped_column(ForeignKey("stage2.participant.participant_id", ondelete="CASCADE"))
|
|
@@ -11,6 +11,7 @@ class BaselineClinicalAssessmentORM(BaseORM):
|
|
|
11
11
|
__tablename__ = "baseline_clinical_assessment"
|
|
12
12
|
__repr_attrs__ = ["baseline_clinical_assessment_id", "participant_id"]
|
|
13
13
|
__table_args__ = {"schema": "stage2"}
|
|
14
|
+
__data_category__ = "baseline_clinical_assessment"
|
|
14
15
|
|
|
15
16
|
baseline_clinical_assessment_id: Mapped[int] = mapped_column(primary_key=True)
|
|
16
17
|
participant_id: Mapped[int] = mapped_column(ForeignKey("stage2.participant.participant_id", ondelete="CASCADE"))
|
|
@@ -11,6 +11,7 @@ class ComorbidityORM(BaseORM):
|
|
|
11
11
|
__tablename__ = "comorbidity"
|
|
12
12
|
__repr_attrs__ = ["comorbidity_id", "comorbidity_term"]
|
|
13
13
|
__table_args__ = {"schema": "stage2"}
|
|
14
|
+
__data_category__ = "comorbidity"
|
|
14
15
|
|
|
15
16
|
comorbidity_id: Mapped[int] = mapped_column(primary_key=True)
|
|
16
17
|
medical_history_id: Mapped[int] = mapped_column(
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
from pydantic import NonNegativeFloat, PositiveFloat, PositiveInt
|
|
2
|
+
from typing import List
|
|
2
3
|
|
|
3
4
|
from sqlalchemy import ForeignKey
|
|
4
5
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
6
|
+
from sqlalchemy.types import JSON
|
|
5
7
|
|
|
6
8
|
from cidc_api.models.db.base_orm import BaseORM
|
|
7
9
|
from cidc_api.models.types import (
|
|
@@ -21,22 +23,23 @@ class DemographicORM(BaseORM):
|
|
|
21
23
|
__tablename__ = "demographic"
|
|
22
24
|
__repr_attrs__ = ["demographic_id", "participant_id", "age_at_enrollment", "sex"]
|
|
23
25
|
__table_args__ = {"schema": "stage2"}
|
|
26
|
+
__data_category__ = "demographic"
|
|
24
27
|
|
|
25
28
|
demographic_id: Mapped[int] = mapped_column(primary_key=True)
|
|
26
29
|
participant_id: Mapped[int] = mapped_column(ForeignKey("stage2.participant.participant_id", ondelete="CASCADE"))
|
|
27
30
|
age_at_enrollment: Mapped[PositiveInt | None]
|
|
28
31
|
age_at_enrollment_units: Mapped[AgeAtEnrollmentUnits | None]
|
|
29
|
-
|
|
32
|
+
age_90_or_over: Mapped[bool]
|
|
30
33
|
sex: Mapped[Sex]
|
|
31
|
-
race: Mapped[Race]
|
|
34
|
+
race: Mapped[List[Race]] = mapped_column(JSON)
|
|
32
35
|
ethnicity: Mapped[Ethnicity]
|
|
33
36
|
height: Mapped[PositiveFloat]
|
|
34
37
|
height_units: Mapped[HeightUnits]
|
|
35
38
|
weight: Mapped[PositiveFloat]
|
|
36
39
|
weight_units: Mapped[WeightUnits]
|
|
37
|
-
body_mass_index: Mapped[PositiveFloat]
|
|
38
|
-
body_surface_area: Mapped[PositiveFloat]
|
|
39
|
-
body_surface_area_units: Mapped[BodySurfaceAreaUnits]
|
|
40
|
+
body_mass_index: Mapped[PositiveFloat | None]
|
|
41
|
+
body_surface_area: Mapped[PositiveFloat | None]
|
|
42
|
+
body_surface_area_units: Mapped[BodySurfaceAreaUnits | None]
|
|
40
43
|
occupation: Mapped[Occupation | None]
|
|
41
44
|
income: Mapped[NonNegativeFloat | None]
|
|
42
45
|
highest_level_of_education: Mapped[Education | None]
|
{nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/disease_orm.py
RENAMED
|
@@ -7,7 +7,6 @@ from sqlalchemy.types import JSON
|
|
|
7
7
|
|
|
8
8
|
from cidc_api.models.db.base_orm import BaseORM
|
|
9
9
|
from cidc_api.models.types import (
|
|
10
|
-
PrimaryDiagnosisDiseaseGroup,
|
|
11
10
|
TumorGrade,
|
|
12
11
|
CancerStageSystem,
|
|
13
12
|
CancerStageSystemVersion,
|
|
@@ -30,23 +29,23 @@ class DiseaseORM(BaseORM):
|
|
|
30
29
|
"participant_id",
|
|
31
30
|
]
|
|
32
31
|
__table_args__ = {"schema": "stage2"}
|
|
32
|
+
__data_category__ = "disease"
|
|
33
33
|
|
|
34
34
|
disease_id: Mapped[int] = mapped_column(primary_key=True)
|
|
35
35
|
participant_id: Mapped[int] = mapped_column(ForeignKey("stage2.participant.participant_id", ondelete="CASCADE"))
|
|
36
|
-
primary_diagnosis_disease_group: Mapped[PrimaryDiagnosisDiseaseGroup]
|
|
37
36
|
primary_disease_site: Mapped[UberonAnatomicalTerm]
|
|
38
|
-
morphological_code: Mapped[ICDO3MorphologicalCode]
|
|
39
|
-
morphological_term: Mapped[ICDO3MorphologicalTerm]
|
|
37
|
+
morphological_code: Mapped[ICDO3MorphologicalCode | None]
|
|
38
|
+
morphological_term: Mapped[ICDO3MorphologicalTerm | None]
|
|
40
39
|
cancer_type_description: Mapped[str | None]
|
|
41
|
-
days_since_original_diagnosis: Mapped[NonPositiveInt]
|
|
40
|
+
days_since_original_diagnosis: Mapped[NonPositiveInt | None]
|
|
42
41
|
tumor_grade: Mapped[TumorGrade | None]
|
|
43
42
|
cancer_stage_system: Mapped[CancerStageSystem]
|
|
44
43
|
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)
|
|
44
|
+
cancer_stage: Mapped[CancerStage | None] = mapped_column(String)
|
|
45
|
+
t_category: Mapped[TCategory | None]
|
|
46
|
+
n_category: Mapped[NCategory | None]
|
|
47
|
+
m_category: Mapped[MCategory | None]
|
|
48
|
+
metastatic_organ: Mapped[List[UberonAnatomicalTerm] | None] = mapped_column(JSON, nullable=True)
|
|
50
49
|
solely_extramedullary_disease: Mapped[YNU]
|
|
51
50
|
extramedullary_organ: Mapped[List[UberonAnatomicalTerm]] = mapped_column(JSON, nullable=True)
|
|
52
51
|
|
|
@@ -11,11 +11,12 @@ class ExposureORM(BaseORM):
|
|
|
11
11
|
__tablename__ = "exposure"
|
|
12
12
|
__repr_attrs__ = ["exposure_id", "exposure_type", "carcinogen_exposure"]
|
|
13
13
|
__table_args__ = {"schema": "stage2"}
|
|
14
|
+
__data_category__ = "exposure"
|
|
14
15
|
|
|
15
16
|
exposure_id: Mapped[int] = mapped_column(primary_key=True)
|
|
16
17
|
participant_id: Mapped[int] = mapped_column(ForeignKey("stage2.participant.participant_id", ondelete="CASCADE"))
|
|
17
18
|
|
|
18
19
|
carcinogen_exposure: Mapped[YNU]
|
|
19
|
-
exposure_type: Mapped[ExposureType]
|
|
20
|
+
exposure_type: Mapped[ExposureType | None]
|
|
20
21
|
|
|
21
22
|
participant: Mapped["ParticipantORM"] = relationship(back_populates="exposures", cascade="all, delete")
|
|
@@ -19,6 +19,7 @@ class GVHDDiagnosisAcuteORM(BaseORM):
|
|
|
19
19
|
{"schema": "stage2"},
|
|
20
20
|
)
|
|
21
21
|
__repr_attrs__ = ["gvhd_diagnosis_acute_id", "pre_or_post_enrollment"]
|
|
22
|
+
__data_category__ = "gvhd_diagnosis_acute"
|
|
22
23
|
|
|
23
24
|
gvhd_diagnosis_acute_id: Mapped[int] = mapped_column(primary_key=True)
|
|
24
25
|
participant_id: Mapped[int] = mapped_column(ForeignKey("stage2.participant.participant_id", ondelete="CASCADE"))
|
|
@@ -21,6 +21,7 @@ class GVHDDiagnosisChronicORM(BaseORM):
|
|
|
21
21
|
{"schema": "stage2"},
|
|
22
22
|
)
|
|
23
23
|
__repr_attrs__ = ["gvhd_diagnosis_chronic_id", "pre_or_post_enrollment"]
|
|
24
|
+
__data_category__ = "gvhd_diagnosis_chronic"
|
|
24
25
|
|
|
25
26
|
gvhd_diagnosis_chronic_id: Mapped[int] = mapped_column(primary_key=True)
|
|
26
27
|
participant_id: Mapped[int] = mapped_column(ForeignKey("stage2.participant.participant_id", ondelete="CASCADE"))
|
|
@@ -9,6 +9,7 @@ class GVHDOrganAcuteORM(BaseORM):
|
|
|
9
9
|
__tablename__ = "gvhd_organ_acute"
|
|
10
10
|
__repr_attrs__ = ["gvhd_organ_acute_id", "organ"]
|
|
11
11
|
__table_args__ = {"schema": "stage2"}
|
|
12
|
+
__data_category__ = "gvhd_organ_acute"
|
|
12
13
|
|
|
13
14
|
gvhd_organ_acute_id: Mapped[int] = mapped_column(primary_key=True)
|
|
14
15
|
gvhd_diagnosis_acute_id: Mapped[int] = mapped_column(
|
|
@@ -9,6 +9,7 @@ class GVHDOrganChronicORM(BaseORM):
|
|
|
9
9
|
__tablename__ = "gvhd_organ_chronic"
|
|
10
10
|
__repr_attrs__ = ["gvhd_organ_chronic_id", "organ"]
|
|
11
11
|
__table_args__ = {"schema": "stage2"}
|
|
12
|
+
__data_category__ = "gvhd_organ_chronic"
|
|
12
13
|
|
|
13
14
|
gvhd_organ_chronic_id: Mapped[int] = mapped_column(primary_key=True)
|
|
14
15
|
gvhd_diagnosis_chronic_id: Mapped[int] = mapped_column(
|
|
@@ -12,6 +12,7 @@ class MedicalHistoryORM(BaseORM):
|
|
|
12
12
|
__tablename__ = "medical_history"
|
|
13
13
|
__repr_attrs__ = ["medical_history_id"]
|
|
14
14
|
__table_args__ = {"schema": "stage2"}
|
|
15
|
+
__data_category__ = "medical_history"
|
|
15
16
|
|
|
16
17
|
medical_history_id: Mapped[int] = mapped_column(primary_key=True)
|
|
17
18
|
participant_id: Mapped[int] = mapped_column(ForeignKey("stage2.participant.participant_id", ondelete="CASCADE"))
|
|
@@ -12,18 +12,19 @@ class OtherMalignancyORM(BaseORM):
|
|
|
12
12
|
__tablename__ = "other_malignancy"
|
|
13
13
|
__repr_attrs__ = ["other_malignancy_id", "primary_disease_site"]
|
|
14
14
|
__table_args__ = {"schema": "stage2"}
|
|
15
|
+
__data_category__ = "other_malignancy"
|
|
15
16
|
|
|
16
17
|
other_malignancy_id: Mapped[int] = mapped_column(primary_key=True)
|
|
17
18
|
medical_history_id: Mapped[int] = mapped_column(
|
|
18
19
|
ForeignKey("stage2.medical_history.medical_history_id", ondelete="CASCADE")
|
|
19
20
|
)
|
|
20
21
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
other_malignancy_primary_disease_site: Mapped[UberonAnatomicalTerm]
|
|
23
|
+
other_malignancy_morphological_code: Mapped[Optional[ICDO3MorphologicalCode]]
|
|
24
|
+
other_malignancy_morphological_term: Mapped[Optional[ICDO3MorphologicalTerm]]
|
|
25
|
+
other_malignancy_description: Mapped[Optional[str]]
|
|
26
|
+
other_malignancy_days_since_diagnosis: Mapped[Optional[NonPositiveInt]]
|
|
27
|
+
other_malignancy_status: Mapped[Optional[MalignancyStatus]]
|
|
27
28
|
|
|
28
29
|
medical_history: Mapped["MedicalHistoryORM"] = relationship(
|
|
29
30
|
back_populates="other_malignancies", cascade="all, delete"
|
|
@@ -4,7 +4,7 @@ from sqlalchemy import ForeignKey, ForeignKeyConstraint
|
|
|
4
4
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
5
5
|
|
|
6
6
|
from cidc_api.models.db.base_orm import BaseORM
|
|
7
|
-
from cidc_api.models.types import OffStudyReason
|
|
7
|
+
from cidc_api.models.types import OffStudyReason, YNU
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
class ParticipantORM(BaseORM):
|
|
@@ -16,17 +16,18 @@ class ParticipantORM(BaseORM):
|
|
|
16
16
|
),
|
|
17
17
|
{"schema": "stage2"},
|
|
18
18
|
)
|
|
19
|
+
__data_category__ = "participant"
|
|
19
20
|
|
|
20
21
|
participant_id: Mapped[int] = mapped_column(primary_key=True)
|
|
21
22
|
trial_id: Mapped[str]
|
|
22
23
|
version: Mapped[str]
|
|
23
24
|
|
|
24
|
-
native_participant_id: Mapped[str]
|
|
25
|
-
cimac_participant_id: Mapped[str
|
|
25
|
+
native_participant_id: Mapped[str | None]
|
|
26
|
+
cimac_participant_id: Mapped[str | None]
|
|
26
27
|
consent_group_id: Mapped[Optional[int]] = mapped_column(
|
|
27
28
|
ForeignKey("stage2.consent_group.consent_group_id", ondelete="CASCADE")
|
|
28
29
|
)
|
|
29
|
-
off_study: Mapped[
|
|
30
|
+
off_study: Mapped[YNU]
|
|
30
31
|
off_study_reason: Mapped[Optional[OffStudyReason]]
|
|
31
32
|
off_study_reason_other: Mapped[Optional[str]]
|
|
32
33
|
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
from typing import Optional, List
|
|
2
|
+
|
|
3
|
+
from pydantic import NonPositiveInt, NegativeInt
|
|
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 PriorTreatmentType, ConditioningRegimenType, StemCellDonorType
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class PriorTreatmentORM(BaseORM):
|
|
13
|
+
__tablename__ = "prior_treatment"
|
|
14
|
+
__repr_attrs__ = ["prior_treatment_id", "type"]
|
|
15
|
+
__table_args__ = {"schema": "stage2"}
|
|
16
|
+
__data_category__ = "prior_treatment"
|
|
17
|
+
|
|
18
|
+
prior_treatment_id: Mapped[int] = mapped_column(primary_key=True)
|
|
19
|
+
participant_id: Mapped[int] = mapped_column(ForeignKey("stage2.participant.participant_id", ondelete="CASCADE"))
|
|
20
|
+
|
|
21
|
+
prior_treatment_days_to_start: Mapped[Optional[NonPositiveInt]]
|
|
22
|
+
prior_treatment_days_to_end: Mapped[Optional[NonPositiveInt]]
|
|
23
|
+
prior_treatment_type: Mapped[List[PriorTreatmentType]] = mapped_column(JSON, nullable=False)
|
|
24
|
+
prior_treatment_description: Mapped[Optional[str]]
|
|
25
|
+
prior_treatment_best_response: Mapped[Optional[str]]
|
|
26
|
+
prior_treatment_conditioning_regimen_type: Mapped[Optional[ConditioningRegimenType]]
|
|
27
|
+
prior_treatment_stem_cell_donor_type: Mapped[Optional[StemCellDonorType]]
|
|
28
|
+
prior_treatment_days_to_prior_transplant: Mapped[Optional[NegativeInt]]
|
|
29
|
+
|
|
30
|
+
participant: Mapped["ParticipantORM"] = relationship(back_populates="prior_treatments", cascade="all, delete")
|
|
@@ -18,6 +18,7 @@ class RadiotherapyDoseORM(BaseORM):
|
|
|
18
18
|
__tablename__ = "radiotherapy_dose"
|
|
19
19
|
__repr_attrs__ = ["radiotherapy_dose_id", "procedure"]
|
|
20
20
|
__table_args__ = {"schema": "stage2"}
|
|
21
|
+
__data_category__ = "radiotherapy_dose"
|
|
21
22
|
|
|
22
23
|
radiotherapy_dose_id: Mapped[int] = mapped_column(primary_key=True)
|
|
23
24
|
treatment_id: Mapped[int] = mapped_column(ForeignKey("stage2.treatment.treatment_id", ondelete="CASCADE"))
|
|
@@ -10,6 +10,7 @@ class ResponseBySystemORM(BaseORM):
|
|
|
10
10
|
__tablename__ = "response_by_system"
|
|
11
11
|
__repr_attrs__ = ["response_by_system_id", "participant_id"]
|
|
12
12
|
__table_args__ = {"schema": "stage2"}
|
|
13
|
+
__data_category__ = "response_by_system"
|
|
13
14
|
|
|
14
15
|
response_by_system_id: Mapped[int] = mapped_column(primary_key=True)
|
|
15
16
|
participant_id: Mapped[int] = mapped_column(ForeignKey("stage2.participant.participant_id", ondelete="CASCADE"))
|
|
@@ -17,6 +18,7 @@ class ResponseBySystemORM(BaseORM):
|
|
|
17
18
|
response_system_version: Mapped[ResponseSystemVersion] = mapped_column(String)
|
|
18
19
|
best_overall_response: Mapped[BestOverallResponse] = mapped_column(String)
|
|
19
20
|
response_duration: Mapped[PositiveInt | None]
|
|
21
|
+
duration_of_stable_disease: Mapped[PositiveInt | None]
|
|
20
22
|
durable_clinical_benefit: Mapped[bool | None]
|
|
21
23
|
days_to_first_response: Mapped[PositiveInt | None]
|
|
22
24
|
days_to_best_response: Mapped[PositiveInt | None]
|
|
@@ -11,17 +11,18 @@ class ResponseORM(BaseORM):
|
|
|
11
11
|
__tablename__ = "response"
|
|
12
12
|
__repr_attrs__ = ["response_id", "participant_id"]
|
|
13
13
|
__table_args__ = {"schema": "stage2"}
|
|
14
|
+
__data_category__ = "response"
|
|
14
15
|
|
|
15
16
|
response_id: Mapped[int] = mapped_column(primary_key=True)
|
|
16
17
|
participant_id: Mapped[int] = mapped_column(ForeignKey("stage2.participant.participant_id", ondelete="CASCADE"))
|
|
17
18
|
survival_status: Mapped[SurvivalStatus]
|
|
18
|
-
overall_survival: Mapped[NonNegativeInt
|
|
19
|
+
overall_survival: Mapped[NonNegativeInt]
|
|
19
20
|
abscopal_response: Mapped[YNUNA | None]
|
|
20
21
|
pathological_complete_response: Mapped[YNUNA | None]
|
|
21
22
|
days_to_death: Mapped[NonNegativeInt | None]
|
|
22
23
|
cause_of_death: Mapped[CauseOfDeath | None]
|
|
23
24
|
evaluable_for_toxicity: Mapped[bool]
|
|
24
25
|
evaluable_for_efficacy: Mapped[bool]
|
|
25
|
-
|
|
26
|
+
days_to_last_vital_status: Mapped[NonNegativeInt | None]
|
|
26
27
|
|
|
27
28
|
participant: Mapped["ParticipantORM"] = relationship(back_populates="response", cascade="all, delete")
|
|
@@ -12,6 +12,7 @@ class StemCellTransplantORM(BaseORM):
|
|
|
12
12
|
__tablename__ = "stem_cell_transplant"
|
|
13
13
|
__repr_attrs__ = ["stem_cell_transplant_id"]
|
|
14
14
|
__table_args__ = {"schema": "stage2"}
|
|
15
|
+
__data_category__ = "stem_cell_transplant"
|
|
15
16
|
|
|
16
17
|
stem_cell_transplant_id: Mapped[int] = mapped_column(primary_key=True)
|
|
17
18
|
treatment_id: Mapped[int] = mapped_column(ForeignKey("stage2.treatment.treatment_id", ondelete="CASCADE"))
|
{nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/surgery_orm.py
RENAMED
|
@@ -12,6 +12,7 @@ class SurgeryORM(BaseORM):
|
|
|
12
12
|
__tablename__ = "surgery"
|
|
13
13
|
__repr_attrs__ = ["surgery_id", "procedure"]
|
|
14
14
|
__table_args__ = {"schema": "stage2"}
|
|
15
|
+
__data_category__ = "surgery"
|
|
15
16
|
|
|
16
17
|
surgery_id: Mapped[int] = mapped_column(primary_key=True)
|
|
17
18
|
treatment_id: Mapped[int] = mapped_column(ForeignKey("stage2.treatment.treatment_id", ondelete="CASCADE"))
|
|
@@ -12,6 +12,7 @@ class TherapyAgentDoseORM(BaseORM):
|
|
|
12
12
|
__tablename__ = "therapy_agent_dose"
|
|
13
13
|
__repr_attrs__ = ["therapy_agent_dose_id", "therapy_agent_name"]
|
|
14
14
|
__table_args__ = {"schema": "stage2"}
|
|
15
|
+
__data_category__ = "therapy_agent_dose"
|
|
15
16
|
|
|
16
17
|
therapy_agent_dose_id: Mapped[int] = mapped_column(primary_key=True)
|
|
17
18
|
treatment_id: Mapped[int] = mapped_column(ForeignKey("stage2.treatment.treatment_id", ondelete="CASCADE"))
|
|
@@ -11,6 +11,7 @@ class TreatmentORM(BaseORM):
|
|
|
11
11
|
__tablename__ = "treatment"
|
|
12
12
|
__repr_attrs__ = ["treatment_id", "participant_id", "treatment_description"]
|
|
13
13
|
__table_args__ = {"schema": "stage2"}
|
|
14
|
+
__data_category__ = "treatment"
|
|
14
15
|
|
|
15
16
|
treatment_id: Mapped[int] = mapped_column(primary_key=True)
|
|
16
17
|
participant_id: Mapped[int] = mapped_column(ForeignKey("stage2.participant.participant_id", ondelete="CASCADE"))
|
{nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/db/stage2/trial_orm.py
RENAMED
|
@@ -6,35 +6,38 @@ from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
|
6
6
|
from sqlalchemy.types import JSON
|
|
7
7
|
|
|
8
8
|
from cidc_api.models.db.base_orm import BaseORM
|
|
9
|
-
from cidc_api.models.types import
|
|
9
|
+
from cidc_api.models.types import AssayType, TrialOrganization, TrialFundingAgency, AgeGroup
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
class TrialORM(BaseORM):
|
|
13
13
|
__tablename__ = "trial"
|
|
14
14
|
__repr_attrs__ = ["trial_id", "version"]
|
|
15
15
|
__table_args__ = {"schema": "stage2"}
|
|
16
|
+
__data_category__ = "study"
|
|
16
17
|
|
|
17
18
|
trial_id: Mapped[str] = mapped_column(primary_key=True)
|
|
18
19
|
version: Mapped[str] = mapped_column(primary_key=True)
|
|
19
20
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
21
|
+
primary_endpoint: Mapped[str | None]
|
|
22
|
+
age_group: Mapped[List[AgeGroup]] = mapped_column(JSON, nullable=True)
|
|
23
|
+
study_population: Mapped[str | None]
|
|
24
|
+
nct_id: Mapped[str | None]
|
|
25
|
+
nci_id: Mapped[str | None]
|
|
26
|
+
trial_name: Mapped[str | None]
|
|
27
|
+
trial_type: Mapped[str | None]
|
|
28
|
+
trial_description: Mapped[str | None]
|
|
29
|
+
trial_organization: Mapped[TrialOrganization | None]
|
|
30
|
+
grant_or_affiliated_network: Mapped[TrialFundingAgency | None]
|
|
31
|
+
biobank_institution_id: Mapped[int | None]
|
|
32
|
+
justification: Mapped[str | None]
|
|
30
33
|
dates_of_conduct_start: Mapped[datetime]
|
|
31
|
-
dates_of_conduct_end: Mapped[
|
|
32
|
-
schema_file_id: Mapped[
|
|
33
|
-
biomarker_plan: Mapped[
|
|
34
|
-
data_sharing_plan: Mapped[
|
|
35
|
-
expected_assays: Mapped[
|
|
34
|
+
dates_of_conduct_end: Mapped[datetime | None]
|
|
35
|
+
schema_file_id: Mapped[int | None]
|
|
36
|
+
biomarker_plan: Mapped[str | None]
|
|
37
|
+
data_sharing_plan: Mapped[str | None]
|
|
38
|
+
expected_assays: Mapped[List[AssayType]] = mapped_column(JSON, nullable=True)
|
|
36
39
|
is_liquid_tumor_trial: Mapped[bool]
|
|
37
|
-
dbgap_study_accession: Mapped[
|
|
40
|
+
dbgap_study_accession: Mapped[str | None]
|
|
38
41
|
|
|
39
42
|
biobank: Mapped["InstitutionORM"] = relationship(back_populates="trial")
|
|
40
43
|
schema: Mapped[Optional["FileORM"]] = relationship(back_populates="trial", viewonly=True)
|
|
@@ -10,14 +10,16 @@ class AdditionalTreatment(Base):
|
|
|
10
10
|
additional_treatment_id: int | None = None
|
|
11
11
|
|
|
12
12
|
# The unique internal identifier for the associated Participant record
|
|
13
|
-
participant_id:
|
|
13
|
+
participant_id: str | None = (
|
|
14
|
+
None # TODO: fix all stage2 models for participant_id to not be nullable, after s1 models are complete
|
|
15
|
+
)
|
|
14
16
|
|
|
15
17
|
# Number of days from the enrollment date to the first recorded administration or occurrence of the treatment modality.
|
|
16
|
-
|
|
18
|
+
additional_treatment_days_to_start: NonNegativeInt | None = None
|
|
17
19
|
|
|
18
20
|
# Number of days from the enrollment date to the last recorded administration or occurrence of the treatment modality.
|
|
19
|
-
|
|
21
|
+
additional_treatment_days_to_end: NonNegativeInt | None = None
|
|
20
22
|
|
|
21
23
|
# Description of the prior treatment such as its full generic name if it is a type of therapy agent, radiotherapy procedure
|
|
22
24
|
# name and location, or surgical procedure name and location.
|
|
23
|
-
|
|
25
|
+
additional_treatment_description: str
|
|
@@ -25,7 +25,7 @@ class AdverseEvent(Base):
|
|
|
25
25
|
adverse_event_id: int | None = None
|
|
26
26
|
|
|
27
27
|
# The unique internal identifier of the associated participant
|
|
28
|
-
participant_id:
|
|
28
|
+
participant_id: str | None = None
|
|
29
29
|
|
|
30
30
|
# The unique internal identifier of the attributed treatment, if any
|
|
31
31
|
treatment_id: int | None = None
|
{nci_cidc_api_modules-1.2.28 → nci_cidc_api_modules-1.2.33}/cidc_api/models/pydantic/stage2/base.py
RENAMED
|
@@ -6,7 +6,11 @@ import copy
|
|
|
6
6
|
|
|
7
7
|
class Base(BaseModel):
|
|
8
8
|
|
|
9
|
-
model_config = ConfigDict(
|
|
9
|
+
model_config = ConfigDict(
|
|
10
|
+
validate_assignment=True,
|
|
11
|
+
from_attributes=True,
|
|
12
|
+
# extra="forbid" # TODO: enable me one stage1 models are implemented
|
|
13
|
+
)
|
|
10
14
|
|
|
11
15
|
# Validates the new state and updates the object if valid
|
|
12
16
|
def update(self, **kwargs):
|
|
@@ -28,3 +32,17 @@ class Base(BaseModel):
|
|
|
28
32
|
except:
|
|
29
33
|
self.__dict__.update(original_dict)
|
|
30
34
|
raise
|
|
35
|
+
|
|
36
|
+
@classmethod
|
|
37
|
+
def split_list(cls, val):
|
|
38
|
+
"""Listify fields that are multi-valued in input data, e.g. 'lung|kidney'"""
|
|
39
|
+
if type(val) == list:
|
|
40
|
+
return val
|
|
41
|
+
elif type(val) == str:
|
|
42
|
+
if not val:
|
|
43
|
+
return []
|
|
44
|
+
return val.split("|")
|
|
45
|
+
elif val == None:
|
|
46
|
+
return []
|
|
47
|
+
else:
|
|
48
|
+
raise ValueError("Field value must be string or list")
|
|
@@ -10,7 +10,7 @@ class BaselineClinicalAssessment(Base):
|
|
|
10
10
|
baseline_clinical_assessment_id: int | None = None
|
|
11
11
|
|
|
12
12
|
# The unique identifier for the associated participant
|
|
13
|
-
participant_id:
|
|
13
|
+
participant_id: str | None = None
|
|
14
14
|
|
|
15
15
|
# The numerical score that represents the functional capabilities of a participant at the
|
|
16
16
|
# enrollment date using the Eastern Cooperative Oncology Group Performance Status assessment.
|