nci-cidc-api-modules 1.2.52__tar.gz → 1.2.54__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.52/nci_cidc_api_modules.egg-info → nci_cidc_api_modules-1.2.54}/PKG-INFO +1 -1
- nci_cidc_api_modules-1.2.54/cidc_api/__init__.py +1 -0
- nci_cidc_api_modules-1.2.54/cidc_api/models/code_systems.py +29 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage1/adverse_event_orm.py +2 -1
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage1/demographic_orm.py +2 -1
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage1/radiotherapy_dose_orm.py +3 -2
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage1/response_by_system_orm.py +2 -2
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage1/response_orm.py +3 -3
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/adverse_event_orm.py +2 -1
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/demographic_orm.py +2 -1
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/radiotherapy_dose_orm.py +2 -1
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/response_by_system_orm.py +2 -2
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/response_orm.py +3 -3
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage1/adverse_event.py +3 -2
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage1/demographic.py +5 -4
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage1/radiotherapy_dose.py +2 -1
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage1/response.py +3 -3
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage1/response_by_system.py +2 -2
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/adverse_event.py +3 -2
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/demographic.py +5 -4
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/radiotherapy_dose.py +2 -1
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/response.py +3 -3
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/response_by_system.py +2 -2
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/types.py +11 -5
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54/nci_cidc_api_modules.egg-info}/PKG-INFO +1 -1
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/nci_cidc_api_modules.egg-info/SOURCES.txt +1 -5
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/setup.py +0 -1
- nci_cidc_api_modules-1.2.52/cidc_api/__init__.py +0 -1
- nci_cidc_api_modules-1.2.52/cidc_api/reference/ctcae.py +0 -34
- nci_cidc_api_modules-1.2.52/cidc_api/reference/gvhd.py +0 -6
- nci_cidc_api_modules-1.2.52/cidc_api/reference/icd10cm.py +0 -12
- nci_cidc_api_modules-1.2.52/cidc_api/reference/icdo3.py +0 -12
- nci_cidc_api_modules-1.2.52/cidc_api/reference/uberon.py +0 -5
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/LICENSE +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/MANIFEST.in +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/README.md +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/boot.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/config/__init__.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/config/db.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/config/logging.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/config/secrets.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/config/settings.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/__init__.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/data.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage1/__init__.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage1/additional_treatment_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage1/base_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage1/baseline_clinical_assessment_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage1/comorbidity_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage1/consent_group_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage1/disease_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage1/exposure_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage1/gvhd_diagnosis_acute_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage1/gvhd_diagnosis_chronic_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage1/gvhd_organ_acute_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage1/gvhd_organ_chronic_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage1/medical_history_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage1/other_malignancy_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage1/participant_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage1/prior_treatment_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage1/specimen_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage1/stem_cell_transplant_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage1/surgery_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage1/therapy_agent_dose_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage1/treatment_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage1/trial_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/__init__.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/additional_treatment_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/administrative_person_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/administrative_role_assignment_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/arm_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/base_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/baseline_clinical_assessment_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/cohort_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/comorbidity_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/consent_group_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/contact_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/disease_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/exposure_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/file_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/gvhd_diagnosis_acute_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/gvhd_diagnosis_chronic_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/gvhd_organ_acute_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/gvhd_organ_chronic_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/institution_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/medical_history_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/other_clinical_endpoint_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/other_malignancy_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/participant_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/prior_treatment_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/publication_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/shipment_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/shipment_specimen_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/specimen_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/stem_cell_transplant_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/surgery_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/therapy_agent_dose_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/treatment_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/db/stage2/trial_orm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/errors.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/files/__init__.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/files/details.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/files/facets.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/migrations.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/models.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/base.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage1/__init__.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage1/additional_treatment.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage1/baseline_clinical_assessment.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage1/comorbidity.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage1/consent_group.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage1/disease.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage1/exposure.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage1/gvhd_diagnosis_acute.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage1/gvhd_diagnosis_chronic.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage1/gvhd_organ_acute.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage1/gvhd_organ_chronic.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage1/medical_history.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage1/other_malignancy.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage1/participant.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage1/prior_treatment.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage1/specimen.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage1/stem_cell_transplant.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage1/surgery.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage1/therapy_agent_dose.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage1/treatment.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage1/trial.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/__init__.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/additional_treatment.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/administrative_person.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/administrative_role_assignment.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/arm.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/baseline_clinical_assessment.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/cohort.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/comorbidity.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/consent_group.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/contact.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/disease.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/exposure.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/file.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/gvhd_diagnosis_acute.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/gvhd_diagnosis_chronic.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/gvhd_organ_acute.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/gvhd_organ_chronic.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/institution.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/medical_history.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/other_clinical_endpoint.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/other_malignancy.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/participant.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/prior_treatment.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/publication.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/shipment.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/shipment_specimen.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/specimen.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/stem_cell_transplant.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/surgery.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/therapy_agent_dose.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/treatment.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/pydantic/stage2/trial.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/models/schemas.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/shared/__init__.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/shared/assay_handling.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/shared/auth.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/shared/email_layout.html +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/shared/emails.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/shared/file_handling.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/shared/gcloud_client.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/shared/jose.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/shared/rest_utils.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/shared/utils.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/cidc_api/telemetry.py +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/nci_cidc_api_modules.egg-info/dependency_links.txt +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/nci_cidc_api_modules.egg-info/not-zip-safe +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/nci_cidc_api_modules.egg-info/requires.txt +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/nci_cidc_api_modules.egg-info/top_level.txt +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/pyproject.toml +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/requirements.modules.txt +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/setup.cfg +0 -0
- {nci_cidc_api_modules-1.2.52 → nci_cidc_api_modules-1.2.54}/tests/test_api.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.2.54"
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
from typing import Optional
|
|
2
|
+
|
|
3
|
+
from sqlalchemy import MetaData, String
|
|
4
|
+
from sqlalchemy.orm import declarative_base, mapped_column, Mapped
|
|
5
|
+
|
|
6
|
+
SCHEMA = "code_systems"
|
|
7
|
+
|
|
8
|
+
metadata_obj = MetaData(schema=SCHEMA)
|
|
9
|
+
Base = declarative_base(metadata=metadata_obj)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class Ctcae60(Base):
|
|
13
|
+
__tablename__ = "ctcae_60"
|
|
14
|
+
|
|
15
|
+
code: Mapped[str] = mapped_column(String(8), primary_key=True)
|
|
16
|
+
term: Mapped[Optional[str]] = mapped_column(String(255), nullable=True)
|
|
17
|
+
|
|
18
|
+
def __repr__(self) -> str:
|
|
19
|
+
return f"Ctcae60(code={self.code!r}, term={self.term!r})"
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class Icdo3(Base):
|
|
23
|
+
__tablename__ = "icdo_3"
|
|
24
|
+
|
|
25
|
+
morphological_code: Mapped[str] = mapped_column(String(6), primary_key=True)
|
|
26
|
+
morphological_term: Mapped[Optional[str]] = mapped_column(String(255), nullable=True)
|
|
27
|
+
|
|
28
|
+
def __repr__(self) -> str:
|
|
29
|
+
return f"Icdo3(morphological_code={self.morphological_code!r}, morphological_term={self.morphological_term!r})"
|
|
@@ -13,6 +13,7 @@ from cidc_api.models.types import (
|
|
|
13
13
|
SystemOrganClass,
|
|
14
14
|
AttributionCause,
|
|
15
15
|
AttributionLikelihood,
|
|
16
|
+
YN,
|
|
16
17
|
YNU,
|
|
17
18
|
)
|
|
18
19
|
|
|
@@ -33,7 +34,7 @@ class AdverseEventORM(BaseORM):
|
|
|
33
34
|
severity_grade: Mapped[SeverityGrade]
|
|
34
35
|
event_other_specify: Mapped[str | None]
|
|
35
36
|
system_organ_class: Mapped[SystemOrganClass | None]
|
|
36
|
-
discontinuation_due_to_event: Mapped[
|
|
37
|
+
discontinuation_due_to_event: Mapped[YN]
|
|
37
38
|
days_to_onset_of_event: Mapped[NonNegativeInt]
|
|
38
39
|
days_to_resolution_of_event: Mapped[NonNegativeInt | None]
|
|
39
40
|
serious_adverse_event: Mapped[YNU]
|
|
@@ -17,6 +17,7 @@ from cidc_api.models.types import (
|
|
|
17
17
|
Occupation,
|
|
18
18
|
Education,
|
|
19
19
|
AgeAtEnrollmentUnits,
|
|
20
|
+
YN,
|
|
20
21
|
)
|
|
21
22
|
|
|
22
23
|
|
|
@@ -29,7 +30,7 @@ class DemographicORM(BaseORM):
|
|
|
29
30
|
participant_id: Mapped[int] = mapped_column(ForeignKey("stage1.participant.participant_id", ondelete="CASCADE"))
|
|
30
31
|
age_at_enrollment: Mapped[PositiveInt | None]
|
|
31
32
|
age_at_enrollment_units: Mapped[AgeAtEnrollmentUnits | None]
|
|
32
|
-
age_90_or_over: Mapped[
|
|
33
|
+
age_90_or_over: Mapped[YN]
|
|
33
34
|
sex: Mapped[Sex]
|
|
34
35
|
race: Mapped[List[Race]] = mapped_column(JSON)
|
|
35
36
|
ethnicity: Mapped[Ethnicity]
|
|
@@ -9,8 +9,9 @@ from cidc_api.models.types import (
|
|
|
9
9
|
RadiotherapyProcedure,
|
|
10
10
|
UberonAnatomicalTerm,
|
|
11
11
|
RadiotherapyDoseUnits,
|
|
12
|
-
YNU,
|
|
13
12
|
RadiationExtent,
|
|
13
|
+
YN,
|
|
14
|
+
YNU,
|
|
14
15
|
)
|
|
15
16
|
|
|
16
17
|
|
|
@@ -26,7 +27,7 @@ class RadiotherapyDoseORM(BaseORM):
|
|
|
26
27
|
days_to_end: Mapped[NonNegativeInt]
|
|
27
28
|
procedure: Mapped[RadiotherapyProcedure]
|
|
28
29
|
anatomical_location: Mapped[UberonAnatomicalTerm | None]
|
|
29
|
-
is_total_dose: Mapped[
|
|
30
|
+
is_total_dose: Mapped[YN]
|
|
30
31
|
number_of_fractions: Mapped[NonNegativeInt | None]
|
|
31
32
|
received_dose: Mapped[NonNegativeFloat]
|
|
32
33
|
received_dose_units: Mapped[RadiotherapyDoseUnits]
|
|
@@ -4,7 +4,7 @@ from sqlalchemy import ForeignKey, String
|
|
|
4
4
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
5
5
|
|
|
6
6
|
from cidc_api.models.db.stage1.base_orm import BaseORM
|
|
7
|
-
from cidc_api.models.types import ResponseSystem, ResponseSystemVersion, BestOverallResponse, YNUNA
|
|
7
|
+
from cidc_api.models.types import ResponseSystem, ResponseSystemVersion, BestOverallResponse, YNUNA, YN
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
class ResponseBySystemORM(BaseORM):
|
|
@@ -19,7 +19,7 @@ class ResponseBySystemORM(BaseORM):
|
|
|
19
19
|
best_overall_response: Mapped[BestOverallResponse] = mapped_column(String)
|
|
20
20
|
response_duration: Mapped[PositiveInt | None]
|
|
21
21
|
duration_of_stable_disease: Mapped[PositiveInt | None]
|
|
22
|
-
durable_clinical_benefit: Mapped[
|
|
22
|
+
durable_clinical_benefit: Mapped[YN | None]
|
|
23
23
|
days_to_first_response: Mapped[PositiveInt | None]
|
|
24
24
|
days_to_best_response: Mapped[PositiveInt | None]
|
|
25
25
|
progression: Mapped[YNUNA]
|
|
@@ -5,7 +5,7 @@ from sqlalchemy import ForeignKey
|
|
|
5
5
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
6
6
|
|
|
7
7
|
from cidc_api.models.db.stage1.base_orm import BaseORM
|
|
8
|
-
from cidc_api.models.types import SurvivalStatus, YNUNA, CauseOfDeath
|
|
8
|
+
from cidc_api.models.types import SurvivalStatus, YNUNA, CauseOfDeath, YN
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
class ResponseORM(BaseORM):
|
|
@@ -21,8 +21,8 @@ class ResponseORM(BaseORM):
|
|
|
21
21
|
pathological_complete_response: Mapped[YNUNA | None]
|
|
22
22
|
days_to_death: Mapped[NonNegativeInt | None]
|
|
23
23
|
cause_of_death: Mapped[CauseOfDeath | None]
|
|
24
|
-
evaluable_for_toxicity: Mapped[
|
|
25
|
-
evaluable_for_efficacy: Mapped[
|
|
24
|
+
evaluable_for_toxicity: Mapped[YN]
|
|
25
|
+
evaluable_for_efficacy: Mapped[YN]
|
|
26
26
|
days_to_last_vital_status: Mapped[NonNegativeInt | None]
|
|
27
27
|
|
|
28
28
|
participant: Mapped[ParticipantORM] = relationship(back_populates="response", cascade="all, delete")
|
|
@@ -13,6 +13,7 @@ from cidc_api.models.types import (
|
|
|
13
13
|
SystemOrganClass,
|
|
14
14
|
AttributionCause,
|
|
15
15
|
AttributionLikelihood,
|
|
16
|
+
YN,
|
|
16
17
|
YNU,
|
|
17
18
|
)
|
|
18
19
|
|
|
@@ -33,7 +34,7 @@ class AdverseEventORM(BaseORM):
|
|
|
33
34
|
severity_grade: Mapped[SeverityGrade]
|
|
34
35
|
event_other_specify: Mapped[str | None]
|
|
35
36
|
system_organ_class: Mapped[SystemOrganClass | None]
|
|
36
|
-
discontinuation_due_to_event: Mapped[
|
|
37
|
+
discontinuation_due_to_event: Mapped[YN]
|
|
37
38
|
days_to_onset_of_event: Mapped[NonNegativeInt]
|
|
38
39
|
days_to_resolution_of_event: Mapped[NonNegativeInt | None]
|
|
39
40
|
serious_adverse_event: Mapped[YNU]
|
|
@@ -17,6 +17,7 @@ from cidc_api.models.types import (
|
|
|
17
17
|
Occupation,
|
|
18
18
|
Education,
|
|
19
19
|
AgeAtEnrollmentUnits,
|
|
20
|
+
YN,
|
|
20
21
|
)
|
|
21
22
|
|
|
22
23
|
|
|
@@ -29,7 +30,7 @@ class DemographicORM(BaseORM):
|
|
|
29
30
|
participant_id: Mapped[int] = mapped_column(ForeignKey("stage2.participant.participant_id", ondelete="CASCADE"))
|
|
30
31
|
age_at_enrollment: Mapped[PositiveInt | None]
|
|
31
32
|
age_at_enrollment_units: Mapped[AgeAtEnrollmentUnits | None]
|
|
32
|
-
age_90_or_over: Mapped[
|
|
33
|
+
age_90_or_over: Mapped[YN]
|
|
33
34
|
sex: Mapped[Sex]
|
|
34
35
|
race: Mapped[List[Race]] = mapped_column(JSON)
|
|
35
36
|
ethnicity: Mapped[Ethnicity]
|
|
@@ -9,6 +9,7 @@ from cidc_api.models.types import (
|
|
|
9
9
|
RadiotherapyProcedure,
|
|
10
10
|
UberonAnatomicalTerm,
|
|
11
11
|
RadiotherapyDoseUnits,
|
|
12
|
+
YN,
|
|
12
13
|
YNU,
|
|
13
14
|
RadiationExtent,
|
|
14
15
|
)
|
|
@@ -26,7 +27,7 @@ class RadiotherapyDoseORM(BaseORM):
|
|
|
26
27
|
days_to_end: Mapped[NonNegativeInt]
|
|
27
28
|
procedure: Mapped[RadiotherapyProcedure]
|
|
28
29
|
anatomical_location: Mapped[UberonAnatomicalTerm | None]
|
|
29
|
-
is_total_dose: Mapped[
|
|
30
|
+
is_total_dose: Mapped[YN]
|
|
30
31
|
number_of_fractions: Mapped[NonNegativeInt | None]
|
|
31
32
|
received_dose: Mapped[NonNegativeFloat]
|
|
32
33
|
received_dose_units: Mapped[RadiotherapyDoseUnits]
|
|
@@ -4,7 +4,7 @@ from sqlalchemy import ForeignKey, String
|
|
|
4
4
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
5
5
|
|
|
6
6
|
from cidc_api.models.db.stage2.base_orm import BaseORM
|
|
7
|
-
from cidc_api.models.types import ResponseSystem, ResponseSystemVersion, BestOverallResponse, YNUNA
|
|
7
|
+
from cidc_api.models.types import ResponseSystem, ResponseSystemVersion, BestOverallResponse, YNUNA, YN
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
class ResponseBySystemORM(BaseORM):
|
|
@@ -19,7 +19,7 @@ class ResponseBySystemORM(BaseORM):
|
|
|
19
19
|
best_overall_response: Mapped[BestOverallResponse] = mapped_column(String)
|
|
20
20
|
response_duration: Mapped[PositiveInt | None]
|
|
21
21
|
duration_of_stable_disease: Mapped[PositiveInt | None]
|
|
22
|
-
durable_clinical_benefit: Mapped[
|
|
22
|
+
durable_clinical_benefit: Mapped[YN | None]
|
|
23
23
|
days_to_first_response: Mapped[PositiveInt | None]
|
|
24
24
|
days_to_best_response: Mapped[PositiveInt | None]
|
|
25
25
|
progression: Mapped[YNUNA]
|
|
@@ -5,7 +5,7 @@ from sqlalchemy import ForeignKey
|
|
|
5
5
|
from sqlalchemy.orm import Mapped, mapped_column, relationship
|
|
6
6
|
|
|
7
7
|
from cidc_api.models.db.stage2.base_orm import BaseORM
|
|
8
|
-
from cidc_api.models.types import SurvivalStatus, YNUNA, CauseOfDeath
|
|
8
|
+
from cidc_api.models.types import SurvivalStatus, YNUNA, YN, CauseOfDeath
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
class ResponseORM(BaseORM):
|
|
@@ -21,8 +21,8 @@ class ResponseORM(BaseORM):
|
|
|
21
21
|
pathological_complete_response: Mapped[YNUNA | None]
|
|
22
22
|
days_to_death: Mapped[NonNegativeInt | None]
|
|
23
23
|
cause_of_death: Mapped[CauseOfDeath | None]
|
|
24
|
-
evaluable_for_toxicity: Mapped[
|
|
25
|
-
evaluable_for_efficacy: Mapped[
|
|
24
|
+
evaluable_for_toxicity: Mapped[YN]
|
|
25
|
+
evaluable_for_efficacy: Mapped[YN]
|
|
26
26
|
days_to_last_vital_status: Mapped[NonNegativeInt | None]
|
|
27
27
|
|
|
28
28
|
participant: Mapped[ParticipantORM] = relationship(back_populates="response", cascade="all, delete")
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from pydantic import NonNegativeInt
|
|
2
2
|
|
|
3
3
|
from cidc_api.models.pydantic.base import Base
|
|
4
|
-
from cidc_api.
|
|
4
|
+
from cidc_api.code_systems.ctcae import is_ctcae_other_term
|
|
5
5
|
from cidc_api.models.pydantic.base import forced_validator, forced_validators
|
|
6
6
|
from cidc_api.models.errors import ValueLocError
|
|
7
7
|
from cidc_api.models.types import (
|
|
@@ -13,6 +13,7 @@ from cidc_api.models.types import (
|
|
|
13
13
|
SystemOrganClass,
|
|
14
14
|
AttributionCause,
|
|
15
15
|
AttributionLikelihood,
|
|
16
|
+
YN,
|
|
16
17
|
YNU,
|
|
17
18
|
)
|
|
18
19
|
|
|
@@ -53,7 +54,7 @@ class AdverseEvent(Base):
|
|
|
53
54
|
system_organ_class: SystemOrganClass | None = None
|
|
54
55
|
|
|
55
56
|
# Indicator to identify whether a participant exited the study prematurely due to the adverse event being described.
|
|
56
|
-
discontinuation_due_to_event:
|
|
57
|
+
discontinuation_due_to_event: YN
|
|
57
58
|
|
|
58
59
|
# Days from enrollment date to date of onset of the adverse event.
|
|
59
60
|
days_to_onset_of_event: NonNegativeInt
|
|
@@ -15,6 +15,7 @@ from cidc_api.models.types import (
|
|
|
15
15
|
Occupation,
|
|
16
16
|
Education,
|
|
17
17
|
AgeAtEnrollmentUnits,
|
|
18
|
+
YN,
|
|
18
19
|
)
|
|
19
20
|
|
|
20
21
|
|
|
@@ -39,7 +40,7 @@ class Demographic(Base):
|
|
|
39
40
|
|
|
40
41
|
# Indicates whether the participant is 90 years old or over. (for PHI purposes)
|
|
41
42
|
# CDE: https://cadsr.cancer.gov/onedata/dmdirect/NIH/NCI/CO/CDEDD?filter=CDEDD.ITEM_ID=15354920%20and%20ver_nr=1
|
|
42
|
-
age_90_or_over:
|
|
43
|
+
age_90_or_over: YN
|
|
43
44
|
|
|
44
45
|
# A textual description of a person's sex at birth. e.g. "Male"
|
|
45
46
|
# CDE: https://cadsr.cancer.gov/onedata/dmdirect/NIH/NCI/CO/CDEDD?filter=CDEDD.ITEM_ID=7572817%20and%20ver_nr=3
|
|
@@ -100,13 +101,13 @@ class Demographic(Base):
|
|
|
100
101
|
age_90_or_over = data.get("age_90_or_over", None)
|
|
101
102
|
age_at_enrollment = int(data.get("age_at_enrollment", None) or 0)
|
|
102
103
|
|
|
103
|
-
if age_90_or_over:
|
|
104
|
+
if age_90_or_over == "Yes":
|
|
104
105
|
if age_at_enrollment or age_at_enrollment_units:
|
|
105
106
|
raise ValueLocError(
|
|
106
107
|
'If "age_90_or_over" is "Yes" then "age_at_enrollment" and "age_at_enrollment_units" must be blank.',
|
|
107
108
|
loc="age_at_enrollment",
|
|
108
109
|
)
|
|
109
|
-
|
|
110
|
+
elif age_90_or_over == "No":
|
|
110
111
|
if not age_at_enrollment or not age_at_enrollment_units:
|
|
111
112
|
raise ValueLocError(
|
|
112
113
|
'If "age_90_or_over" is "No" then "age_at_enrollment" and "age_at_enrollment_units" are required.',
|
|
@@ -120,7 +121,7 @@ class Demographic(Base):
|
|
|
120
121
|
age_90_or_over = data.get("age_90_or_over", None)
|
|
121
122
|
age_at_enrollment = int(data.get("age_at_enrollment", None) or 0)
|
|
122
123
|
|
|
123
|
-
if
|
|
124
|
+
if age_90_or_over == "No":
|
|
124
125
|
age_in_years = age_at_enrollment if age_at_enrollment_units == "Years" else age_at_enrollment / 365.25
|
|
125
126
|
if age_in_years >= 90:
|
|
126
127
|
raise ValueLocError(
|
|
@@ -4,6 +4,7 @@ from cidc_api.models.pydantic.base import forced_validator, forced_validators
|
|
|
4
4
|
from cidc_api.models.errors import ValueLocError
|
|
5
5
|
from cidc_api.models.pydantic.base import Base
|
|
6
6
|
from cidc_api.models.types import (
|
|
7
|
+
YN,
|
|
7
8
|
YNU,
|
|
8
9
|
RadiotherapyProcedure,
|
|
9
10
|
UberonAnatomicalTerm,
|
|
@@ -38,7 +39,7 @@ class RadiotherapyDose(Base):
|
|
|
38
39
|
|
|
39
40
|
# Indicates whether the record represents the total dose for a radiotherapy treatment course (which may be either
|
|
40
41
|
# a multi-fractionated or a single-fraction dose).
|
|
41
|
-
is_total_dose:
|
|
42
|
+
is_total_dose: YN
|
|
42
43
|
|
|
43
44
|
# The number of fractions a participant received to deliver the radiation dose.
|
|
44
45
|
number_of_fractions: NonNegativeInt | None = None
|
|
@@ -3,7 +3,7 @@ from cidc_api.models.pydantic.base import forced_validator, forced_validators
|
|
|
3
3
|
|
|
4
4
|
from cidc_api.models.errors import ValueLocError
|
|
5
5
|
from cidc_api.models.pydantic.base import Base
|
|
6
|
-
from cidc_api.models.types import SurvivalStatus, YNUNA, CauseOfDeath
|
|
6
|
+
from cidc_api.models.types import SurvivalStatus, YNUNA, YN, CauseOfDeath
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
@forced_validators
|
|
@@ -39,10 +39,10 @@ class Response(Base):
|
|
|
39
39
|
cause_of_death: CauseOfDeath | None = None
|
|
40
40
|
|
|
41
41
|
# Indicates whether participant was evaluable for toxicity (adverse events, DLT, etc.) overall.
|
|
42
|
-
evaluable_for_toxicity:
|
|
42
|
+
evaluable_for_toxicity: YN
|
|
43
43
|
|
|
44
44
|
# Indicates whether participant was evaluable for efficacy (for example, response, PFS, OS, etc.) overall.
|
|
45
|
-
evaluable_for_efficacy:
|
|
45
|
+
evaluable_for_efficacy: YN
|
|
46
46
|
|
|
47
47
|
# Days from enrollment date to the last time the patient's vital status was verified.
|
|
48
48
|
days_to_last_vital_status: NonNegativeInt | None = None
|
|
@@ -6,7 +6,7 @@ from cidc_api.models.pydantic.base import forced_validator, forced_validators
|
|
|
6
6
|
from cidc_api.models.errors import ValueLocError
|
|
7
7
|
from cidc_api.models.pydantic.base import Base
|
|
8
8
|
from cidc_api.models.pydantic.stage1.response import Response
|
|
9
|
-
from cidc_api.models.types import ResponseSystem, ResponseSystemVersion, BestOverallResponse, YNUNA
|
|
9
|
+
from cidc_api.models.types import ResponseSystem, ResponseSystemVersion, BestOverallResponse, YNUNA, YN
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
negative_response_values = [
|
|
@@ -52,7 +52,7 @@ class ResponseBySystem(Base):
|
|
|
52
52
|
duration_of_stable_disease: NonNegativeInt | None = None
|
|
53
53
|
|
|
54
54
|
# Indicates whether a patient achieved a durable clinical benefit.
|
|
55
|
-
durable_clinical_benefit:
|
|
55
|
+
durable_clinical_benefit: YN | None = None
|
|
56
56
|
|
|
57
57
|
# Number of days between enrollment date and the date of first response to trial treatment.
|
|
58
58
|
days_to_first_response: PositiveInt | None = None
|
|
@@ -3,7 +3,7 @@ from typing import Self
|
|
|
3
3
|
from pydantic import NonNegativeInt, model_validator
|
|
4
4
|
|
|
5
5
|
from cidc_api.models.pydantic.base import Base
|
|
6
|
-
from cidc_api.
|
|
6
|
+
from cidc_api.code_systems.ctcae import is_ctcae_other_term
|
|
7
7
|
from cidc_api.models.types import (
|
|
8
8
|
CTCAEEventTerm,
|
|
9
9
|
CTCAEEventCode,
|
|
@@ -14,6 +14,7 @@ from cidc_api.models.types import (
|
|
|
14
14
|
AttributionCause,
|
|
15
15
|
AttributionLikelihood,
|
|
16
16
|
YNU,
|
|
17
|
+
YN,
|
|
17
18
|
)
|
|
18
19
|
|
|
19
20
|
|
|
@@ -52,7 +53,7 @@ class AdverseEvent(Base):
|
|
|
52
53
|
system_organ_class: SystemOrganClass | None = None
|
|
53
54
|
|
|
54
55
|
# Indicator to identify whether a participant exited the study prematurely due to the adverse event being described.
|
|
55
|
-
discontinuation_due_to_event:
|
|
56
|
+
discontinuation_due_to_event: YN
|
|
56
57
|
|
|
57
58
|
# Days from enrollment date to date of onset of the adverse event.
|
|
58
59
|
days_to_onset_of_event: NonNegativeInt
|
|
@@ -13,6 +13,7 @@ from cidc_api.models.types import (
|
|
|
13
13
|
Occupation,
|
|
14
14
|
Education,
|
|
15
15
|
AgeAtEnrollmentUnits,
|
|
16
|
+
YN,
|
|
16
17
|
)
|
|
17
18
|
|
|
18
19
|
|
|
@@ -36,7 +37,7 @@ class Demographic(Base):
|
|
|
36
37
|
|
|
37
38
|
# Indicates whether the participant is 90 years old or over. (for PHI purposes)
|
|
38
39
|
# CDE: https://cadsr.cancer.gov/onedata/dmdirect/NIH/NCI/CO/CDEDD?filter=CDEDD.ITEM_ID=15354920%20and%20ver_nr=1
|
|
39
|
-
age_90_or_over:
|
|
40
|
+
age_90_or_over: YN
|
|
40
41
|
|
|
41
42
|
# A textual description of a person's sex at birth. e.g. "Male"
|
|
42
43
|
# CDE: https://cadsr.cancer.gov/onedata/dmdirect/NIH/NCI/CO/CDEDD?filter=CDEDD.ITEM_ID=7572817%20and%20ver_nr=3
|
|
@@ -92,12 +93,12 @@ class Demographic(Base):
|
|
|
92
93
|
|
|
93
94
|
@model_validator(mode="after")
|
|
94
95
|
def validate_age_at_enrollment_cr(self) -> Self:
|
|
95
|
-
if self.age_90_or_over:
|
|
96
|
+
if self.age_90_or_over == "Yes":
|
|
96
97
|
if self.age_at_enrollment or self.age_at_enrollment_units:
|
|
97
98
|
raise ValueError(
|
|
98
99
|
'If "age_90_or_over" is "Yes" then "age_at_enrollment" and "age_at_enrollment_units" must be blank.'
|
|
99
100
|
)
|
|
100
|
-
|
|
101
|
+
elif self.age_90_or_over == "No":
|
|
101
102
|
if not self.age_at_enrollment or not self.age_at_enrollment_units:
|
|
102
103
|
raise ValueError(
|
|
103
104
|
'If "age_90_or_over" is "No" then "age_at_enrollment" and "age_at_enrollment_units" are required.'
|
|
@@ -106,7 +107,7 @@ class Demographic(Base):
|
|
|
106
107
|
|
|
107
108
|
@model_validator(mode="after")
|
|
108
109
|
def validate_age_at_enrollment_value(self) -> Self:
|
|
109
|
-
if
|
|
110
|
+
if self.age_90_or_over == "No":
|
|
110
111
|
age_in_years = (
|
|
111
112
|
self.age_at_enrollment if self.age_at_enrollment_units == "Years" else self.age_at_enrollment / 365.25
|
|
112
113
|
)
|
|
@@ -4,6 +4,7 @@ from pydantic import NonNegativeInt, NonNegativeFloat, model_validator
|
|
|
4
4
|
|
|
5
5
|
from cidc_api.models.pydantic.base import Base
|
|
6
6
|
from cidc_api.models.types import (
|
|
7
|
+
YN,
|
|
7
8
|
YNU,
|
|
8
9
|
RadiotherapyProcedure,
|
|
9
10
|
UberonAnatomicalTerm,
|
|
@@ -37,7 +38,7 @@ class RadiotherapyDose(Base):
|
|
|
37
38
|
|
|
38
39
|
# Indicates whether the record represents the total dose for a radiotherapy treatment course (which may be either
|
|
39
40
|
# a multi-fractionated or a single-fraction dose).
|
|
40
|
-
is_total_dose:
|
|
41
|
+
is_total_dose: YN
|
|
41
42
|
|
|
42
43
|
# The number of fractions a participant received to deliver the radiation dose.
|
|
43
44
|
number_of_fractions: NonNegativeInt | None = None
|
|
@@ -3,7 +3,7 @@ from typing import Self
|
|
|
3
3
|
from pydantic import NonNegativeInt, model_validator
|
|
4
4
|
|
|
5
5
|
from cidc_api.models.pydantic.base import Base
|
|
6
|
-
from cidc_api.models.types import SurvivalStatus, YNUNA, CauseOfDeath
|
|
6
|
+
from cidc_api.models.types import SurvivalStatus, YN, YNUNA, CauseOfDeath
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
class Response(Base):
|
|
@@ -38,10 +38,10 @@ class Response(Base):
|
|
|
38
38
|
cause_of_death: CauseOfDeath | None = None
|
|
39
39
|
|
|
40
40
|
# Indicates whether participant was evaluable for toxicity (adverse events, DLT, etc.) overall.
|
|
41
|
-
evaluable_for_toxicity:
|
|
41
|
+
evaluable_for_toxicity: YN
|
|
42
42
|
|
|
43
43
|
# Indicates whether participant was evaluable for efficacy (for example, response, PFS, OS, etc.) overall.
|
|
44
|
-
evaluable_for_efficacy:
|
|
44
|
+
evaluable_for_efficacy: YN
|
|
45
45
|
|
|
46
46
|
# Days from enrollment date to the last time the patient's vital status was verified.
|
|
47
47
|
days_to_last_vital_status: NonNegativeInt | None = None # TODO: Needs CR check
|
|
@@ -3,7 +3,7 @@ from typing import Self
|
|
|
3
3
|
from pydantic import PositiveInt, model_validator, NonNegativeInt
|
|
4
4
|
|
|
5
5
|
from cidc_api.models.pydantic.base import Base
|
|
6
|
-
from cidc_api.models.types import ResponseSystem, ResponseSystemVersion, BestOverallResponse, YNUNA
|
|
6
|
+
from cidc_api.models.types import ResponseSystem, ResponseSystemVersion, BestOverallResponse, YNUNA, YN
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
negative_response_values = [
|
|
@@ -45,7 +45,7 @@ class ResponseBySystem(Base):
|
|
|
45
45
|
duration_of_stable_disease: NonNegativeInt | None = None
|
|
46
46
|
|
|
47
47
|
# Indicates whether a patient achieved a durable clinical benefit.
|
|
48
|
-
durable_clinical_benefit:
|
|
48
|
+
durable_clinical_benefit: YN | None = None
|
|
49
49
|
|
|
50
50
|
# Number of days between enrollment date and the date of first response to trial treatment.
|
|
51
51
|
days_to_first_response: PositiveInt | None = None
|
|
@@ -3,19 +3,19 @@ from typing import Annotated, Literal
|
|
|
3
3
|
from pydantic import AfterValidator
|
|
4
4
|
from sqlalchemy.types import TypeDecorator, Unicode
|
|
5
5
|
|
|
6
|
-
from cidc_api.
|
|
7
|
-
from cidc_api.
|
|
8
|
-
from cidc_api.
|
|
6
|
+
from cidc_api.code_systems.icdo3 import is_ICDO3_code, is_ICDO3_term
|
|
7
|
+
from cidc_api.code_systems.uberon import is_uberon_term
|
|
8
|
+
from cidc_api.code_systems.ctcae import (
|
|
9
9
|
is_ctcae_event_term,
|
|
10
10
|
is_ctcae_event_code,
|
|
11
11
|
is_ctcae_severity_grade,
|
|
12
12
|
is_ctcae_system_organ_class,
|
|
13
13
|
)
|
|
14
|
-
from cidc_api.
|
|
14
|
+
from cidc_api.code_systems.icd10cm import (
|
|
15
15
|
is_ICD10CM_code,
|
|
16
16
|
is_ICD10CM_term,
|
|
17
17
|
)
|
|
18
|
-
from cidc_api.
|
|
18
|
+
from cidc_api.code_systems.gvhd import is_gvhd_organ
|
|
19
19
|
|
|
20
20
|
# As python Enums are rather cumbersome when we only want a list of permissible values for a string, use Literal instead
|
|
21
21
|
|
|
@@ -468,6 +468,12 @@ MCategory = Literal[
|
|
|
468
468
|
]
|
|
469
469
|
|
|
470
470
|
|
|
471
|
+
YN = Literal[
|
|
472
|
+
"Yes",
|
|
473
|
+
"No",
|
|
474
|
+
]
|
|
475
|
+
|
|
476
|
+
|
|
471
477
|
YNU = Literal[
|
|
472
478
|
"Yes",
|
|
473
479
|
"No",
|
|
@@ -13,6 +13,7 @@ cidc_api/config/logging.py
|
|
|
13
13
|
cidc_api/config/secrets.py
|
|
14
14
|
cidc_api/config/settings.py
|
|
15
15
|
cidc_api/models/__init__.py
|
|
16
|
+
cidc_api/models/code_systems.py
|
|
16
17
|
cidc_api/models/data.py
|
|
17
18
|
cidc_api/models/errors.py
|
|
18
19
|
cidc_api/models/migrations.py
|
|
@@ -151,11 +152,6 @@ cidc_api/models/pydantic/stage2/surgery.py
|
|
|
151
152
|
cidc_api/models/pydantic/stage2/therapy_agent_dose.py
|
|
152
153
|
cidc_api/models/pydantic/stage2/treatment.py
|
|
153
154
|
cidc_api/models/pydantic/stage2/trial.py
|
|
154
|
-
cidc_api/reference/ctcae.py
|
|
155
|
-
cidc_api/reference/gvhd.py
|
|
156
|
-
cidc_api/reference/icd10cm.py
|
|
157
|
-
cidc_api/reference/icdo3.py
|
|
158
|
-
cidc_api/reference/uberon.py
|
|
159
155
|
cidc_api/shared/__init__.py
|
|
160
156
|
cidc_api/shared/assay_handling.py
|
|
161
157
|
cidc_api/shared/auth.py
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "1.2.52"
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
# Stubbed to accept any string
|
|
2
|
-
def is_ctcae_event_term(v):
|
|
3
|
-
if not isinstance(v, str):
|
|
4
|
-
raise TypeError("Value must be a string")
|
|
5
|
-
return v
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
# Stubbed to accept any string
|
|
9
|
-
def is_ctcae_event_code(v):
|
|
10
|
-
if not isinstance(v, str):
|
|
11
|
-
raise TypeError("Value must be a string")
|
|
12
|
-
return v
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
# Stubbed to accept any string
|
|
16
|
-
def is_ctcae_severity_grade(v):
|
|
17
|
-
if not isinstance(v, str):
|
|
18
|
-
raise TypeError("Value must be a string")
|
|
19
|
-
return v
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
# Stubbed to accept any string
|
|
23
|
-
def is_ctcae_system_organ_class(v):
|
|
24
|
-
if not isinstance(v, str):
|
|
25
|
-
raise TypeError("Value must be a string")
|
|
26
|
-
return v
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
# Determines if the CTCAE term is one of the "Other, specify" types of terms for which we include
|
|
30
|
-
# additional data about the AE.
|
|
31
|
-
def is_ctcae_other_term(v):
|
|
32
|
-
if isinstance(v, str):
|
|
33
|
-
return "Other, specify" in v
|
|
34
|
-
return False
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
# Stubbed to accept any string
|
|
2
|
-
def is_ICD10CM_code(v):
|
|
3
|
-
if not isinstance(v, str):
|
|
4
|
-
raise TypeError("Value must be a string")
|
|
5
|
-
return v
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
# Stubbed to accept any string
|
|
9
|
-
def is_ICD10CM_term(v):
|
|
10
|
-
if not isinstance(v, str):
|
|
11
|
-
raise TypeError("Value must be a string")
|
|
12
|
-
return v
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
# Stubbed to accept any string
|
|
2
|
-
def is_ICDO3_code(v):
|
|
3
|
-
if not isinstance(v, str):
|
|
4
|
-
raise TypeError("Value must be a string")
|
|
5
|
-
return v
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
# Stubbed to accept any string
|
|
9
|
-
def is_ICDO3_term(v):
|
|
10
|
-
if not isinstance(v, str):
|
|
11
|
-
raise TypeError("Value must be a string")
|
|
12
|
-
return v
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|