/python-for-healthcare

A learning experience designed to teach the basics of using the Python Programming Language for data science in a healthcare setting. You do not need to have any experience with computers to participate and we welcome individuals from any background.

Primary LanguageHTMLMIT LicenseMIT

A learning experience designed to teach the basics of using the Python Programming Language for data science in a healthcare setting. You do not need to have any experience with computers to participate and we welcome individuals from any background.

About this Repository

In order to improve teaching in data science, Py4HC is a collection of materials designed to teach future or cyrrent healthcare professionals how to use the Python programming language in their field. The teaching content uses real-world and publicaly accessible data pertaining to important questions in healthcare while focusing on how to accomplish common tasks quickly and easily. The Python for Health Care (Py4HC) project is a collection of open-source materials designed to teach future or current health care professionals how to use the Python programming language for data science in their field.

Learning theory in Py4HC

The learning materials in this repository are based on constructivist learning theory. This approach focuses on the students learning through their own application of the concepts for their own purpose. The content is designed to help students understand how they can use Python and Data Science for questions in their own current or future profession in health care delivery. Students will need to consider what they would like to do in the future and how these tools relate to their future goals.

Py4HC pulls on concepts in literature, music, and other disciplines in the humanities so that students can pull on different backgrounds to approach learning Python. It also attempts to integrate creativity and abstract thinking into the learning process in ways not commonly applied in health science.

Cognitive Language teaching

Students will begin programming by copying an image model code script and typing directly into a Jupyter notebook. This allows for students to become physcially familair with code structure before knwoing how the code works. This is taken from langauge learning that relies on hearing and repeating, allowing for infants to learn a native language.

Anchored Instruction

Students will be presented a broadd question in the context of their field and will follow an analysis with real world data to try to answer that question. The learning is designed to "anchor" the students in a practical application and help them discover their own answers to the question.

Studio Based Learning

Students will go through a virtual studio session where they will see a model analysis and replicate that analysis in small steps. The studio is designed to be a place where students learn from a "master"as an "apprentice" the way in which the tools are used to create a final product. Students will then transition into their own analysis using the tools they learned and start to develop their own methods.

Peer Based Learning

Students are deisgned to engage with the content in a small team of 2-3. The discussions, relfections, and studios require students to engage with a peer and go to them for help and support first. While some content will be digested and delivered individually, the goal of the process is to learn how to collaborate with others in wiriting code.

The Py4HC learning experience

This repository includes a four module sequence referred to as "Studios" that is designed to introduce absolute beginners to Data Science in Python. The modules are hosted as Jupyter Notebooks which allow for students to input live Python code and see immediate outputs. The four module sequence centers around the analysis of a sepcific topic using real world data. The modules also include videos, discussions, and reflections or a team of 2-3 students to follow together directly within the notebooks. The learning experience culminates in an independent project that demonstractes the students ability to apply the tools for their own research question.

Studio sequence

This repository contains various topic themes that all use the same studio sequence. That sequence is:

  1. How to Talk to Computers with Python
  2. How to Work with Data with Python
  3. How to Use Machine Learning with Python
  4. How to Build Neural Networks with Python

Studio content

Each of the studios contain the following elements:

  1. Obejctives
  2. Videos
  3. Discussion
  4. Analysis
  5. Conclusion
  6. Reflection

Studio Topics

This repository contains subdirectories focused on contemporary issues in healthcare delivery. Those topcis include:

Equity

Using Type 2 Diabetes mortality data from the Florida Department of Health and demographic percentages from the the American Community Survey, these studios investigate the relationship that social factors have on increased neagtive health outcomes by zip code.

Value

Using Hosptial Compare Data from the Centers for Medicare and Medicaid Services, these studios analyze which quality metrics lead to better value based reimbursements in the Quality Payment Program.

Template

This subrepository contains the Py4HC studio notebooks without a specific analysis topic allowing for users to input their own data analysis.

How to use this repository

In order to use the repository, follow these steps:

  1. Download the entire repository locally into a designated folder where you can easily identify the file path.
  2. Copy the file path for use when setting the working directory inside the Jupyter Notebooks.
  3. Download the Anaconda Distribution to be able to run the Jupyter Notebooks using a Python Kernel.
  4. Download the 'allocativ" environment for Anaconda Cloud and add the environment to Anaconda.
  5. Run the 'allocativ' environment and open Jupyter Notebooks.
  6. Navigate to the repository folder and open up the desired notebook.
  7. In the Analysis section, be sure to update the file path when setting the working directory.

Repository Structure

The repository uses the following file organization and naming convenstions. This applies to all files in v2.1 and forward.

File Naming Structure:

version/prefix_suffix.ext

Subdirectories

v#.# All code files deployed for that specific release
_data staged data files related to the project
_fig graphs, images, and maps related to the project

Prefixes:

Suffixes:

_code Development code script for working in an IDE
_book Jupyter notebook
_stage Data files that have been modified from raw source
_2020-01-01 Text scripts displaying results output from a script are marked with date stamp they were created
_map 2D geographic display
_graph 2D chart or graph representing numeric data

PEP-8

Whenever possible code scripts follow PEP-8 standards.

Disclaimer

While the author (Andrew Cistola) is a Florida DOH employee and a University of Florida PhD student, these are NOT official publications by the Florida DOH, the University of Florida, or any other agency. No information is included in this repository that is not available to any member of the public. All information in this repository is available for public review and dissemination but is not to be used for making medical decisions. All code and data inside this repository is available for open source use per the terms of the included license.

allocativ

This repository is part of the larger allocativ project dedicated to prodiving analytical tools that are 'open source for public health.' Learn more at https://allocativ.com.