nci-cidc-api-modules 1.2.52__py3-none-any.whl → 1.2.54__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.
Files changed (33) hide show
  1. cidc_api/__init__.py +1 -1
  2. cidc_api/models/code_systems.py +29 -0
  3. cidc_api/models/db/stage1/adverse_event_orm.py +2 -1
  4. cidc_api/models/db/stage1/demographic_orm.py +2 -1
  5. cidc_api/models/db/stage1/radiotherapy_dose_orm.py +3 -2
  6. cidc_api/models/db/stage1/response_by_system_orm.py +2 -2
  7. cidc_api/models/db/stage1/response_orm.py +3 -3
  8. cidc_api/models/db/stage2/adverse_event_orm.py +2 -1
  9. cidc_api/models/db/stage2/demographic_orm.py +2 -1
  10. cidc_api/models/db/stage2/radiotherapy_dose_orm.py +2 -1
  11. cidc_api/models/db/stage2/response_by_system_orm.py +2 -2
  12. cidc_api/models/db/stage2/response_orm.py +3 -3
  13. cidc_api/models/pydantic/stage1/adverse_event.py +3 -2
  14. cidc_api/models/pydantic/stage1/demographic.py +5 -4
  15. cidc_api/models/pydantic/stage1/radiotherapy_dose.py +2 -1
  16. cidc_api/models/pydantic/stage1/response.py +3 -3
  17. cidc_api/models/pydantic/stage1/response_by_system.py +2 -2
  18. cidc_api/models/pydantic/stage2/adverse_event.py +3 -2
  19. cidc_api/models/pydantic/stage2/demographic.py +5 -4
  20. cidc_api/models/pydantic/stage2/radiotherapy_dose.py +2 -1
  21. cidc_api/models/pydantic/stage2/response.py +3 -3
  22. cidc_api/models/pydantic/stage2/response_by_system.py +2 -2
  23. cidc_api/models/types.py +11 -5
  24. {nci_cidc_api_modules-1.2.52.dist-info → nci_cidc_api_modules-1.2.54.dist-info}/METADATA +1 -1
  25. {nci_cidc_api_modules-1.2.52.dist-info → nci_cidc_api_modules-1.2.54.dist-info}/RECORD +28 -32
  26. cidc_api/reference/ctcae.py +0 -34
  27. cidc_api/reference/gvhd.py +0 -6
  28. cidc_api/reference/icd10cm.py +0 -12
  29. cidc_api/reference/icdo3.py +0 -12
  30. cidc_api/reference/uberon.py +0 -5
  31. {nci_cidc_api_modules-1.2.52.dist-info → nci_cidc_api_modules-1.2.54.dist-info}/WHEEL +0 -0
  32. {nci_cidc_api_modules-1.2.52.dist-info → nci_cidc_api_modules-1.2.54.dist-info}/licenses/LICENSE +0 -0
  33. {nci_cidc_api_modules-1.2.52.dist-info → nci_cidc_api_modules-1.2.54.dist-info}/top_level.txt +0 -0
cidc_api/__init__.py CHANGED
@@ -1 +1 @@
1
- __version__ = "1.2.52"
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[bool]
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[bool]
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[bool]
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[bool | None]
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[bool]
25
- evaluable_for_efficacy: Mapped[bool]
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[bool]
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[bool]
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[bool]
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[bool | None]
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[bool]
25
- evaluable_for_efficacy: Mapped[bool]
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.reference.ctcae import is_ctcae_other_term
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: bool
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: bool
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
- else:
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 not age_90_or_over:
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: bool
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: bool
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: bool
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: bool | None = None
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.reference.ctcae import is_ctcae_other_term
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: bool
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: bool
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
- else:
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 not self.age_90_or_over:
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: bool
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: bool
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: bool
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: bool | None = None
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
cidc_api/models/types.py CHANGED
@@ -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.reference.icdo3 import is_ICDO3_code, is_ICDO3_term
7
- from cidc_api.reference.uberon import is_uberon_term
8
- from cidc_api.reference.ctcae import (
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.reference.icd10cm import (
14
+ from cidc_api.code_systems.icd10cm import (
15
15
  is_ICD10CM_code,
16
16
  is_ICD10CM_term,
17
17
  )
18
- from cidc_api.reference.gvhd import is_gvhd_organ
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",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nci_cidc_api_modules
3
- Version: 1.2.52
3
+ Version: 1.2.54
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
@@ -1,5 +1,5 @@
1
1
  boot.py,sha256=oS_16OgU34iDxyFNpJl5rb5KbfbsCXroUCNLwVPxPNg,416
2
- cidc_api/__init__.py,sha256=jf5CtcUq4OTsCQcG2e0HUKeI9KD06OUpOQioBuO1h-Y,23
2
+ cidc_api/__init__.py,sha256=odKPoW2Uo_GtuB_RtRePNSus8XWCbeAFRoczr8nT784,23
3
3
  cidc_api/telemetry.py,sha256=LuZWkG8CKCn23O41RTNxEOQwMmfpp-fQ6zSInZhVJg8,3333
4
4
  cidc_api/config/__init__.py,sha256=5mX8GAPxUKV84iS-aGOoE-4m68LsOCGCDptXNdlgvj0,148
5
5
  cidc_api/config/db.py,sha256=mEz8ugjvRNGylCqDYHaaMqaZfDh7sbd76BowmfBvq5c,2428
@@ -7,20 +7,21 @@ cidc_api/config/logging.py,sha256=abhVYtn8lfhIt0tyV2WHFgSmp_s2eeJh7kodB6LH4J0,11
7
7
  cidc_api/config/secrets.py,sha256=jRFj7W43pWuPf9DZQLCKF7WPXf5cUv-BAaS3ASqhV_Q,1481
8
8
  cidc_api/config/settings.py,sha256=IlOSJhSyYYK4XQQ4uBdD58kXO-a2AHPWTSN1AT95b9Y,4545
9
9
  cidc_api/models/__init__.py,sha256=bl445G8Zic9YbhZ8ZBni07wtBMhLJRMBA-JqjLxx2bw,66
10
+ cidc_api/models/code_systems.py,sha256=YR-SGg1UnCElHjibUauAFAs9ENLd7tT28V3sc-NQ4xk,918
10
11
  cidc_api/models/data.py,sha256=TyVXk5jJO1NN05CLqejLf5BPp6yLSNNxPmFOgXUnA1M,1313
11
12
  cidc_api/models/errors.py,sha256=UncRrh-4v0CR5mpLO0erWD1y9ctus3Nk6XOSvrTjfco,338
12
13
  cidc_api/models/migrations.py,sha256=UlS5How3J4ryaRuZT6F5VQtAKikkl0LTv9MgMO_ltiQ,11161
13
14
  cidc_api/models/models.py,sha256=RycbGNQHIud9mqCyIH_yrnN7PVSFwbUCjP6pe6sX5VA,154106
14
15
  cidc_api/models/schemas.py,sha256=6IE2dJoEMcMbi0Vr1V3cYKnPKU0hv9vRKBixOZHe88s,2766
15
- cidc_api/models/types.py,sha256=WVOTEH61FH5aGVwRbEcfNOce8NLjiEnl1ixtPWav2OA,30058
16
+ cidc_api/models/types.py,sha256=V0N3RrrnP5bgj44bv3Aet1Mw424KgkcAOfv3QJRyRQI,30112
16
17
  cidc_api/models/db/stage1/__init__.py,sha256=zsxOSoogzL_xZ8B5OwcwLXvAmm6g2GYx1Zf6LLw8dq8,1917
17
18
  cidc_api/models/db/stage1/additional_treatment_orm.py,sha256=GCMzsYZl_B-7-TWYDBUXbt_Gri6YDv8XkYRheDLh3pc,926
18
- cidc_api/models/db/stage1/adverse_event_orm.py,sha256=32Kjpg6fvByp4gEVy6K28MlgMWQryG6GPh3un1F8x64,1914
19
+ cidc_api/models/db/stage1/adverse_event_orm.py,sha256=fYFuO7_KnmozwF3D9JGIPloJy8-J0jBXnEMrg41p_bI,1920
19
20
  cidc_api/models/db/stage1/base_orm.py,sha256=izKizTf2W1fCK2CRUeyuErJbOaxNp6d299n4gqKWHDQ,246
20
21
  cidc_api/models/db/stage1/baseline_clinical_assessment_orm.py,sha256=pGanJlwnAm38LPVTu6XF4qP_mw-SqYP8AC3O8w8XPnw,911
21
22
  cidc_api/models/db/stage1/comorbidity_orm.py,sha256=C4P3kcpNpnt1ICgU2Xm5S-ou6Xhx6yr690g6F_hBoZ0,881
22
23
  cidc_api/models/db/stage1/consent_group_orm.py,sha256=O7oZr7-Rvmzn8o4kS_40e270sF2e-KX85VkXemsa2MM,1111
23
- cidc_api/models/db/stage1/demographic_orm.py,sha256=JR6CXCVLEvFTgElQazuNEgopIuf5Ik1w0m1kSkxp4Q0,1693
24
+ cidc_api/models/db/stage1/demographic_orm.py,sha256=tCpqN7HTif5RUhvIuekFT-PVtzl4SD5Z5J_ArtOyHyk,1699
24
25
  cidc_api/models/db/stage1/disease_orm.py,sha256=Ni1kxQxgVi0MKUlovcsnmpR9v1TwKWcO6tpEr1oZcsE,1965
25
26
  cidc_api/models/db/stage1/exposure_orm.py,sha256=u6YKhAAX_0uYHMOYf8sQQFy3l9KluRykaIiggn9v_EY,811
26
27
  cidc_api/models/db/stage1/gvhd_diagnosis_acute_orm.py,sha256=0ItEmNE2H2Xmh4W3t0DNg3W764Uk00d5gni6maMQ3N0,1470
@@ -31,9 +32,9 @@ cidc_api/models/db/stage1/medical_history_orm.py,sha256=nyNOG_odEvPWqgu2DmiHT3K-
31
32
  cidc_api/models/db/stage1/other_malignancy_orm.py,sha256=wfoSCPUIzfw4anDi6FeqyhTzYrwTNlpDRCvL608zmXM,1303
32
33
  cidc_api/models/db/stage1/participant_orm.py,sha256=3-s6F0yTFzBYFZrDKv2xJMv5p3VBt5EL1Quu9cK4sd8,3541
33
34
  cidc_api/models/db/stage1/prior_treatment_orm.py,sha256=SNa_JOIF5gS61N0HFEfM7BHv3JYsflt6LQz03WLb8Lo,1325
34
- cidc_api/models/db/stage1/radiotherapy_dose_orm.py,sha256=dLp_ENJAq-_f6MAspaGK-6R6ngHceFKpsrjoBM8yviI,1500
35
- cidc_api/models/db/stage1/response_by_system_orm.py,sha256=pOQSE5g-EFUApgEDOXwxyQCmvoC6M9atSfBDsF9f3KI,1524
36
- cidc_api/models/db/stage1/response_orm.py,sha256=P9a0ZVq_hJ3dipRgJTFcdjuWi9ueyGd0oQYHRiACNpc,1163
35
+ cidc_api/models/db/stage1/radiotherapy_dose_orm.py,sha256=fKHW6fKgv9cZhHNshwLl1pVotYhv9We5s4Nd3Jk6lDw,1506
36
+ cidc_api/models/db/stage1/response_by_system_orm.py,sha256=J1-OBScj6mQVeDOKFaBh260aUJg-fUOqRwvad0E71Vw,1526
37
+ cidc_api/models/db/stage1/response_orm.py,sha256=B3y1ryJ0RH3XiMYfuCVaUcsIM6_E0cHNTYMPQdsPDmU,1163
37
38
  cidc_api/models/db/stage1/specimen_orm.py,sha256=m1cq5SfkUETk6dk4s3uYLyXohpZgE8iU1Rzh0xVRTmw,1354
38
39
  cidc_api/models/db/stage1/stem_cell_transplant_orm.py,sha256=CqOAo-Pnj11XqR9a0CeaIGyLn5Ar42Hl_10tqEllnO0,1097
39
40
  cidc_api/models/db/stage1/surgery_orm.py,sha256=DCggc6xbjGhm-G93bueY5u43t896aBPTvRFTk3Gq8ys,1018
@@ -44,7 +45,7 @@ cidc_api/models/db/stage2/__init__.py,sha256=R33BM1VDKJya5uuyYnPoGFVfhSViclIOklS
44
45
  cidc_api/models/db/stage2/additional_treatment_orm.py,sha256=G8_3EgGWH0vf3Rt5hTmM9xFids4NPcEBkQSS7hsrIdI,924
45
46
  cidc_api/models/db/stage2/administrative_person_orm.py,sha256=yjBktBwIjzHwqIbs1BAqJhh3y8f6swmEJRGs-XDQ_OI,1016
46
47
  cidc_api/models/db/stage2/administrative_role_assignment_orm.py,sha256=9X3Fkecj8_pxui99LpvA7WIMuWcagYW-QiRcvI7gAHg,1291
47
- cidc_api/models/db/stage2/adverse_event_orm.py,sha256=lsou-Ej7F_LW7D4pZbgAoR3BLPkW-KJkNjPPv2RtlY0,1914
48
+ cidc_api/models/db/stage2/adverse_event_orm.py,sha256=pveFKti63qAFBFjdWRu8dsn41DLtsC9Z2G3lp5oSpzI,1920
48
49
  cidc_api/models/db/stage2/arm_orm.py,sha256=5jSoHENJXpqW36UrECmBphz_MRQUcYIXGF0fvhMDMWY,707
49
50
  cidc_api/models/db/stage2/base_orm.py,sha256=nk9q0wlHxbuC7vzMtPCsnqeIRQufh3MCniMxu-h7__w,246
50
51
  cidc_api/models/db/stage2/baseline_clinical_assessment_orm.py,sha256=4V8RuiWGNf2c8Plzeikusslk8pZGhedDm_oXMMDcRbc,911
@@ -52,7 +53,7 @@ cidc_api/models/db/stage2/cohort_orm.py,sha256=ag3Epvnr8__3yfmyUjR7n9fBfMnBlpU1w
52
53
  cidc_api/models/db/stage2/comorbidity_orm.py,sha256=EbjqUj9vsFEL0KJFqsc04I-KFGjILje2H71WD2uP3ZQ,881
53
54
  cidc_api/models/db/stage2/consent_group_orm.py,sha256=d6r00XxWf7wHwYDAhBsEjSq3Ma2jixAa5l5mNDePNFk,1111
54
55
  cidc_api/models/db/stage2/contact_orm.py,sha256=__YFzOrYnMs_TNC1IAI1EL-Xx2stRJTUkcru5GDYleY,1267
55
- cidc_api/models/db/stage2/demographic_orm.py,sha256=qTO8w0AVTP7NpryfeinaR2X22ll6qA_jxCVGXmAjN60,1693
56
+ cidc_api/models/db/stage2/demographic_orm.py,sha256=d1EI6mh69w_Zg3goYw6QFUeUdxZfnJ5z2jKmdjk2O_Q,1699
56
57
  cidc_api/models/db/stage2/disease_orm.py,sha256=-PVtbDHFI9PmlYTOsry8LFbuR2YVMq_NrVNkDSZMbLo,1965
57
58
  cidc_api/models/db/stage2/exposure_orm.py,sha256=LLuGsaW-dA8B5e__LP9LGAaU7QH5fo5-4Btx28mpE3A,811
58
59
  cidc_api/models/db/stage2/file_orm.py,sha256=Zn6HzTz_UcsZRAJUi3OvcASMMtYNh4AFLQTcq_NuG3A,1253
@@ -67,9 +68,9 @@ cidc_api/models/db/stage2/other_malignancy_orm.py,sha256=qcPL29e8RwAGquMWEp2-ZGS
67
68
  cidc_api/models/db/stage2/participant_orm.py,sha256=U2OICb5OUPpMuh7SPeQJ9GsX4uq5MDc2UYMt52BJYb4,3695
68
69
  cidc_api/models/db/stage2/prior_treatment_orm.py,sha256=pvtB3DD6UPtS7GQpAinvJi64mlZjEwWVcp0bFaHpASo,1305
69
70
  cidc_api/models/db/stage2/publication_orm.py,sha256=EMAq83WtgFYy5yBESgaajruB6fzYfMTLNyZDZiIJBLM,1040
70
- cidc_api/models/db/stage2/radiotherapy_dose_orm.py,sha256=QBNmehh5VsKzkc59u_CHsFIgWYKsEp4lFyxp5HPMysM,1500
71
- cidc_api/models/db/stage2/response_by_system_orm.py,sha256=FzbxFkcIt-IGzwejVITHVFZ5qYA5Oece3yEBqhzjPHw,1524
72
- cidc_api/models/db/stage2/response_orm.py,sha256=p4xtydLvuZovVwcMvq3-WdLsKeKtIl6KTklGlWGVBSA,1163
71
+ cidc_api/models/db/stage2/radiotherapy_dose_orm.py,sha256=Ep_pL5BlVV-0BivYqD0pfT72ejzh0N4Y24hbmsDJ07o,1506
72
+ cidc_api/models/db/stage2/response_by_system_orm.py,sha256=PsGIbA2nQo76ZwXc96pK53-La1P1d2ewrFFTwOyApVA,1526
73
+ cidc_api/models/db/stage2/response_orm.py,sha256=iDz_qILvUC9lnDs_Pa1wT4hG_DveGVnGnsKT_YcPZog,1163
73
74
  cidc_api/models/db/stage2/shipment_orm.py,sha256=dDmj_PK2yAq23oh60sAcT2dkw5PjWmBoqO55YtFtExc,2007
74
75
  cidc_api/models/db/stage2/shipment_specimen_orm.py,sha256=0ufXOQPDjgucu5qXQWDAKnRXajvuldsZezj5ez6hsgg,909
75
76
  cidc_api/models/db/stage2/specimen_orm.py,sha256=-UDfQ0IlbmCs6GxCwVIF2eiFPgsjdgq_OAV-X58lH_U,4165
@@ -84,11 +85,11 @@ cidc_api/models/files/facets.py,sha256=vieZ3z_tYB29NqtvNzvKqajVwxM5ZLLZKeyQTq5lh
84
85
  cidc_api/models/pydantic/base.py,sha256=sL_0PwEH2vS8BMT_w-zL7CPeaU-R7ih5afRigX6k2DM,4069
85
86
  cidc_api/models/pydantic/stage1/__init__.py,sha256=H-NDjCd8isHTgZ7sqz-MIbzC-PpW1kEtR-x-Dyc8r6Q,1667
86
87
  cidc_api/models/pydantic/stage1/additional_treatment.py,sha256=TFVzjd1NPLSfH9UnL2W3aZhpZSzDsg97j9IK8t882YA,1050
87
- cidc_api/models/pydantic/stage1/adverse_event.py,sha256=ZW5iVnMmX7NtZcsgDAjzPorWPZDSJSmTXGK1EsU9AaQ,5167
88
+ cidc_api/models/pydantic/stage1/adverse_event.py,sha256=PanE03MgP70M_i3glCeBCtScuG4zIpyKiJZfeNAOOBc,5176
88
89
  cidc_api/models/pydantic/stage1/baseline_clinical_assessment.py,sha256=5FYvtOVf_nIK1h3xTs3vQgJe2ivQSVHt_wfrTSDgVxU,1119
89
90
  cidc_api/models/pydantic/stage1/comorbidity.py,sha256=IfxFb0dZAdCY--Ze5kiZ3CrzVKJtuknpcpvrQ3ki-gI,1769
90
91
  cidc_api/models/pydantic/stage1/consent_group.py,sha256=aP_nd0GKK6K7VH-6IZRSDDX2RxFM_j9B36FIRGwysOU,1216
91
- cidc_api/models/pydantic/stage1/demographic.py,sha256=S2riNy6njMSamgupFAsbM656TDamQExRzUGKNYaBaOo,6752
92
+ cidc_api/models/pydantic/stage1/demographic.py,sha256=UY3I6nJXsTVPNubQOsF6lQuciLioZl7gKk_Oo6AyoSA,6794
92
93
  cidc_api/models/pydantic/stage1/disease.py,sha256=G8d2iqsMhmDA3uxjOitxzmlFKIRxyUMp-o-H7eUfZFg,9250
93
94
  cidc_api/models/pydantic/stage1/exposure.py,sha256=bd9gUmOQ7ge-xvoxD17pX95MKxfHKD2xNaFEJAMAkn4,1571
94
95
  cidc_api/models/pydantic/stage1/gvhd_diagnosis_acute.py,sha256=jVMoWuLfspOZtOpC7rg1EzdvEAg8qEabcTaS6RRobZ8,1395
@@ -99,9 +100,9 @@ cidc_api/models/pydantic/stage1/medical_history.py,sha256=z-cE_ChyWUKTvWjVhKMUAY
99
100
  cidc_api/models/pydantic/stage1/other_malignancy.py,sha256=VIzhbkauaDfZdPxhTYpqNtwYBxE_4osE9wyZ67LQJx4,2622
100
101
  cidc_api/models/pydantic/stage1/participant.py,sha256=QfRkK2okY7nM84y9QMK12kZLURBGk-HNWWHL4pQZjec,2655
101
102
  cidc_api/models/pydantic/stage1/prior_treatment.py,sha256=axhyPHwYCoIvcIonjyPJ95HUyaAXqIuOd6hhoDM3LJU,2101
102
- cidc_api/models/pydantic/stage1/radiotherapy_dose.py,sha256=gDaL1OQuSuTauml6HafBiVvBn8gcynS3G1fa9KNhEPA,3833
103
- cidc_api/models/pydantic/stage1/response.py,sha256=TJlKmUz9SypbbDnv6iSmLb4KPEuFUPe9Q8iNSGsLbfI,3491
104
- cidc_api/models/pydantic/stage1/response_by_system.py,sha256=gjyo_jDyc2xHNNrUwoFqH3Fz51v2eSr3JRHkH0xwVqI,9851
103
+ cidc_api/models/pydantic/stage1/radiotherapy_dose.py,sha256=8TbBqx_BYzwygQE-LxlSEK2ntIAFlTpAq_GS479TabI,3839
104
+ cidc_api/models/pydantic/stage1/response.py,sha256=hq5_eJ2BEaVH8pdU444p3AKHuZMdLsoDZcMA3XQa8Rw,3491
105
+ cidc_api/models/pydantic/stage1/response_by_system.py,sha256=vW0Xj_hYRa3W-JbqJgvty559_B9x5UIySaAOhIDVMOs,9853
105
106
  cidc_api/models/pydantic/stage1/specimen.py,sha256=scDekZ-RtXOQTTLburhqT3RF4KM34iY9NAV1wYi_HSg,1281
106
107
  cidc_api/models/pydantic/stage1/stem_cell_transplant.py,sha256=XsDVUksqbIprPxHwLlwHGyji4jsIFNMcIk-S0H4rDnQ,1228
107
108
  cidc_api/models/pydantic/stage1/surgery.py,sha256=sHPzYMNusYIQrC6gjWopwxo0j9BNOq_Tcl6HKAMvuAQ,2421
@@ -112,14 +113,14 @@ cidc_api/models/pydantic/stage2/__init__.py,sha256=OQRG5wFkNsyAU_0KI1W5PDn8pBDe1
112
113
  cidc_api/models/pydantic/stage2/additional_treatment.py,sha256=TFVzjd1NPLSfH9UnL2W3aZhpZSzDsg97j9IK8t882YA,1050
113
114
  cidc_api/models/pydantic/stage2/administrative_person.py,sha256=3UYRgGLP7RukwZYTvQEnviDxBvWXj1uqditsoLJOw0s,1552
114
115
  cidc_api/models/pydantic/stage2/administrative_role_assignment.py,sha256=kWUciVSnczjejdBSlynsVxSQ4dytDdgw9OxSvgzParg,536
115
- cidc_api/models/pydantic/stage2/adverse_event.py,sha256=zPy02xoRQeyaXBSmqDdQt4BaRTD6OHBjycVHVtBaAow,3880
116
+ cidc_api/models/pydantic/stage2/adverse_event.py,sha256=OqGMbHu8IgLhYy8wrNSCrCx9pLLFs06KKxveEnP-X3M,3889
116
117
  cidc_api/models/pydantic/stage2/arm.py,sha256=I_gyRUkjyA-Eds3BOu-PUlBGdeGeKiG92ERM8WqA2n8,481
117
118
  cidc_api/models/pydantic/stage2/baseline_clinical_assessment.py,sha256=5FYvtOVf_nIK1h3xTs3vQgJe2ivQSVHt_wfrTSDgVxU,1119
118
119
  cidc_api/models/pydantic/stage2/cohort.py,sha256=NVlgp8D93nXGPDMSyrAJe-QbmrQfudyuTsc400WyOpg,493
119
120
  cidc_api/models/pydantic/stage2/comorbidity.py,sha256=dk4SJnkaaju-boexf2SW_rNNGXl-Os2LR5lnIxCb-dA,1413
120
121
  cidc_api/models/pydantic/stage2/consent_group.py,sha256=aP_nd0GKK6K7VH-6IZRSDDX2RxFM_j9B36FIRGwysOU,1216
121
122
  cidc_api/models/pydantic/stage2/contact.py,sha256=Nfyy5Zn-n9_LiXG-CzC7OsQo7JrzdPcYjZIielpZiM0,883
122
- cidc_api/models/pydantic/stage2/demographic.py,sha256=X0YoFdK7S8JQ9p_Jm3l-R5HgEl9sZnZVFXrECA2i_zw,6007
123
+ cidc_api/models/pydantic/stage2/demographic.py,sha256=e0iwOFlzeJdBjaFYfruiRMsVhVDSr9BKDh3iJzqnPEw,6054
123
124
  cidc_api/models/pydantic/stage2/disease.py,sha256=fwK1FSxTm33BzViGTNsb6AahoDc2BTTXMitCGY3KyDk,7650
124
125
  cidc_api/models/pydantic/stage2/exposure.py,sha256=ERoVQLuNWynw2zugh5bVdUT0NzNbJ6fIUmKhPSCQfqk,1306
125
126
  cidc_api/models/pydantic/stage2/file.py,sha256=MjZQAII_QqakLBhyfP1bq_Mn6au4yvVuwY0p0A5c664,1336
@@ -134,9 +135,9 @@ cidc_api/models/pydantic/stage2/other_malignancy.py,sha256=V-Jru6uukipocKs7lDbmk
134
135
  cidc_api/models/pydantic/stage2/participant.py,sha256=x7gKHaw46-BbqNCgKWPLnp7U8L2pnAkh7hdByKvG_Kk,2185
135
136
  cidc_api/models/pydantic/stage2/prior_treatment.py,sha256=G5Cd8PSYRe3gdeApjQWn15QAErB4nDahMKcVRsr88_c,2011
136
137
  cidc_api/models/pydantic/stage2/publication.py,sha256=GBuvqBf0lyOoopN1S-3qX310xFxhixk7oDJLuGzLuiw,1817
137
- cidc_api/models/pydantic/stage2/radiotherapy_dose.py,sha256=c5q0TxPOrYHX9KTd9he5B01zirKgcCxMnvW_7adzCrI,3327
138
- cidc_api/models/pydantic/stage2/response.py,sha256=rPqfYZhaZRcA1E7dkGOaHe9f2_YIcIg9-KtIPSTh1s8,2886
139
- cidc_api/models/pydantic/stage2/response_by_system.py,sha256=f8ZnLfNXGJLCfFL1X2jxlSUJPGvJKnOCf6PYbJVMXW8,4909
138
+ cidc_api/models/pydantic/stage2/radiotherapy_dose.py,sha256=784FpvyLA2IY5DQ5ZBnL2EQ_kBihnlmJaXp4zP6g_1o,3333
139
+ cidc_api/models/pydantic/stage2/response.py,sha256=qW8qLVhAA-b_45cIRGyfI6IxYmzbUVh-BDmm-AWdAOg,2886
140
+ cidc_api/models/pydantic/stage2/response_by_system.py,sha256=lRejQ-Gr-AM3czLhQOFOngNOI13QkNPcytQPKRGF3kU,4911
140
141
  cidc_api/models/pydantic/stage2/shipment.py,sha256=dsZcDPikCRS3cjr58EGHHJ2gjir78J4cdHh_1SwFyrQ,1595
141
142
  cidc_api/models/pydantic/stage2/shipment_specimen.py,sha256=exR7joXsH3Xd-o5vJV_Z-az33Edr8BBm5LCDv01iMI4,488
142
143
  cidc_api/models/pydantic/stage2/specimen.py,sha256=JchTeb4QSyPplZmP_gMxEsaIXVDlGI_z85xR5JG4JYY,8524
@@ -145,11 +146,6 @@ cidc_api/models/pydantic/stage2/surgery.py,sha256=53NrET_kNOlXXPP-mH5ecIPrNqDpDQ
145
146
  cidc_api/models/pydantic/stage2/therapy_agent_dose.py,sha256=Y2L0vAqkfA5eI2qg7iQrqzCORwbkjyVEsthc6f5HKas,3021
146
147
  cidc_api/models/pydantic/stage2/treatment.py,sha256=dr23yeK5x0dKYZV32hgECFe_Y-GkSvdf4P3FdVn6F1Q,2039
147
148
  cidc_api/models/pydantic/stage2/trial.py,sha256=PftvFY27s3quVBg1Sau1JdskUSMM0huIeGP-018fi5o,4020
148
- cidc_api/reference/ctcae.py,sha256=H5JvDQ5R5kYbK37UxjhmXMnKD3d40HmG0DONxfhNxnE,871
149
- cidc_api/reference/gvhd.py,sha256=r5jbHEa5yos0tmghjiruAeXI-r-4lU81JKCUpMHtO14,194
150
- cidc_api/reference/icd10cm.py,sha256=K1vbTQB75uAQeKgj0U9izhtMKVb2vqp69_hyx3z_jro,300
151
- cidc_api/reference/icdo3.py,sha256=A19yNX5-9Gs3X83kXcTlGgsXDTTJ9yR2dxEIoBVmpmU,296
152
- cidc_api/reference/uberon.py,sha256=BO2mYNDvPzZyLdhL_ZjCyEgHSLHuVifnTJvfktUfVWA,148
153
149
  cidc_api/shared/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
154
150
  cidc_api/shared/assay_handling.py,sha256=zzWSqQ-ddLVzX5IuHvsaSib2H1lnjXpo9LbxaoqaHHs,2897
155
151
  cidc_api/shared/auth.py,sha256=EIP9AKokLNrI79Fkpv3P7WdzaddJIsuGGICc1W494X0,9110
@@ -160,8 +156,8 @@ cidc_api/shared/gcloud_client.py,sha256=EJ2ZzZ0gwDOZx18PEzXil4F-jpruacShkVIoecw8
160
156
  cidc_api/shared/jose.py,sha256=-qzGzEDAlokEp9E7WtBtQkXyyfPWTYXlwYpCqVJWmqM,1830
161
157
  cidc_api/shared/rest_utils.py,sha256=RwR30WOUAYCxL7V-i2totEyeriG30GbBDvBcpLXhM9w,6594
162
158
  cidc_api/shared/utils.py,sha256=-gLnzxCR9E6h0plt2xrNisUG5_Y6GhhVwz3DgDIzpvs,367
163
- nci_cidc_api_modules-1.2.52.dist-info/licenses/LICENSE,sha256=pNYWVTHaYonnmJyplmeAp7tQAjosmDpAWjb34jjv7Xs,1102
164
- nci_cidc_api_modules-1.2.52.dist-info/METADATA,sha256=LmysKc5tWnhHucOWIA2ZesTGvnWy63VG7a6zw8bRtXQ,40301
165
- nci_cidc_api_modules-1.2.52.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
166
- nci_cidc_api_modules-1.2.52.dist-info/top_level.txt,sha256=BSJqF6ura8-bWCKZvarvQEKvidMM05lH0bLQsNOrI0o,14
167
- nci_cidc_api_modules-1.2.52.dist-info/RECORD,,
159
+ nci_cidc_api_modules-1.2.54.dist-info/licenses/LICENSE,sha256=pNYWVTHaYonnmJyplmeAp7tQAjosmDpAWjb34jjv7Xs,1102
160
+ nci_cidc_api_modules-1.2.54.dist-info/METADATA,sha256=JgFTcBp59nnlVHDexSik2R9bPYPpoeR03NpBKQ1EdP0,40301
161
+ nci_cidc_api_modules-1.2.54.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
162
+ nci_cidc_api_modules-1.2.54.dist-info/top_level.txt,sha256=BSJqF6ura8-bWCKZvarvQEKvidMM05lH0bLQsNOrI0o,14
163
+ nci_cidc_api_modules-1.2.54.dist-info/RECORD,,
@@ -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,6 +0,0 @@
1
- # Stubbed to accept any string
2
- # Should support MAGIC and Modified Glucksberg
3
- def is_gvhd_organ(v):
4
- if not isinstance(v, str):
5
- raise TypeError("Value must be a string")
6
- return v
@@ -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
@@ -1,5 +0,0 @@
1
- # Stubbed to accept any string
2
- def is_uberon_term(v):
3
- if not isinstance(v, str):
4
- raise TypeError("Value must be a string")
5
- return v