package Ġbackend . api čĊč Ċ import Ġbackend . knowledge . Decision Support č Ċ import Ġbackend . models . Condition č Ċ import Ġbackend . reason ing . Logic č Ċ import Ġcom . google . common . reflect . Type Token č Ċ import Ġcom . google . gson . Gson č Ċ import Ġcom . google . gson . Json Element č Ċ import Ġio . jav al in . http . Context č Ċ import Ġio . jav al in . http . Handler čĊčĊč Ċ class ĠConditions Ġ{ čĊčĊĠĠĠ Ġcompanion Ġobject Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġgson : ĠGson Ġ= ĠGson () čĊčĊĠĠĠĠĠĠĠ Ġclass ĠIn fer Ġ: ĠHandler Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle ( ctx : ĠContext ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġs Type Ġ= Ġobject Ġ: ĠType Token < Json Element >() Ġ{} . type čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbody : ĠJson Element Ġ= Ġgson . fromJson ( ctx . body (), Ġs Type ) čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsy mptoms Ġ= Ġbody . as JsonObject [" sy mptoms "]. as JsonArray . toList (). map Ġ{ Ġit . asString Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinter ventions Ġ= Ġbody . as JsonObject [" inter ventions "]. as JsonArray . toList (). map Ġ{ Ġit . asString Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġget Ġdise ases Ġbased Ġon Ġsigns Ġand Ġsy mptoms čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconditions Ġ= ĠLogic . d ise ases From Sy mptoms And Inter ventions ( sy mptoms , Ġinter ventions ) čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcalculate Ġdisease Ġscore Ġbased Ġon Ġsigns Ġand Ġsy mptoms čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġctx . json ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconditions . map Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpercentage Ġ= ĠDecision Support . calculate D isease Percentage ( it . id , Ġsy mptoms ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCondition ( it , Ġpercentage , ĠLogic . sign s And Sy mptoms ( it . id ), ĠLogic . inter ventions ( it . id )) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. sorted By Descending Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . percentage čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġclass ĠGetAll Ġ: ĠHandler Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle ( ctx : ĠContext ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġctx . json ( Logic . d ise ases ()) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊč Ċ }