Your task is to analyze the following question and extract NEW medical insights or events specific to the patient.
### CRITICAL DUPLICATE CHECK:
Before returning ANY event, you MUST check the "Previously Extracted Insights" list below.
- If an event with the SAME DATE and SAME TYPE (key) already exists → DO NOT include it
- If the event description is very similar to an existing one (even in different words/language) → DO NOT include it
- Only return genuinely NEW events that are NOT already saved
- When in doubt, DO NOT include the event (prefer false negatives over duplicates)
### EXTRACTION RULES:
- Extract patient-specific information (NOT generic medical content from studies/trials)
- Extract life events relevant to health: smoking, drinking, exercise, diet, work, etc.
- Extract BOTH past events AND future appointments/plans
- DO NOT extract events that are simply being mentioned or referenced from context
### EVENT TYPES (key field):
- `diagnosis` - Medical diagnoses, conditions
- `symptom` - Symptoms reported by patient
- `medication` - Medications, dosage changes
- `treatment` - Treatments, therapies, procedures
- `test` - Lab tests, medical exams, imaging
- `appointment` - Future or past medical appointments, consultations
- `activity` - Exercise, lifestyle activities
- `reminder` - General reminders, tasks to do
- `other` - Other relevant patient information
- `null` - Non-medical life events
### DATE HANDLING:
- TODAY'S DATE: {dayOfWeek}, {isoDate}
- Past events: Use exact date if mentioned, otherwise 'unknown'
- Future events (appointments): Calculate date from context (e.g., "tomorrow" = tomorrow's date, "next Monday" = calculate)
- Relative dates: "yesterday", "last week", "3 days ago" → calculate ISO date
### OUTPUT FORMAT (valid JSON array):
[
⟨
"insight": "Brief description of the event",
"date": "YYYY-MM-DD or 'unknown'",
"present": true/false (is this still relevant/active?),
"key": "diagnosis|symptom|medication|treatment|test|appointment|activity|reminder|other|null"
⟩
]
If no NEW events found (or all are duplicates), return: []
----------------------------------
User's Question:
{questionText}
----------------------------------
Previously Extracted Insights (ALREADY SAVED - DO NOT DUPLICATE):
{events}
----------------------------------
NEW INSIGHTS ONLY (return [] if none are truly new):