AI-RESEARCHER-2024 commited on
Commit
1ee4bf4
Β·
verified Β·
1 Parent(s): 694c003

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +160 -85
app.py CHANGED
@@ -21,7 +21,7 @@ class CICE_Assessment:
21
  self.model = genai.GenerativeModel("gemini-2.0-flash-exp")
22
 
23
  def analyze_video(self, video_path):
24
- """Analyze video using the 18-point CICE 2.0 assessment"""
25
 
26
  try:
27
  # Upload video to Gemini
@@ -38,89 +38,89 @@ class CICE_Assessment:
38
  if video_file.state.name == "FAILED":
39
  raise Exception("Video processing failed")
40
 
41
- # THE 18-POINT CICE 2.0 ASSESSMENT PROMPT
42
- prompt = """Analyze this healthcare team interaction video and provide a comprehensive assessment based on the CICE 2.0 instrument's 18 interprofessional competencies.
43
 
44
- For EACH of the following 18 competencies, clearly state whether it was "OBSERVED" or "NOT OBSERVED" and provide specific examples with timestamps when possible:
45
 
46
  1. IDENTIFIES FACTORS INFLUENCING HEALTH STATUS
47
- - Did anyone verbalize factors affecting the patient's health (medical history, social determinants, lifestyle factors)?
48
-
49
  2. IDENTIFIES TEAM GOALS FOR THE PATIENT
50
- - Were specific team goals for the patient discussed or established?
51
 
52
  3. PRIORITIZES GOALS FOCUSED ON IMPROVING HEALTH OUTCOMES
53
- - Was there clear prioritization of goals to improve patient health outcomes?
54
 
55
- 4. VERBALIZES DISCIPLINE-SPECIFIC ROLE
56
- - Did team members introduce themselves and clearly state their professional role (e.g., "I'm Dr. Smith, the attending physician")?
57
 
58
  5. OFFERS TO SEEK GUIDANCE FROM COLLEAGUES
59
- - Did anyone express uncertainty and offer to consult with colleagues of the same discipline when unsure?
60
 
61
  6. COMMUNICATES ABOUT COST-EFFECTIVE AND TIMELY CARE
62
- - Was there discussion about generic medications, diagnostic utility, or efficient care delivery?
63
 
64
  7. DIRECTS QUESTIONS TO OTHER HEALTH PROFESSIONALS BASED ON EXPERTISE
65
- - Were questions appropriately directed to specific team members based on their expertise?
66
 
67
  8. AVOIDS DISCIPLINE-SPECIFIC TERMINOLOGY
68
- - Did team members avoid or explain medical jargon, acronyms, and abbreviations when speaking?
69
 
70
  9. EXPLAINS DISCIPLINE-SPECIFIC TERMINOLOGY WHEN NECESSARY
71
- - When technical terms were used, were they explained professionally when clarification was needed?
72
 
73
  10. COMMUNICATES ROLES AND RESPONSIBILITIES CLEARLY
74
- - Were individual responsibilities and roles clearly articulated?
75
 
76
  11. ENGAGES IN ACTIVE LISTENING
77
- - Was there evidence of active listening through verbal acknowledgments, nonverbal cues, or engaging responses?
78
 
79
  12. SOLICITS AND ACKNOWLEDGES PERSPECTIVES
80
- - Did team members actively ask for and acknowledge input from other team members?
81
 
82
  13. RECOGNIZES APPROPRIATE CONTRIBUTIONS
83
- - Was there verbal or nonverbal recognition when team members made valuable contributions to patient care?
84
 
85
  14. RESPECTFUL OF OTHER TEAM MEMBERS
86
- - Was professionalism maintained? Were team members' expertise and lived experiences recognized?
87
 
88
  15. COLLABORATIVELY WORKS THROUGH INTERPROFESSIONAL CONFLICTS
89
- - If disagreements occurred, were they handled professionally and collaboratively?
90
 
91
- 16. REFLECTS ON STRENGTHS OF TEAM INTERACTIONS
92
- - Did anyone comment on what went well in the team interaction?
93
 
94
- 17. REFLECTS ON CHALLENGES OF TEAM INTERACTIONS
95
- - Were difficulties or areas for improvement explicitly discussed?
96
 
97
- 18. IDENTIFIES HOW TO IMPROVE TEAM EFFECTIVENESS
98
- - Were specific suggestions made for improving future team collaboration?
99
 
100
  STRUCTURE YOUR RESPONSE AS FOLLOWS:
101
 
102
  ## OVERALL ASSESSMENT
103
- Provide a brief overview of the team interaction quality and professionalism.
104
 
105
  ## DETAILED COMPETENCY EVALUATION
106
  For each of the 18 competencies, format as:
107
 
108
  Competency [number]: [name]
109
  Status: [OBSERVED/NOT OBSERVED]
110
- Evidence: [Specific examples from the video, or explanation of why it wasn't observed]
111
 
112
  ## STRENGTHS
113
- List 3-5 key strengths observed in the team interaction
114
 
115
  ## AREAS FOR IMPROVEMENT
116
- List 3-5 specific areas where the team could improve
117
 
118
- ## RECOMMENDATIONS
119
- Provide 3-5 actionable recommendations for enhancing team collaboration and patient care
120
 
121
  ## FINAL SCORE
122
  Competencies Observed: X/18
123
- Overall Performance Level: [Exemplary/Proficient/Developing/Needs Improvement]"""
124
 
125
  response = self.model.generate_content([video_file, prompt])
126
  return response.text
@@ -129,16 +129,33 @@ class CICE_Assessment:
129
  return f"Error during analysis: {str(e)}"
130
 
131
  def generate_audio_feedback(self, text):
132
- """Convert assessment text to audio feedback"""
 
 
 
 
 
 
 
 
 
133
 
134
  # Clean text for speech
135
- clean_text = re.sub(r'[#*_\[\]()]', ' ', text)
136
  clean_text = re.sub(r'\s+', ' ', clean_text)
137
  clean_text = re.sub(r'[-β€’Β·]\s+', '', clean_text)
138
 
 
 
 
 
 
 
 
 
139
  # Generate audio with gTTS
140
  try:
141
- tts = gTTS(text=clean_text, lang='en', slow=False)
142
 
143
  # Save to temporary file
144
  with tempfile.NamedTemporaryFile(delete=False, suffix='.mp3') as tmp_file:
@@ -150,6 +167,40 @@ class CICE_Assessment:
150
  print(f"⚠️ Audio generation failed: {str(e)}")
151
  return None
152
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
153
  def parse_assessment_scores(self, assessment_text):
154
  """Parse assessment text to extract scores"""
155
 
@@ -268,14 +319,14 @@ def process_video(video):
268
 
269
  progress_messages.append("βœ… Analysis complete!")
270
 
271
- # Generate audio feedback
272
- progress_messages.append("πŸ”Š Generating audio feedback...")
273
  audio_path = assessor.generate_audio_feedback(assessment_result)
274
 
275
  # Parse scores for visual summary
276
  observed, total, percentage, level, color = assessor.parse_assessment_scores(assessment_result)
277
 
278
- # Create visual summary HTML
279
  summary_html = f"""
280
  <div style="max-width:800px; margin:20px auto; padding:30px; border-radius:15px; box-shadow:0 4px 6px rgba(0,0,0,0.1);">
281
  <h2 style="text-align:center; color:#1f2937;">CICE 2.0 Assessment Summary</h2>
@@ -296,27 +347,42 @@ def process_video(video):
296
  </div>
297
 
298
  <div style="margin-top:30px;">
299
- <h3>πŸ“‹ CICE 2.0 Competency Areas:</h3>
300
- <ol style="line-height:1.8; color:#374151;">
301
- <li>Health Status Factors</li>
302
- <li>Team Goals Identification</li>
303
- <li>Goal Prioritization</li>
304
- <li>Role Verbalization</li>
305
- <li>Seeking Guidance</li>
306
- <li>Cost-Effective Communication</li>
307
- <li>Expertise-Based Questions</li>
308
- <li>Avoiding Jargon</li>
309
- <li>Explaining Terminology</li>
310
- <li>Clear Role Communication</li>
311
- <li>Active Listening</li>
312
- <li>Soliciting Perspectives</li>
313
- <li>Recognizing Contributions</li>
314
- <li>Team Respect</li>
315
- <li>Conflict Resolution</li>
316
- <li>Strength Reflection</li>
317
- <li>Challenge Reflection</li>
318
- <li>Improvement Identification</li>
319
- </ol>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
320
  </div>
321
  </div>
322
  """
@@ -344,13 +410,13 @@ def create_interface():
344
  gr.Markdown("""
345
  # πŸ₯ CICE 2.0 Healthcare Team Assessment Tool
346
 
347
- **Analyze healthcare team interactions using the 18-point CICE 2.0 interprofessional competency framework**
348
 
349
- This tool evaluates healthcare team communication and collaboration based on:
350
- - Patient-centered care planning
351
- - Role clarity and communication
352
- - Team dynamics and respect
353
- - Reflective practice
354
 
355
  ---
356
  """)
@@ -381,11 +447,16 @@ def create_interface():
381
  1. **Upload** a pre-recorded video or **Record** using your webcam
382
  2. Click **Analyze Video** to start the assessment
383
  3. Wait for the AI to process (1-2 minutes)
384
- 4. Review the detailed assessment and listen to audio feedback
 
385
 
386
- **Note:** Videos are automatically optimized for faster processing:
387
- - Webcam recording: 640x360
388
- - Uploaded videos > 10MB will be compressed
 
 
 
 
389
  """)
390
 
391
  with gr.Column(scale=2):
@@ -394,21 +465,21 @@ def create_interface():
394
  # Visual summary
395
  summary_output = gr.HTML(label="Visual Summary")
396
 
 
 
 
 
 
 
 
397
  # Detailed assessment
398
  assessment_output = gr.Textbox(
399
- label="Detailed CICE 2.0 Assessment",
400
  lines=20,
401
  max_lines=30,
402
  interactive=False
403
  )
404
 
405
- # Audio feedback
406
- audio_output = gr.Audio(
407
- label="πŸ”Š Audio Feedback (Downloadable)",
408
- type="filepath",
409
- interactive=False
410
- )
411
-
412
  # Download report
413
  report_file = gr.File(
414
  label="πŸ“₯ Download Full Report",
@@ -418,11 +489,15 @@ def create_interface():
418
  # Footer
419
  gr.Markdown("""
420
  ---
421
- ### About CICE 2.0
422
- The Creighton Interprofessional Collaborative Evaluation (CICE) instrument assesses 18 key competencies
423
- for effective healthcare team collaboration, including communication, role clarity, and patient-centered care.
424
-
425
- **Note:** Ensure your video clearly captures team interactions and audio for accurate assessment.
 
 
 
 
426
  """)
427
 
428
  # Connect the analyze button
@@ -442,4 +517,4 @@ if __name__ == "__main__":
442
  debug=True,
443
  server_name="0.0.0.0",
444
  server_port=7860
445
- )
 
21
  self.model = genai.GenerativeModel("gemini-2.0-flash-exp")
22
 
23
  def analyze_video(self, video_path):
24
+ """Analyze video using the 18-point CICE 2.0 assessment with specific behavioral cues"""
25
 
26
  try:
27
  # Upload video to Gemini
 
38
  if video_file.state.name == "FAILED":
39
  raise Exception("Video processing failed")
40
 
41
+ # ENHANCED PROMPT WITH SPECIFIC BEHAVIORAL CUES
42
+ prompt = """Analyze this healthcare team interaction video and provide a comprehensive assessment based on the CICE 2.0 instrument's 18 interprofessional competencies, looking for these SPECIFIC BEHAVIORAL CUES:
43
 
44
+ For EACH competency, clearly state whether it was "OBSERVED" or "NOT OBSERVED" based on these specific behaviors:
45
 
46
  1. IDENTIFIES FACTORS INFLUENCING HEALTH STATUS
47
+ LOOK FOR: Team mentions allergy bracelet, fall-related trauma, multiple injuries, or states airway/breathing/circulation concerns out loud
48
+
49
  2. IDENTIFIES TEAM GOALS FOR THE PATIENT
50
+ LOOK FOR: Team verbalizes goals like: stabilize airway, CPR/AED, give epinephrine, control bleeding, preserve tooth, prepare EMS handoff
51
 
52
  3. PRIORITIZES GOALS FOCUSED ON IMPROVING HEALTH OUTCOMES
53
+ LOOK FOR: CPR/AED prioritized before bleeding/dental injury, EpiPen administered before addressing secondary injuries
54
 
55
+ 4. VERBALIZES DISCIPLINE-SPECIFIC ROLE (PRE-BRIEF)
56
+ LOOK FOR: Students acknowledge interprofessional communication expectations and scene safety review before scenario begins
57
 
58
  5. OFFERS TO SEEK GUIDANCE FROM COLLEAGUES
59
+ LOOK FOR: Peer-to-peer checks (e.g., dental to dental: confirm tooth storage; nursing to nursing: confirm CPR quality)
60
 
61
  6. COMMUNICATES ABOUT COST-EFFECTIVE AND TIMELY CARE
62
+ LOOK FOR: Team chooses readily available supplies (AED, saline, tourniquet) without delay, states need for rapid EMS transfer
63
 
64
  7. DIRECTS QUESTIONS TO OTHER HEALTH PROFESSIONALS BASED ON EXPERTISE
65
+ LOOK FOR: Asks discipline-specific expertise (e.g., "Dentalβ€”what do we do with the tooth?"), invites pharmacy/medical input on epinephrine use
66
 
67
  8. AVOIDS DISCIPLINE-SPECIFIC TERMINOLOGY
68
+ LOOK FOR: Uses plain language like "no pulse" instead of "asystole"
69
 
70
  9. EXPLAINS DISCIPLINE-SPECIFIC TERMINOLOGY WHEN NECESSARY
71
+ LOOK FOR: Clarifies medical/dental terms for others when necessary
72
 
73
  10. COMMUNICATES ROLES AND RESPONSIBILITIES CLEARLY
74
+ LOOK FOR: Announces assignments out loud: "I'll do compressions," "I'll call 911," "I'll document"
75
 
76
  11. ENGAGES IN ACTIVE LISTENING
77
+ LOOK FOR: Repeats back instructions ("Everyone clear for shock"), pauses to hear teammates' updates
78
 
79
  12. SOLICITS AND ACKNOWLEDGES PERSPECTIVES
80
+ LOOK FOR: Leader asks "Anything else we need to address?", responds to peer input respectfully
81
 
82
  13. RECOGNIZES APPROPRIATE CONTRIBUTIONS
83
+ LOOK FOR: Affirms correct actions verbally ("Good catch on allergy bracelet"), non-verbal acknowledgment (nodding, thumbs up)
84
 
85
  14. RESPECTFUL OF OTHER TEAM MEMBERS
86
+ LOOK FOR: Listens without interrupting, values input across professions
87
 
88
  15. COLLABORATIVELY WORKS THROUGH INTERPROFESSIONAL CONFLICTS
89
+ LOOK FOR: Negotiates intervention priorities (airway vs. bleeding) respectfully
90
 
91
+ 16. REFLECTS ON STRENGTHS OF TEAM INTERACTIONS (POST-BRIEF)
92
+ LOOK FOR: Notes strong teamwork, communication, or role clarity after the scenario
93
 
94
+ 17. REFLECTS ON CHALLENGES OF TEAM INTERACTIONS (POST-BRIEF)
95
+ LOOK FOR: Identifies confusion, delays, or role overlap in debriefing
96
 
97
+ 18. IDENTIFIES HOW TO IMPROVE TEAM EFFECTIVENESS (POST-BRIEF)
98
+ LOOK FOR: Suggests faster role assignment, consistent closed-loop communication, earlier epi use
99
 
100
  STRUCTURE YOUR RESPONSE AS FOLLOWS:
101
 
102
  ## OVERALL ASSESSMENT
103
+ Brief overview of the team interaction quality.
104
 
105
  ## DETAILED COMPETENCY EVALUATION
106
  For each of the 18 competencies, format as:
107
 
108
  Competency [number]: [name]
109
  Status: [OBSERVED/NOT OBSERVED]
110
+ Evidence: [Specific behavioral cue observed or explanation of absence]
111
 
112
  ## STRENGTHS
113
+ Top 3-5 key strengths with specific examples
114
 
115
  ## AREAS FOR IMPROVEMENT
116
+ Top 3-5 areas needing work with specific suggestions
117
 
118
+ ## AUDIO SUMMARY
119
+ [Create a 60-second summary focusing on: overall performance level, top 3 strengths, top 3 areas for improvement, and 2 key recommendations]
120
 
121
  ## FINAL SCORE
122
  Competencies Observed: X/18
123
+ Overall Performance Level: [Exemplary (85-100%)/Proficient (70-84%)/Developing (50-69%)/Needs Improvement (0-49%)]"""
124
 
125
  response = self.model.generate_content([video_file, prompt])
126
  return response.text
 
129
  return f"Error during analysis: {str(e)}"
130
 
131
  def generate_audio_feedback(self, text):
132
+ """Generate a concise 1-minute audio feedback summary"""
133
+
134
+ # Extract the audio summary section from the assessment
135
+ audio_summary_match = re.search(r'## AUDIO SUMMARY\s*(.*?)(?=##|\Z)', text, re.DOTALL)
136
+
137
+ if audio_summary_match:
138
+ summary_text = audio_summary_match.group(1).strip()
139
+ else:
140
+ # Fallback: Create a brief summary from the assessment
141
+ summary_text = self.create_brief_summary(text)
142
 
143
  # Clean text for speech
144
+ clean_text = re.sub(r'[#*_\[\]()]', ' ', summary_text)
145
  clean_text = re.sub(r'\s+', ' ', clean_text)
146
  clean_text = re.sub(r'[-β€’Β·]\s+', '', clean_text)
147
 
148
+ # Add introduction and conclusion for better audio experience
149
+ audio_script = f"""CICE Healthcare Team Assessment Summary.
150
+
151
+ {clean_text}
152
+
153
+ Please refer to the detailed written report for complete competency evaluation and specific recommendations.
154
+ End of audio summary."""
155
+
156
  # Generate audio with gTTS
157
  try:
158
+ tts = gTTS(text=audio_script, lang='en', slow=False, tld='com')
159
 
160
  # Save to temporary file
161
  with tempfile.NamedTemporaryFile(delete=False, suffix='.mp3') as tmp_file:
 
167
  print(f"⚠️ Audio generation failed: {str(e)}")
168
  return None
169
 
170
+ def create_brief_summary(self, text):
171
+ """Create a brief summary if AUDIO SUMMARY section is not found"""
172
+
173
+ # Parse scores
174
+ observed_count = text.lower().count("observed") - text.lower().count("not observed")
175
+ total = 18
176
+ percentage = (observed_count / total) * 100
177
+
178
+ # Determine performance level
179
+ if percentage >= 85:
180
+ level = "Exemplary"
181
+ elif percentage >= 70:
182
+ level = "Proficient"
183
+ elif percentage >= 50:
184
+ level = "Developing"
185
+ else:
186
+ level = "Needs Improvement"
187
+
188
+ # Extract strengths and improvements if possible
189
+ strengths = "Strong team communication and role clarity observed"
190
+ improvements = "Consider enhancing active listening and conflict resolution skills"
191
+
192
+ summary = f"""The team demonstrated {level} performance with {observed_count} out of {total} competencies observed,
193
+ achieving {percentage:.0f} percent overall.
194
+
195
+ Key strengths included {strengths}.
196
+
197
+ Areas for improvement include {improvements}.
198
+
199
+ The team should focus on pre-briefing protocols and post-scenario debriefing to enhance future performance.
200
+ Emphasis should be placed on clear role assignment and closed-loop communication during critical interventions."""
201
+
202
+ return summary
203
+
204
  def parse_assessment_scores(self, assessment_text):
205
  """Parse assessment text to extract scores"""
206
 
 
319
 
320
  progress_messages.append("βœ… Analysis complete!")
321
 
322
+ # Generate 1-minute audio feedback
323
+ progress_messages.append("πŸ”Š Generating 1-minute audio summary...")
324
  audio_path = assessor.generate_audio_feedback(assessment_result)
325
 
326
  # Parse scores for visual summary
327
  observed, total, percentage, level, color = assessor.parse_assessment_scores(assessment_result)
328
 
329
+ # Create enhanced visual summary HTML with behavioral cues
330
  summary_html = f"""
331
  <div style="max-width:800px; margin:20px auto; padding:30px; border-radius:15px; box-shadow:0 4px 6px rgba(0,0,0,0.1);">
332
  <h2 style="text-align:center; color:#1f2937;">CICE 2.0 Assessment Summary</h2>
 
347
  </div>
348
 
349
  <div style="margin-top:30px;">
350
+ <h3>🎯 Key Behavioral Indicators Assessed:</h3>
351
+ <div style="background:#f3f4f6; padding:15px; border-radius:10px; margin:15px 0;">
352
+ <h4 style="color:#059669; margin-top:0;">βœ… Critical Actions</h4>
353
+ <ul style="line-height:1.6; color:#374151;">
354
+ <li>CPR/AED prioritization</li>
355
+ <li>Epinephrine administration timing</li>
356
+ <li>Clear role assignments ("I'll do compressions")</li>
357
+ <li>Closed-loop communication</li>
358
+ </ul>
359
+ </div>
360
+
361
+ <div style="background:#f3f4f6; padding:15px; border-radius:10px; margin:15px 0;">
362
+ <h4 style="color:#0891b2; margin-top:0;">πŸ—£οΈ Communication Markers</h4>
363
+ <ul style="line-height:1.6; color:#374151;">
364
+ <li>Plain language use (avoiding medical jargon)</li>
365
+ <li>Active listening (repeating back instructions)</li>
366
+ <li>Soliciting input ("Anything else we need?")</li>
367
+ <li>Recognizing contributions ("Good catch!")</li>
368
+ </ul>
369
+ </div>
370
+
371
+ <div style="background:#f3f4f6; padding:15px; border-radius:10px; margin:15px 0;">
372
+ <h4 style="color:#7c3aed; margin-top:0;">πŸ”„ Team Dynamics</h4>
373
+ <ul style="line-height:1.6; color:#374151;">
374
+ <li>Pre-brief safety review</li>
375
+ <li>Peer-to-peer verification</li>
376
+ <li>Respectful conflict resolution</li>
377
+ <li>Post-brief reflection on strengths/challenges</li>
378
+ </ul>
379
+ </div>
380
+ </div>
381
+
382
+ <div style="margin-top:20px; padding:15px; background:#fef3c7; border-radius:10px;">
383
+ <p style="text-align:center; color:#92400e; margin:0;">
384
+ <strong>πŸ”Š Listen to the 1-minute audio summary for key findings and recommendations</strong>
385
+ </p>
386
  </div>
387
  </div>
388
  """
 
410
  gr.Markdown("""
411
  # πŸ₯ CICE 2.0 Healthcare Team Assessment Tool
412
 
413
+ **Analyze healthcare team interactions using specific behavioral cues from the 18-point CICE 2.0 framework**
414
 
415
+ This tool evaluates critical team behaviors including:
416
+ - Emergency response prioritization (CPR/AED, epinephrine)
417
+ - Clear role communication and closed-loop verification
418
+ - Active listening and respectful team dynamics
419
+ - Pre-brief and post-brief reflection practices
420
 
421
  ---
422
  """)
 
447
  1. **Upload** a pre-recorded video or **Record** using your webcam
448
  2. Click **Analyze Video** to start the assessment
449
  3. Wait for the AI to process (1-2 minutes)
450
+ 4. Listen to the **1-minute audio summary** for quick insights
451
+ 5. Review the detailed written assessment for complete evaluation
452
 
453
+ **Key Behaviors Assessed:**
454
+ - Allergy/medical history identification
455
+ - CPR/AED prioritization
456
+ - Clear role assignments
457
+ - Plain language communication
458
+ - Active listening behaviors
459
+ - Team respect and conflict resolution
460
  """)
461
 
462
  with gr.Column(scale=2):
 
465
  # Visual summary
466
  summary_output = gr.HTML(label="Visual Summary")
467
 
468
+ # Audio feedback - now prominently featured
469
+ audio_output = gr.Audio(
470
+ label="πŸ”Š 1-Minute Audio Summary (Listen First!)",
471
+ type="filepath",
472
+ interactive=False
473
+ )
474
+
475
  # Detailed assessment
476
  assessment_output = gr.Textbox(
477
+ label="Detailed CICE 2.0 Assessment (Full Report)",
478
  lines=20,
479
  max_lines=30,
480
  interactive=False
481
  )
482
 
 
 
 
 
 
 
 
483
  # Download report
484
  report_file = gr.File(
485
  label="πŸ“₯ Download Full Report",
 
489
  # Footer
490
  gr.Markdown("""
491
  ---
492
+ ### About This Assessment
493
+ This tool uses AI to identify specific behavioral markers that indicate effective interprofessional collaboration
494
+ in healthcare settings. The assessment focuses on observable actions such as:
495
+ - Verbal role assignments ("I'll do compressions")
496
+ - Recognition phrases ("Good catch on the allergy bracelet")
497
+ - Plain language use instead of medical jargon
498
+ - Pre-brief and post-brief team discussions
499
+
500
+ **Note:** Ensure clear audio capture of team communications for accurate assessment.
501
  """)
502
 
503
  # Connect the analyze button
 
517
  debug=True,
518
  server_name="0.0.0.0",
519
  server_port=7860
520
+ )