acne-api-hf / severity.py
ItsFarros's picture
Tambah info legalitas, interaksi obat, dan kategori kehamilan
e1d0bea verified
Raw
History Blame Contribute Delete
1.13 kB
SEVERITY_WEIGHTS = {
"comedone": 1,
"papules": 2,
"pustules": 2,
"nodules": 3,
}
def calculate_severity(summary):
total_score = sum(
count * SEVERITY_WEIGHTS.get(cls, 1)
for cls, count in summary.items()
)
if total_score == 0:
level = "clear"
description = "Wajah bersih dari jerawat"
elif total_score <= 9:
level = "mild"
description = "Jerawat ringan, dapat diatasi dengan skincare rutin"
elif total_score <= 19:
level = "moderate"
description = "Jerawat sedang, disarankan menggunakan obat topikal"
else:
level = "severe"
description = "Jerawat parah, segera konsultasi ke dokter kulit"
return {
"score": total_score,
"level": level,
"description": description,
}
def get_degree(severity_level: str) -> str:
"""Map severity level ke degree (Ringan/Sedang/Berat) sesuai jurnal."""
mapping = {
"clear": "bersih",
"mild": "ringan",
"moderate": "sedang",
"severe": "berat",
}
return mapping.get(severity_level, "ringan")