v2.0

GoRules Version 2 is here - redesigned, now with managed cloud.GoRules Version 2 is here!

Watch the launch videoWatch

Preventive Care Recommendation

Data-driven system that generates personalized preventive healthcare recommendations based on patient demographics and risk factors.

Solution

This healthcare decision engine creates tailored preventive care plans by analyzing patient demographics and medical risk factors. The system evaluates the patient's age to determine appropriate screenings, examinations, and immunizations based on established medical guidelines. It applies gender-specific recommendations for appropriate screenings like mammograms, cervical cancer testing, or prostate health evaluations based on both gender and age range.

The system also factors in family medical history and personal risk factors to identify necessary additional screenings. For patients with family histories of conditions like diabetes or cancer, it recommends earlier and more frequent specialized testing. Similarly, lifestyle factors such as smoking trigger specific screening recommendations like lung cancer assessments. The final output combines all recommendations into a comprehensive preventive care plan personalized to each patient's specific health profile.

How it works

The decision graph processes patient information through four specialized components:

  1. Patient Data Collection: Captures essential information including age, gender, family history, risk factors, and previous medical checkups.
  2. Age-Based Assessment: Evaluates patient age against medical guidelines to recommend appropriate screenings like blood pressure, cholesterol, and cancer screenings.
  3. Gender-Specific Evaluation: Determines recommended tests based on gender and age ranges, such as mammograms for women or prostate screenings for men.
  4. Risk Factor Analysis: Examines family medical history and lifestyle factors to identify additional necessary screenings.
  5. Recommendation Consolidation: Combines all assessments into a single, prioritized list of preventive care recommendations.

Where teams use it

  • Primary care practices
  • Preventive medicine clinics
  • Health insurance wellness programs
  • Patient portal applications
  • Annual physical preparation
  • Corporate wellness programs
  • Telemedicine providers
  • Public health screening initiatives

Inside the decision model

Preventive Care Recommendation ships as a JDM decision graph with 5 nodes, 3 decision tables and 18 rules. Download it, load it into GoRules, and run it as-is on Zen Engine.

Decision graph5 nodes · read-only
input patientDatatable ageBasedRecommendationstable sexBasedRecommendationstable riskBasedRecommendationsexpression finalRecommendations
01

Patient Data

input

Demographics plus history drive everything here: age and sex select rows in the screening tables, the familyHistory and riskFactors arrays feed the risk table, and firstName and lastName are recombined into the patient name in the final summary while lastCheckup rides along as context.

Sample requestJSON
{
  "firstName": "Jane",
  "lastName": "Smith",
  "age": 42,
  "sex": "female",
  "familyHistory": [
    "breast cancer",
    "diabetes"
  ],
  "riskFactors": [
    "smoking"
  ],
  "lastCheckup": "2023-10-15"
}
02

Age Based Recommendations

table

Five age bands each emit four recommendations into recommendations.ageBasedRecommendations, primary through quaternary. Under 18 centers on annual physicals, immunizations, vision, and six-month dental checkups; 18 to 39 adds depression and skin cancer screening with cholesterol every 5 years; 40 to 49 introduces diabetes screening every 3 years; 50 to 64 adds colorectal cancer screening and moves cholesterol to annual; 65 and older makes diabetes screening annual and adds a fall risk assessment. The bands are mutually exclusive, so the collect hit policy still yields exactly one matching row.

The milestones track published preventive guidance: colorectal screening entering at midlife, cholesterol checks intensifying with age, and fall risk assessment from 65 mirror USPSTF-style recommendations and routine geriatric practice. Band edges are simplified for the template, which is why colorectal screening appears at 50 here even though current US guidance has moved the start age to 45.

Decision tablecollect hit policy
AgeageRecommendation1recommendations.ageBasedRecommendations.primaryRecommendation2recommendations.ageBasedRecommendations.secondaryRecommendation3recommendations.ageBasedRecommendations.tertiaryRecommendation4recommendations.ageBasedRecommendations.quaternary
< 18"Annual physical examination""Immunizations as per schedule""Vision screening""Dental checkup every 6 months"
>= 18 and < 40"Blood pressure screening""Cholesterol screening every 5 years""Depression screening""Skin cancer screening"
>= 40 and < 50"Blood pressure screening""Cholesterol screening every 5 years""Diabetes screening every 3 years""Eye exam every 2-4 years"
>= 50 and < 65"Blood pressure screening""Cholesterol screening annually""Diabetes screening every 3 years""Colorectal cancer screening"
>= 65"Blood pressure screening""Cholesterol screening annually""Diabetes screening annually""Fall risk assessment"
03

Sex Based Recommendations

table

Sex and an age interval combine in every row, and collect gathers whichever applies. Women aged [21..30) get cervical cancer screening every 3 years plus annual chlamydia screening, [30..40) swaps in HPV testing every 5 years, [40..50) starts mammograms every 1-2 years framed as a discussion with the doctor, and [50..75) moves to mammograms every 2 years with bone density screening noted for 65 plus. Men have two bands: [40..55) pairs a prostate health discussion with a testicular exam, and [55..70) adds prostate cancer screening plus abdominal aortic aneurysm screening for those who ever smoked.

The intervals map closely onto real US screening guidance: cervical cytology from age 21, HPV testing options in the 30s, biennial mammography from 50 with an individualized-decision window in the 40s, shared decision-making on prostate screening from 55, and AAA screening reserved for older men with a smoking history. Upper bounds like 75 reflect the evidence-based stopping ages in those same recommendations rather than arbitrary limits.

Decision tablecollect hit policy
SexsexAgeageGenderRecommendation1recommendations.genderBasedRecommendations.primaryGenderRecommendation2recommendations.genderBasedRecommendations.secondary
'female'[21..30)"Cervical cancer screening every 3 years""Chlamydia screening annually (if sexually active)"
'female'[30..40)"Cervical cancer screening every 3 years""HPV testing every 5 years"
'female'[40..50)"Mammogram every 1-2 years (discuss with doctor)""Cervical cancer screening every 3 years"
'female'[50..75)"Mammogram every 2 years""Bone density screening (65+ or at risk)"
'male'[40..55)"Prostate health discussion with doctor""Testicular exam"
'male'[55..70)"Prostate cancer screening (discuss with doctor)""Abdominal aortic aneurysm screening (if ever smoked)"
04

Risk Based Recommendations

table

Seven independent contains() checks run under a collect policy, so every matching history or lifestyle item appends its own line to recommendations.riskBasedRecommendations. Family history of diabetes, heart disease, colorectal cancer, or breast cancer each pull the relevant screening earlier and make it more frequent, with the colorectal row explicitly targeting screening before age 45, while riskFactors entries add lung cancer screening for smoking, extra diabetes and heart checks for obesity, and liver function tests for alcohol abuse.

First-degree family history genuinely shifts screening start ages in clinical guidelines, most visibly for colorectal and breast cancer where earlier surveillance is standard in affected families, and low-dose CT lung screening is indicated by smoking history rather than age alone. Collect is the right policy because risk factors stack: a smoker with a family history of diabetes should see both recommendations, not whichever row sits higher.

Decision tablecollect hit policy
Risk AssessmentRiskRecommendationrecommendations.riskBasedRecommendations
contains(familyHistory, "diabetes")"Earlier and more frequent diabetes screening"
contains(familyHistory, "heart disease")"Earlier and more frequent cholesterol and blood pressure monitoring"
contains(familyHistory, "colorectal cancer")"Earlier colorectal cancer screening (before age 45)"
contains(familyHistory, "breast cancer")"Earlier and more frequent mammograms"
contains(riskFactors, "smoking")"Lung cancer screening"
contains(riskFactors, "obesity")"More frequent diabetes and heart disease screenings"

+1 more row in the downloadable template

05

Final Recommendations

expression

Consolidation folds the age, sex, and risk outputs into one flat summarizedRecommendations list by flattening values(recommendations), counts it into totalRecommendations, and formats patientName from firstName and lastName alongside a recommendationDate stamped from the current date. A testResults key is set to null as a placeholder, and with passThrough off the response is the summary alone rather than the nested intermediate structure.

Expressions5 fields
summarizedRecommendationsflatMap(flatten(values(recommendations)), #.recommendations)
patientName`${firstName} ${lastName}`
recommendationDatedateString(date("now"))
totalRecommendationslen($.summarizedRecommendations)
testResultsnull

Make this template
your own.

Load Preventive Care Recommendation into GoRules, adjust the rules to your policy, and ship it behind your own API.