Internal review document

Assessment Tool: Clinical Logic & Reasoning

This page documents the question flow, triage logic, and results engine of the patient self-assessment tool for clinical review. The tool runs entirely client-side — no data is collected, stored, or transmitted.

Scope & disclaimers

  • Educational tool only — does not constitute medical advice, diagnosis, or treatment
  • Does not create a doctor-patient relationship
  • Not a validated screening instrument
  • Red flag triage is directional, not diagnostic
  • All results include disclaimer language and link to full disclaimer

1. Question flow overview

Seven questions, presented sequentially. Single-select questions auto-advance after 300ms. Multi-select questions require an explicit "Next" button. Users can navigate backward at any step.

Step ID Type Clinical purpose
1 location Single Anatomical region — determines terminology in results
2 duration Single Acuity classification — drives chronicity-related insights
3 red-flags Multi Safety screening — tiered triage (emergency / urgent / standard)
4 aggravating Single Mechanical pattern — maps to tissue-level hypothesis
5 impact Single Functional severity — influences headline urgency
6 perpetuating Multi Psychosocial / behavioral factors — CRISP perpetuating factor domain
7 previous-care Single Treatment history — identifies failed-treatment patterns

2. Q1: Where is your pain?

Single-select. Determines anatomical label used throughout results.

Value Label shown Maps to in results
lower-backLower Back"lower back"
neckNeck"neck"
mid-backMid-Back"mid-back"
multipleMultiple Areas"spine"

No clinical logic branches on this value alone — it personalizes language only.

3. Q2: How long have you had this pain?

Single-select. Drives chronicity flags and headline/insight selection.

Value Label Logic flags
acuteLess than 2 weeksNone
subacute2-6 weeksNone
early-chronic6 weeks - 3 monthsSets chronic = true; triggers "early intervention" insight
chronic3+ monthsSets chronic = true; triggers "chronic pain strategy" insight

The chronic flag combines with multiFail (from Q6/Q7) to produce the strongest "cause not yet found" messaging.

4. Q3: Red flags (Have you experienced any of these?)

Multi-select with "None" as exclusive option. This is the safety screening step. Options are grouped into three clinical severity tiers that determine the alert level shown in results.

Tier Value Label shown to patient Clinical rationale
Emergency cauda-equina Bladder/bowel control loss or groin numbness Cauda equina syndrome screening. Urinary retention/incontinence, fecal incontinence, saddle anesthesia require emergency surgical evaluation within hours.
Emergency progressive-weakness Rapidly worsening leg weakness Progressive motor deficit. Can indicate cord compression or evolving cauda equina. "Over hours or days" qualifier distinguishes from chronic weakness.
Urgent trauma Pain after significant injury Fracture screening. Significant mechanism (fall, MVA, direct impact) warrants imaging. Prompt, not emergency, unless neurological compromise.
Urgent systemic Unexplained weight loss, fever, or history of cancer Malignancy / infection screening. Combines three indicators: unexplained weight loss (>10 lbs), fever (infection/discitis), cancer history (metastatic disease). Requires specific diagnostic workup.
Standard numbness Numbness or tingling Radiculopathy / peripheral neuropathy. Common, usually treatable conservatively. "Not rapidly worsening" qualifier separates from emergency tier.
Standard night-pain Night pain that wakes you Low specificity as standalone red flag per Downie et al. (2013). Many mechanical conditions cause nocturnal pain. Classified as standard, not urgent.
None none None of these Exclusive option — deselects all others. No alert shown.

Triage hierarchy: Emergency supersedes Urgent supersedes Standard. If a patient selects both cauda-equina and trauma, only the Emergency alert fires. See Section 10 for full triage detail.

5. Q4: What makes it worse?

Single-select. Maps to a tissue-level hypothesis displayed as the first insight in results.

Value Label Insight title Clinical reasoning
sitting Sitting Possible disc involvement Sitting increases intradiscal pressure. Pain worsening with prolonged sitting suggests discogenic source. CRISP evaluation tests specific movements to confirm.
standing Standing or walking Possible facet joint or stenosis involvement Extension-loaded activities stress posterior elements. Pain with standing/walking can indicate facet joint irritation or neurogenic claudication from stenosis.
bending Bending or lifting Flexion-intolerant pattern Flexion-loaded activities suggest sensitivity to flexion forces. Specific tissue identification (disc, muscle, ligament) requires clinical examination.
constant Constant regardless Possible nervous system sensitization Pain that does not vary with mechanical loading may indicate central sensitization. Nervous system is amplifying pain signals beyond what tissue damage explains.

6. Q5: How much does this affect daily life?

Single-select. Influences headline urgency.

Value Label Effect on results
mildMildNo special headline override
moderateModerateNo special headline override
severeSevereSets severe = true; headline: "[Location] pain this severe deserves a real answer." (if not overridden by chronicity or emergency)

7. Q6: Perpetuating factors

Multi-select with exclusive "None." Maps to the CRISP perpetuating factor domain. Generates additional insight cards in results.

Value Label Insight generated
fear Fear of serious damage "Pain beliefs may be playing a role" — fear-avoidance model, pain neuroscience education
avoidance Avoiding activities
told-live-with-it Told to "just live with it" "Previous treatments may have missed the cause" — only if fear/avoidance NOT also selected (avoids stacking)
multiple-failed Multiple failed treatments
stress-sleep Stress or poor sleep "Lifestyle factors matter" — stress and sleep affect pain processing
none None of these Exclusive — no perpetuating factor insights generated

Anti-stacking rule: The "previous treatments missed the cause" insight only fires when fear/avoidance are NOT selected. This prevents presenting both "your beliefs are contributing" and "your treatments were inadequate" simultaneously — which could be confusing or demoralizing.

multiFail flag: multiple-failed here OR multiple-no-results in Q7 both set the multiFail flag, which combines with chronic to produce the strongest headline.

8. Q7: What have you tried so far?

Single-select. Captures treatment history. The key logic value is multiple-no-results which sets the multiFail flag.

Value Label Logic effect
nothingNothing yetNone
otcOver-the-counter medsNone
ptPhysical therapyNone
chiroChiropracticNone
injections-surgeryInjections or surgeryNone
multiple-no-resultsMultiple without lasting resultsSets multiFail = true

9. Results engine logic

After all 7 questions, the engine computes derived flags and assembles the results page. The results consist of up to 5 components displayed in this order:

  1. Red flag alert (if any red flags selected) — tiered by severity
  2. Headline — personalized based on condition profile
  3. Insight cards — 1-4 evidence-based observations (skipped for emergency)
  4. CRISP box — why CRISP is relevant to this case (skipped for emergency)
  5. CTA — call-to-action tiered by severity

Emergency path: When emergency red flags are selected, insights and CRISP box are suppressed. The results show only: Emergency alert + "Your safety comes first" headline + de-emphasized clinic link. This keeps the patient focused on seeking emergency care.

10. Red flag triage detail

Derived flags computed from Q3 answers:

emergencyRF = ['cauda-equina', 'progressive-weakness']
urgentRF    = ['trauma', 'systemic']

hasEmergency = rf.some(f => emergencyRF.includes(f))
hasUrgent    = rf.some(f => urgentRF.includes(f))
hasRF        = rf.length > 0 && !rf.includes('none')

Alert hierarchy (first match wins):

Tier 1: Emergency

Triggers: cauda-equina or progressive-weakness

Alert: Red banner — "These symptoms require immediate medical attention"

Action: "Please go to your nearest emergency room or call 911."

Specific messaging varies: cauda equina only, progressive weakness only, or both combined.

Tier 2: Urgent

Triggers: trauma or systemic (and no emergency flags)

Alert: Amber banner — "Symptoms requiring prompt evaluation"

Details are specific to which urgent flag(s): trauma mentions imaging/fracture; systemic mentions diagnostic workup. Recommends evaluation within days.

Tier 3: Standard

Triggers: numbness or night-pain (and no emergency/urgent flags)

Alert: Teal info banner — "Neurological symptoms noted" with reassurance that these are common and treatable.

11. Headline selection

Priority-ordered — first matching condition wins:

Priority Condition Headline
1hasEmergency"Your safety comes first."
2chronic && multiFail"Your [location] pain has a cause — even if no one has found it yet."
3dur === 'acute'"Recent [location] pain often responds well to the right treatment."
4severe"[Location] pain this severe deserves a real answer."
5chronic"[Location] pain lasting this long needs a different approach."
6Default"Here's what we'd investigate for your [location] pain."

12. Insight generation

Insights are accumulated (not mutually exclusive). A patient can see 1-4 insight cards. They are generated in this order:

  1. Aggravating factor insight (always — from Q4): disc / facet / flexion / sensitization
  2. Fear-avoidance insight (if Q6 includes fear or avoidance): pain beliefs and neuroscience education
  3. Stress/sleep insight (if Q6 includes stress-sleep): lifestyle factors
  4. Failed treatment insight (if Q6 includes told-live-with-it or multiple-failed, AND fear/avoidance NOT selected): missed cause
  5. Chronicity insight (if chronic): "needs a different strategy" or "early intervention improves outcomes" depending on exact duration

Suppression: All insights are suppressed when hasEmergency = true. The emergency alert and ER directive are the only actionable content shown.

13. CRISP box selection

One "Why CRISP for your case" message is selected (first match wins):

Priority Condition Message theme
1hasEmergencyCRISP screens for serious conditions first; coordinates emergency referral (suppressed in display — not shown to patient)
2chronic && multiFailCRISP was developed for cases where previous treatments failed — systematic evaluation of source + perpetuating factors
3hasUrgentCRISP begins with screening protocol to rule out serious conditions
4hasPerpCRISP evaluates the full picture — source + perpetuating factors + recovery path
5DefaultCRISP identifies the specific pain source — physical, neurological, lifestyle

14. CTA tiering

Condition CTA Style
hasEmergency"If you are not currently experiencing an emergency:" + text link "Schedule a thorough evaluation"De-emphasized — text link only, no button. ER directive is the primary action.
hasUrgent"Request an Urgent Evaluation"Primary button
Default"Book Your CRISP Evaluation"Primary button

15. Example scenarios

Scenario A: Acute disc presentation, no red flags

Answers: Lower back / <2 weeks / None / Sitting / Moderate / None / Nothing yet

  • No red flag alert
  • Headline: "Recent lower back pain often responds well to the right treatment."
  • Insight: "Possible disc involvement"
  • CRISP box: Default — identifies specific pain source
  • CTA: "Book Your CRISP Evaluation"

Scenario B: Chronic failed-treatment patient with fear-avoidance

Answers: Lower back / 3+ months / None / Constant / Severe / Fear + Avoidance + Stress-sleep / Multiple without lasting results

  • No red flag alert
  • Headline: "Your lower back pain has a cause — even if no one has found it yet." (chronic + multiFail wins over severe)
  • Insights: "Possible nervous system sensitization" + "Pain beliefs may be playing a role" + "Lifestyle factors matter" + "Chronic pain needs a different strategy"
  • CRISP box: Developed for cases where previous treatments failed
  • CTA: "Book Your CRISP Evaluation"

Scenario C: Cauda equina emergency

Answers: Lower back / <2 weeks / Cauda-equina + Progressive-weakness / Constant / Severe / None / Nothing yet

  • Emergency alert: Red banner — "These symptoms require immediate medical attention" with cauda equina + cord compression messaging
  • Headline: "Your safety comes first."
  • Insights: SUPPRESSED
  • CRISP box: SUPPRESSED
  • CTA: "Please go to your nearest emergency room or call 911." + de-emphasized clinic link

Scenario D: Post-trauma with numbness

Answers: Neck / 2-6 weeks / Trauma + Numbness / Standing / Moderate / None / OTC

  • Urgent alert: Amber banner — "Spine pain following significant trauma warrants prompt imaging..." (urgent supersedes standard numbness)
  • Headline: "Here's what we'd investigate for your neck pain."
  • Insight: "Possible facet joint or stenosis involvement"
  • CRISP box: Begins with screening protocol
  • CTA: "Request an Urgent Evaluation"

Scenario E: Systemic red flag with chronic pain

Answers: Mid-back / 3+ months / Systemic + Night-pain / Constant / Severe / Told-live-with-it / PT

  • Urgent alert: Amber banner — "Unexplained weight loss, fever, or a history of cancer..." (urgent supersedes standard night-pain)
  • Headline: "Mid-back pain this severe deserves a real answer." (severe wins; chronic alone is lower priority but chronic + multiFail isn't met since PT ≠ multiFail)
  • Insights: "Possible nervous system sensitization" + "Previous treatments may have missed the cause" + "Chronic pain needs a different strategy"
  • CRISP box: Begins with screening protocol (urgent takes priority)
  • CTA: "Request an Urgent Evaluation"
View the assessment tool

Questions or suggested changes? Contact hello@websitelab.biz