File size: 2,111 Bytes
06e0c89
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
class MultimodalFusion:
    """

    Combines insights from image analysis and text analysis

    to provide comprehensive medical assessment

    """

    def __init__(self):
        pass

    def fuse_insights(self, image_results, text_results):
        """

        Fuse insights from image and text analysis



        Args:

            image_results (dict): Results from image analysis

            text_results (dict): Results from text analysis



        Returns:

            dict: Combined insights with recommendation

        """
        # In a real implementation, this would use more sophisticated fusion techniques
        combined_insights = {
            "Image findings": image_results,
            "Text findings": text_results,
        }

        # Simple fusion logic
        confidence_scores = [
            value for key, value in image_results.items() if isinstance(value, float)
        ]
        avg_confidence = (
            sum(confidence_scores) / len(confidence_scores) if confidence_scores else 0
        )

        # Determine if any abnormalities are detected in image
        image_abnormal = any(
            key != "No findings" and value > 0.5
            for key, value in image_results.items()
            if isinstance(value, float)
        )

        # Check if text analysis found concerning elements
        text_concerning = text_results.get("Sentiment") == "Concerning"

        # Generate recommendation
        if image_abnormal and text_concerning:
            recommendation = "High priority: Both image and text indicate abnormalities"
        elif image_abnormal:
            recommendation = "Medium priority: Image shows potential abnormalities"
        elif text_concerning:
            recommendation = "Medium priority: Text report indicates concerns"
        else:
            recommendation = "Low priority: No significant findings detected"

        combined_insights["Recommendation"] = recommendation
        combined_insights["Confidence"] = f"{avg_confidence:.2f}"

        return combined_insights