DermaDetect / backend /api /serializers.py
WilfredAyine's picture
deploy: clean initial commit for Hugging Face Spaces (no binary blobs)
1947612
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()