National Institutes of Health (NIH), Office of the Director (OD), Office of Data Science Strategy (ODSS)
July 2023
FHIR® is the registered trademark of Health Level Seven International (HL7). Use of the FHIR trademark does not constitute an HL7 endorsement of this workshop.
Intended audience:
Learning objectives:
Identify existing FHIR for research capacity-building resources
Understand the process for re-using existing resources for future capacity-building activities
Apply recommendations and best practices from past NIH workshops to future workshops
FHIR for Research documentation website
Webinars
Introduction to FHIR for Research: https://purl.org/fhir-for-research/webinars/intro
FHIR Bulk Data Introduction: https://purl.org/fhir-for-research/webinars/bulk-data
Hands-on workshops
FHIR Bulk Data: https://purl.org/fhir-for-research/workshops/bulk-data
SMART on FHIR: https://purl.org/fhir-for-research/workshops/smart-on-fhir
More on FHIR API programming: https://datascience.nih.gov/fhir-initiatives/researchers-training
Note: purl.org is a service provided by the Internet Archive for persistent URLs that can be updated if the actual URL changes. This is helpful to avoid dead links in webinar videos.
Website (https://purl.org/fhir-for-research/web) is generated from source code (https://purl.org/fhir-for-research/github) using Quarto (https://quarto.org)
Written documentation is broken up into self-contained “modules”
Modules are organized into sections:
Detailed setup instructions are found at https://purl.org/fhir-for-research/web/setup
Customization via “forking” (https://docs.github.com/en/get-started/quickstart/fork-a-repo)
You can contribute (“upstream”) your changes from your fork to the NIH/ODSS-managed open source GitHub repository
Submit a pull request: https://docs.github.com/articles/using-pull-requests
NIH/ODSS will review to intergrate into the main repository
Workshops are a useful approach to help attendees quickly climb the learning curve for a technical topic
Include a combination of lecture and hands-on participation
Pair with written documentation that participants can refer to later
Provide an “on ramp” introducing the topic at the beginning so less technical participants can still get value from the beginning
In general, order content from least to most technical
Consider a mini-webinar introduction
Verbally identify the “drop points” where people who are not interested in the technical content can safely leave
Provide a walk-through to introduce hands-on participation
Provide sample code/template that participants can run themselves
Consider having the presenter fill in the sample code/template live, or give participants time to work themselves and ask questions
Keep the total length under 3 hours
Plan for “preflight” if technical setup is necessary
Include at least one TA to help with technical issues and questions during the workshop
Require registration to attend
Start registration at least 2 weeks ahead of the event
Include learning objectives and prerequisites in registration promotional materials
Consider the Introduction to FHIR for Reserach webinar as a prerequisite if your potential audience doesn’t have prior FHIR experience (https://purl.org/fhir-for-research/webinars/intro)
Identify any technical skills are required for some/all of the workshop
Use Zoom local recording (or similar) to record screen and audio
Share recording with subtitles for accessibility
Provide slides and other materials on a single webpage at the time of the event
Use URLs in slides that can be updated later if the destination URL changes (e.g. from https://purl.org) to avoid broken links in video recordings
If possible, provide a cloud compute environment with dependencies pre-installed
Run on your own server:
Python/Jupyter: https://tljh.jupyter.org for up to 100 users
R/RStudio Server: https://posit.co/download/rstudio-server/
No server required:
Free, some additional complexity: https://mybinder.org
$15/month, more reliable:
https://posit.cloud/plans/instructor?option=instructor
Typically memory is the main constraint, which scales linearly with the number of simultaneous users
Our FHIR Bulk Data workshop using JupyterHub (via TLJH) required around 600MB/user minimum
Run your code ahead of time to estimate memory needs
CPU usage will likely be low unless your workshop includes a lot of CPU-constrained code (e.g., training machine learning models)
TLJH: https://tljh.jupyter.org/en/latest/howto/admin/resource-estimation.html
NIH-funded researchers may take advantage of the STRIDES Initiative for cloud computing. For more information, visit https://datascience.nih.gov/strides
Using synthetic data avoids privacy issues with patient data
https://synthea.mitre.org provides synthetic data in FHIR format
https://purl.org/fhir-for-research/synthea provides more information on customizing Synthea for your specific use case
Workshops that use the FHIR API will need a test server
Options for this:
https://sandbox.logicahealth.org: free test server with both open and authenticated endpoints, as well as SMART on FHIR and CDS Hooks support
https://launch.smarthealthit.org for SMART on FHIR testing
https://bulk-data.smarthealthit.org for FHIR Bulk Data testing
https://hapifhir.io if you want to run your own FHIR server
Materials from this webinar: https://purl.org/fhir-for-research/workshop-recommendations
ODSS FHIR for Research website: https://datascience.nih.gov/fhir-initiatives/researchers-training
© 2023 The MITRE Corporation / Approved for Public Release / Case #23-0966