From 97e80d789313a9081c38aba1b87bb21fe8349f07 Mon Sep 17 00:00:00 2001 From: Dan Birman Date: Mon, 29 Jun 2026 11:01:33 -0700 Subject: [PATCH 1/4] feat: FoodRestriction --- .../components/subject_procedures.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/aind_data_schema/components/subject_procedures.py b/src/aind_data_schema/components/subject_procedures.py index d1654fc85..0811c09b6 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 water 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="Water restriction start date") + end_date: Optional[date] = Field(default=None, title="Water restriction end date") + + class Surgery(ProtocolMixin, DataModel): """Description of subject procedures performed at one time""" From 35bdfeca61dc3ab2bb5ec3e8085b253631a53b48 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 29 Jun 2026 18:02:40 +0000 Subject: [PATCH 2/4] update docs --- docs/source/components/subject_procedures.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/docs/source/components/subject_procedures.md b/docs/source/components/subject_procedures.md index 0c6b3b6a2..71f1c18f8 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 water 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` | Water restriction start date | +| `end_date` | `Optional[datetime.date]` | Water restriction end date | + + ### GenericSubjectProcedure Description of a non-surgical procedure performed on a subject From 99e24432613a2bed8b81b5f51a62f520f9798ad1 Mon Sep 17 00:00:00 2001 From: Dan Birman Date: Mon, 6 Jul 2026 10:38:11 -0700 Subject: [PATCH 3/4] fix: typos --- src/aind_data_schema/components/subject_procedures.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/aind_data_schema/components/subject_procedures.py b/src/aind_data_schema/components/subject_procedures.py index ea2f16d4e..e5227ad19 100644 --- a/src/aind_data_schema/components/subject_procedures.py +++ b/src/aind_data_schema/components/subject_procedures.py @@ -90,15 +90,15 @@ class FoodRestriction(DataModel): 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 water per day unit") + 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="Water restriction start date") - end_date: Optional[date] = Field(default=None, title="Water restriction end date") + 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): From 00beb6b5b560c64139dcc0e99aef07221055e879 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 6 Jul 2026 17:40:57 +0000 Subject: [PATCH 4/4] update docs --- docs/source/components/subject_procedures.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/source/components/subject_procedures.md b/docs/source/components/subject_procedures.md index 0551c70da..19663e31a 100644 --- a/docs/source/components/subject_procedures.md +++ b/docs/source/components/subject_procedures.md @@ -12,11 +12,11 @@ Description of a food restriction procedure | `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 water per day unit | +| `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` | Water restriction start date | -| `end_date` | `Optional[datetime.date]` | Water restriction end date | +| `start_date` | `datetime.date` | Food restriction start date | +| `end_date` | `Optional[datetime.date]` | Food restriction end date | ### GenericSubjectProcedure