Friends and Family Test data gives GP practices a steady stream of patient comments. Star ratings make the first chart easy. The harder questions sit inside the free text:
Those questions need language understanding, but they do not need a chatbot. They need a small set of bounded judgments that application code can store, aggregate, filter, and audit.
That is the role Jev plays in AI MedReview. Jev is TypeSafe's System One model. You send it a piece of state and one or more typed questions. It returns choices, scores, and probabilities instead of generated prose. The application keeps control of the workflow.
This article walks through the implementation in ai_medreview/data_v4.py and the dashboard in streamlit_app.py. The examples use the same design as the production pipeline, with the larger taxonomies shortened where needed.

AI MedReview separates inference from presentation:
free_text and do_better fields.data_v4.csv.The Streamlit app does not call Jev during a page view. That decision keeps the dashboard responsive and makes every chart reproducible from the saved CSV. It also lets the data job checkpoint long batches and resume after an interruption.
TypeSafe exposes three question primitives:
| Primitive | Use in AI MedReview | Returned value |
|---|---|---|
Choice |
Sentiment, primary topic, staff group | Selected option, option probabilities, confidence |
Score |
Sentiment strength, actionability, urgency | Position on an ordered rubric, level probabilities, confidence |
Noul |
Clinical safety, dignity or inclusion, leaving risk | Probability that the answer is yes |