Coder Social home page Coder Social logo

everlab-takehome-test's Introduction

Overview

One of features Everlab doctors use in the backend is being able to automatically interpret pathology report data that arrives in the HL7/ORU format.

We are going to give you some database tables in CSV format as well as some sample ORU files and ask you to build a single page application that lets a doctor upload an ORU file and see high-risk results. This should be a full-stack web application using any technology of your choice. Things we care about are:

  • Speed - how quickly can you build this?
  • Accuracy - is the output correct?
  • UX/Product - is this easy to use for a doctor?
  • Quality - did you make good technical decisions?

We will leave what to display and how in the front-end up to you. Just keep in mind the user (and their goal) of easily interpreting someone’s report data.

Context

There a 4 CSV files attached below. Each file represents a table as following

  • diagnostic_groups - “groups” of diagnostics, used for easy assignment to a patient and display. e.g “Cholesterol Panel”
  • diagnostics - individual tests that you could get done, e.g in Cholesterol Panel you may have HDL, LDL and Total Cholesterol
  • diagnostic_metrics - specific metrics associated with a diagnostic, sometimes there are multiple metrics for one diagnostic.
    • Metrics also contain reference ranges of the form standard_lower → standard_higher and everlab_lower → everlab_higher. These indicate the “standard” and “everlab” acceptable values for results in these ranges.
    • Metrics are sometimes personalised based on min_age → max_age and gender. If values are given for a metric we should use the most specific age/gender based reference ranges.
    • oru_sonic_codes and oru_sonic_units fields are ; delimited fields of possible ORU values that can match to the metric. We need to match on both code and units to get the right reference range.
  • conditions - these are possible diagnoses or issues that someone may have based on abnormal metrics. We suggest relevant conditions as a possibility for a doctor to then choose if they agree with or not.

Files

conditions.csv

diagnostic_metrics.csv

diagnostics.csv

diagnostic_groups.csv

MP826520.oru.txt - note this has lines separated by carriage returns. Your editor may make changes that break it

Task

We recommend approaching this task by doing the following

  • Import the CSV files into a relational database with the correct schema, foreign keys, and values.
    • Please use a docker container to host the database using docker-compose locally
  • Write an API to parse the ORU file into the individual test items and result values
  • Write code to calculate the abnormal test values given our diagnostic_metrics table and the relevant conditions
    • If there is no relevant match then don’t return the result
  • Write a front-end that lets a doctor upload an ORU file and see the relevant data.

everlab-takehome-test's People

Contributors

kevin-tran avatar mattlevine32 avatar yargalot avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.