valuesets 0.3.1__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.

Potentially problematic release.


This version of valuesets might be problematic. Click here for more details.

Files changed (248) hide show
  1. valuesets/__init__.py +7 -0
  2. valuesets/_version.py +8 -0
  3. valuesets/datamodel/valuesets.py +13796 -0
  4. valuesets/datamodel/valuesets_dataclass.py +24503 -0
  5. valuesets/datamodel/valuesets_pydantic.py +13796 -0
  6. valuesets/enums/__init__.py +590 -0
  7. valuesets/enums/academic/__init__.py +1 -0
  8. valuesets/enums/academic/research.py +559 -0
  9. valuesets/enums/analytical_chemistry/__init__.py +1 -0
  10. valuesets/enums/analytical_chemistry/mass_spectrometry.py +198 -0
  11. valuesets/enums/bio/__init__.py +1 -0
  12. valuesets/enums/bio/biological_colors.py +238 -0
  13. valuesets/enums/bio/cell_cycle.py +180 -0
  14. valuesets/enums/bio/currency_chemicals.py +52 -0
  15. valuesets/enums/bio/developmental_stages.py +103 -0
  16. valuesets/enums/bio/genome_features.py +182 -0
  17. valuesets/enums/bio/genomics.py +91 -0
  18. valuesets/enums/bio/go_aspect.py +32 -0
  19. valuesets/enums/bio/go_causality.py +58 -0
  20. valuesets/enums/bio/go_evidence.py +129 -0
  21. valuesets/enums/bio/human_developmental_stages.py +62 -0
  22. valuesets/enums/bio/insdc_geographic_locations.py +591 -0
  23. valuesets/enums/bio/insdc_missing_values.py +49 -0
  24. valuesets/enums/bio/lipid_categories.py +67 -0
  25. valuesets/enums/bio/mouse_developmental_stages.py +62 -0
  26. valuesets/enums/bio/plant_biology.py +86 -0
  27. valuesets/enums/bio/plant_developmental_stages.py +54 -0
  28. valuesets/enums/bio/plant_sex.py +81 -0
  29. valuesets/enums/bio/protein_evidence.py +61 -0
  30. valuesets/enums/bio/proteomics_standards.py +123 -0
  31. valuesets/enums/bio/psi_mi.py +306 -0
  32. valuesets/enums/bio/relationship_to_oxygen.py +37 -0
  33. valuesets/enums/bio/sequence_alphabets.py +449 -0
  34. valuesets/enums/bio/sequence_chemistry.py +357 -0
  35. valuesets/enums/bio/sequencing_platforms.py +302 -0
  36. valuesets/enums/bio/structural_biology.py +320 -0
  37. valuesets/enums/bio/taxonomy.py +238 -0
  38. valuesets/enums/bio/trophic_levels.py +85 -0
  39. valuesets/enums/bio/uniprot_species.py +344 -0
  40. valuesets/enums/bio/viral_genome_types.py +47 -0
  41. valuesets/enums/bioprocessing/__init__.py +1 -0
  42. valuesets/enums/bioprocessing/scale_up.py +249 -0
  43. valuesets/enums/business/__init__.py +1 -0
  44. valuesets/enums/business/human_resources.py +275 -0
  45. valuesets/enums/business/industry_classifications.py +181 -0
  46. valuesets/enums/business/management_operations.py +228 -0
  47. valuesets/enums/business/organizational_structures.py +236 -0
  48. valuesets/enums/business/quality_management.py +181 -0
  49. valuesets/enums/business/supply_chain.py +232 -0
  50. valuesets/enums/chemistry/__init__.py +1 -0
  51. valuesets/enums/chemistry/chemical_entities.py +315 -0
  52. valuesets/enums/chemistry/reaction_directionality.py +65 -0
  53. valuesets/enums/chemistry/reactions.py +256 -0
  54. valuesets/enums/clinical/__init__.py +1 -0
  55. valuesets/enums/clinical/nih_demographics.py +177 -0
  56. valuesets/enums/clinical/phenopackets.py +254 -0
  57. valuesets/enums/common_value_sets.py +8791 -0
  58. valuesets/enums/computing/__init__.py +1 -0
  59. valuesets/enums/computing/file_formats.py +294 -0
  60. valuesets/enums/computing/maturity_levels.py +196 -0
  61. valuesets/enums/computing/mime_types.py +227 -0
  62. valuesets/enums/confidence_levels.py +168 -0
  63. valuesets/enums/contributor.py +30 -0
  64. valuesets/enums/core.py +42 -0
  65. valuesets/enums/data/__init__.py +1 -0
  66. valuesets/enums/data/data_absent_reason.py +53 -0
  67. valuesets/enums/data_science/__init__.py +1 -0
  68. valuesets/enums/data_science/binary_classification.py +87 -0
  69. valuesets/enums/data_science/emotion_classification.py +66 -0
  70. valuesets/enums/data_science/priority_severity.py +73 -0
  71. valuesets/enums/data_science/quality_control.py +46 -0
  72. valuesets/enums/data_science/sentiment_analysis.py +50 -0
  73. valuesets/enums/data_science/text_classification.py +97 -0
  74. valuesets/enums/demographics.py +206 -0
  75. valuesets/enums/ecological_interactions.py +151 -0
  76. valuesets/enums/energy/__init__.py +1 -0
  77. valuesets/enums/energy/energy.py +343 -0
  78. valuesets/enums/energy/fossil_fuels.py +29 -0
  79. valuesets/enums/energy/nuclear/__init__.py +1 -0
  80. valuesets/enums/energy/nuclear/nuclear_facilities.py +195 -0
  81. valuesets/enums/energy/nuclear/nuclear_fuel_cycle.py +96 -0
  82. valuesets/enums/energy/nuclear/nuclear_fuels.py +175 -0
  83. valuesets/enums/energy/nuclear/nuclear_operations.py +191 -0
  84. valuesets/enums/energy/nuclear/nuclear_regulatory.py +188 -0
  85. valuesets/enums/energy/nuclear/nuclear_safety.py +164 -0
  86. valuesets/enums/energy/nuclear/nuclear_waste.py +158 -0
  87. valuesets/enums/energy/nuclear/reactor_types.py +163 -0
  88. valuesets/enums/environmental_health/__init__.py +1 -0
  89. valuesets/enums/environmental_health/exposures.py +265 -0
  90. valuesets/enums/geography/__init__.py +1 -0
  91. valuesets/enums/geography/geographic_codes.py +741 -0
  92. valuesets/enums/health/__init__.py +12 -0
  93. valuesets/enums/health/vaccination.py +98 -0
  94. valuesets/enums/health.py +36 -0
  95. valuesets/enums/health_base.py +36 -0
  96. valuesets/enums/healthcare.py +45 -0
  97. valuesets/enums/industry/__init__.py +1 -0
  98. valuesets/enums/industry/extractive_industry.py +94 -0
  99. valuesets/enums/industry/mining.py +388 -0
  100. valuesets/enums/industry/safety_colors.py +201 -0
  101. valuesets/enums/investigation.py +27 -0
  102. valuesets/enums/materials_science/__init__.py +1 -0
  103. valuesets/enums/materials_science/characterization_methods.py +112 -0
  104. valuesets/enums/materials_science/crystal_structures.py +76 -0
  105. valuesets/enums/materials_science/material_properties.py +119 -0
  106. valuesets/enums/materials_science/material_types.py +104 -0
  107. valuesets/enums/materials_science/pigments_dyes.py +198 -0
  108. valuesets/enums/materials_science/synthesis_methods.py +109 -0
  109. valuesets/enums/medical/__init__.py +1 -0
  110. valuesets/enums/medical/clinical.py +277 -0
  111. valuesets/enums/medical/neuroimaging.py +119 -0
  112. valuesets/enums/mining_processing.py +302 -0
  113. valuesets/enums/physics/__init__.py +1 -0
  114. valuesets/enums/physics/states_of_matter.py +46 -0
  115. valuesets/enums/social/__init__.py +1 -0
  116. valuesets/enums/social/person_status.py +29 -0
  117. valuesets/enums/spatial/__init__.py +1 -0
  118. valuesets/enums/spatial/spatial_qualifiers.py +246 -0
  119. valuesets/enums/statistics/__init__.py +5 -0
  120. valuesets/enums/statistics/prediction_outcomes.py +31 -0
  121. valuesets/enums/statistics.py +31 -0
  122. valuesets/enums/time/__init__.py +1 -0
  123. valuesets/enums/time/temporal.py +254 -0
  124. valuesets/enums/units/__init__.py +1 -0
  125. valuesets/enums/units/measurements.py +310 -0
  126. valuesets/enums/visual/__init__.py +1 -0
  127. valuesets/enums/visual/colors.py +376 -0
  128. valuesets/generators/__init__.py +19 -0
  129. valuesets/generators/auto_slot_injector.py +280 -0
  130. valuesets/generators/enhanced_pydantic_generator.py +100 -0
  131. valuesets/generators/enum_slot_generator.py +201 -0
  132. valuesets/generators/modular_rich_generator.py +353 -0
  133. valuesets/generators/prefix_standardizer.py +198 -0
  134. valuesets/generators/rich_enum.py +127 -0
  135. valuesets/generators/rich_pydantic_generator.py +310 -0
  136. valuesets/generators/smart_slot_syncer.py +428 -0
  137. valuesets/generators/sssom_generator.py +394 -0
  138. valuesets/merged/merged_hierarchy.yaml +21649 -0
  139. valuesets/schema/README.md +3 -0
  140. valuesets/schema/academic/research.yaml +911 -0
  141. valuesets/schema/analytical_chemistry/mass_spectrometry.yaml +206 -0
  142. valuesets/schema/bio/bio_entities.yaml +364 -0
  143. valuesets/schema/bio/biological_colors.yaml +434 -0
  144. valuesets/schema/bio/cell_cycle.yaml +309 -0
  145. valuesets/schema/bio/currency_chemicals.yaml +70 -0
  146. valuesets/schema/bio/developmental_stages.yaml +226 -0
  147. valuesets/schema/bio/genome_features.yaml +342 -0
  148. valuesets/schema/bio/genomics.yaml +101 -0
  149. valuesets/schema/bio/go_aspect.yaml +39 -0
  150. valuesets/schema/bio/go_causality.yaml +119 -0
  151. valuesets/schema/bio/go_evidence.yaml +215 -0
  152. valuesets/schema/bio/insdc_geographic_locations.yaml +911 -0
  153. valuesets/schema/bio/insdc_missing_values.yaml +85 -0
  154. valuesets/schema/bio/lipid_categories.yaml +72 -0
  155. valuesets/schema/bio/plant_biology.yaml +125 -0
  156. valuesets/schema/bio/plant_developmental_stages.yaml +77 -0
  157. valuesets/schema/bio/plant_sex.yaml +108 -0
  158. valuesets/schema/bio/protein_evidence.yaml +63 -0
  159. valuesets/schema/bio/proteomics_standards.yaml +116 -0
  160. valuesets/schema/bio/psi_mi.yaml +400 -0
  161. valuesets/schema/bio/relationship_to_oxygen.yaml +46 -0
  162. valuesets/schema/bio/sequence_alphabets.yaml +1168 -0
  163. valuesets/schema/bio/sequence_chemistry.yaml +477 -0
  164. valuesets/schema/bio/sequencing_platforms.yaml +515 -0
  165. valuesets/schema/bio/structural_biology.yaml +428 -0
  166. valuesets/schema/bio/taxonomy.yaml +453 -0
  167. valuesets/schema/bio/trophic_levels.yaml +118 -0
  168. valuesets/schema/bio/uniprot_species.yaml +1209 -0
  169. valuesets/schema/bio/viral_genome_types.yaml +99 -0
  170. valuesets/schema/bioprocessing/scale_up.yaml +458 -0
  171. valuesets/schema/business/human_resources.yaml +752 -0
  172. valuesets/schema/business/industry_classifications.yaml +448 -0
  173. valuesets/schema/business/management_operations.yaml +602 -0
  174. valuesets/schema/business/organizational_structures.yaml +645 -0
  175. valuesets/schema/business/quality_management.yaml +502 -0
  176. valuesets/schema/business/supply_chain.yaml +688 -0
  177. valuesets/schema/chemistry/chemical_entities.yaml +639 -0
  178. valuesets/schema/chemistry/reaction_directionality.yaml +60 -0
  179. valuesets/schema/chemistry/reactions.yaml +442 -0
  180. valuesets/schema/clinical/nih_demographics.yaml +285 -0
  181. valuesets/schema/clinical/phenopackets.yaml +429 -0
  182. valuesets/schema/computing/file_formats.yaml +631 -0
  183. valuesets/schema/computing/maturity_levels.yaml +229 -0
  184. valuesets/schema/computing/mime_types.yaml +266 -0
  185. valuesets/schema/confidence_levels.yaml +206 -0
  186. valuesets/schema/contributor.yaml +30 -0
  187. valuesets/schema/core.yaml +55 -0
  188. valuesets/schema/data/data_absent_reason.yaml +82 -0
  189. valuesets/schema/data_science/binary_classification.yaml +125 -0
  190. valuesets/schema/data_science/emotion_classification.yaml +109 -0
  191. valuesets/schema/data_science/priority_severity.yaml +122 -0
  192. valuesets/schema/data_science/quality_control.yaml +68 -0
  193. valuesets/schema/data_science/sentiment_analysis.yaml +81 -0
  194. valuesets/schema/data_science/text_classification.yaml +135 -0
  195. valuesets/schema/demographics.yaml +238 -0
  196. valuesets/schema/ecological_interactions.yaml +298 -0
  197. valuesets/schema/energy/energy.yaml +595 -0
  198. valuesets/schema/energy/fossil_fuels.yaml +28 -0
  199. valuesets/schema/energy/nuclear/nuclear_facilities.yaml +463 -0
  200. valuesets/schema/energy/nuclear/nuclear_fuel_cycle.yaml +82 -0
  201. valuesets/schema/energy/nuclear/nuclear_fuels.yaml +421 -0
  202. valuesets/schema/energy/nuclear/nuclear_operations.yaml +480 -0
  203. valuesets/schema/energy/nuclear/nuclear_regulatory.yaml +200 -0
  204. valuesets/schema/energy/nuclear/nuclear_safety.yaml +352 -0
  205. valuesets/schema/energy/nuclear/nuclear_waste.yaml +332 -0
  206. valuesets/schema/energy/nuclear/reactor_types.yaml +394 -0
  207. valuesets/schema/environmental_health/exposures.yaml +355 -0
  208. valuesets/schema/generated_slots.yaml +1828 -0
  209. valuesets/schema/geography/geographic_codes.yaml +1018 -0
  210. valuesets/schema/health/vaccination.yaml +102 -0
  211. valuesets/schema/health.yaml +38 -0
  212. valuesets/schema/healthcare.yaml +53 -0
  213. valuesets/schema/industry/extractive_industry.yaml +89 -0
  214. valuesets/schema/industry/mining.yaml +888 -0
  215. valuesets/schema/industry/safety_colors.yaml +375 -0
  216. valuesets/schema/investigation.yaml +64 -0
  217. valuesets/schema/materials_science/characterization_methods.yaml +193 -0
  218. valuesets/schema/materials_science/crystal_structures.yaml +138 -0
  219. valuesets/schema/materials_science/material_properties.yaml +135 -0
  220. valuesets/schema/materials_science/material_types.yaml +151 -0
  221. valuesets/schema/materials_science/pigments_dyes.yaml +465 -0
  222. valuesets/schema/materials_science/synthesis_methods.yaml +186 -0
  223. valuesets/schema/medical/clinical.yaml +610 -0
  224. valuesets/schema/medical/neuroimaging.yaml +325 -0
  225. valuesets/schema/mining_processing.yaml +295 -0
  226. valuesets/schema/physics/states_of_matter.yaml +46 -0
  227. valuesets/schema/slot_mixins.yaml +143 -0
  228. valuesets/schema/social/person_status.yaml +28 -0
  229. valuesets/schema/spatial/spatial_qualifiers.yaml +466 -0
  230. valuesets/schema/statistics/prediction_outcomes.yaml +26 -0
  231. valuesets/schema/statistics.yaml +34 -0
  232. valuesets/schema/time/temporal.yaml +435 -0
  233. valuesets/schema/types.yaml +15 -0
  234. valuesets/schema/units/measurements.yaml +675 -0
  235. valuesets/schema/valuesets.yaml +100 -0
  236. valuesets/schema/visual/colors.yaml +778 -0
  237. valuesets/utils/__init__.py +6 -0
  238. valuesets/utils/comparison.py +102 -0
  239. valuesets/utils/expand_dynamic_enums.py +414 -0
  240. valuesets/utils/mapping_utils.py +236 -0
  241. valuesets/validators/__init__.py +11 -0
  242. valuesets/validators/enum_evaluator.py +669 -0
  243. valuesets/validators/oak_config.yaml +70 -0
  244. valuesets/validators/validate_with_ols.py +241 -0
  245. valuesets-0.3.1.dist-info/METADATA +395 -0
  246. valuesets-0.3.1.dist-info/RECORD +248 -0
  247. valuesets-0.3.1.dist-info/WHEEL +4 -0
  248. valuesets-0.3.1.dist-info/licenses/LICENSE +201 -0
@@ -0,0 +1,65 @@
1
+ """
2
+ Reaction Directionality
3
+
4
+ Directionality of chemical reactions and processes
5
+
6
+ Generated from: chemistry/reaction_directionality.yaml
7
+ """
8
+
9
+ from __future__ import annotations
10
+
11
+ from typing import Dict, Any, Optional
12
+ from valuesets.generators.rich_enum import RichEnum
13
+
14
+ class RelativeTimeEnum(RichEnum):
15
+ # Enum members
16
+ BEFORE = "BEFORE"
17
+ AFTER = "AFTER"
18
+ AT_SAME_TIME_AS = "AT_SAME_TIME_AS"
19
+
20
+ # Set metadata after class creation
21
+ RelativeTimeEnum._metadata = {
22
+ }
23
+
24
+ class PresenceEnum(RichEnum):
25
+ # Enum members
26
+ PRESENT = "PRESENT"
27
+ ABSENT = "ABSENT"
28
+ BELOW_DETECTION_LIMIT = "BELOW_DETECTION_LIMIT"
29
+ ABOVE_DETECTION_LIMIT = "ABOVE_DETECTION_LIMIT"
30
+
31
+ # Set metadata after class creation
32
+ PresenceEnum._metadata = {
33
+ "PRESENT": {'description': 'The entity is present'},
34
+ "ABSENT": {'description': 'The entity is absent'},
35
+ "BELOW_DETECTION_LIMIT": {'description': 'The entity is below the detection limit'},
36
+ "ABOVE_DETECTION_LIMIT": {'description': 'The entity is above the detection limit'},
37
+ }
38
+
39
+ class ReactionDirectionality(RichEnum):
40
+ """
41
+ The directionality of a chemical reaction or process
42
+ """
43
+ # Enum members
44
+ LEFT_TO_RIGHT = "LEFT_TO_RIGHT"
45
+ RIGHT_TO_LEFT = "RIGHT_TO_LEFT"
46
+ BIDIRECTIONAL = "BIDIRECTIONAL"
47
+ AGNOSTIC = "AGNOSTIC"
48
+ IRREVERSIBLE_LEFT_TO_RIGHT = "IRREVERSIBLE_LEFT_TO_RIGHT"
49
+ IRREVERSIBLE_RIGHT_TO_LEFT = "IRREVERSIBLE_RIGHT_TO_LEFT"
50
+
51
+ # Set metadata after class creation
52
+ ReactionDirectionality._metadata = {
53
+ "LEFT_TO_RIGHT": {'description': 'Reaction proceeds from left to right (forward direction)', 'aliases': ['LR', 'forward', '-->']},
54
+ "RIGHT_TO_LEFT": {'description': 'Reaction proceeds from right to left (reverse direction)', 'aliases': ['RL', 'reverse', 'backward', '<--']},
55
+ "BIDIRECTIONAL": {'description': 'Reaction can proceed in both directions', 'aliases': ['BIDI', 'reversible', '<-->']},
56
+ "AGNOSTIC": {'description': 'Direction is unknown or not specified', 'aliases': ['unknown', 'unspecified']},
57
+ "IRREVERSIBLE_LEFT_TO_RIGHT": {'description': 'Reaction proceeds only from left to right and cannot be reversed', 'aliases': ['irreversible forward', '->>']},
58
+ "IRREVERSIBLE_RIGHT_TO_LEFT": {'description': 'Reaction proceeds only from right to left and cannot be reversed', 'aliases': ['irreversible reverse', '<<-']},
59
+ }
60
+
61
+ __all__ = [
62
+ "RelativeTimeEnum",
63
+ "PresenceEnum",
64
+ "ReactionDirectionality",
65
+ ]
@@ -0,0 +1,256 @@
1
+ """
2
+ Chemical Reactions Value Sets
3
+
4
+ Value sets for chemical reactions, reaction types, mechanisms, and kinetics.
5
+
6
+
7
+ Generated from: chemistry/reactions.yaml
8
+ """
9
+
10
+ from __future__ import annotations
11
+
12
+ from typing import Dict, Any, Optional
13
+ from valuesets.generators.rich_enum import RichEnum
14
+
15
+ class ReactionTypeEnum(RichEnum):
16
+ """
17
+ Types of chemical reactions
18
+ """
19
+ # Enum members
20
+ SYNTHESIS = "SYNTHESIS"
21
+ DECOMPOSITION = "DECOMPOSITION"
22
+ SINGLE_DISPLACEMENT = "SINGLE_DISPLACEMENT"
23
+ DOUBLE_DISPLACEMENT = "DOUBLE_DISPLACEMENT"
24
+ COMBUSTION = "COMBUSTION"
25
+ SUBSTITUTION = "SUBSTITUTION"
26
+ ELIMINATION = "ELIMINATION"
27
+ ADDITION = "ADDITION"
28
+ REARRANGEMENT = "REARRANGEMENT"
29
+ OXIDATION = "OXIDATION"
30
+ REDUCTION = "REDUCTION"
31
+ DIELS_ALDER = "DIELS_ALDER"
32
+ FRIEDEL_CRAFTS = "FRIEDEL_CRAFTS"
33
+ GRIGNARD = "GRIGNARD"
34
+ WITTIG = "WITTIG"
35
+ ALDOL = "ALDOL"
36
+ MICHAEL_ADDITION = "MICHAEL_ADDITION"
37
+
38
+ # Set metadata after class creation
39
+ ReactionTypeEnum._metadata = {
40
+ "SYNTHESIS": {'description': 'Combination reaction (A + B → AB)', 'annotations': {'aliases': 'combination, addition', 'pattern': 'A + B → AB'}},
41
+ "DECOMPOSITION": {'description': 'Breakdown reaction (AB → A + B)', 'annotations': {'aliases': 'analysis', 'pattern': 'AB → A + B'}},
42
+ "SINGLE_DISPLACEMENT": {'description': 'Single replacement reaction (A + BC → AC + B)', 'annotations': {'aliases': 'single replacement', 'pattern': 'A + BC → AC + B'}},
43
+ "DOUBLE_DISPLACEMENT": {'description': 'Double replacement reaction (AB + CD → AD + CB)', 'annotations': {'aliases': 'double replacement, metathesis', 'pattern': 'AB + CD → AD + CB'}},
44
+ "COMBUSTION": {'description': 'Reaction with oxygen producing heat and light', 'annotations': {'reactant': 'oxygen', 'products': 'usually CO2 and H2O'}},
45
+ "SUBSTITUTION": {'description': 'Replacement of one group by another', 'meaning': 'MOP:0000790', 'annotations': {'subtypes': 'SN1, SN2, SNAr'}},
46
+ "ELIMINATION": {'description': 'Removal of atoms/groups forming double bond', 'meaning': 'MOP:0000656', 'annotations': {'subtypes': 'E1, E2, E1cB'}},
47
+ "ADDITION": {'description': 'Addition to multiple bond', 'meaning': 'MOP:0000642', 'annotations': {'subtypes': 'electrophilic, nucleophilic, radical'}},
48
+ "REARRANGEMENT": {'description': 'Reorganization of molecular structure', 'annotations': {'examples': 'Claisen, Cope, Wagner-Meerwein'}},
49
+ "OXIDATION": {'description': 'Loss of electrons or increase in oxidation state', 'annotations': {'electron_change': 'loss'}},
50
+ "REDUCTION": {'description': 'Gain of electrons or decrease in oxidation state', 'annotations': {'electron_change': 'gain'}},
51
+ "DIELS_ALDER": {'description': '[4+2] cycloaddition reaction', 'meaning': 'RXNO:0000006', 'annotations': {'type': 'pericyclic', 'components': 'diene + dienophile'}},
52
+ "FRIEDEL_CRAFTS": {'description': 'Electrophilic aromatic substitution', 'meaning': 'RXNO:0000369', 'annotations': {'subtypes': 'alkylation, acylation'}},
53
+ "GRIGNARD": {'description': 'Organometallic addition reaction', 'meaning': 'RXNO:0000014', 'annotations': {'reagent': 'RMgX'}},
54
+ "WITTIG": {'description': 'Alkene formation from phosphonium ylide', 'meaning': 'RXNO:0000015', 'annotations': {'product': 'alkene'}},
55
+ "ALDOL": {'description': 'Condensation forming β-hydroxy carbonyl', 'meaning': 'RXNO:0000017', 'annotations': {'mechanism': 'enolate addition'}},
56
+ "MICHAEL_ADDITION": {'description': '1,4-addition to α,β-unsaturated carbonyl', 'meaning': 'RXNO:0000009', 'annotations': {'type': 'conjugate addition'}},
57
+ }
58
+
59
+ class ReactionMechanismEnum(RichEnum):
60
+ """
61
+ Reaction mechanism types
62
+ """
63
+ # Enum members
64
+ SN1 = "SN1"
65
+ SN2 = "SN2"
66
+ E1 = "E1"
67
+ E2 = "E2"
68
+ E1CB = "E1CB"
69
+ RADICAL = "RADICAL"
70
+ PERICYCLIC = "PERICYCLIC"
71
+ ELECTROPHILIC_AROMATIC = "ELECTROPHILIC_AROMATIC"
72
+ NUCLEOPHILIC_AROMATIC = "NUCLEOPHILIC_AROMATIC"
73
+ ADDITION_ELIMINATION = "ADDITION_ELIMINATION"
74
+
75
+ # Set metadata after class creation
76
+ ReactionMechanismEnum._metadata = {
77
+ "SN1": {'description': 'Unimolecular nucleophilic substitution', 'annotations': {'rate_determining': 'carbocation formation', 'stereochemistry': 'racemization'}},
78
+ "SN2": {'description': 'Bimolecular nucleophilic substitution', 'annotations': {'rate_determining': 'concerted', 'stereochemistry': 'inversion'}},
79
+ "E1": {'description': 'Unimolecular elimination', 'annotations': {'intermediate': 'carbocation'}},
80
+ "E2": {'description': 'Bimolecular elimination', 'annotations': {'requirement': 'antiperiplanar'}},
81
+ "E1CB": {'description': 'Elimination via conjugate base', 'annotations': {'intermediate': 'carbanion'}},
82
+ "RADICAL": {'description': 'Free radical mechanism', 'annotations': {'initiation': 'homolytic cleavage'}},
83
+ "PERICYCLIC": {'description': 'Concerted cyclic electron reorganization', 'annotations': {'examples': 'Diels-Alder, Cope'}},
84
+ "ELECTROPHILIC_AROMATIC": {'description': 'Electrophilic aromatic substitution', 'annotations': {'intermediate': 'arenium ion'}},
85
+ "NUCLEOPHILIC_AROMATIC": {'description': 'Nucleophilic aromatic substitution', 'annotations': {'requirement': 'electron-withdrawing groups'}},
86
+ "ADDITION_ELIMINATION": {'description': 'Addition followed by elimination', 'annotations': {'intermediate': 'tetrahedral'}},
87
+ }
88
+
89
+ class CatalystTypeEnum(RichEnum):
90
+ """
91
+ Types of catalysts
92
+ """
93
+ # Enum members
94
+ HOMOGENEOUS = "HOMOGENEOUS"
95
+ HETEROGENEOUS = "HETEROGENEOUS"
96
+ ENZYME = "ENZYME"
97
+ ORGANOCATALYST = "ORGANOCATALYST"
98
+ PHOTOCATALYST = "PHOTOCATALYST"
99
+ PHASE_TRANSFER = "PHASE_TRANSFER"
100
+ ACID = "ACID"
101
+ BASE = "BASE"
102
+ METAL = "METAL"
103
+ BIFUNCTIONAL = "BIFUNCTIONAL"
104
+
105
+ # Set metadata after class creation
106
+ CatalystTypeEnum._metadata = {
107
+ "HOMOGENEOUS": {'description': 'Catalyst in same phase as reactants', 'annotations': {'phase': 'same as reactants', 'examples': 'acid, base, metal complexes'}},
108
+ "HETEROGENEOUS": {'description': 'Catalyst in different phase from reactants', 'annotations': {'phase': 'different from reactants', 'examples': 'Pt/Pd on carbon, zeolites'}},
109
+ "ENZYME": {'description': 'Biological catalyst', 'meaning': 'CHEBI:23357', 'annotations': {'type': 'protein', 'specificity': 'high'}},
110
+ "ORGANOCATALYST": {'description': 'Small organic molecule catalyst', 'annotations': {'metal_free': 'true', 'examples': 'proline, thiourea'}},
111
+ "PHOTOCATALYST": {'description': 'Light-activated catalyst', 'annotations': {'activation': 'light', 'examples': 'TiO2, Ru complexes'}},
112
+ "PHASE_TRANSFER": {'description': 'Catalyst facilitating reaction between phases', 'annotations': {'function': 'transfers reactant between phases'}},
113
+ "ACID": {'description': 'Acid catalyst', 'annotations': {'mechanism': 'proton donation'}},
114
+ "BASE": {'description': 'Base catalyst', 'annotations': {'mechanism': 'proton abstraction'}},
115
+ "METAL": {'description': 'Metal catalyst', 'annotations': {'examples': 'Pd, Pt, Ni, Ru'}},
116
+ "BIFUNCTIONAL": {'description': 'Catalyst with two active sites', 'annotations': {'sites': 'multiple'}},
117
+ }
118
+
119
+ class ReactionConditionEnum(RichEnum):
120
+ """
121
+ Reaction conditions
122
+ """
123
+ # Enum members
124
+ ROOM_TEMPERATURE = "ROOM_TEMPERATURE"
125
+ REFLUX = "REFLUX"
126
+ CRYOGENIC = "CRYOGENIC"
127
+ HIGH_PRESSURE = "HIGH_PRESSURE"
128
+ VACUUM = "VACUUM"
129
+ INERT_ATMOSPHERE = "INERT_ATMOSPHERE"
130
+ MICROWAVE = "MICROWAVE"
131
+ ULTRASOUND = "ULTRASOUND"
132
+ PHOTOCHEMICAL = "PHOTOCHEMICAL"
133
+ ELECTROCHEMICAL = "ELECTROCHEMICAL"
134
+ FLOW = "FLOW"
135
+ BATCH = "BATCH"
136
+
137
+ # Set metadata after class creation
138
+ ReactionConditionEnum._metadata = {
139
+ "ROOM_TEMPERATURE": {'description': 'Standard room temperature (20-25°C)', 'annotations': {'temperature': '20-25°C'}},
140
+ "REFLUX": {'description': 'Boiling with condensation return', 'annotations': {'temperature': 'solvent boiling point'}},
141
+ "CRYOGENIC": {'description': 'Very low temperature conditions', 'annotations': {'temperature': '<-150°C', 'examples': 'liquid N2, liquid He'}},
142
+ "HIGH_PRESSURE": {'description': 'Elevated pressure conditions', 'annotations': {'pressure': '>10 atm'}},
143
+ "VACUUM": {'description': 'Reduced pressure conditions', 'annotations': {'pressure': '<1 atm'}},
144
+ "INERT_ATMOSPHERE": {'description': 'Non-reactive gas atmosphere', 'annotations': {'gases': 'N2, Ar'}},
145
+ "MICROWAVE": {'description': 'Microwave heating', 'annotations': {'heating': 'microwave irradiation'}},
146
+ "ULTRASOUND": {'description': 'Ultrasonic conditions', 'annotations': {'activation': 'ultrasound'}},
147
+ "PHOTOCHEMICAL": {'description': 'Light-induced conditions', 'annotations': {'activation': 'UV or visible light'}},
148
+ "ELECTROCHEMICAL": {'description': 'Electrically driven conditions', 'annotations': {'activation': 'electric current'}},
149
+ "FLOW": {'description': 'Continuous flow conditions', 'annotations': {'type': 'continuous process'}},
150
+ "BATCH": {'description': 'Batch reaction conditions', 'annotations': {'type': 'batch process'}},
151
+ }
152
+
153
+ class ReactionRateOrderEnum(RichEnum):
154
+ """
155
+ Reaction rate orders
156
+ """
157
+ # Enum members
158
+ ZERO_ORDER = "ZERO_ORDER"
159
+ FIRST_ORDER = "FIRST_ORDER"
160
+ SECOND_ORDER = "SECOND_ORDER"
161
+ PSEUDO_FIRST_ORDER = "PSEUDO_FIRST_ORDER"
162
+ FRACTIONAL_ORDER = "FRACTIONAL_ORDER"
163
+ MIXED_ORDER = "MIXED_ORDER"
164
+
165
+ # Set metadata after class creation
166
+ ReactionRateOrderEnum._metadata = {
167
+ "ZERO_ORDER": {'description': 'Rate independent of concentration', 'annotations': {'rate_law': 'rate = k', 'integrated': '[A] = [A]₀ - kt'}},
168
+ "FIRST_ORDER": {'description': 'Rate proportional to concentration', 'annotations': {'rate_law': 'rate = k[A]', 'integrated': 'ln[A] = ln[A]₀ - kt'}},
169
+ "SECOND_ORDER": {'description': 'Rate proportional to concentration squared', 'annotations': {'rate_law': 'rate = k[A]²', 'integrated': '1/[A] = 1/[A]₀ + kt'}},
170
+ "PSEUDO_FIRST_ORDER": {'description': 'Apparent first order (excess reagent)', 'annotations': {'condition': 'one reagent in large excess'}},
171
+ "FRACTIONAL_ORDER": {'description': 'Non-integer order', 'annotations': {'indicates': 'complex mechanism'}},
172
+ "MIXED_ORDER": {'description': 'Different orders for different reactants', 'annotations': {'example': 'rate = k[A][B]²'}},
173
+ }
174
+
175
+ class EnzymeClassEnum(RichEnum):
176
+ """
177
+ EC enzyme classification
178
+ """
179
+ # Enum members
180
+ OXIDOREDUCTASE = "OXIDOREDUCTASE"
181
+ TRANSFERASE = "TRANSFERASE"
182
+ HYDROLASE = "HYDROLASE"
183
+ LYASE = "LYASE"
184
+ ISOMERASE = "ISOMERASE"
185
+ LIGASE = "LIGASE"
186
+ TRANSLOCASE = "TRANSLOCASE"
187
+
188
+ # Set metadata after class creation
189
+ EnzymeClassEnum._metadata = {
190
+ "OXIDOREDUCTASE": {'description': 'Catalyzes oxidation-reduction reactions', 'meaning': 'EC:1', 'annotations': {'EC_class': '1', 'examples': 'dehydrogenases, oxidases'}},
191
+ "TRANSFERASE": {'description': 'Catalyzes group transfer reactions', 'meaning': 'EC:2', 'annotations': {'EC_class': '2', 'examples': 'kinases, transaminases'}},
192
+ "HYDROLASE": {'description': 'Catalyzes hydrolysis reactions', 'meaning': 'EC:3', 'annotations': {'EC_class': '3', 'examples': 'proteases, lipases'}},
193
+ "LYASE": {'description': 'Catalyzes non-hydrolytic additions/removals', 'meaning': 'EC:4', 'annotations': {'EC_class': '4', 'examples': 'decarboxylases, aldolases'}},
194
+ "ISOMERASE": {'description': 'Catalyzes isomerization reactions', 'meaning': 'EC:5', 'annotations': {'EC_class': '5', 'examples': 'racemases, epimerases'}},
195
+ "LIGASE": {'description': 'Catalyzes formation of bonds with ATP', 'meaning': 'EC:6', 'annotations': {'EC_class': '6', 'examples': 'synthetases, carboxylases'}},
196
+ "TRANSLOCASE": {'description': 'Catalyzes movement across membranes', 'meaning': 'EC:7', 'annotations': {'EC_class': '7', 'examples': 'ATPases, ion pumps'}},
197
+ }
198
+
199
+ class SolventClassEnum(RichEnum):
200
+ """
201
+ Classes of solvents
202
+ """
203
+ # Enum members
204
+ PROTIC = "PROTIC"
205
+ APROTIC_POLAR = "APROTIC_POLAR"
206
+ APROTIC_NONPOLAR = "APROTIC_NONPOLAR"
207
+ IONIC_LIQUID = "IONIC_LIQUID"
208
+ SUPERCRITICAL = "SUPERCRITICAL"
209
+ AQUEOUS = "AQUEOUS"
210
+ ORGANIC = "ORGANIC"
211
+ GREEN = "GREEN"
212
+
213
+ # Set metadata after class creation
214
+ SolventClassEnum._metadata = {
215
+ "PROTIC": {'description': 'Solvents with acidic hydrogen', 'annotations': {'H_bonding': 'donor', 'examples': 'water, alcohols, acids'}},
216
+ "APROTIC_POLAR": {'description': 'Polar solvents without acidic H', 'annotations': {'H_bonding': 'acceptor only', 'examples': 'DMSO, DMF, acetone'}},
217
+ "APROTIC_NONPOLAR": {'description': 'Nonpolar solvents', 'annotations': {'H_bonding': 'none', 'examples': 'hexane, benzene, CCl4'}},
218
+ "IONIC_LIQUID": {'description': 'Room temperature ionic liquids', 'annotations': {'state': 'liquid salt', 'examples': 'imidazolium salts'}},
219
+ "SUPERCRITICAL": {'description': 'Supercritical fluids', 'annotations': {'state': 'supercritical', 'examples': 'scCO2, scH2O'}},
220
+ "AQUEOUS": {'description': 'Water-based solvents', 'annotations': {'base': 'water'}},
221
+ "ORGANIC": {'description': 'Organic solvents', 'annotations': {'base': 'organic compounds'}},
222
+ "GREEN": {'description': 'Environmentally friendly solvents', 'annotations': {'property': 'low environmental impact', 'examples': 'water, ethanol, scCO2'}},
223
+ }
224
+
225
+ class ThermodynamicParameterEnum(RichEnum):
226
+ """
227
+ Thermodynamic parameters
228
+ """
229
+ # Enum members
230
+ ENTHALPY = "ENTHALPY"
231
+ ENTROPY = "ENTROPY"
232
+ GIBBS_ENERGY = "GIBBS_ENERGY"
233
+ ACTIVATION_ENERGY = "ACTIVATION_ENERGY"
234
+ HEAT_CAPACITY = "HEAT_CAPACITY"
235
+ INTERNAL_ENERGY = "INTERNAL_ENERGY"
236
+
237
+ # Set metadata after class creation
238
+ ThermodynamicParameterEnum._metadata = {
239
+ "ENTHALPY": {'description': 'Heat content (ΔH)', 'annotations': {'symbol': 'ΔH', 'units': 'kJ/mol'}},
240
+ "ENTROPY": {'description': 'Disorder (ΔS)', 'annotations': {'symbol': 'ΔS', 'units': 'J/mol·K'}},
241
+ "GIBBS_ENERGY": {'description': 'Free energy (ΔG)', 'annotations': {'symbol': 'ΔG', 'units': 'kJ/mol'}},
242
+ "ACTIVATION_ENERGY": {'description': 'Energy barrier (Ea)', 'annotations': {'symbol': 'Ea', 'units': 'kJ/mol'}},
243
+ "HEAT_CAPACITY": {'description': 'Heat capacity (Cp)', 'annotations': {'symbol': 'Cp', 'units': 'J/mol·K'}},
244
+ "INTERNAL_ENERGY": {'description': 'Internal energy (ΔU)', 'annotations': {'symbol': 'ΔU', 'units': 'kJ/mol'}},
245
+ }
246
+
247
+ __all__ = [
248
+ "ReactionTypeEnum",
249
+ "ReactionMechanismEnum",
250
+ "CatalystTypeEnum",
251
+ "ReactionConditionEnum",
252
+ "ReactionRateOrderEnum",
253
+ "EnzymeClassEnum",
254
+ "SolventClassEnum",
255
+ "ThermodynamicParameterEnum",
256
+ ]
@@ -0,0 +1 @@
1
+ """Auto-generated package."""
@@ -0,0 +1,177 @@
1
+ """
2
+ NIH Demographics and Common Data Elements
3
+
4
+ Standard value sets for NIH Common Data Elements (CDEs) including demographics,
5
+ race, ethnicity, sex, and other clinical variables following NIH and OMB standards
6
+
7
+ Generated from: clinical/nih_demographics.yaml
8
+ """
9
+
10
+ from __future__ import annotations
11
+
12
+ from typing import Dict, Any, Optional
13
+ from valuesets.generators.rich_enum import RichEnum
14
+
15
+ class RaceOMB1997Enum(RichEnum):
16
+ """
17
+ Race categories following OMB 1997 standards used by NIH and federal agencies.
18
+ Respondents may select multiple races.
19
+ """
20
+ # Enum members
21
+ AMERICAN_INDIAN_OR_ALASKA_NATIVE = "AMERICAN_INDIAN_OR_ALASKA_NATIVE"
22
+ ASIAN = "ASIAN"
23
+ BLACK_OR_AFRICAN_AMERICAN = "BLACK_OR_AFRICAN_AMERICAN"
24
+ NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER = "NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER"
25
+ WHITE = "WHITE"
26
+ MORE_THAN_ONE_RACE = "MORE_THAN_ONE_RACE"
27
+ UNKNOWN_OR_NOT_REPORTED = "UNKNOWN_OR_NOT_REPORTED"
28
+
29
+ # Set metadata after class creation
30
+ RaceOMB1997Enum._metadata = {
31
+ "AMERICAN_INDIAN_OR_ALASKA_NATIVE": {'description': 'A person having origins in any of the original peoples of North and South America (including Central America), and who maintains tribal affiliation or community attachment', 'meaning': 'NCIT:C41259', 'annotations': {'omb_code': '1002-5'}},
32
+ "ASIAN": {'description': 'A person having origins in any of the original peoples of the Far East, Southeast Asia, or the Indian subcontinent', 'meaning': 'NCIT:C41260', 'annotations': {'omb_code': '2028-9', 'includes': 'Cambodia, China, India, Japan, Korea, Malaysia, Pakistan, Philippine Islands, Thailand, Vietnam'}},
33
+ "BLACK_OR_AFRICAN_AMERICAN": {'description': 'A person having origins in any of the black racial groups of Africa', 'meaning': 'NCIT:C16352', 'annotations': {'omb_code': '2054-5'}},
34
+ "NATIVE_HAWAIIAN_OR_OTHER_PACIFIC_ISLANDER": {'description': 'A person having origins in any of the original peoples of Hawaii, Guam, Samoa, or other Pacific Islands', 'meaning': 'NCIT:C41219', 'annotations': {'omb_code': '2076-8'}},
35
+ "WHITE": {'description': 'A person having origins in any of the original peoples of Europe, the Middle East, or North Africa', 'meaning': 'NCIT:C41261', 'annotations': {'omb_code': '2106-3'}},
36
+ "MORE_THAN_ONE_RACE": {'description': 'Person identifies with more than one race category', 'meaning': 'NCIT:C67109', 'annotations': {'note': 'Added after 1997 revision to allow multiple race reporting'}},
37
+ "UNKNOWN_OR_NOT_REPORTED": {'description': 'Race not known, not reported, or declined to answer', 'meaning': 'NCIT:C17998', 'annotations': {'aliases': 'Unknown, Not Reported, Prefer not to answer'}},
38
+ }
39
+
40
+ class EthnicityOMB1997Enum(RichEnum):
41
+ """
42
+ Ethnicity categories following OMB 1997 standards used by NIH and federal agencies
43
+ """
44
+ # Enum members
45
+ HISPANIC_OR_LATINO = "HISPANIC_OR_LATINO"
46
+ NOT_HISPANIC_OR_LATINO = "NOT_HISPANIC_OR_LATINO"
47
+ UNKNOWN_OR_NOT_REPORTED = "UNKNOWN_OR_NOT_REPORTED"
48
+
49
+ # Set metadata after class creation
50
+ EthnicityOMB1997Enum._metadata = {
51
+ "HISPANIC_OR_LATINO": {'description': 'A person of Cuban, Mexican, Puerto Rican, South or Central American, or other Spanish culture or origin, regardless of race', 'meaning': 'NCIT:C17459', 'annotations': {'omb_code': '2135-2'}},
52
+ "NOT_HISPANIC_OR_LATINO": {'description': 'A person not of Hispanic or Latino origin', 'meaning': 'NCIT:C41222', 'annotations': {'omb_code': '2186-5'}},
53
+ "UNKNOWN_OR_NOT_REPORTED": {'description': 'Ethnicity not known, not reported, or declined to answer', 'meaning': 'NCIT:C17998', 'annotations': {'aliases': 'Unknown, Not Reported, Prefer not to answer'}},
54
+ }
55
+
56
+ class BiologicalSexEnum(RichEnum):
57
+ """
58
+ Biological sex assigned at birth based on anatomical and physiological traits.
59
+ Required by NIH as a biological variable in research.
60
+ """
61
+ # Enum members
62
+ MALE = "MALE"
63
+ FEMALE = "FEMALE"
64
+ INTERSEX = "INTERSEX"
65
+ UNKNOWN_OR_NOT_REPORTED = "UNKNOWN_OR_NOT_REPORTED"
66
+
67
+ # Set metadata after class creation
68
+ BiologicalSexEnum._metadata = {
69
+ "MALE": {'description': 'Male sex assigned at birth', 'meaning': 'PATO:0000384'},
70
+ "FEMALE": {'description': 'Female sex assigned at birth', 'meaning': 'PATO:0000383'},
71
+ "INTERSEX": {'description': "Born with reproductive or sexual anatomy that doesn't fit typical definitions of male or female", 'meaning': 'NCIT:C45908', 'annotations': {'prevalence': '0.018% to 1.7%', 'note': 'May be assigned male or female at birth'}},
72
+ "UNKNOWN_OR_NOT_REPORTED": {'description': 'Sex not known, not reported, or declined to answer', 'meaning': 'NCIT:C17998'},
73
+ }
74
+
75
+ class AgeGroupEnum(RichEnum):
76
+ """
77
+ Standard age groups used in NIH clinical research, particularly NINDS CDEs
78
+ """
79
+ # Enum members
80
+ NEONATE = "NEONATE"
81
+ INFANT = "INFANT"
82
+ YOUNG_PEDIATRIC = "YOUNG_PEDIATRIC"
83
+ PEDIATRIC = "PEDIATRIC"
84
+ ADOLESCENT = "ADOLESCENT"
85
+ YOUNG_ADULT = "YOUNG_ADULT"
86
+ ADULT = "ADULT"
87
+ OLDER_ADULT = "OLDER_ADULT"
88
+
89
+ # Set metadata after class creation
90
+ AgeGroupEnum._metadata = {
91
+ "NEONATE": {'description': 'Birth to 28 days', 'meaning': 'NCIT:C16731', 'annotations': {'max_age_days': 28}},
92
+ "INFANT": {'description': '29 days to less than 1 year', 'meaning': 'NCIT:C27956', 'annotations': {'min_age_days': 29, 'max_age_years': 1}},
93
+ "YOUNG_PEDIATRIC": {'description': '0 to 5 years (NINDS CDE definition)', 'meaning': 'NCIT:C39299', 'annotations': {'min_age_years': 0, 'max_age_years': 5, 'ninds_category': True}},
94
+ "PEDIATRIC": {'description': '6 to 12 years (NINDS CDE definition)', 'meaning': 'NCIT:C16423', 'annotations': {'min_age_years': 6, 'max_age_years': 12, 'ninds_category': True}},
95
+ "ADOLESCENT": {'description': '13 to 17 years', 'meaning': 'NCIT:C27954', 'annotations': {'min_age_years': 13, 'max_age_years': 17}},
96
+ "YOUNG_ADULT": {'description': '18 to 24 years', 'meaning': 'NCIT:C91107', 'annotations': {'min_age_years': 18, 'max_age_years': 24}},
97
+ "ADULT": {'description': '25 to 64 years', 'meaning': 'NCIT:C17600', 'annotations': {'min_age_years': 25, 'max_age_years': 64}},
98
+ "OLDER_ADULT": {'description': '65 years and older', 'meaning': 'NCIT:C16268', 'annotations': {'min_age_years': 65, 'aliases': 'Geriatric, Elderly, Senior'}},
99
+ }
100
+
101
+ class ParticipantVitalStatusEnum(RichEnum):
102
+ """
103
+ Vital status of a research participant in clinical studies
104
+ """
105
+ # Enum members
106
+ ALIVE = "ALIVE"
107
+ DECEASED = "DECEASED"
108
+ UNKNOWN = "UNKNOWN"
109
+
110
+ # Set metadata after class creation
111
+ ParticipantVitalStatusEnum._metadata = {
112
+ "ALIVE": {'description': 'Participant is living', 'meaning': 'NCIT:C37987'},
113
+ "DECEASED": {'description': 'Participant is deceased', 'meaning': 'NCIT:C28554'},
114
+ "UNKNOWN": {'description': 'Vital status unknown or lost to follow-up', 'meaning': 'NCIT:C17998'},
115
+ }
116
+
117
+ class RecruitmentStatusEnum(RichEnum):
118
+ """
119
+ Clinical trial or study recruitment status per NIH/ClinicalTrials.gov
120
+ """
121
+ # Enum members
122
+ NOT_YET_RECRUITING = "NOT_YET_RECRUITING"
123
+ RECRUITING = "RECRUITING"
124
+ ENROLLING_BY_INVITATION = "ENROLLING_BY_INVITATION"
125
+ ACTIVE_NOT_RECRUITING = "ACTIVE_NOT_RECRUITING"
126
+ SUSPENDED = "SUSPENDED"
127
+ TERMINATED = "TERMINATED"
128
+ COMPLETED = "COMPLETED"
129
+ WITHDRAWN = "WITHDRAWN"
130
+
131
+ # Set metadata after class creation
132
+ RecruitmentStatusEnum._metadata = {
133
+ "NOT_YET_RECRUITING": {'description': 'Study has not started recruiting participants', 'meaning': 'NCIT:C211610'},
134
+ "RECRUITING": {'description': 'Currently recruiting participants', 'meaning': 'NCIT:C142621'},
135
+ "ENROLLING_BY_INVITATION": {'description': 'Enrolling participants by invitation only', 'meaning': 'NCIT:C211611'},
136
+ "ACTIVE_NOT_RECRUITING": {'description': 'Study ongoing but not recruiting new participants', 'meaning': 'NCIT:C211612'},
137
+ "SUSPENDED": {'description': 'Study temporarily stopped', 'meaning': 'NCIT:C211613'},
138
+ "TERMINATED": {'description': 'Study stopped early and will not resume', 'meaning': 'NCIT:C70757'},
139
+ "COMPLETED": {'description': 'Study has ended normally', 'meaning': 'NCIT:C70756'},
140
+ "WITHDRAWN": {'description': 'Study withdrawn before enrollment', 'meaning': 'NCIT:C70758'},
141
+ }
142
+
143
+ class StudyPhaseEnum(RichEnum):
144
+ """
145
+ Clinical trial phases per FDA and NIH definitions
146
+ """
147
+ # Enum members
148
+ EARLY_PHASE_1 = "EARLY_PHASE_1"
149
+ PHASE_1 = "PHASE_1"
150
+ PHASE_1_2 = "PHASE_1_2"
151
+ PHASE_2 = "PHASE_2"
152
+ PHASE_2_3 = "PHASE_2_3"
153
+ PHASE_3 = "PHASE_3"
154
+ PHASE_4 = "PHASE_4"
155
+ NOT_APPLICABLE = "NOT_APPLICABLE"
156
+
157
+ # Set metadata after class creation
158
+ StudyPhaseEnum._metadata = {
159
+ "EARLY_PHASE_1": {'description': 'Exploratory trials before traditional Phase 1', 'meaning': 'NCIT:C54721', 'annotations': {'aliases': 'Phase 0'}},
160
+ "PHASE_1": {'description': 'Initial safety and dosage studies', 'meaning': 'NCIT:C15600', 'annotations': {'participants': '20-100'}},
161
+ "PHASE_1_2": {'description': 'Combined Phase 1 and Phase 2 trial', 'meaning': 'NCIT:C15694'},
162
+ "PHASE_2": {'description': 'Efficacy and side effects studies', 'meaning': 'NCIT:C15601', 'annotations': {'participants': '100-300'}},
163
+ "PHASE_2_3": {'description': 'Combined Phase 2 and Phase 3 trial', 'meaning': 'NCIT:C49686'},
164
+ "PHASE_3": {'description': 'Efficacy comparison with standard treatment', 'meaning': 'NCIT:C15602', 'annotations': {'participants': '300-3000'}},
165
+ "PHASE_4": {'description': 'Post-marketing surveillance', 'meaning': 'NCIT:C15603', 'annotations': {'note': 'After FDA approval'}},
166
+ "NOT_APPLICABLE": {'description': 'Not a phased clinical trial', 'meaning': 'NCIT:C48660', 'annotations': {'note': 'For observational studies, device trials, etc.'}},
167
+ }
168
+
169
+ __all__ = [
170
+ "RaceOMB1997Enum",
171
+ "EthnicityOMB1997Enum",
172
+ "BiologicalSexEnum",
173
+ "AgeGroupEnum",
174
+ "ParticipantVitalStatusEnum",
175
+ "RecruitmentStatusEnum",
176
+ "StudyPhaseEnum",
177
+ ]