Someone is cooking dinner for the family: rice, soup, a shared meat or fish dish, vegetables and something to dip them in. One of the people at the table has kidney failure and is receiving haemodialysis.
The cook is not preparing a nutrient spreadsheet. They are trying to make food that tastes good, feeds everyone and works for that person’s needs.
Vietnamese food brings layers of flavour: fish sauce, fermented pastes, pickled vegetables, broths and many ingredients in one meal. The question is not how to remove those familiar foods from someone’s life. It is how to understand the quantities and make useful adjustments within the food a family actually cooks.
Not another forbidden-food list
Eating well with chronic kidney disease (CKD) is not simply about restricting more. Too little energy or protein can also contribute to undernutrition, and protein needs can change when dialysis begins.
A food is not universally suitable or unsuitable for everyone with CKD. Portions, preparation, recent blood results, kidney function and the treatment plan matter. Dialysis type and frequency can affect dietary needs too. A reassuring blood result does not make every food unrestricted; the renal care team’s advice still matters.
For the family cook, that leaves practical questions: what is contributing potassium, phosphorus and sodium? How much ends up in one person’s bowl? What could change without making dinner unrecognisable?
This Home HD experiment is scoped to people with kidney failure receiving haemodialysis, and the families cooking for them—not to every stage of CKD. Earlier-stage CKD, kidney failure managed without dialysis, and other treatment pathways would need separately designed and reviewed nutritional guidance. The ingredient calculator could be reused; the dietary interpretation should not simply be carried across.
What the prototype does
I built a standalone Vietnamese recipe checker a few weeks ago. It accepts an ingredient list and has a Cookpad recipe-link reader. Ingredients are matched against a snapshot of Vietnam’s National Institute of Nutrition food table: 853 foods, with nutrient values per 100 g of edible food. Potassium values are available for 409 of those foods; missing values remain unknown. Quantities are converted where supported, and code calculates the estimated nutrients. Cross-referencing other regional food tables is future work, not an imputation layer already in this build.
An optional AI layer explains the finished calculation in Vietnamese. The calculator produces the numbers; the model describes them. That reduces the model’s responsibilities without making its prose infallible.
The checker can use entered potassium and phosphate results, with their dates, as context. It does not yet model kidney function or dialysis schedules. Those belong to the wider problem, not the current feature list.
The useful part is showing the gaps
Matching Vietnamese ingredients was less straightforward than building the chat box. Strip diacritics carelessly and bò and bơ—beef and butter—collapse into the same string. A fresh ingredient can also match the wrong dried or prepared food.
A tidy card can hide those mistakes. Each ingredient therefore has a drill-down showing the selected food, its nutrient values, contribution and source-table code.
Missing data needs equal attention. An unknown nutrient is not zero. An ingredient with no quantity is not the same as one absent from the table. Partial results name their gaps rather than presenting an incomplete calculation as a complete meal total.
The prototype is not clinically validated, and redistribution permission for the data snapshot remains unresolved. It is a development experiment, not a dietary verdict.
The next experiment
Image input could make this easier to use, but a photograph should not jump straight to a confident nutrient total.
The workflow I want to test is photo → proposed ingredients → human corrections and quantity questions → the existing calculator. An agent could coordinate food lookups and follow-up questions instead of guessing what the camera cannot establish.
Longer term, I want to explore similar applications for diabetes, heart disease and liver disease. Each would need its own clinical input and validation—not the same dietary rules with a different label.
That is a possible next post. For now, the recipe checker works, and the most useful lesson is already clear: make the uncertainty visible before making the answer sound confident.
Clinical background: NIDDK, Healthy Eating for Adults with Chronic Kidney Disease, Eating & Nutrition for Hemodialysis, and Hemodialysis. These inform the nutritional context, not validation of the software.