DocUA commited on
Commit
6683b63
·
1 Parent(s): 0c6718b

feat: enhance triage assessment handling and update last assessment for display

Browse files
Files changed (1) hide show
  1. src/core/simplified_medical_app.py +25 -1
src/core/simplified_medical_app.py CHANGED
@@ -134,6 +134,8 @@ class SimplifiedMedicalApp:
134
  if self.spiritual_state.is_in_triage():
135
  # Currently in YELLOW state - continue triage
136
  response = self._handle_triage_response(message, conversation_context)
 
 
137
  else:
138
  # Classify message with Spiritual Monitor (Requirement 2.1)
139
  assessment = self.spiritual_monitor.classify(message, conversation_context)
@@ -274,7 +276,7 @@ class SimplifiedMedicalApp:
274
  self.spiritual_state.triage_session.patient_responses.append(response)
275
  self.spiritual_state.triage_session.question_count += 1
276
 
277
- # Evaluate response
278
  outcome, reasoning = self.soft_triage_manager.evaluate_response(
279
  response=response,
280
  triage_session=self.spiritual_state.triage_session,
@@ -297,6 +299,14 @@ class SimplifiedMedicalApp:
297
  # Max questions reached - force decision (Requirement 3.6)
298
  return self._escalate_to_red("Max triage questions reached - conservative escalation")
299
  else:
 
 
 
 
 
 
 
 
300
  return self._generate_next_triage_question()
301
 
302
  def _handle_red_flag(
@@ -343,6 +353,17 @@ class SimplifiedMedicalApp:
343
  last_response = self.spiritual_state.triage_session.patient_responses[-1]
344
  patient_language = self._detect_language(last_response)
345
 
 
 
 
 
 
 
 
 
 
 
 
346
  # Transition back to GREEN (this clears triage session)
347
  self.spiritual_state.transition_to(SpiritualState.GREEN, reasoning)
348
 
@@ -379,6 +400,9 @@ class SimplifiedMedicalApp:
379
  reasoning=reasoning
380
  )
381
 
 
 
 
382
  # Generate crisis response
383
  crisis_response = self._generate_crisis_response(patient_language, assessment)
384
 
 
134
  if self.spiritual_state.is_in_triage():
135
  # Currently in YELLOW state - continue triage
136
  response = self._handle_triage_response(message, conversation_context)
137
+ # Note: _handle_triage_response methods (_resolve_to_green, _escalate_to_red)
138
+ # will update last_assessment appropriately
139
  else:
140
  # Classify message with Spiritual Monitor (Requirement 2.1)
141
  assessment = self.spiritual_monitor.classify(message, conversation_context)
 
276
  self.spiritual_state.triage_session.patient_responses.append(response)
277
  self.spiritual_state.triage_session.question_count += 1
278
 
279
+ # Evaluate response using triage logic
280
  outcome, reasoning = self.soft_triage_manager.evaluate_response(
281
  response=response,
282
  triage_session=self.spiritual_state.triage_session,
 
299
  # Max questions reached - force decision (Requirement 3.6)
300
  return self._escalate_to_red("Max triage questions reached - conservative escalation")
301
  else:
302
+ # Update assessment for continuing triage
303
+ continue_assessment = SpiritualAssessment(
304
+ state=SpiritualState.YELLOW,
305
+ indicators=["ongoing_triage"],
306
+ confidence=0.7,
307
+ reasoning=f"Continuing triage assessment - {reasoning}"
308
+ )
309
+ self.spiritual_state.last_assessment = continue_assessment
310
  return self._generate_next_triage_question()
311
 
312
  def _handle_red_flag(
 
353
  last_response = self.spiritual_state.triage_session.patient_responses[-1]
354
  patient_language = self._detect_language(last_response)
355
 
356
+ # Create GREEN assessment for display
357
+ green_assessment = SpiritualAssessment(
358
+ state=SpiritualState.GREEN,
359
+ indicators=[],
360
+ confidence=0.9,
361
+ reasoning=reasoning
362
+ )
363
+
364
+ # Update last assessment for display
365
+ self.spiritual_state.last_assessment = green_assessment
366
+
367
  # Transition back to GREEN (this clears triage session)
368
  self.spiritual_state.transition_to(SpiritualState.GREEN, reasoning)
369
 
 
400
  reasoning=reasoning
401
  )
402
 
403
+ # Update last assessment for display
404
+ self.spiritual_state.last_assessment = assessment
405
+
406
  # Generate crisis response
407
  crisis_response = self._generate_crisis_response(patient_language, assessment)
408