# Install dependencies:
# pip install ollama
# Also install Ollama locally and pull the model: ollama pull llama3.2
#
# Illustrates a rule-based patient-support agent and compares its decision
# with an Ollama language-model response. Educational demonstration only.

import ollama

patient = {"temp": 102, "oxygen": 91, "heartrate": 123}

print("=" * 50)
print("PATIENT INFORMATION")
print("=" * 50)
print(f"Temperature: {patient['temp']} F")
print(f"Oxygen: {patient['oxygen']}%")
print(f"Heart rate: {patient['heartrate']} bpm")

# Rule-based decision: rules are evaluated in priority order.
if patient["oxygen"] < 90:
    rule_decision = "emergency treatment"
elif patient["temp"] > 101:
    rule_decision = "admit patient"
elif patient["heartrate"] > 100:
    rule_decision = "schedule doctor"
else:
    rule_decision = "discharge patient"

print("\nRULE-BASED AGENT")
print("Decision:", rule_decision)

prompt = f"""
You are a healthcare decision-support assistant, not a doctor.
Analyze these patient values:
- Temperature: {patient['temp']} F
- Oxygen level: {patient['oxygen']}%
- Heart rate: {patient['heartrate']} bpm
- Rule-based decision: {rule_decision}

Provide:
1. Patient condition (normal, moderate, serious, or critical)
2. Analysis of each vital sign
3. Appropriate level of care
4. Reasons for the recommendation
5. Priority (Low, Medium, High, Emergency)
6. Short final recommendation

Do not diagnose a disease. Flag physiologically implausible values.
State that real clinical decisions require qualified medical staff.
"""
print("\nOLLAMA AGENT")
response = ollama.chat(
    model="llama3.2",
    messages=[{"role": "user", "content": prompt}],
)
ollama_decision = response["message"]["content"].strip()
print(ollama_decision)

print("\nCOMPARISON")
print("Rule-based agent:", rule_decision)
print("Ollama agent:", ollama_decision)
print("\nThe two outputs are generated by different decision approaches.")
