Spaces:
Running
Running
File size: 1,425 Bytes
1947612 | 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 | from rest_framework import serializers
class PredictionSerializer(serializers.Serializer):
label = serializers.CharField()
confidence = serializers.FloatField()
class AnalyseRequestSerializer(serializers.Serializer):
image = serializers.ImageField()
include_heatmap = serializers.BooleanField(default=False)
include_narrative = serializers.BooleanField(default=True)
# Patient context — all optional, forwarded to Groq prompt
# Parsed directly from request.data in views.py (not validated here
# because they are plain strings and always safe to default to "")
# Listed here for documentation purposes only.
class AnalyseResponseSerializer(serializers.Serializer):
# Structured clinical fields — written by Groq
primaryFinding = serializers.CharField()
confidence = serializers.IntegerField()
urgency = serializers.ChoiceField(choices=["High", "Moderate", "Low"])
urgencyText = serializers.CharField()
treatmentNotes = serializers.ListField(child=serializers.CharField())
recommendedAction = serializers.CharField()
referralNote = serializers.CharField()
conditionCode = serializers.CharField()
# Raw model output
allPredictions = PredictionSerializer(many=True)
heatmap_b64 = serializers.CharField(allow_null=True)
model_version = serializers.CharField() |