mobieusKnow Handling bariatric tickets History #616
Author
Patrick Bass
Submitted
Sep 2, 2026 12:07pm
Summary
Handling bariatric tickets: the notice gate, the Premium key, stage vs reference calendar, care team precedence, supplement timing, labs and what to escalate
'''Who this is for.''' Support staff taking tickets about the bariatric and medical weight-management track. The member-facing guides live on loopa.mobieus.io and start at [https://loopa.mobieus.io/know/bariatric-surgery-explained Bariatric surgery explained].
+ '''The one thing to say in every reply.''' Loopa does not decide whether a procedure is right for anybody, does not recommend one, and never sets a dose. If a ticket is asking us to do any of those, the answer is their care team — and that is not a deflection, it is the product working as designed.
'''The one thing to say in every reply.''' Loopa does not decide whether a procedure is right for anybody, does not recommend one, and never sets a dose. If a ticket is asking us to do any of those, the answer is their care team, and that is not a deflection. It is the product working as designed.
== "I can't get past the notice" ==
The not-medical-advice notice is a '''write gate''', not a screen they can skip. Until it is accepted, every write returns '''403 `disclaimer_required`'''.
It is deliberately a 403 and not a 402, so it will '''not''' be fixed by a purchase or a restore. If the member is stuck:
* Confirm they tapped '''I understand''' on the notice screen, not just scrolled past it.
* Check `health_bariatric_profiles.disclaimer_ack_at` for their user id. Null means it never landed.
* The row also carries `disclaimer_build`, which is the app build that showed them the wording. Useful when somebody asks what they agreed to.
== "It says I need Premium" ==
+ The whole track is Premium on the '''`protocols`''' key — the same key as medication protocols. A member who already has protocols has this too; there is no second purchase.
The whole track is Premium on the '''`protocols`''' key, the same key as medication protocols. A member who already has protocols has this too; there is no second purchase.
'''Four things are free''' and should never raise a paywall: the subtype catalog, the Sources sheet, the education track, and the situation cards. If a member reports a paywall on one of those, that is a bug worth escalating with the screen name.
== "The dates are wrong" / "It says I'm on the wrong stage" ==
Two different fields, and telling them apart is most of these tickets.
* '''Where they are''' is `current_stage_no` on their profile. Only the member moves it, by tapping through the stage screen.
+ * '''Where the reference calendar would put them''' is computed from `procedure_date`. The app shows it beside where they are, labelled ''Reference''. It never moves them.
* '''Where the reference calendar would put them''' is computed from `procedure_date`. The app shows it beside where they are, labeled ''Reference''. It never moves them.
So "the app says I should be on solid food" is almost always the reference label doing its job. Nothing has moved them and nothing will.
If their '''procedure date''' is wrong, they can change it in setup. Changing it recomputes their lowest recorded weight since the procedure, which is what the weight-recurrence card measures from.
== "My care team sent a protocol and I can still see the old one" ==
+ Precedence is per stage, and it is '''all-or-nothing per stage'''. Where their care team supplied a stage, that stage is theirs and the screen is headed ''Your care team's protocol''. Where they did not, the published reference stage stands and is labelled as one.
Precedence is per stage, and it is '''all-or-nothing per stage'''. Where their care team supplied a stage, that stage is theirs and the screen is headed ''Your care team's protocol''. Where they did not, the published reference stage stands and is labeled as one.
So a partial protocol legitimately shows a mixture. That is correct and both halves say which they are.
A member can withdraw an accepted protocol at any time, and the reference comes back with a notice.
== "The supplement reminder times clash" ==
That is the app working. Iron and calcium are meant to be at least two hours apart, and the screen says so with a suggested time that clears it.
'''Loopa never moves a time the member set.''' If they want the suggestion applied, they tap it.
If the app says there is '''no clear slot''', that is honest rather than broken: three doses that must each be two hours from the others do not always fit in a waking day. The right answer is their care team.
== "The supplement amounts are different from what my clinic said" ==
Expected, and the screen is built for it. What Loopa shows is the published guideline figure, with the source one tap away. Their clinic's number is theirs, and they can enter it on the line.
'''An empty amount field is not zero.''' It means "keep the published range". Worth saying explicitly if somebody thinks they have cleared something.
== "My track has no stages / no lab reminders / only one supplement" ==
Working as designed on the three non-surgical tracks (`non_surgical_lifestyle`, shown as
"Medical weight management", plus `non_surgical_aom` and `non_surgical_endoscopic`) and on
the two pre-op tracks.
The hub only offers a row the member's track can actually fill, and says in a "Not part of
this track" card what it does not carry. The staged diet, the supplement schedule and the
lab calendar are all written for somebody who has had an operation, so they are not
published for a track without one. A non-surgical member still gets seven rows: getting
moving, symptoms, foods that sit well, what-to-do-if, their weight trend, the education
track, and an ordinary multivitamin under Supplements.
'''Do not ask engineering to "add the missing content."''' There is none to add: a
supplement schedule or a lab calendar for somebody who has not had a procedure has no
published source behind it, and the seed deliberately carries none.
'''What to offer instead:''' a member who wants a plan beyond the multivitamin should ask
their clinician, who can send one into Loopa through Clinician share. An accepted clinician
protocol DOES light these rows up. Availability is counted per member, so their own
care team's rows count.
If a member on a SURGICAL track (`post_op_*`) sees rows missing, that is not this: check
the tenant's reference seed, because a tenant whose seed did not land shows the same
symptom. Compare row counts against another tenant and escalate.
== "Where do I enter my lab results?" ==
Not on the lab screen. That screen is a '''reminder calendar''' and holds no results and no reference ranges of any kind, on purpose.
Lab values go in the medication engine's own lab log, which is encrypted and already has a marker vocabulary. Point them at Protocols → Labs.
== "Why is the red-flag card always there?" ==
Because it has to be. It is shown to every member on every subtype, all the time, so that seeing it is never something the app concluded about them. Loopa does not read anybody's logs and decide they are having a complication.
== Deleting data ==
+ Account erasure covers all eight per-member tables. '''Three of them are shared tables''' — stages, supplement defaults and the lab schedule — holding both platform content (`owner_user_id` = 0) and a member's own care team's protocol (`owner_user_id` = their id).
Account erasure covers all eight per-member tables. '''Three of them are shared tables''' (stages, supplement defaults and the lab schedule) holding both platform content (`owner_user_id` = 0) and a member's own care team's protocol (`owner_user_id` = their id).
'''Never delete an `owner_user_id` = 0 row to fix one member's problem.''' That is the catalog every member on the tenant reads.
== Escalate rather than answer ==
* Anything asking whether they should have surgery, which one, or what dose of anything.
* A paywall on the catalog, the Sources sheet, the education track or the situation cards.
* A citation that opens to nothing, or a Sources sheet that comes back empty.
* Any screen appearing to tell a member what is wrong with them.
The last one is the most important. Nothing in this feature triages, and a report that something did is a product bug, not a member misunderstanding.

'''Who this is for.''' Support staff taking tickets about the bariatric and medical weight-management track. The member-facing guides live on loopa.mobieus.io and start at [https://loopa.mobieus.io/know/bariatric-surgery-explained Bariatric surgery explained].

'''The one thing to say in every reply.''' Loopa does not decide whether a procedure is right for anybody, does not recommend one, and never sets a dose. If a ticket is asking us to do any of those, the answer is their care team — and that is not a deflection, it is the product working as designed.

== "I can't get past the notice" ==

The not-medical-advice notice is a '''write gate''', not a screen they can skip. Until it is accepted, every write returns '''403 disclaimer_required'''.

It is deliberately a 403 and not a 402, so it will '''not''' be fixed by a purchase or a restore. If the member is stuck:

  • Confirm they tapped '''I understand''' on the notice screen, not just scrolled past it.
  • Check health_bariatric_profiles.disclaimer_ack_at for their user id. Null means it never landed.
  • The row also carries disclaimer_build, which is the app build that showed them the wording. Useful when somebody asks what they agreed to.

== "It says I need Premium" ==

The whole track is Premium on the '''protocols''' key — the same key as medication protocols. A member who already has protocols has this too; there is no second purchase.

'''Four things are free''' and should never raise a paywall: the subtype catalog, the Sources sheet, the education track, and the situation cards. If a member reports a paywall on one of those, that is a bug worth escalating with the screen name.

== "The dates are wrong" / "It says I'm on the wrong stage" ==

Two different fields, and telling them apart is most of these tickets.

  • '''Where they are''' is current_stage_no on their profile. Only the member moves it, by tapping through the stage screen.
  • '''Where the reference calendar would put them''' is computed from procedure_date. The app shows it beside where they are, labelled ''Reference''. It never moves them.

So "the app says I should be on solid food" is almost always the reference label doing its job. Nothing has moved them and nothing will.

If their '''procedure date''' is wrong, they can change it in setup. Changing it recomputes their lowest recorded weight since the procedure, which is what the weight-recurrence card measures from.

== "My care team sent a protocol and I can still see the old one" ==

Precedence is per stage, and it is '''all-or-nothing per stage'''. Where their care team supplied a stage, that stage is theirs and the screen is headed ''Your care team's protocol''. Where they did not, the published reference stage stands and is labelled as one.

So a partial protocol legitimately shows a mixture. That is correct and both halves say which they are.

A member can withdraw an accepted protocol at any time, and the reference comes back with a notice.

== "The supplement reminder times clash" ==

That is the app working. Iron and calcium are meant to be at least two hours apart, and the screen says so with a suggested time that clears it.

'''Loopa never moves a time the member set.''' If they want the suggestion applied, they tap it.

If the app says there is '''no clear slot''', that is honest rather than broken: three doses that must each be two hours from the others do not always fit in a waking day. The right answer is their care team.

== "The supplement amounts are different from what my clinic said" ==

Expected, and the screen is built for it. What Loopa shows is the published guideline figure, with the source one tap away. Their clinic's number is theirs, and they can enter it on the line.

'''An empty amount field is not zero.''' It means "keep the published range". Worth saying explicitly if somebody thinks they have cleared something.

== "Where do I enter my lab results?" ==

Not on the lab screen. That screen is a '''reminder calendar''' and holds no results and no reference ranges of any kind, on purpose.

Lab values go in the medication engine's own lab log, which is encrypted and already has a marker vocabulary. Point them at Protocols → Labs.

== "Why is the red-flag card always there?" ==

Because it has to be. It is shown to every member on every subtype, all the time, so that seeing it is never something the app concluded about them. Loopa does not read anybody's logs and decide they are having a complication.

== Deleting data ==

Account erasure covers all eight per-member tables. '''Three of them are shared tables''' — stages, supplement defaults and the lab schedule — holding both platform content (owner_user_id = 0) and a member's own care team's protocol (owner_user_id = their id).

'''Never delete an owner_user_id = 0 row to fix one member's problem.''' That is the catalog every member on the tenant reads.

== Escalate rather than answer ==

  • Anything asking whether they should have surgery, which one, or what dose of anything.
  • A paywall on the catalog, the Sources sheet, the education track or the situation cards.
  • A citation that opens to nothing, or a Sources sheet that comes back empty.
  • Any screen appearing to tell a member what is wrong with them.

The last one is the most important. Nothing in this feature triages, and a report that something did is a product bug, not a member misunderstanding.

'''Who this is for.''' Support staff taking tickets about the bariatric and medical weight-management track. The member-facing guides live on loopa.mobieus.io and start at [https://loopa.mobieus.io/know/bariatric-surgery-explained Bariatric surgery explained].

'''The one thing to say in every reply.''' Loopa does not decide whether a procedure is right for anybody, does not recommend one, and never sets a dose. If a ticket is asking us to do any of those, the answer is their care team — and that is not a deflection, it is the product working as designed.

== "I can't get past the notice" ==

The not-medical-advice notice is a '''write gate''', not a screen they can skip. Until it is accepted, every write returns '''403 `disclaimer_required`'''.

It is deliberately a 403 and not a 402, so it will '''not''' be fixed by a purchase or a restore. If the member is stuck:

* Confirm they tapped '''I understand''' on the notice screen, not just scrolled past it.
* Check `health_bariatric_profiles.disclaimer_ack_at` for their user id. Null means it never landed.
* The row also carries `disclaimer_build`, which is the app build that showed them the wording. Useful when somebody asks what they agreed to.

== "It says I need Premium" ==

The whole track is Premium on the '''`protocols`''' key — the same key as medication protocols. A member who already has protocols has this too; there is no second purchase.

'''Four things are free''' and should never raise a paywall: the subtype catalog, the Sources sheet, the education track, and the situation cards. If a member reports a paywall on one of those, that is a bug worth escalating with the screen name.

== "The dates are wrong" / "It says I'm on the wrong stage" ==

Two different fields, and telling them apart is most of these tickets.

* '''Where they are''' is `current_stage_no` on their profile. Only the member moves it, by tapping through the stage screen.
* '''Where the reference calendar would put them''' is computed from `procedure_date`. The app shows it beside where they are, labelled ''Reference''. It never moves them.

So "the app says I should be on solid food" is almost always the reference label doing its job. Nothing has moved them and nothing will.

If their '''procedure date''' is wrong, they can change it in setup. Changing it recomputes their lowest recorded weight since the procedure, which is what the weight-recurrence card measures from.

== "My care team sent a protocol and I can still see the old one" ==

Precedence is per stage, and it is '''all-or-nothing per stage'''. Where their care team supplied a stage, that stage is theirs and the screen is headed ''Your care team's protocol''. Where they did not, the published reference stage stands and is labelled as one.

So a partial protocol legitimately shows a mixture. That is correct and both halves say which they are.

A member can withdraw an accepted protocol at any time, and the reference comes back with a notice.

== "The supplement reminder times clash" ==

That is the app working. Iron and calcium are meant to be at least two hours apart, and the screen says so with a suggested time that clears it.

'''Loopa never moves a time the member set.''' If they want the suggestion applied, they tap it.

If the app says there is '''no clear slot''', that is honest rather than broken: three doses that must each be two hours from the others do not always fit in a waking day. The right answer is their care team.

== "The supplement amounts are different from what my clinic said" ==

Expected, and the screen is built for it. What Loopa shows is the published guideline figure, with the source one tap away. Their clinic's number is theirs, and they can enter it on the line.

'''An empty amount field is not zero.''' It means "keep the published range". Worth saying explicitly if somebody thinks they have cleared something.

== "Where do I enter my lab results?" ==

Not on the lab screen. That screen is a '''reminder calendar''' and holds no results and no reference ranges of any kind, on purpose.

Lab values go in the medication engine's own lab log, which is encrypted and already has a marker vocabulary. Point them at Protocols → Labs.

== "Why is the red-flag card always there?" ==

Because it has to be. It is shown to every member on every subtype, all the time, so that seeing it is never something the app concluded about them. Loopa does not read anybody's logs and decide they are having a complication.

== Deleting data ==

Account erasure covers all eight per-member tables. '''Three of them are shared tables''' — stages, supplement defaults and the lab schedule — holding both platform content (`owner_user_id` = 0) and a member's own care team's protocol (`owner_user_id` = their id).

'''Never delete an `owner_user_id` = 0 row to fix one member's problem.''' That is the catalog every member on the tenant reads.

== Escalate rather than answer ==

* Anything asking whether they should have surgery, which one, or what dose of anything.
* A paywall on the catalog, the Sources sheet, the education track or the situation cards.
* A citation that opens to nothing, or a Sources sheet that comes back empty.
* Any screen appearing to tell a member what is wrong with them.

The last one is the most important. Nothing in this feature triages, and a report that something did is a product bug, not a member misunderstanding.