Project: Web Components for FHIR Resources

Hi everyone,

This is the discussion thread for the project stated in the topic, which started at Project: Create web components for FHIR Resources and Web components for libreHealth EHR.

Project Description : The Web Components built specially for systems that are based on FHIR resources, will simplify the process of building an UI for any such software, and even allow plugging them to a system that is already running. Polymer 3 will be used as the framework.

Mentors : @sunbiz @Zatoner_Dev @namratanehete

Students : @parumenon1 and @SuKSW


Hello Subhashinie, Congratulations for getting into GSoC. My name is Parvati. I am a Pharmacist currently pursuing my Maters in Health Informatics at IUPUI, Indianapolis. I have programming skills with knowledge in Python and Rprogramming. My most recent work with my professor to create a module for team learning in OpenMRS using polymer motivated me to apply for this project. I am expecting to learn a lot more throughout the course of this project. I would also like to thank the mentors for giving me an opportunity to work under your guidance. Looking forward to working together. :slightly_smiling_face:


Hello Parvati, Thank you and Congratulations to you too. Seems like I will get to learn a lot from you as well as from my mentors. I am a final year undergraduate of University of Moratuwa studying for my B.Sc. Eng. (Hons.) Degree in Computer Science and Engineering. I got to know web components through ReactJS and currently getting familiar with Polymer.

I too would like to thank the mentors for accepting me as a GSoC student. Hoping to do my best together with all of you.

@SuKSW So since we are clear about the proposal, How do you think we can split the work for this project. Do you have special preferences that you would like to do in this project? My proposal had 14 resources from FHIR:

  • Patient

  • Practitioner

  • Organization

  • Location

  • Allergy

  • Problem

  • Observation

  • Report

  • Order

  • Imaging study

  • Statement

  • Immunization

  • Appointment

  • Schedule

14 of these were selected as they are belonging to maturity level 3 and 4 in FHIR. Do you think these resources should be fine or do you want to add any more to it?

1 Like

Hello, @parumenon1 and @SuKSW. I will be mentoring you along with @sunbiz and @Zatoner_Dev. I am excited to work with you in the summer. I have been involved in OpenMRS and GSoC for many years and have worked as a Java developer for 9 years…

I think it is a good idea to split the work. My suggestion is that @SuKSW to work on 60-65% of the web components and @parumenon1 to work on 35-40% of the components and then assemble all the components together.

Feel free to ask if you both have any doubts about next steps.

1 Like

Hello @namratanehete, I am glad that I am getting an opportunity to work under mentors with so much experience.We will be splitting our components soon based on your suggestion. Thanks.

@parumenon1 I too had a similar set of resources. There might have been a slight difference. Since we were only assuming what we must do, hope @sunbiz can give us an idea on the exact number of resources we must target on.

Since most of them are related to each other it will be easier if we could assign ourselves sets rather than each resource separately. I also had in mind that there can be cases where we have to combine certain resources to one web component (please correct me if I am wrong) like what we did in Build a webpage to filter patients from FHIR JSON documents.

Maybe the mentors can help us with that too. Shall we then divide them? (according to their advices and our preferences)

Hello @namratanehete, I’ll be glad to do the work as suggested.

I agree with this suggestion. This will help us assemble the webcomponents that are built into pages of the EHR, and have a product ready by the end of the summer, if everything goes per plan. Both of you should think about how each resource can be further divided into webcomponents. .e.g. search will be a common operation, but you could show the results as a table or within a searchlist (select). If you can create some mockups before the coding phase using Balsamiq or Pencil or MockingBird

I dont think that will be very common. It will be more likely that a single resource will be broken down into multiple smaller components that are either connected or disconnected. The principle to follow is to think of a component as the smallest possible unit of managing information in a workflow. Though, we also need to be mindful that too many components will make it very hard for people to assemble into pages. That is why the above suggestion that @parumenon1 (with her clinical background) will help assemble the components into an EHR product.

I now get the idea. Thank you @sunbiz.

@parumenon1 Your list of resources looks good to me. I’ll be fine with any of the resources. Let’s then start breaking them down into web components and building some mockups! I’ll update the thread as soon as I figure out any such ways to break them down.

1 Like

@SuKSW Sure… we can start breaking them down…!! In case you figure out before me how you are planning to break them down, pls update here so that i can do it similar way, else i will update as soon as i do something with resources. we can make mockups of different web components too, that would help us to decide how we want to split components too. If possible let me know by when do you expect to update with breakdown of resources. Would help me stay in pace with you

Since most of them can use

Shall we try out some mockups with them together with a few resources in your list?

Yes, I think i will try to make some mockups of components from first five of the resources from the above resource list specified. Will that work? what do you think @SuKSW

Or may b first step we will have to do is break them up into components asap, and then think about mock ups. It would go step by step @SuKSW

That is true too. I went for the mockups thing first because right now I don’t have any idea of other ways that we could allocate the components for a resource. What shall we do? Or shall we start with just one resource each just to tryout?

@SuKSW yes, just breakdown resources to the smallest component that you think such that each component cab be reusable in other pages which can have that same component. Both of us can do it in couple of days and post it here. Take feedback from mentors about it, edit and combine and then go for mock up.


I have broken down first 5 resources as below: Web components under PATIENT resource:



C. CREATE PATIENT: Attributes for creating patient:

  1. Name
  2. Identifier
  3. Photo
  4. DOB
  5. Contact----------------------------------------a.Relation b.Gender c. Name d. Telecom e. address
  6. Contact Point(telecom)
  7. Gender
  8. Active/non-active status
  9. Deceased ----a.yes or no , b.Date and time
  10. Address
  11. Marital status
  12. Multiple birth
  13. Animal—if patient is animal----species, breed,genderstatus
  14. Communication-----------a. languages b.prefered
  15. General practitioner
  16. Managing organization
  17. Link

Web components under PRACTITIONER resource: A. Add a new practitioner B. Search for a practitioner

Web components under ORGANIZATION resource: A. Add new organization B. Search an organization C. Remove an organization

Web components under LOCATION resource: A. Add new location B. Show/search a location C. Delete a location

Web components under ALLERGY resource: Find allergyintolerance from terminology n Add allergy to list

@parumenon1 Since there are two of us working on this project maybe we should try to complete twice as many resources as we promised in our proposals. Therefore I thorught of going with a seperate set of resources. These are the first five resources I will be working on. They are of maturity levels 3 and 2.

  1. Procedure
  2. Medication
  3. Encounter
  4. EpisodeOfCare
  5. Device

The components will be Add, View Details, Search by some of the parameters, and Delete (via the search results)

@parumenon1 While we can use for the components, will you be using jQuery or angular?

@sunbiz and @namratanehete can you please help us state clearly which resource levels we should be working on? I had proposed for level 3 and 4 and from @SuKSW post i assume she proposed for level 2 and 3. I think there is a confusion that is existing. My assumption that finally it was decided that we work for resources on level 3 and 4. I had chosen to create web components for the first 5 resources that is patient, practitioner, organisation, location and allergy and @SuKSW can work on resources of problem, observation, report, order, imaging study, statement, immunization, appointment and schedule. After which i can assemble of of these resources in EHR. I am also done with some mock-ups of the components which i choose, which i will be uploading in a day. So i request one of the mentors to give a clear statement on which level of resources we will be working on.