POST /api/client/orders/evaluate
A professional's reading of the period that passed: the session-RPE log, the Hooper index and the food record against the SMART goals and the plan; adherence, load, wellbeing, each goal's status, what went well, what to change, what comes next.
Surface: client. Who may call: client. Key: client.orders.place.evaluate.
Example request
curl -X POST https://caremcp.com/api/client/orders/evaluate \
-H "Authorization: Bearer <session or access token>" \
-H "Content-Type: application/json" \
-d '{"professions":["personal-trainer"],"brief":{"period":{"from":"2026-10-01","to":"2026-10-07"},"health":{"parq":{"heartOrBloodPressure":false,"chestPain":false,"dizzinessOrFainting":false,"otherChronicCondition":false,"prescribedMedication":false,"boneJointSoftTissue":false,"supervisedOnly":false,"pregnant":false,"eatingDisorder":false,"declaredOn":"2026-09-20"},"diagnoses":[],"medications":[],"conditions":[]},"body":{"sex":"female","heightCm":168,"weightKg":64},"fitness":{"experience":"intermediate","activity":{"daysPerWeek":3,"minutesPerSession":45},"equipment":["dumbbells to 20 kg"],"daysAvailable":3,"minutesAvailable":60},"diet":{"pattern":"omnivore","allergies":[],"intolerances":["stone fruit"],"dislikes":[],"mealsPerDay":3,"cookingMinutes":30,"cookingSkill":"basic","caffeine":2,"alcohol":1},"goals":[{"text":"Run 10 km","measure":"distance in one run","target":"10 km","by":"2026-12-31","kind":"performance"}],"notes":"Three days a week, dumbbells at home.","plan":{"personal-trainer":{"markdown":"# Summary\nThree runs and two dumbbell sessions a week; the wrist stays neutral under load. \n\n# Weeks\n## Week 1\n### Day 1: run\nRPE 3, 30 minutes, easy.\n\n### Day 3: strength\nRPE 7, 45 minutes. Dumbbell row 3 x 10 at 14 kg, rest 90 s. Goblet squat 3 x 10.\n\n# Progression\nAdd five minutes to each run while RPE stays at 3; add one set to the rows in week three.\n\n# Adaptations\nNeutral grip on every press; no push-ups on the palm until the wrist settles.\n\n# Referral\nNone."}}}}'
Example input
{
"professions": [
"personal-trainer"
],
"brief": {
"period": {
"from": "2026-10-01",
"to": "2026-10-07"
},
"health": {
"parq": {
"heartOrBloodPressure": false,
"chestPain": false,
"dizzinessOrFainting": false,
"otherChronicCondition": false,
"prescribedMedication": false,
"boneJointSoftTissue": false,
"supervisedOnly": false,
"pregnant": false,
"eatingDisorder": false,
"declaredOn": "2026-09-20"
},
"diagnoses": [],
"medications": [],
"conditions": []
},
"body": {
"sex": "female",
"heightCm": 168,
"weightKg": 64
},
"fitness": {
"experience": "intermediate",
"activity": {
"daysPerWeek": 3,
"minutesPerSession": 45
},
"equipment": [
"dumbbells to 20 kg"
],
"daysAvailable": 3,
"minutesAvailable": 60
},
"diet": {
"pattern": "omnivore",
"allergies": [],
"intolerances": [
"stone fruit"
],
"dislikes": [],
"mealsPerDay": 3,
"cookingMinutes": 30,
"cookingSkill": "basic",
"caffeine": 2,
"alcohol": 1
},
"goals": [
{
"text": "Run 10 km",
"measure": "distance in one run",
"target": "10 km",
"by": "2026-12-31",
"kind": "performance"
}
],
"notes": "Three days a week, dumbbells at home.",
"plan": {
"personal-trainer": {
"markdown": "# Summary\nThree runs and two dumbbell sessions a week; the wrist stays neutral under load. \n\n# Weeks\n## Week 1\n### Day 1: run\nRPE 3, 30 minutes, easy.\n\n### Day 3: strength\nRPE 7, 45 minutes. Dumbbell row 3 x 10 at 14 kg, rest 90 s. Goblet squat 3 x 10.\n\n# Progression\nAdd five minutes to each run while RPE stays at 3; add one set to the rows in week three.\n\n# Adaptations\nNeutral grip on every press; no push-ups on the palm until the wrist settles.\n\n# Referral\nNone."
}
}
}
}
Input schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"professions": {
"minItems": 1,
"maxItems": 5,
"type": "array",
"items": {
"$ref": "#/$defs/__schema0"
},
"description": "Keys into the professions, one or more; one professional who holds them all answers."
},
"requestedProfessionalId": {
"description": "A professional the client wants again; the order is theirs alone for a day.",
"$ref": "#/$defs/__schema1"
},
"brief": {
"type": "object",
"properties": {
"period": {
"type": "object",
"properties": {
"from": {
"$ref": "#/$defs/__schema2"
},
"to": {
"$ref": "#/$defs/__schema3"
}
},
"required": [
"from",
"to"
]
},
"health": {
"type": "object",
"properties": {
"parq": {
"type": "object",
"properties": {
"heartOrBloodPressure": {
"$ref": "#/$defs/__schema4"
},
"chestPain": {
"$ref": "#/$defs/__schema5"
},
"dizzinessOrFainting": {
"$ref": "#/$defs/__schema6"
},
"otherChronicCondition": {
"$ref": "#/$defs/__schema7"
},
"prescribedMedication": {
"$ref": "#/$defs/__schema8"
},
"boneJointSoftTissue": {
"$ref": "#/$defs/__schema9"
},
"supervisedOnly": {
"$ref": "#/$defs/__schema10"
},
"pregnant": {
"$ref": "#/$defs/__schema11"
},
"eatingDisorder": {
"$ref": "#/$defs/__schema12"
},
"clinicianCleared": {
"$ref": "#/$defs/__schema13"
},
"declaredOn": {
"$ref": "#/$defs/__schema15"
}
},
"required": [
"heartOrBloodPressure",
"chestPain",
"dizzinessOrFainting",
"otherChronicCondition",
"prescribedMedication",
"boneJointSoftTissue",
"supervisedOnly",
"pregnant",
"eatingDisorder",
"declaredOn"
],
"description": "The health declaration: nine questions, the clearance, and the date the client answered."
},
"diagnoses": {
"maxItems": 20,
"type": "array",
"items": {
"$ref": "#/$defs/__schema16"
},
"description": "The chronic conditions a clinician has diagnosed, named, behind a yes on question 4."
},
"medications": {
"maxItems": 20,
"type": "array",
"items": {
"$ref": "#/$defs/__schema17"
},
"description": "Prescribed medications by name, behind a yes on question 5."
},
"conditions": {
"maxItems": 20,
"type": "array",
"items": {
"$ref": "#/$defs/__schema18"
},
"description": "Injuries, aches and problems with bones, joints or muscles the professional plans around, one entry each, behind a yes on question 6 or on their own."
}
},
"required": [
"parq",
"diagnoses",
"medications",
"conditions"
]
},
"body": {
"type": "object",
"properties": {
"sex": {
"type": "string",
"enum": [
"female",
"male",
"other"
],
"description": "For the norm tables: female, male, or other when neither table fits."
},
"heightCm": {
"type": "number",
"minimum": 100,
"maximum": 250,
"description": "Centimetres."
},
"weightKg": {
"type": "number",
"minimum": 30,
"maximum": 300,
"description": "Kilograms."
},
"waistCm": {
"description": "Centimetres, at the navel.",
"$ref": "#/$defs/__schema19"
},
"date": {
"description": "When the weight and waist were taken.",
"$ref": "#/$defs/__schema20"
}
},
"required": [
"sex",
"heightCm",
"weightKg"
]
},
"fitness": {
"type": "object",
"properties": {
"experience": {
"type": "string",
"enum": [
"beginner",
"intermediate",
"advanced",
"elite"
],
"description": "NSCA training status: beginner (under two months), intermediate, advanced (a year or more), elite (competing)."
},
"activity": {
"type": "object",
"properties": {
"daysPerWeek": {
"$ref": "#/$defs/__schema21"
},
"minutesPerSession": {
"$ref": "#/$defs/__schema22"
},
"since": {
"$ref": "#/$defs/__schema23"
}
},
"required": [
"daysPerWeek",
"minutesPerSession"
],
"description": "What the client does now, against ACSM's regular exerciser: 30 minutes or more of moderate activity, three or more days a week, for three months or more."
},
"strength": {
"description": "What the client knows about their strength. Only what they know; nothing is tested for this.",
"$ref": "#/$defs/__schema25"
},
"endurance": {
"type": "object",
"properties": {
"fiveKmMinutes": {
"description": "Recent 5 km time in minutes, decimals allowed: 22.5 is 22:30.",
"$ref": "#/$defs/__schema31"
},
"restingHeartRate": {
"description": "Beats per minute, at rest in the morning.",
"$ref": "#/$defs/__schema32"
},
"notes": {
"description": "In the client's words: walks 5 km without stopping, cycles to work.",
"$ref": "#/$defs/__schema33"
}
}
},
"mobility": {
"description": "In the client's words: cannot squat below parallel, tight hips.",
"$ref": "#/$defs/__schema34"
},
"equipment": {
"maxItems": 20,
"type": "array",
"items": {
"$ref": "#/$defs/__schema35"
},
"description": "dumbbells to 20 kg, gym, none, bike."
},
"daysAvailable": {
"type": "integer",
"minimum": 1,
"maximum": 7,
"description": "Days a week the plan may use."
},
"minutesAvailable": {
"type": "integer",
"minimum": 10,
"maximum": 300,
"description": "Minutes per session the plan may use."
}
},
"required": [
"experience",
"activity",
"equipment",
"daysAvailable",
"minutesAvailable"
]
},
"diet": {
"type": "object",
"properties": {
"pattern": {
"type": "string",
"minLength": 2,
"maxLength": 60,
"description": "omnivore, pescatarian, vegetarian, vegan, or the client's own word: halal, kosher, low FODMAP by choice."
},
"allergies": {
"maxItems": 20,
"type": "array",
"items": {
"$ref": "#/$defs/__schema36"
},
"description": "Foods that cause a reaction. Avoided in every plan."
},
"intolerances": {
"maxItems": 20,
"type": "array",
"items": {
"$ref": "#/$defs/__schema37"
},
"description": "Foods the client does not tolerate, in their own experience: stone fruit, lactose."
},
"dislikes": {
"maxItems": 30,
"type": "array",
"items": {
"$ref": "#/$defs/__schema38"
}
},
"mealsPerDay": {
"type": "integer",
"minimum": 1,
"maximum": 8,
"description": "Meals on an ordinary day, snacks not counted."
},
"cookingMinutes": {
"type": "integer",
"minimum": 0,
"maximum": 240,
"description": "Minutes the client will cook on an ordinary day."
},
"cookingSkill": {
"type": "string",
"enum": [
"none",
"basic",
"confident"
]
},
"caffeine": {
"type": "integer",
"minimum": 0,
"maximum": 20,
"description": "Cups of coffee, or the equivalent in tea or energy drinks, per day."
},
"alcohol": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "Standard drinks per week: one glass of wine, one bottle of beer, one shot each count as one."
},
"notes": {
"description": "Budget, family meals, shift work, in the client's words.",
"$ref": "#/$defs/__schema39"
}
},
"required": [
"pattern",
"allergies",
"intolerances",
"dislikes",
"mealsPerDay",
"cookingMinutes",
"cookingSkill",
"caffeine",
"alcohol"
]
},
"labs": {
"maxItems": 40,
"type": "array",
"items": {
"$ref": "#/$defs/__schema40"
}
},
"goals": {
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"$ref": "#/$defs/__schema42"
}
},
"sessions": {
"maxItems": 400,
"type": "array",
"items": {
"$ref": "#/$defs/__schema43"
}
},
"wellbeing": {
"maxItems": 400,
"type": "array",
"items": {
"$ref": "#/$defs/__schema46"
}
},
"food": {
"maxItems": 400,
"type": "array",
"items": {
"$ref": "#/$defs/__schema47"
}
},
"plan": {},
"notes": {
"type": "string",
"maxLength": 2000
}
},
"required": [
"period",
"health",
"body",
"goals"
]
}
},
"required": [
"professions",
"brief"
],
"$defs": {
"__schema0": {
"type": "string",
"minLength": 1
},
"__schema1": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"__schema2": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"__schema3": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"__schema4": {
"type": "boolean",
"description": "1. Has your doctor ever said that you have a heart condition OR high blood pressure?"
},
"__schema5": {
"type": "boolean",
"description": "2. Do you feel pain in your chest at rest, during your daily activities of living, OR when you do physical activity?"
},
"__schema6": {
"type": "boolean",
"description": "3. Do you lose balance because of dizziness OR have you lost consciousness in the last 12 months?"
},
"__schema7": {
"type": "boolean",
"description": "4. Have you ever been diagnosed with another chronic medical condition (other than heart disease or high blood pressure)?"
},
"__schema8": {
"type": "boolean",
"description": "5. Are you currently taking prescribed medications for a chronic medical condition?"
},
"__schema9": {
"type": "boolean",
"description": "6. Do you currently have (or have had within the past 12 months) a bone, joint, or soft tissue (muscle, ligament, or tendon) problem that could be made worse by becoming more physically active?"
},
"__schema10": {
"type": "boolean",
"description": "7. Has your doctor ever said that you should only do medically supervised physical activity?"
},
"__schema11": {
"type": "boolean",
"description": "8. Are you pregnant?"
},
"__schema12": {
"type": "boolean",
"description": "9. Do you have, or have you had, an eating disorder? A yes puts the service outside what we may offer."
},
"__schema13": {
"description": "Only when any answer above is YES: has a doctor or another clinician said that you may be physically active? Leave out when every answer is no.",
"$ref": "#/$defs/__schema14"
},
"__schema14": {
"type": "boolean"
},
"__schema15": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
"description": "The date the client answered these questions themselves. The declaration is the client's own, never inferred."
},
"__schema16": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 2,
"maxLength": 80,
"description": "As the clinician named it, in the client's words: type 2 diabetes, asthma, high blood pressure."
},
"since": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"underCare": {
"type": "boolean",
"description": "Under a clinician's care now."
}
},
"required": [
"name",
"underCare"
]
},
"__schema17": {
"type": "string",
"minLength": 2,
"maxLength": 80
},
"__schema18": {
"type": "object",
"properties": {
"area": {
"type": "string",
"minLength": 2,
"maxLength": 40,
"description": "Where: wrist, lower back, knee, or general."
},
"description": {
"type": "string",
"minLength": 3,
"maxLength": 300,
"description": "What it is like, in the client's words."
},
"since": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"severity": {
"type": "integer",
"minimum": 1,
"maximum": 5,
"description": "1 (notices it) to 5 (stops the activity)."
},
"clinicianCleared": {
"type": "boolean",
"description": "A clinician has seen it and said training around it is fine."
}
},
"required": [
"area",
"description",
"severity",
"clinicianCleared"
]
},
"__schema19": {
"type": "number",
"minimum": 40,
"maximum": 200
},
"__schema20": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"__schema21": {
"type": "integer",
"minimum": 0,
"maximum": 7
},
"__schema22": {
"type": "integer",
"minimum": 0,
"maximum": 600
},
"__schema23": {
"description": "ISO date this pattern has held since; omitted when it is new.",
"$ref": "#/$defs/__schema24"
},
"__schema24": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"__schema25": {
"type": "object",
"properties": {
"squatKg": {
"description": "Best single repetition, kilograms.",
"$ref": "#/$defs/__schema26"
},
"benchKg": {
"description": "Best single repetition, kilograms.",
"$ref": "#/$defs/__schema27"
},
"deadliftKg": {
"description": "Best single repetition, kilograms.",
"$ref": "#/$defs/__schema28"
},
"pushUps": {
"description": "Most in one set.",
"$ref": "#/$defs/__schema29"
},
"pullUps": {
"description": "Most in one set.",
"$ref": "#/$defs/__schema30"
}
}
},
"__schema26": {
"type": "number",
"minimum": 0,
"maximum": 500
},
"__schema27": {
"type": "number",
"minimum": 0,
"maximum": 400
},
"__schema28": {
"type": "number",
"minimum": 0,
"maximum": 500
},
"__schema29": {
"type": "integer",
"minimum": 0,
"maximum": 200
},
"__schema30": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"__schema31": {
"type": "number",
"minimum": 10,
"maximum": 120
},
"__schema32": {
"type": "integer",
"minimum": 30,
"maximum": 120
},
"__schema33": {
"type": "string",
"maxLength": 300
},
"__schema34": {
"type": "string",
"maxLength": 300
},
"__schema35": {
"type": "string",
"minLength": 2,
"maxLength": 60
},
"__schema36": {
"type": "object",
"properties": {
"food": {
"type": "string",
"minLength": 2,
"maxLength": 60
},
"clinicianDiagnosed": {
"type": "boolean",
"description": "A clinician has diagnosed it, as against the client's own observation."
}
},
"required": [
"food",
"clinicianDiagnosed"
]
},
"__schema37": {
"type": "string",
"minLength": 2,
"maxLength": 60
},
"__schema38": {
"type": "string",
"minLength": 2,
"maxLength": 60
},
"__schema39": {
"type": "string",
"maxLength": 500
},
"__schema40": {
"type": "object",
"properties": {
"marker": {
"type": "string",
"enum": [
"total-cholesterol",
"ldl",
"hdl",
"triglycerides",
"hba1c",
"fasting-glucose",
"ferritin",
"vitamin-d",
"blood-pressure",
"resting-heart-rate",
"other"
]
},
"name": {
"description": "Named when the marker is other.",
"$ref": "#/$defs/__schema41"
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 20,
"description": "As on the lab report: 4.8, or 130/85 for blood pressure."
},
"unit": {
"type": "string",
"minLength": 1,
"maxLength": 20,
"description": "As on the lab report: mmol/L, mg/dL, mmHg, bpm. Ask when the client gives a number without one; a value without its unit means nothing."
},
"date": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"clinicianReviewed": {
"type": "boolean",
"description": "A clinician took it or has seen it."
}
},
"required": [
"marker",
"value",
"unit",
"date",
"clinicianReviewed"
]
},
"__schema41": {
"type": "string",
"minLength": 2,
"maxLength": 60
},
"__schema42": {
"type": "object",
"properties": {
"text": {
"type": "string",
"minLength": 3,
"maxLength": 300,
"description": "Specific: what, in the client's words."
},
"measure": {
"type": "string",
"minLength": 2,
"maxLength": 100,
"description": "Measurable: what is measured. 5 km time, deadlift 1RM, waist, energy on a 1 to 5 scale."
},
"target": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "The target value with its unit: under 30 min, 100 kg, 4 or better most days."
},
"by": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
"description": "Time bound: the date."
},
"kind": {
"type": "string",
"enum": [
"performance",
"wellbeing",
"condition"
],
"description": "performance (stronger, faster, further), wellbeing (energy, sleep, weight for its own sake), condition (aimed at a disease or an injury; a clinician's, refused here)."
}
},
"required": [
"text",
"measure",
"target",
"by",
"kind"
]
},
"__schema43": {
"type": "object",
"properties": {
"date": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"type": {
"type": "string",
"minLength": 2,
"maxLength": 40,
"description": "strength, run, walk, cycle, swim, mobility, or the client's own word."
},
"minutes": {
"type": "integer",
"minimum": 1,
"maximum": 600
},
"rpe": {
"type": "integer",
"minimum": 0,
"maximum": 10,
"description": "Borg CR10, 0 (rest) to 10 (maximal), for the whole session, asked about 30 minutes after it."
},
"exercises": {
"maxItems": 30,
"type": "array",
"items": {
"$ref": "#/$defs/__schema44"
}
},
"notes": {
"type": "string",
"maxLength": 500
}
},
"required": [
"date",
"type",
"minutes",
"rpe"
]
},
"__schema44": {
"type": "object",
"properties": {
"exercise": {
"type": "string",
"minLength": 2,
"maxLength": 80
},
"sets": {
"type": "integer",
"minimum": 1,
"maximum": 20
},
"reps": {
"type": "integer",
"minimum": 1,
"maximum": 100
},
"load": {
"description": "In kg, or as the client wrote it: bodyweight, 70%, RPE 8.",
"$ref": "#/$defs/__schema45"
}
},
"required": [
"exercise",
"sets",
"reps"
]
},
"__schema45": {
"type": "string",
"minLength": 1,
"maxLength": 30
},
"__schema46": {
"type": "object",
"properties": {
"date": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"sleep": {
"type": "integer",
"minimum": 1,
"maximum": 7,
"description": "Sleep quality last night, 1 (very, very good) to 7 (very, very bad)."
},
"fatigue": {
"type": "integer",
"minimum": 1,
"maximum": 7,
"description": "1 (very, very low) to 7 (very, very high)."
},
"stress": {
"type": "integer",
"minimum": 1,
"maximum": 7,
"description": "1 (very, very low) to 7 (very, very high)."
},
"soreness": {
"type": "integer",
"minimum": 1,
"maximum": 7,
"description": "Muscle soreness, 1 (very, very low) to 7 (very, very high)."
}
},
"required": [
"date",
"sleep",
"fatigue",
"stress",
"soreness"
]
},
"__schema47": {
"type": "object",
"properties": {
"date": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"meals": {
"maxItems": 12,
"type": "array",
"items": {
"$ref": "#/$defs/__schema48"
}
},
"notes": {
"type": "string",
"maxLength": 500
}
},
"required": [
"date",
"meals"
]
},
"__schema48": {
"type": "object",
"properties": {
"time": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
"description": "24 hour clock: 07:30."
},
"items": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"$ref": "#/$defs/__schema49"
},
"description": "In household measures: 2 eggs, 2 slices rye bread, butter, coffee with milk."
},
"context": {
"description": "Before or after training, at a restaurant, in the client's words.",
"$ref": "#/$defs/__schema50"
}
},
"required": [
"time",
"items"
]
},
"__schema49": {
"type": "string",
"minLength": 2,
"maxLength": 200
},
"__schema50": {
"type": "string",
"maxLength": 200
}
}
}
Output schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string"
},
"protocol": {
"type": "string"
},
"professions": {
"type": "array",
"items": {
"type": "string"
}
},
"status": {
"type": "string",
"enum": [
"queued",
"assigned",
"reviewed",
"refused"
]
},
"screening": {
"type": "object",
"properties": {
"tier": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
},
{
"type": "number",
"const": 3
}
]
},
"flags": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"tier",
"flags"
],
"additionalProperties": false
},
"verdict": {
"type": "object",
"properties": {
"ok": {
"type": "boolean"
},
"kind": {
"type": "string",
"enum": [
"refused",
"clearance"
]
},
"reason": {
"type": "string"
}
},
"required": [
"ok"
],
"additionalProperties": false
},
"professionalId": {
"type": [
"string",
"null"
]
},
"review": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"properties": {
"markdown": {
"type": "string"
}
},
"required": [
"markdown"
],
"additionalProperties": false
}
},
{
"type": "null"
}
]
},
"priceCents": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"currency": {
"type": "string",
"enum": [
"USD",
"EUR"
]
},
"createdAt": {
"type": "string"
},
"claimedAt": {
"type": [
"string",
"null"
]
},
"reviewedAt": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"protocol",
"professions",
"status",
"screening",
"verdict",
"professionalId",
"review",
"priceCents",
"currency",
"createdAt",
"claimedAt",
"reviewedAt"
],
"additionalProperties": false
}