Clinicians Who Code

An opinionated guide for clinicians who want to build tech safely, openly, and quickly.

MarkDown

Front end

  • javascript, HTML, CSS

Version Control

Databases

  • Use PostgresQL unless you have a good reason not to
  • know about: Neo4j (Graph database) and MongoDB (JSON document database)

Open Source

Clinical Software Patterns

design patterns for healthcare checklists

Avoid Unnecessary Mappings

A mapping is where you are representing a concept with something which is not that concept. For example, if you wanted to represent the sex of a patient and you chose '1' to represent 'male', and '2' to represent 'female'. I've seen this done, it's not uncommon in software to (for some reason) represent things numerically when they are prefectly clear as strings.

In my view this is an unnecessary mapping, and the only thing it can possibly server to do is confuse and introduce bugs, which will be that little bit harder to identify, because when scanning logs you are relying on being able to remember which number maps to 'male' and which to 'female'.

Just use the string representation of whatever it is. The clearer you can be in your programming, the better for you and for anyone else using your code. It also has benefits for patients who are treated using your code!

Avoid Unnecessary Abbreviations and Acronyms

APIs

Clinical Calculators

Rhidian Bramley's blog https://clinicalwebportal.home.blog/2019/07/23/clinical-calculators/

Integration

Workflow

Here are some habits which are good to get into

Git Workflow Checklist

  • git fetch so you know you are definitely on the most up to date code
  • Check which branch you are on - are you starting from the right place?
  • Think about the work you're going to do - does it need a feature branch
  • Write the new code
  • Write tests for your code
  • Make a commit, with an informative commit message

working in open source

People skills

  • code review, pair programming code workflow

APIs

https://www.freecodecamp.org/news/rest-api-tutorial-rest-client-rest-service-and-api-calls-explained-with-code-examples/ 2 hour FreeCodeCamp video tutorial on APIs

know about libraries and APIs available write comments "why" not "what" or "how" documentation code clarity, quality, linting write code for people to read it testing continuous integration deployment security charging for your time talking about your work

Terminologies

NHS Terminology Server https://ontology.nhs.uk/

Resources

Interop Summit https://www.youtube.com/channel/UCoGOZfeTmZJkHn_4MjA5FFA/videos

Community building

  • forum
  • wiki

Acknowledgements

  • Josh Case (Code Blue)
  • Ian McNicoll
  • Mark Bailey
  • Louise Wilson & Kevin Monk - inspiration to get writing