Build a webpage to filter patients from FHIR JSON documents
The goal of this task is to assess the students who are applying to an lh-toolkit projects for Google Summer of Code. Often students will solve bugs, or participate in the community, and select issues that are beginner level, but not related to the skills that they need to complete the GSoC project. You need to solve bugs and communicate on the forums, chat with others and help others in the community, but will also need to complete this task. Please provide a comment below with additional questions for this task or your solution to this task as a URL to your code repository
lh-toolkit 2.0 will be moving away from its existing OpenMRS data model to using FHIR's data model. Thus, we want developers to understand the FHIR data model and demonstrate their skills required to use that data model. This needs to be a standalone project and not an lh-toolkit module.
-
Download 5 patients, 5-10 encounters about these patients and 5-10 observations in those encounters, as FHIR JSON documents. e.g. https://fhirtest.uhn.ca/read?serverId=home_21&pretty=true&resource=Patient&action=read&id=202967&vid=4. You may choose to manually go and download the JSON documents or write code that does it for you in your Spring framework project.
-
Represent this data from the JSONs (either reading from the filesystem, nodeJS server or the FHIR server) in a table with each row representing a patient. So you can have multiple encounters in a column and multiple observations in each of those encounters
-
Allow the table to be filtered based on:
- patient information (could be drop-down with patient attribute values) OR
- encounter information (could be a drop-down with encounter attribute values) OR
- observation information (could be a drop-down with observation attribute values)
- You can choose any HTML/JS UI-framework of your choice
- You can choose a server (NodeJS, Meteor, Tomcat) framework of your choice
- You are required to use Spring, Spring MVC, and Spring data frameworks as part of your project. You may or may not chose Spring boot to start your project.