Foresight

A generative transformer model trained on ~1M patients from King’s College Hospital and ~20k patients from South London and the Maudsley Mental Health NHS Foundation Trust. Please do not use this to diagnose yourself or someone else. The main use of this webapp is to test the capabilities of the underlying models. Mistakes or biases are possible and reflect problems in the dataset or simply the inability of the model to generalize well enough.

The model is geared towards common high-level SNOMED-CT concepts, and performance is better with long timelines.

Citation

Preprint on arXiv

Examples Timeline (Physical Health)
  • CoVid
  • Intracanial Hypertension
  • Kidney Disease
  • Sleep Apnoea
  • Wernicke Encephalopathy
  • Parkinson's Disease
  • Kidney Disease [Masked]
Examples Text (Physical Health)

First two examples are taken from BMJ

  • Crohn's disease
  • COPD
  • Kidney Disease
How to

There are two modes: Timeline and Text.

Timeline mode is prefered and works better, it allows one to create a patient timeline using <SEP> and `Age:` tokens to prompt the model there is a time difference between two biomedical concept. If one adds, for example, three disorders to the timeline and does not put SEP or Age tokens inbetween, the model interprets those disorders as appearing at the same time. If one wants to indicate order between disorders/concepts then we need to add the SEP or Age tokens. Repetition of concepts (e.g. mentioning Cough three times) is possible, but a <SEP> token should be used to separate the mentions. Another way to understand this is, if one wants to prompt the model a concept (e.g. Symptom) was affecting the patient for a longer time, you can mention it multiple times and add <SEP> in-between. Check out the Timeline examples above to see how to build a timeline and how to organize the input concepts. Please note that the model works better the longer the timeline is, for very short timelines we can get strange forecasts.

Text mode is experimental at this stage and the model automatically preprocesses the text using MedCAT, finds important biomedical concepts and builds a timeline. Check out the Text examples to see what kind of text we can enter. The more text one uses in the prompt the better the model will work.

FAQ

  • What can be added to the timeline?
  • The timeline is used to represent a patients medical history, it can contain symptoms, medications, procedures and disorders. We should add as much information as we have for a patient and use the SEP/AGE token to denote tamporal difference between concetps - please have a look at the timeline examples below to see how.
  • Can this be used to forecast risk of a disorder/symptom?
  • Yes, the model is suggesting what disorders the patient has or will have in the future - so at the same time the model suggests the current diagnosis and risk of future disorders/symptoms.
  • Can this be used to suggest commonly used medications given a set of symptoms and disorders?
  • Yes, by selecting the Medications and Substances option on the right side of the screen. The same can be done for suggestion of symptoms/procedures given disorders/medications.
  • What are the first three concepts (Ethnicity, Sex, Age)?
  • The first three concepts provide additional information about the patient to the model. They are not required, but having them improves the performance.
  • What are the filters (Ignore siblings/parents/children)?
  • SNOMED is an ontology and there is a parent/child relation between concepts. For example the concept Diabetes Mellitus is a parent of the concept Type 1 Diabetes Mellitus. If we for example select the option ignore Children, the model will not output children of concepts that are already in the timeline (prompt). For example, if Diabetes Mellitus is in the timeline, the model will never output T1DM if we select ignore children.
  • How to clear the timeline?
  • Click on the KCL logo in the top left corner.
  • Where can I find SNOMED codes to use for the filters?
  • You can browse through all snomed codes at: SNOMED Browser

    Disclaimer

    Do not use this to diagnose real patients or yourself, it is an experimental tool.

    Contact

    Please use our Discourse Board to ask any questions, post comments or give feedback.

    [[element.name]]
    highlight_off
    Relative Probability SNOMED ID Name Show saliency
    [[item.p]] [[item.cui]] [[item.name]]
    What should be predicted by the model
    Model (First pick a model and then add concepts to the timeline)
    Concept Status
    Ignore concepts that are parents/children/siblings of current concepts
    Filter to SNOMED codes and all its children (can be a comma separated list)
    Detected concepts from text

    [[item]]

    Save/Load your timeline