feat: AI patient onboarding backend and documentation
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
import json
|
||||
|
||||
|
||||
class CompletionService:
|
||||
|
||||
def is_complete(
|
||||
self,
|
||||
session,
|
||||
state,
|
||||
) -> bool:
|
||||
data = json.loads(
|
||||
state.state_json
|
||||
)
|
||||
|
||||
reason = data.get("reason_for_visit")
|
||||
symptoms = data.get("symptoms")
|
||||
history = data.get("medical_history")
|
||||
medications = data.get("medications")
|
||||
allergies = data.get("allergies")
|
||||
|
||||
# Check structured status dictionary format
|
||||
if isinstance(reason, dict):
|
||||
if reason.get("status") == "not_collected" or not reason.get("value"):
|
||||
return False
|
||||
elif not reason:
|
||||
return False
|
||||
|
||||
if isinstance(symptoms, dict):
|
||||
if symptoms.get("status") == "not_collected" or len(symptoms.get("items", [])) == 0:
|
||||
return False
|
||||
elif not symptoms:
|
||||
return False
|
||||
|
||||
if isinstance(history, dict):
|
||||
if history.get("status") == "not_collected":
|
||||
return False
|
||||
elif history is None:
|
||||
return False
|
||||
|
||||
if isinstance(medications, dict):
|
||||
if medications.get("status") == "not_collected":
|
||||
return False
|
||||
elif medications is None:
|
||||
return False
|
||||
|
||||
if isinstance(allergies, dict):
|
||||
if allergies.get("status") == "not_collected":
|
||||
return False
|
||||
elif allergies is None:
|
||||
return False
|
||||
|
||||
return True
|
||||
Reference in New Issue
Block a user