1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- module RedCat.RecordFormatter
- open RedCat.DrugsDataExtractor
- let formatDrugInput (drugRawName: string) =
- drugRawName.ToLower().Replace(" ", "").Replace("-", "").Replace(",", "")
- let formatDrugInfoResponse (drugData: DrugRecord) =
- let toPrettyString (drugInfo: string option) =
- match drugInfo with
- | Some s when drugInfo = drugData.Summary -> $"📜 {s}" |> Some
- | Some s when drugInfo = drugData.Dose -> $"🍽️ {s}" |> Some
- | Some s when drugInfo = drugData.TotalDuration -> $"⏳ Durata: {s}" |> Some
- | Some s when drugInfo = drugData.OnSet -> $"🤯 Inizio effetti: {s}" |> Some
- | _ -> None
-
- let formattedCategories =
- drugData.Categories
- |> Option.bind(fun catgs -> catgs |> String.concat " | " |> Some)
-
- let mainResponseText =
- [drugData.Summary; drugData.Dose; drugData.TotalDuration; drugData.OnSet]
- |> List.choose toPrettyString
- |> String.concat "\n\n"
-
- match formattedCategories with
- | None -> $"~{drugData.Name} \n\n{mainResponseText}"
- | Some categories -> $"~{drugData.Name} [ {categories} ]\n\n{mainResponseText}"
-
- let formatComboRecord (comboData: ComboRecord) =
- let translate (s: string) =
- match s with
- | "Dangerous" -> "❌ Molto pericoloso alla vita e alla salute"
- | "Unsafe" -> "‼️ Pericoloso"
- | "Caution" -> "⚠️ Attenzione"
- | "Low Risk & Synergy" -> "➕➕ Rischio basso e amplificazione effetto ➕➕"
- | "Low Risk & Decrease" -> "➖➖ Rischio basso e diminuzione effetto ➖➖"
- | "Low Risk & No Synergy" -> "🟰🟰 Rischio basso e interazione assente 🟰🟰"
- | _ -> failwith "Shouldn't happen here"
-
- let toPrettyString (comboInfo: string option) =
- match comboInfo with
- | Some s when comboInfo = comboData.Status -> $"{translate s}" |> Some
- | Some s when comboInfo = comboData.Note -> $"{s}" |> Some
- | _ -> None
-
- let comboText =
- [comboData.Status; comboData.Note]
- |> List.choose toPrettyString
- |> String.concat "\n"
-
- $"[{comboData.DrugA}] ~ [{comboData.DrugB}]\n\n{comboText}"
|