diff --git a/docs/source/components/subject_procedures.md b/docs/source/components/subject_procedures.md index 39b057a5d..19663e31a 100644 --- a/docs/source/components/subject_procedures.md +++ b/docs/source/components/subject_procedures.md @@ -2,6 +2,23 @@ ## Model definitions +### FoodRestriction + +Description of a food restriction procedure + +| Field | Type | Title (Description) | +|-------|------|-------------| +| `ethics_review_id` | `str` | Ethics review ID | +| `target_fraction_weight` | `int` | Target fraction weight (%) | +| `target_fraction_weight_unit` | [UnitlessUnit](../aind_data_schema_models/units.md#unitlessunit) | Target fraction weight unit | +| `minimum_food_per_day` | `float` | Minimum food per day | +| `minimum_food_per_day_unit` | [MassUnit](../aind_data_schema_models/units.md#massunit) | Minimum food per day unit | +| `baseline_weight` | `float` | Baseline weight (g) (Weight at start of food restriction) | +| `weight_unit` | [MassUnit](../aind_data_schema_models/units.md#massunit) | Weight unit | +| `start_date` | `datetime.date` | Food restriction start date | +| `end_date` | `Optional[datetime.date]` | Food restriction end date | + + ### GenericSubjectProcedure Description of a non-surgical procedure performed on a subject diff --git a/src/aind_data_schema/components/subject_procedures.py b/src/aind_data_schema/components/subject_procedures.py index ec4a40be3..e5227ad19 100644 --- a/src/aind_data_schema/components/subject_procedures.py +++ b/src/aind_data_schema/components/subject_procedures.py @@ -83,6 +83,24 @@ class WaterRestriction(DataModel): end_date: Optional[date] = Field(default=None, title="Water restriction end date") +class FoodRestriction(DataModel): + """Description of a food restriction procedure""" + + ethics_review_id: str = Field(..., title="Ethics review ID") + target_fraction_weight: int = Field(..., title="Target fraction weight (%)") + target_fraction_weight_unit: UnitlessUnit = Field(default=UnitlessUnit.PERCENT, title="Target fraction weight unit") + minimum_food_per_day: float = Field(..., title="Minimum food per day") + minimum_food_per_day_unit: MassUnit = Field(..., title="Minimum food per day unit") + baseline_weight: float = Field( + ..., + title="Baseline weight (g)", + description="Weight at start of food restriction", + ) + weight_unit: MassUnit = Field(default=MassUnit.G, title="Weight unit") + start_date: date = Field(..., title="Food restriction start date") + end_date: Optional[date] = Field(default=None, title="Food restriction end date") + + class Surgery(ProtocolMixin, DataModel): """Description of subject procedures performed at one time"""