LibreHealth Planet

July 06, 2020

Ruba Awayes

LibreHealth for newcomers

Times flies so quickly! I can’t believe that I am in the 7th week of my Outreachy journey!

In this blog post, I will talk about LibreHealth for anyone who is interested in contributing to it or just interested in writing documentations.

So, I’m currently an Outreachy intern with LibreHealth, which is a collaborative community that is creating free and open-source Health IT software that is targeted towards providing fast and easy solutions for the healthcare needs of developing countries all around the world.

One of its projects is the LibreHealth EHR application which is designed to be focused on an electronically based healthcare system that is suitable for use by health practitioners, and it also focuses heavily on patient interface, to allow easy access and usability.

My project is Improving Documentation for the LibreHealth EHR Wiki, by documenting the most commonly used healthcare workflows, and reviewing any new fixes or changes that needs to be updated in the existing documentations.

But what is documentation and why it is important?

Documentation is writing up a specification of features and instructions that describes the use of a product or a software to its users.

Documentation is often divided into the following categories:

  • Installation: Describes the steps required to install software, hardware, or any items that requires to be assembled.
  • Quick Reference:  brief, illustrated numbered steps with minimal explanation; contain only the specific steps and information necessary to perform the described workflow correctly, with brief directions to more detailed information.
  • Tutorials: illustrated steps with adequate details and explanations; should be carefully organized to keep the workflow as the primary focus with exceptions and unexpected behaviors identified and explained, in a separate appendix or external documents as appropriate.

In my first internship weeks, my task was to go through previous issues that have been fixed in order to update the existing documentation that are affected by these issues, and keep the docs clear and up to date.

After that, I had to update it in the wiki, which is a type of website whose contents can be edited from the web browser, and which keeps a version history for each editable page.

Documentation is really important because it will reach users who don’t have background in technology to understand the system with clear, simple and easy to follow instructions and helpful screenshots.

What makes me most excited to work on this project?

It is always an amazing thing to gain new & different experiences!

By contributing to LibreHealth, I’ve learned more about medical workflow and Healthcare FOSS which is a new field for me. I learned how to format the Markdown for wiki updates and learned to make both Quick Reference and Tutorial documents. I started with minimal skills, now I have a good knowledge to explain the main features of the system to healthcare professionals.

The fact that by improving LibreHealth documentation, I am helping thousands of users who use this medical system in their daily work and also improving my skills while doing so, makes me so excited.

How to Get Involved with LibreHealth?

There are two ways to contribute to LibreHealth open source projects: contributing code and contributing documentation.

The process is simple, you can start by registering in LibreHealth’s online chat and do so at the LibreHealth Forums, then introducing yourself and how you can contribute. You will find mentors and volunteers who are happy to guide you through.

My journey and experience so far with this wonderful community has been an exciting one. I encourage everyone to be part of the amazing LibreHealth community.

by Ruba at July 06, 2020 07:00 PM

Kislay Singh

GSOC Coding: Week 4

"Previously on LibreHealth GSOC 2020" [ Recap ]

The demo of the app was ready but it was not dockerized. Running it would have been a nightmare.

"Docker" [ Work ]

This week was all about learning about docker and make it easy to deploy my project. Which I successfully did thanks to docker compose. Docker compose is awesome if you want to build and run multiple container which communicate with each other. In our case as of now we have 3 docker containers communicating with each other.


"Next week" [ On LibreHealth ]

1. Add support for the react app.

by Kislay_Singh (noreply@blogger.com) at July 06, 2020 03:40 PM

GSOC Coding: Week 5

"Previously on LibreHealth GSOC 2020" [ Recap ]

The demo of the app backend is completely dockerized and it is super easy to run now.

"React js" [ Work ]

Now that the backend is ready it is time to work on the frontend. The frontend as of now me and my mentor decided will be in Reactjs. This week I made basic mods the react frontend added login page and sign up methods. Changed the backend to easily integrate with the React frontend.

As I'm having placements I'm unable to work with my full dedication right now and I feel very bad about it. Anyways I will make sure I compensate everything by putting extra hours, all hours in the coming weeks.

"Next week" [ On LibreHealth ]

1. Complete the React app integration with the backend.

by Kislay_Singh (noreply@blogger.com) at July 06, 2020 03:40 PM

July 05, 2020

Ahani Peitra Okumo

Improve Code for the EHR system LibreHealth

What is LibreHealth

LibreHealth is the foundation of a worldwide ecosystem of open source Health IT innovation and is a place where people can come together to build tools that enhance the quality of healthcare around the world.

LibreHealth EHR

The LibreHealth EHR application is a clinically-focused electronic health record (EHR) system designed to be both easy to use “out of the box” and also customizable for use in a variety of health care settings. It builds on the strength of the LibreHealth Toolkit, and adapts many of the proven user experiences built over many years with OpenEMR. It is designed to be a modern, easy-to-use experience for health care professionals in their daily work. LibreHealth is a 100% volunteer-run organization, with all of our contributors (developers, support, and leadership) donating their time and talents. While we would love to have you join our effort, we realize not everyone is able to contribute in this way so some people support financially.

How to join the LibreHealth community

You can the join the Librehealth community by following the following links https://chat.librehealth.io/home and https://forums.librehealth.io/. Also you can join during the Outreachy participation round if your application is selected.

What You Need To Know In Other To Contribute To LibreHealth EHR.

To work with the LibreHealth EHR system, you must have the basic knowledge of web development programs like HTML, CSS, JavaScript, PHP and Database.

Also you must have the basic knowledge on how to use Git (https://git-scm.com/) and GitHub (https://github.com) in order to get the source code on your local machine and send your contribution.

How I joined LibreHelth

After being accepted in the initial outreachy (https://www.outreachy.org/) participation round, I saw that the LibreHealth EHR project was the best for me join because it has the skills which I identify my self with. LibreHealth had two projects which where on the Outreachy site open for participation “Improve Code for the EHR system” and “Improve Documentation for the EHR Wiki.”

I joined their chat forum (https://chat.librehealth.io) and from the chat I got the directive on how to clone their source code from Gitub (https://github.com/LibreHealthIO/lh-ehr).

I cloned their source code to my local machine and followed all their installation instructions ( Installation Instructions) and started my contribution process. and I got the LibreHelth EHR system on my machine.

What Have I benefited From Joining The LibreHealth community

As member of this community I have come to understand and get a clear view on how to work with a project in real world.

Also being part of an active open source community means being part of a group of people who have “been there, done that” and can share their experience, advice, best practices, and ideas.

Contributing to an open source project deepens understanding of the project and the what the project actually needs or requires. I have come to practically understand the implementation of the basics of HTML, CSS, JavaScript, PHP and database. This is because the Librehealth EHR system is build on this.

By participating in an open source project you can contribute based on what has and hasn’t worked for your community project and reap the benefits participating in fixing a problem which gives you must experience as a software developer.

I have also benefited from this community on building my morals and reputation as a software developer. Being an Outreachy candidate is a massive opportunity for me to build my self esteem and I have gained more confidence working with codes.

Contributing to open source provides a clear view into a project, and also a chance to get to the company source code to work with experience mentors and other contributors. Being a member of the LibreHaelth community, I have been able to come across great software developers and mentors like Toni Shortsleeve, Elizabeth Ngai, Maggie Negm, Robby O’Connor, Virginia Balseiro, Mua, Htuck who have thought me a lot since I joined the community.

by peitraahani at July 05, 2020 08:58 PM

July 03, 2020

Aishwarya Harpale

Week 5 : Coding period

Week 5 Update -

Today I received the results of my first evaluation and I have passed!! Woohoo!

I am happy that my mentors are happy with my work. They have asked me to improve my code by making it more reusable. So I will work on this feedback in the upcoming weeks.

Work update for this week - I have (finally) successfully implemented int8 quantization. Although I had to migrate everything to Colab for this, it finally run. Even though my code is split on various platforms, I am happy that most of what I have implemented is running well on my local machine.

The 2nd thing that I did this week was make python scripts for every module of my notebook. I made scripts for dataset preprocessing, model building, model training, quantization and pruning. I am now adding inference scripts for large as well as compressed models. This is the part that I have to make more reusable. I also have to cover the edge cases and erroneous inputs for these scripts. I want to present the results of model compression as one report.

Next week I will either start the experimental portion of this project i.e. Knowledge Distillation/ int4 quantization etc. or I will begin with the next dataset.

Happy coding!

by Aishwarya Harpale (noreply@blogger.com) at July 03, 2020 09:58 PM

Prajwal S Belagavi

First Evaluation: Week 9

This is the fifth week of the Coding Period and the ninth blog of my GSoC journey. I had my first GSoC evaluation, and it went extremely well. The mentor’s feedback has motivated me even more, and they are quite happy with the progress of the project.

To see more of the conversation concerning the project, refer https://forums.librehealth.io/t/project-android-application-to-show-birth-registration-newborn-health-data/3684

Here is the link to the project.

What progress have you made this week?

This week I finished working on the rest of the screens of the app. I also had a live demo with the mentors. There are few discussions on it being not similar to the mHBS Training App. I plan to work on it this weekend.

My mentor and I tested the app with the server, and we found out that the Evernym SDK was altered a bit and wasn’t compatible with the way the app was coded. In the meantime, I would be working with the test server.

My mentor also suggested me to document all the UI work I have done. The document would include the decisions I have taken to keep in mind the new material design UI for an Android App. This would help us get a better understanding of the app in the future. As of now, I have pushed all my code to the feature-ui branch on GitLab.

What do I plan to do next week?

I plan to work on making the app look similar to the mHBS Training app. I would be creating a new branch called feature-ui-mhbs and would make all changes to make the app look identical to mHBS. I plan to do it over the weekend.

I have the test server, which is working fine. So, to integrate scanning, connections, and notifications in the app is my next priority. My mentor has provided me with some dummy data. I’ll try to incorporate that as well.

Have you had any blockers or issues that are impeding your project?

There was a slight change in how the Evernym SDK functioned in the server. We found out that this week, while testing. We hope to fix that soon. This isn’t a blocker for now, as I can work with the test server.

by prajwalsb27 at July 03, 2020 07:58 PM

Darshpreet Singh

Coding Period: Week 5

Working on Saved Screen of App

Saved Screen displays downloaded CDM which are saved to SQL database, User can view any CDM from SQL database.I have created separate BLoC for this.

For getting list of saved screen , I am searching all tables in database.

Screen UI

download_cdm

Made DAO ( Data Access Object )

This directly queries the database, I have created following Queries

  • Create Table with column ( description, charge, category )

  • Inserting CDM to table

  • Searching particular procedure in Database & converting result to list

  • Getting data of table

Worked on Search Screen & Filter Functionality

In search screen user can search for any procedure, the procedure will be queried in database, which returns list. I have also worked on filter functionality of App.

In Filter Functionality user can sort list by

  • Category which is of three types - Standard, DRG , Pharmacy

  • Price in Ascending or Descending Order

I have also created a "Clear All" button , which clears the filter.

I am saving these filter data to Hive as key-value Pair

UI

download_cdm

What do I plan to do next week?

For Web Scraper

  • Scraping CDM of California State

  • Making Separate Spider class for it

  • Generating “process.py” script for each hospital

  • Making generate.py file by which user can generate “process.py” scripts which will parse CDM to proper columns

For App

  • Working on View CDM Statewise screen.

  • Making seperate BLoC for it.

  • Using GitLab API to get CDM of each state

July 03, 2020 05:00 AM

Bolu Oluwalade

Week 9:Coding Period (Week 5)

Updates

Today, I received my first evaluation result from my mentor and I passed!. I also got pointers to areas for improvement. The prominent area was my communication with the group. I was advised to be more open with my work to the other group memebers. I am going to consciously work on that moving forward. The next month is shaping up to be the most crucial yet for the project, all hands must be on deck.

Coding update: This week, I created three new components for the FHIR Observation Resources which are; fhir-observation-mwethod, fhir-obsevation-interpretation and fhir-observation-valuestring. These components can are based on the observation method, interpretation and valueString. The first two are Codable concept types which has a code, system and display fields as values in a key:value structure. The keys are 'method' and 'interpretation' respectively. The observation valuestring's value is a string type in a key:value structure. Please check out the documentation. here
I also created unit tests and the README documents for the custom elements.

In additon, this week, I removed the material-components-web-components as a submodule from the Librehealth's lh-toolkit-webcomponents monorepo. The submodule was a stop gap pending the time that the material-components are stable. It is now stable. It has a current version of 0.18.0 which was released this week after I made the Merge Request containing v0.15.0 Material Components. I might have to update it later in the project or not. I will decide that later.

My plan for the coming week is to complete the creation of all the remaining custom elements for the FHIR Observation resource. I will then move on to Medication Resource in the subsequent weeks.

Happy 4th of July!!!

July 03, 2020 05:00 AM

June 26, 2020

Aishwarya Harpale

Week 4 : Coding Period

Coding Period Update

This week my progress has been comparatively slower than other weeks. In the beginning of this week I tried to train my models again. But this time, I reduced the dataset size almost to half of the original size. I balanced the positive and negative samples in the dataset and retrained the models. These efforts went to waste as I did not receive good performance from my models even after altering the hyperparameters. They gave accuracies lesser than the imbalanced dataset. My time got wasted and then I quickly got onto my next task of pruning and int8 quantization.

I migrated my notebook from Kaggle to Jupyter Hub hosted on PLHI server. I successfully pruned my models on the server as most of the issues that I had faced on Kaggle and Colab were solved here. I experimented with quite some parameters ran pruning on DenseNet as well as Inception. Now I tried Int8 quantization and quantization of the pruned models. Unfortunately, I ran into a lot of errors in this process as TFLite convertors were not able to access the required binaries. Now I will shift this to Colab/Kaggle (which ever is ready to give me the outputs) and then quantize my pruned models as well as perform int8 quantization.

Along with this, I am now preparing for my next task. This time, I do not wish to go into that loop of training models but rather pick up SOTA models and then quantize them. This will be quicker. more efficient and relative to the purpose of this project. I hope to increase my speed next week to recover for the unfortunate series of events this week.

Till then, keep coding and persisting!
See you next week.

by Aishwarya Harpale (noreply@blogger.com) at June 26, 2020 11:15 PM

Prajwal S Belagavi

UI Design: Week 8

This is the fourth week of the Coding Period. I have just finished my academic work, and now the only focus is on the current project. I had planned to implement MVVM design in the app. It requires a learning curve, and I think it’s better to just get the functionality of the app going and then see about optimizing the codebase.

To see more of the conversation concerning the project, refer https://forums.librehealth.io/t/project-android-application-to-show-birth-registration-newborn-health-data/3684

Here is the link to the project.

What progress have you made this week?

This week I thought of spending some time on UI designing. One of my mentors had already designed the screens of the app using Proto. However, it was running on a trial period, and it got expired. I had an EDU account which would give extra benefits to use prototyping software, and I thought of designing using the Figma tool. Here is the link to the project design.

What do I plan to do next week?

My mentor and I would test the app with the server-side up and running. Check if there are any issues while interacting with the server. I also plan to implement a local auth in the app. This would ensure the safety of the app. The app would require a fingerprint or a passcode to open it.

Have you had any blockers or issues that are impeding your project?

None as of now. 

by prajwalsb27 at June 26, 2020 08:50 PM

Darshpreet Singh

Coding Period: Week 4

Working on Download CDM Tab in Bottom Navigation

Created a new tab in bottom Navigation which will display all the hospitals in current state of user. I have used GitLab Repository API.

Small Problem

I have faced small problem while fetching data from API, I can get maximum of 100 Hospitals data by calling API, which is the limitation of GitLab API.

Solution

So, I have to call API as many times in App till all hospitals data is fetched, I am fetching total number of pages in first call then calling API as many times the total number of pages & getting data of 100 hospitals each time.

Screen UI

download_cdm

Saving CDM to SQL Database

I will download csv of each file from GitLab API, I will save it SQL Database in App, Currently I am working on this feature, I have to manage a lot of states in App, I am using BLoC Architecture to do this, I have made DAO [ Data Access Object ] file for it , to do this in cleaner way.

Displaying CDM

When user will click on download button of any list item, View button will appear, I am working on this & will display CDM as list on new Screen, I will complete this by Sunday.

Scraping CDM of New York State

Currently, I am working on this, I have to make spider file for it which will get data from New York State Health Department, I have done making process script which will parse data to proper column names. This Data is provided by OSHPD New York Department.

What do I plan to do next week?

  1. Working on Search Screen & Saved screen backend
  1. Scraping CDM of California State

June 26, 2020 05:00 AM

Bolu Oluwalade

Week 8:Coding Period (Week 4)

Unit Testing of Custom Elements

During the past week, one of my major tasks was writing unit tests for 4 components using the web component tester. The web component tester (wct) brings together a series of tools that ensures the process is as seamless as possible. Please check out the documentations here .

The tools that came out of the box with WCT includes Mocha, as a testing framework, Chai for assertions, async, lodash, sinon and sinon-chai, text-fixture and allySuite. More information about these is available in the link above. The testing suite can be in javaScript or html.I went with html to maintain the format of the project's monorepo.

The steps involved in the unit testing are available here. Below is the description of the steps involved in the unit testing for observation status custom element. The first step was to create an observation JSON file that contains all the information in an fhir observation resource that can be locally imported. This was important because the hapi server that houses the fhir resources instances is not always available. Next , I created the html file that contains the testing code. The observation status is built with the material web component, "mwc-select". There are four options for the observation status including, Regsistered, Preliminary, Final and Amended. In proper functioning, the value for the observation status is determined by the value attribute or url passed to the "fhir-observation-status" tag. A snip of the component is shown below.

To write the unit test, I asserted that the value selected is equal to my assertion value and not equal to a wrong value. I also checked that the AJAX call returns the appropriate response.

To start the unit test, a fake server was created using sinon where mock XHR request can me made to recieve an AJAX response. The AJAX response is first tested. This is followed by the teardown() function that cleans up the server after the test. Next, the value for the observation status contained in the observation JSON file was confirmed using the assert functions. The results obtained from the test is presented below

June 26, 2020 05:00 AM

June 21, 2020

Kislay Singh

GSOC Coding: Week 3

"Previously on LibreHealth GSOC 2020" [ Recap ]

The Django Backend and TF-Serving has been successfully implemented. The communication between the two is facilitated by Python based middleware.

"Synchronous to Asynchronous" [ Work ]

This week was all about converting the python middleware into asynchronous service and generating Doc strings and documentation as the end of first month is nearing. Fortunately, I have completed my commitments for the first month and right no, I'm polishing the code. Python's Asyncio module was used to get the async await features.

For facilitating dataset storage, I have looked into NextCloud.

"Next week" [ On LibreHealth ]

1) Train the NIH Xray dataset on a different object detection algo and add a support for selecting different ML algos.
2) Complete all documentations.

by Kislay_Singh (noreply@blogger.com) at June 21, 2020 06:00 PM

June 19, 2020

Aishwarya Harpale

Week 3 : Coding period


What did I do this week?

  • I fine-tuned my DenseNet201 and InceptionV3 models till I could maximize their accuracy. I used class-weighting for this purpose and achieved around 85% accuracy on both the models.
  • For both the models, I calculated all the performance metrics like -
    • Accuracy
    • Loss
    • Confusion matrix
    • Precision
    • Recall
    • F1 score
    • ROC curve

      I will now document all these metrics to present them to my mentor.
  • I implemented dynamic range and Float16 quantization methods on DenseNet201 and InceptionV3 and evaluated their accuracy. Float16 gave minimum change in accuracy while dynamic range dropped the accuracy considerably.
Plans for the upcoming week

I tried implementing Int8 quantization and model pruning but ran into a heap of errors. So this week, I will rectify those errors and make these modules run.

Earlier when I had experimented with pruning I ran into a lot of OOM errors so my mentor has been gracious to provide me with a Jupyter Hub access hosted on the PLHI server. The best part about this is that my data will be persistent and I would not have to run the complete notebook every time I need to run a single module. So I will be migrating my work from the Kaggle notebook to the PLHI server.

I was evaluating my system architecture and looking for easier methods to develop this system. Currently, the design says that I will run a Raspberry Pi from the Qemu emulator. This Raspberry Pi will host the Flask application that will test the images. The emulator is supposed to be run using a Docker container. Sounds complex? Yes it is. So I have a few more approaches in my mind to simplify this architecture for testing. I will discuss this with my mentor in our upcoming meeting.


That's all for this week folks. See you next week!
Happy coding! :)

by Aishwarya Harpale (noreply@blogger.com) at June 19, 2020 10:05 PM

Prajwal S Belagavi

Roll Up Your Sleeves: Week 7

This is the third week of the Coding Period. It has been a hard week, working on this project as well as preparing for the online assessments, tests and project submissions of the college. Sometimes, we just have to roll up your sleeves, double our efforts and keep going!

To see more of the conversation concerning the project, refer https://forums.librehealth.io/t/project-android-application-to-show-birth-registration-newborn-health-data/3684

Here is the link to the project.

What progress have you made this week?

I have almost completed the UI of the screens of the app. I’ve tried to make it similar to what the mHBS app looks like.

I have now started to work on the architecture of the codebase. I would be following the MVVM design pattern as it’s a standard design pattern. It would easy to do unit testing later on. 

MVVM Design Pattern

What do I plan to do next week?

I plan to modify the codebase with the MVVM pattern and, if time persists, work on testing the application. I still need to work on filling the app with dummy data. The app would contain the screens which let the guardian make the connection, accept the credential, and also the notifications screen.

Have you had any blockers or issues that are impeding your project?

This week and the next week, I have my Academic Semester Exams, so I might not be able to contribute much. However, the mentors have been kind and have asked me to focus on the exams for the current week and resume the work later.

by prajwalsb27 at June 19, 2020 07:01 PM

Darshpreet Singh

Coding Period: Week 3

This week I learned BLoC Architecture in Flutter, I understood it quickly from YouTube videos. I started implementing it in App.

I will try to explain first what BLOC components should do as short as possible (and as trivial as possible).

  • UI screen - obviously shows data to the user

  • BLOC (or the ViewModel) - decides HOW to display data to the user, do we make the text bold, do we show the error, do we go to next screen.

  • Repo - decides WHAT data to display to the user (do we show the content from db, do we fetch it from API)

Working on Home Screen Backend

I have created BLoC for home screen & location services, I have done the following tasks in Home screen

  1. Fetched & Displayed User Location using Geolocator Package App will ask for location permission & will access location of user, I have used two packages

    • location - For asking GPS Permission

    • GeoLocator - For Getting coordinates of user location

  2. Fetched Nearby Hospitals using Overpass API

    • Used Overpass API for Getting Nearby Hospitals, I have to pass Location Coordinates & radius to get hospitals around my Location

    • Then I Parsed JSoN data recieved to list of objects

  3. Fetching Image of each hospital from Google

    • For fetching images, I have Used FutureBuilder Widget in flutter which executes a function which searches on Google by Hospital name & fetches the HTML Response, Then I get the link of first image & pass it to another widget Cached Netwrok Image which loads the image.
  4. Using Shimmer Loading Effect to load list

    • I have use flutter shimmer package for doing this, I have created a ListTile for this, While the data is Loading I display this.

GIF of Home Screen

Home Demo

SQL Database Class

Completed Main functionality of SQL Database class

  • Implemented Basic Insertion in SQL Database using Flutter sqflite package, Some Other function are remaining which I will complete in upcoming weeks

Working on Web Crawler

Scraped CDM of Indiana State

  • I have Used Data Provided by Indiana State, It contains discharge data of Hospitals of 2018, I have scraped data using scrapy, processed data to proper column names using python.

What do I plan to do next week

  1. I have used shared pref to store some data, I will replace it with Hive

  2. I will use sqflite to store CDM

  3. Working on Main Feature of this App [ Compare Prices Screen]

  4. Scraping CDM of New York State

June 19, 2020 05:00 AM

Bolu Oluwalade

Week 7:Coding Period (Week 3)

Creating custom elements for the FHIR Observation resource

I created four custom elements this week, including fhir-observation-effectivedatetime, fhir-observation-category,fhir-observation-issued and fhir-observation-valuequantity. fhir-observation-effectivedatetime adds data and time an observation was made to the page. fhir-observation-category specifies the category of an observation ranging from laboratory to imaging. There are a total of 8 observation categories. The fhir-observation-issed is the datetime an observation was made available to providers, typically after the results have been reviewed and verified. fhir-observation-valuequantity adds the actual value of an observation to a page.

The figure below shows an implementation of the fhir-observation-valuequantity. In this component, the value of an observation can be added to the page by passing the value html attribute or a url. The value is a JSON object that contains the actual value of the observation, the unit of measurement, the measurement system and code. All these object fields are passed to the element but only the value and the units are displayed by default. The observation value can also be added to the page through a URL. When the url value is passed, the element makes an AJAX call and populates the appropriate textfield based on the JSON object returned.

The figure below shows the code behind the figure above.

More components will be created next week and I will also start the unit testing of all the elements.

June 19, 2020 05:00 AM

June 14, 2020

Kislay Singh

GSOC Coding: Week 2

"Previously on LibreHealth GSOC 2020" [ Recap ]

The Django server is implemented successfully. The Django backend is a Restful server that is responsible for communication between user and TF-Serving. Also, it is responsible for storing user data.

"Tensorflow Serving" [ Work ]

The diagram above explains how we plan to deploy our ML models. Basically, the python middleware sends images to the TF Serving and receives BBox information and then send the received data to client.
The client in this case is the Django Rest Server. The Django server stores Images and BBox data in a SQL DB. The User can now request for image and Bbox data from Django Server. As of now everything is implemented, but improvements will be made to the python based Middleware.

"Next week" [ On LibreHealth ]

1) Make the Python middleware Asynchronous and document everything.
2) Decide what type of file storage server we want to implement.

by Kislay_Singh (noreply@blogger.com) at June 14, 2020 08:02 PM

June 13, 2020

Darshpreet Singh

Coding Period: Week 2

Second week of coding period is just going to over, I worked really hard this week,discussed each & every details with my mentors about the feature to be implemeted, sended multiple Merge Request this week. A detailed info about my work is given below

Completing UI for Main Features

I developed UI for rest of the main features of this App, I made a bottom Sheet UI which displays option to filter costs by Category & Price. I also made view cdm screen by which user will be able to view cdm of individual hospital.

bottom.jpeg

Setting Web Crawler & CI Pipeline

I setup GitLab CI (Continous Integration) Pipeline which will automatically scrap CDM of hospital whenever we will schedule it. This pipeline will also process data after scraping to proper columns , which I will use it in App.

I discussed a lot with mentors about it, I have finally sent a merge request for this feature.

I also scraped CDM of Alaska State, I will start scraping CDM for next week.

Making SQL Database in App

I only made a skeleton class for database in App, I have written functions in it to create database, create table, Insert a list of object in table, A lot of other functions are also needed which I will do by next week.

What I plan to do next week?

I will start working on backend code of home screen, I will use Overpass API to display nearby hospital by getting user location, I will display nearby hospital list with image from Google to make it more attractive.

For web crawler Repository , I will scrap CDM of Indiana State.

June 13, 2020 05:00 AM

Bolu Oluwalade

Week 6:Coding Period (Week 2)

Upgrading custom elements from lit-element version 0.5.1 to 2.3.1

The current repository consists of 42 custom elements, all of which were created using the lit-element v0.5.1. This week's tasks involved the upgrade of all these elements to the latest version of the lit-element. There are several advantages of version 2.3.1

  • its a faster and lightweight web components and can be implemented with any framework
  • it has a smother navigation of its shadowDOM
  • Asynchronous update when properties change
  • It can be created using either JavaScipt or TypeScript etc.

The upgrade involves some minor changes to the methods, events and data binding syntaxes. In addition to the version upgrade, I also migrated some of the native html tags to material web components. An example of such is the replacement of the "select" tag mwc-select tag. This improved the user interface of the components.

Below is the fhir-active status (created with lit-element v0.5.1) that shows the active status of a person. The documentation is available here

The figure below shows the changes in syntax for creating and binding properties to the shadow DOM. The _didRender() function was also replaced with updated(). A full documentation of lit-element is available here

Next week's task: I will create three new custom elements for the "Observation" resource

June 13, 2020 05:00 AM

June 12, 2020

Aishwarya Harpale

Week 2 : Coding Period

This week I continued training models on the dataset. I was running into OOM errors because the complete dataset could not be loaded into the memory all at once. I overcame this error by using mini-batching. This method loads a small set of data into the memory as an when required as per the training batch size. It reduces the overload on the memory as well.

I trained DenseNet201 and InceptionV3 on the dataset. These models did not give sufficient accuracy which is why I will be experimenting with more hyper-parameters before proceeding to the next task of quantization. The current accuracy is around 85%. I want to stretch it to a scale above 95%. This will be my focus this week.

Happy coding! :)

by Aishwarya Harpale (noreply@blogger.com) at June 12, 2020 09:43 PM

Prajwal S Belagavi

So Far, So Good: Week 6

This week is the second week of the Coding Period, and so far, so good. This week has been a pretty ordinary week, with me working on the things assigned to me.

To see more of the conversation concerning the project, refer https://forums.librehealth.io/t/project-android-application-to-show-birth-registration-newborn-health-data/3684

Here is the link to the project.

What progress have you made this week?

I started to develop the UI of the app. I need to make sure that the app has a similar visual appearance as that of the mHBS app. The color, fonts, and the language should be in context with the mHBS app.

I have also started to work on receiving the credential offer and the actual credential from the issuer. I also have to make a notification screen with the recent meet that I had with my mentor. This screen would contain all the messages of the cloud agent and would be a temporary replacement of the Push Notification feature.

What do I plan to do next week?

I plan to complete the UI development of the screen as much as possible. Place dummy data onto the app and have a workflow ready. I plan to do this week to complete the acceptance of the credential offer and the actual credential.

Have you had any blockers or issues that are impeding your project?

As I’ve said earlier in the post, “so far, so good.” I currently do not face any issues with regards to the project.

by prajwalsb27 at June 12, 2020 05:36 PM

Ruba Awayes

Working as a LibreHealth Intern


It’s almost one month since I started my Outreachy internship as a documentation intern for LibreHealth EHR! In this blog I will tell you more about LibreHealth community and the times I was stuck!

What is LibreHealth?

LibreHealth is a collaborative community for free & open source software projects in Health IT, and is a member project of Software Freedom Conservancy.

One of those projects is the LibreHealth EHR application which is a clinically-focused electronic health record (EHR) system designed to be a modern, easy to use experience for health care professionals in their daily work. The mission of LibreHealth is to help provide high quality medical care to all people, by providing medical practices and clinics across the globe access to free of charge medical software. It is designed to save clinics both time and money, which gives practitioners more time to spend with individual patients, thereby supplying patients with higher quality care.

What is my role as an intern?

My role is to improve Documentation for the LibreHealth EHR Wiki by documenting the most commonly used healthcare workflows, and reviewing any new fixes or changes that needs to be updated in the existing documentations.

It is an opportunity to learn more about medical workflow and Healthcare FOSS which is a new field for me. I learned how to format the Markdown for wiki updates and learned to make both Quick Reference and Tutorial documents.

Everybody struggles

Everybody struggles! That’s absolutely TRUE! We are stuck most of times in every aspect of our life, it is normal! After all You must struggle through life to make life worth living.

Being a new intern to a medical system was a little bit intimidating!
My tasks as I mentioned before were to document the workflow of the application, since I didn’t have any previous medical experience, I had to learn about medical workflow and Healthcare and familiarize myself with it, but there were times where I didn’t know how this or that works, having this feeling that I was mistaking or even in sometimes I didn’t know exactly what I’m supposed to do!

At such times, first I searched and went through old documentations maybe there is something there that may help, but when I got stuck, my only way was to ask my mentors and LibreHealth community who are specialists and experts. And there we go! They always helped me in clarifying and simplifying the task and sometimes they did a new full documentation to help me in passing through the time of struggle.

Working remotely was also new for me. It was really exciting, but I faced a problem in time zone differences. There is a ten hour difference between me and my mentors, so coordinating the time of meetings and chatting is a challenge indeed! However, this is the beauty of working remotely. So, if you can’t live chat with your mentors and you have questions, just send an email or ask the question directly on the community chat, and when they are online, they will respond.

Tips for people struggling

  • Write down every thought, note or problem.
  • First search and read to see if others had the same problem before, if you are stuck for one hour then reach out and ask for help.
  • Don’t be shy to ask simple and silly questions! Well, I’m sure I did that a lot!
  • If you are not sure about something, always ask for clarification. For most of us English is not our native language.
  • Being stuck doesn’t mean being a failure it simply means you lack the information needed to solve this problem.
  • Remember you are not alone; you will have the support of your mentors, fellow interns and Outreachy community to guide and help you.
  • Don’t forget to step out for a breath of fresh air.
  • Enjoy this learning opportunity with every moment of this struggle.

Finally, we all run into technical and personal challenges. Always remember you are not alone, and it is ok to ask for help!

by Ruba at June 12, 2020 06:32 AM

June 11, 2020

Ahani Peitra Okumo

How I Got Stuck During My Outreachy Internship

What Actually Got Me Stuck

As an intern working with LibreHealth (https://librehealth.io), for the LibreHealth EHR system to work on your local machine, you must have a server which runs both ‘PHP’ and ‘MYSQL’. I had already downloaded and installed a ‘XAMPP’ server and followed the installation instructions for the LibreHealth EHR (Installation Instructions). After some time I could not access the system on my machine showing an error message in ‘MYSQL.’ which indicates that port 3306 is not working. So I tried fixing it, but I kept getting same error message and could not recover the LibreHealth EHR on my local machine.

So I uninstalled the ‘XAMPP’ server and deleted. I downloaded the ‘XAMPP’ server back (https://sourceforge.net/projects/xampp/).

When I reinstalled the ‘XAMPP’ server on my machine I got the error message again from ‘MYSQL’ saying, ‘MYSQL’ can not run on port 3306 which is its default port. This was an issue because the ‘LibreHealth EHR’ system runs on port ‘3306’ by default.

The Issues I Faced Trying TO Fix

I changed the ‘MYSQL’ port ‘3306’ to port ‘3307’. To change this. On the ‘XAMPP’ Control Panel I clicked on ‘Config’ in the ‘MYSQL’ row and a small popup opened, then I clicked on ‘my.ini’ where I changed the port ‘3306’ to ‘3307’ and saved the file. I then returned to the ‘XAMPP’ Control Panel and on the top right corner, I clicked on the ‘Config’ on the ‘services and port settings.’ Inside the ‘config’ I changed ‘MYSQL’ port ‘3306’ to ‘3307.’ The positions of the config files can be seen in the diagram below.

After changing the port I went to the cloned ‘lh-ehr’ on my machine and open with a text editor. In ‘libreehr/sites/default/ sqlconf.php,’ in this file I also changed the port ‘3306’ to port ‘3307’ and saved.

The installation process of ‘LibreHealth EHR’ started moving smoothly now with port ‘3307’ and again I got stuck at step three. with a message which shows ‘MYSQL’ is not connecting to the database in ‘PHPMYADMIN.’ I needed to seek the help of my mentors at this stage.

How My Mentors Helped Me to Fix the Issue

I went to the LibreHealth chat forum and told my mentors Tony Shortsleeve and Maggie Negm about the issue am facing. They gave me various ways on which I can resolve the issue and get my system back running. I tried all what they told me, like restarting my machine, fixing ‘MYSQL’ port ‘3306’ error.

From a video sent to me from my mentors, I found out that the problems I faced was because I had downloaded another ‘MYSQL’ program on the same machine which coincides with that on the ‘XAMPP’ server.

I uninstalled the other ‘MYSQL’ on my machine, then I reinstalled ‘XAMMP’ and got ‘MYSQL’ working perfectly.

I followed the ‘LibreHealth EHR’ installation instruction and got the system back.

by peitraahani at June 11, 2020 01:51 PM

June 07, 2020

Kislay Singh

GSOC Coding: Week 1

"Previously on LibreHealth GSOC 2020" [ Recap ]

The community bonding period has ended and we are clear with our requirements of what we are going to be doing for the summer.

"Django backend" [ Work ]

The server in the above figure is a combination of 2 servers the django-server and Tensorflow servering. Basically, the Django server acts as the middleman between the Client and tensorflow serving. I have implemented the API for Django-server. I have used generic views and model serializers. The DB is sqlLite.

"Next week" [ On LibreHealth ]

1) Training the tf model. 2) Setup tf-serving container.

by Kislay_Singh (noreply@blogger.com) at June 07, 2020 08:57 PM

June 05, 2020

Aishwarya Harpale

Week 1 : Coding Period

This week I began with Exploratory Data Analysis. I downloaded the RSNA-Pneumonia Detection Dataset. Being a dataset of DICOM image segmentation, I purged all the information regarding segmentation and kept only classification information.

I noticed a dataset imbalance in the images as the number of positive pneumonia cases were extremely low compared to the negative cases. This problem gets solved using undersampling and oversampling techniques.

Being a huge dataset of over 26k+ patients, my system occasionally ran out of memory while preprocessing it. I shifted my code to Colab and similar errors were encountered. To tackle this, I will use Mini Batches for training so that the training process becomes more efficient.

By then end of this weekend, I will complete training a model on this dataset. Next week, I will train the rest of the models.

by Aishwarya Harpale (noreply@blogger.com) at June 05, 2020 11:12 PM

Prajwal S Belagavi

Coding Period Begins!

This week is the first week of the Coding Period, and I am excited to finally start putting the ideas, thoughts, and the discussions into CODE! 

To begin, I had to layout the project plan and milestones for the project. It is not the sort of project where everything is ready, and I only have to code. We are using Evernym’s SDK, which is not well documented and are dependent on their team to help us. So, my mentor and I decided to have a loose timeline for the current month while resolving the SDK issues and doubts. I plan to develop the UI of the app, which one of my mentors has shared. I also would prototype the flow of the app with dummy data.

To see more of the conversation concerning the project, refer here.

Here is the link to the project codebase.

What progress have you made this week?

I finally pushed my starting code to Gitlab, which had the feature to scan the QR code and connect with the issuer. The next step was to work on Push Notification to receive Credential Offer from the issuer. However, it was still under development, and I was informed that I had to manually poll the Cloud Agent to secure the Credential Offer. I started working on retrieving the messages from the Cloud Agent and found many issues there and was stuck on it for a day.

Soon, I received help from the Evernym Team. It was a relief for me as well as my mentor :P. From that day, I have been continuously interacting with their team on issues. They also set up a video call to go through a few of my problems and explained other parts of their SDK, which was very knowledgeable.

Since it is an open-source project and needs to be well documented, I started maintaining a WIKI for the project. I have now begun with documenting the responses received from the SDK for various interactions.

What do I plan to do next week?

One of the mentors has provided me with the design of the app. So, I plan to develop the UI for 3-4 screens of the app. 

I would also be working on the credentials in the SDK. It includes work on polling the message for Credential Offer, processing it, accepting the offer, and sending it back to the issuer. The previous step was to accept the credential offer, and the next step is to retrieve the actual Credential.

Have you had any blockers or issues that are impeding your project?

Coding Begins!I was stuck with a few issues at the start of the week, but I received help from the Evernym Team. So far, the discussion and interactions have been really great. I believe with their continued support, there would be no blockers

by prajwalsb27 at June 05, 2020 07:49 PM

Darshpreet Singh

Coding Period: Week 1

Coding Period Started

With the beginning of this month, GSoC Coding Period begins, I started working actively, I also had Video call with my mentor last week & we discussed a lot about this project & program. My mentors suggested me to first work on frontend of App ( Developing UI Screens ) with dummy data & later work on backend.

Developing UI Screens of App with Dummy Data

This week I made UI screens of App with Dummy Data, I added Navigation Drawer, Bottom Navigation in app. I made UI of each screen. Some screens UI are pending but, I will do it by next week.

I will discuss here each screen I made with Dummy Data for now

1. Home Screen

This screen will display nearby hospitals with images, It contains a search bar with settings icon which displays settings to change radius to display nearby hospitals.

I have tried to make search bar similar to Google Play Store Search Bar.

home.png

2. Search Screen

It contains a search bar by which user can search for any procedure, It displays list of procedures

3. Settings Screen

It displays a slider which can control radius of UI.

4. Saved Screens

It will display list of chargemasters which are saved in local storage as SQL Database of App

5. View CDM Statewise

User can view CDM of any hospital of any state

I have added Navigation Drawer which contains the following screens

  • View CDM Statewise
  • Compare Hospitals
  • Share App
  • About App
  • Report a Bug

Bottom Navigation holds these UI

  • Home Screen
  • Saved CDM

I have to scrap CDM of Alaska State which I will do by Sunday & will send a Merge Request Soon,

UI Sample Screens

home.png

home.png

home.png

home.png home.png

What I plan to do next week?

I have planned make complete UI of App & to scrap CDM of California State. I will discuss with my mentors what more needs to be done or any suggestion needed.

My Entire discussion with mentors can be seen here

https://forums.librehealth.io/t/project-develop-an-android-mobile-application-to-show-patient-friendly-costs-of-care/3685/44

June 05, 2020 05:00 AM

Bolu Oluwalade

Week 5: Start of coding period

Start of the previous components upgrade

This week was the start of the coding period. The initial plan was to start with the development of the components with the fhir-observation-status, fhir-observation-category and fhir-observation-period earmarked for development. On speaking with my mentor, we decided to first upgrade the previously developed components from @polymer/lit-element version 0.5.1 to the more efficient and light weight lit-element v2.3.1

One thing that became apparent in this process is the differences in syntaxes and methods between the versions. A snipet of one of the element written in @polymer/lit-element version 0.5.1 is seen below

Condisering the image above, in the lit-element v2.3.1, the _render() and _didRender() functions have been replaced with render() and updated() functions respectively. The syntex for setting the properties, events and attributes have also changed. Check out Lit-element for the documentation

I have started the process of upgrading these components and should be completed and before the June 15 deadline. I will send a Merge Request once the upgrade is completed. This primarily is the task for the next week coding period.

June 05, 2020 05:00 AM

June 02, 2020

Ahani Peitra Okumo

My Outreachy Participation

Ahani Peitra Okumo.  From, Buea/Southwest Region/Cameroon.

 Where I come from                                  

      Coming from a background where education seems not to be a reality in many peoples life.

From the “Bororo” community in Cameroon. In this community the men are known for cattle rearing. Most of them lives in the forest taking care of flocks. And the main occupation of women is milking and selling of vegetables. Once a male child is 5years old or above he is taken to the forest which are hilly to start learning cattle rearing. Fortunately mother started working in the house of a non-Muslim and none-Bororo family and I always go visiting in her job site. Meeting the children of my mother’s employer who were always on their computers, some playing games, and others using it for other purposes. I started loving to know how to manipulate a computer at the age of about 7years, but it couldn’t be possible and sounded so funny to them because at that age I have not even started grade one in primary school. I could only sit and watch them manipulate the computers. From there I got the drive to follow my friends to school. My mother’s employer loved my push for education an insisted of sponsoring me through school. I grew up in his yard and went through primary, secondary and high school. I became more passionate about computer studies after high school and I enrolled into an institute of information technology (I.T.) where I graduated as software engineer.

My Love to Learn

 I love to learn new things, particularly in my field of studies. I always love to join small communities where I can improve on my knowledge, share ideas and develop my career. I came across a friend who told me about contributing in an open source. I was so excited and I really wanted to know more about open source and I found out the benefits of joining it.

  How I Knew About Outreachy

Since I knew about open source contribution I researched online and also asked some few friends who are more exposed to open source contribution. A friend told me about Outreachy and I went straight to their web page(https://www.outreachy.org/) and read what it is all about.

Wow I was amazed what actually Outreachy is all about and their objectives. I also realized Outreachy also included the under-represented people around the world which really suits my status.

I registered for Outreachy  on the 8/02/2020 which is the mid year May to August 2020 round to get updates and be part of the community.

I was so excited when the next application process started and hurriedly applied. 

The Outreachy Initial Application period 

I waited for the email of those selected in the participation round and finally got an email on the 5/03/2020 that my initial application for Outreachy was accepted. This is how I got motivated and joined Outreachy.

My core values are “loyalty, learning and success”

Being loyal is my drive in life. This gives me the chance to acquire knowledge from those that know more than me. It also gives people the mind to help me get through difficult tasks in life particularly, in my field of studies.

 I also value learning. I like to know every new thing I come across. The love to learn gives me a good push in life and my field of studies. I always feel like there is a vacuum in my head which needs to be filled with knowledge, this makes me want to learn more.

 Success is also a core value in my life. I always want to succeed in the things I do. That is why I stay loyal to learning so I can achieve success in my career and life in general. The hunger for success always makes me to put effort in my actions.

by peitraahani at June 02, 2020 05:28 PM

my outreachy participation

 Peitra Ahani Okumo.  From, Buea/Southwest Region/Cameroon

My core values are “loyalty, learning and success”

Being loyal is my drive in life. This gives me the chance to acquire knowledge from those that knows more than me. It also gives people the mind to help me get through difficult task in life particularly in my field of studies.

 I also value learning. I like to know every new thing I come across. The love to learn gives me a good push in life and my field of studies. I always feel like there is a vacuum in my head which needs to filled with knowledge, this makes me to learn more.

 Success is also a core value in my life. I always want to succeed in the things I do. That is why I stay loyal to learn so I can archive success in my career and life in general. The hunger for success always makes me to put effort in my doings.

   What Motivated Me to Join Outreachy

– Where I come from

– My love to learn

-How I knew About Outreachy.

-The Outreachy Initial Application Period                                      

 -Where I come from                                  

      Coming from a background where education seems not to be a reality in many peoples life.

From the “bororo” community in Cameroon. In this community the men are known for cattle rearing. Most men lives in the forest taking care of flocks. And the main occupation of women is milking and selling of vegetables. Once a male child is 5years old or above he is taken to the forest which are hilly to start learning cattle rearing. Fortunately my mother started working in the house of a non-Muslim and none “bororo” family and I always go visiting in her job site. Meeting the children of my mothers employer who were always on their computers, some playing games, and others using it for other purposes. I started loving to know how to manipulate a computer at the age of about 7years, but it couldn’t be possible and sounded so funny to them because at that age I have not even started grade one in primary school. I could only sit and watch them manipulate the computers and also read their books. From there I got the drive to follow my friends to school. My mother’s employer loved my push for education an insisted of assisting in sponsoring me through school. I grew up in his yard and went through primary, secondary and high school. I became more passionate about computer studies after high school and I enrolled into an institute of information technology (I.T) where I graduated as software engineer.

My Love to Learn

 I love to learn new things, particularly in my field of studies. I always love to join small communities where I can improve on my knowledge, share ideas and develop my career. I came across a friend who told me about contributing in an open source. I was so excited and I really wanted to know more about open source and I find out the benefits of joining it.

 – How I Knew About Outreachy

Since I knew about open source contribution I researched online and also asked some few friends who are more exposed to open source contribution. A friend told me about outreachy and I went straight to their web page and read what it is all about. Wow I was amazed what actually outreachy is all about and their objectives. I realized outreachy also included the under-represented people around the world which really suits my status. I registered for outreachy  on the 8/02/2020 to get updates and be part of the community. I was so excited when the next application process started and hurriedly applied.    

 –The Outreachy Initial application Peoriod

I waited for the email of those selected t in the participation round and finally got and email on the 5/03/2020 that my initial application for outreachy was accepted. This is how I got motivated and joined Outreachy.

by peitraahani at June 02, 2020 09:43 AM

my outreachy participation

 Peitra Ahani Okumo.  From Buea/Southwest Region/Cameroon.

My core values are “loyalty, learning and success”

Being loyal is my drive in life. This gives me the chance to acquire knowledge from those that knows more than me. It also gives people the mind to help me get through difficult task in life particularly in my field of studies.

 I also value learning. I like to know every new thing I come across. The love to learn gives me a good push in life and my field of studies. I always feel like there is a vacuum in my head which needs to filled with knowledge, this makes me to learn more.

 Success is also a core value in my life. I always want to succeed in the things I do. That is why I stay loyal to learn so I can archive success in my career and life in general. The hunger for success always makes me to put effort in my doings.

   What Motivated Me to Join Outreachy

– Where I come from

– My love to learn

-How I knew About Outreachy.

-The Outreachy Initial Application Period                                      

 -Where I come from                                  

      Coming from a background where education seems not to be a reality in many peoples, the “bororo” community in Cameroon. In this community the men are known for cattle rearing. Most of them lives in the forest taking care of flocks. And the main occupation of women is milking and selling of vegetables. Once a male child is 5years old or above he is taken to the forest which are hilly to start learning cattle rearing. Fortunately mother started working in the house of a non-Muslim and none “bororo” family and I always go visiting in her job site. Meeting the children of my mum’s employer who were always on their computers, some playing games, and others using it for other purposes. I started loving to know how to manipulate a computer at the age of about 7years, but it couldn’t be possible and sounded so funny to them because at that age I have not even started grade one in primary school. I could only sit and watch them manipulate the computers. From there I got the drive to follow my friends to school. My mother’s employer loved my push for education an assisted sponsoring me through school. I grew up in his yard and went through primary, secondary and high school. I became more passionate about computer studies after high school and I enrolled into an institute of information technology (I.T) where I graduated as software engineer.

-My Love to Learn

 I love to learn new things, particularly in my field of studies. I always love to join small communities where I can improve on my knowledge, share ideas and develop my career. I came across a friend who told me about contributing in an open source. I was so excited and I really wanted to know more about open source and I to find out the benefits of joining it.

 – How I Knew About Outreachy

Since I knew about open source contribution I researched online and also asked some few friends who are more exposed to open source contribution. A friend told me about outreachy and I went straight to their web site and read what it is all about. Wow I was amazed what actually outreachy is all about and their objectives. I also realized outreachy included the under-represented people around the world which really suits my status. I registered for outreachy  on the 8/02/2020 to get updates and be part of the community. I was so excited when the next application process started and hurriedly applied.    

 –The Outreachy Initial application Period.

I waited for the email of those selected t in the participation round and finally got and email on the 5/03/2020 that my initial application for outreachy was accepted. This is how I got motivated and joined Outreachy.

by peitraahani at June 02, 2020 09:29 AM

May 30, 2020

Ruba Awayes

Let the journey begin!

“Congratulations on being accepted for the May 2020 to August 2020 Outreachy internship round!”

With these amazing words which I received on May 4th, and after a month of contributions, I have officially become a LibreHealth EHR Documentation Intern for the Outreachy 20th round!

I am Ruba Awayes, a Palestinian girl with a B.Sc. in Computer Information Systems, who is currently working as computer lab instructor at An-Najah National University.

I am an active member of several communities. I am the vice president at ArabWIC Palestine chapter aiming to inspire and support women in computing in the Arab world and create links with the global tech ecosystem. Moreover, I am an active volunteer at Palestine Tech meetups (a youth initiative that aims to create a voluntary and independent tech community). I participated in Techwomen program in 2017, and was hosted at Mozilla San Francisco for a month. Since then, I have been an active contributor for the Mozilla Localization team (L10n) and SUMO (Mozilla Support).

I value my COMMUNITY, and I am always willing to offer new ideas that may help change the society for the better. I love helping people and I’m sure that by doing good things we pay back to our community that was very generous with us in many ways.

I value ADVENTURE because it leads to exploring new things in the world and having fun while doing it, where you challenge yourself to push the limits! Despite that 2020 limited the travel adventures due to current COVID-19 crisis and lockdown, I was really blessed that I was awarded with this very special new adventure and have been selected as an Outreachy intern.

I believe that learning never stops! All those different opinions and perspectives are opportunities to learn, that is why I value CONTRIBUTION and volunteering to both the community and to Free and Open Source projects. This can be a rewarding way to learn, teach, find mentors, meet people and constantly search for different ways to make a bigger impact!

I look forward to the next few months and can’t wait to see what I will accomplish!

My next blog will have more about the process of becoming an Outreachy Intern.

Stay tuned!

by Ruba at May 30, 2020 07:35 PM

Darshpreet Singh

Community Boding May 23 To May 29

Searching CMS Data for Hospitals

This week I found CMS Data which contains inpatient & outpatient procedures & charges of 3000 Hospitals. I will use these datasets , but these don’t contain complete data. They have only about 150 procedures per Hospital.

Inpatient Data (Link)

Outpatient Data (Link)

Preparing Project Plan for Coding Period

I have made a detailed project plan with milestones in it. I have discussed it with my mentors. I will be making UI of complete App with Dummy Data in the first two weeks.

I have planned to scrap 2000 Hospitals Data, for which I have to save link to each hospital’s CDM to my web crawler & then process the data.

My Detailed Project Plan (Link) , I have to make some changes in it.

Analyzing CDM

I have analyzed after reading cdm of few hospitals that after processing, CDM will have three columns,

  • Description [Description of Procedure or Drug]

  • Charge [Price of Procedure or Drug]

  • Category

◦ DRG (Diagnostic Related Group)

◦ Pharmacy (It will contain medicines),

◦ Standard (if no category is provided I will name it default as Standard)

What do I plan to do next week?

I will start making App UI with dummy data in next two weeks, I will also scrap Hospitals CDM of California State next week.

Searching CMS Data for Hospitals

May 30, 2020 05:00 AM

May 29, 2020

Kislay Singh

5 4 3 2 ....

"Previously on LibreHealth GSOC 2020" [ Recap ]

There was change of plans, and the project's audience and essence was changed, for the better.
Now the project has the potential to become something amazing. A new architecture was proposed to complement the new plan. And work on the UI was started.

"The count down begins" [ Final checks ]

The coding is about to start and I'm ready. I am read up and very excited. The core client feature of bounding Box labelling is ready. And working like a charm. The frontend looks like this

I know it is very basic but it will be improved, no need to worry. :)

So, before the coding session starts we will be having a nice bug free UI to work with. Now I'm going to be reading all the articles I can find on tensorflow-serving. I wanna make this so robust and fast that it feels like a hot knife on butter. Even in React I have used only 1 class component, rest are functional. The UI needs to be polished and wicked fast.


by Kislay_Singh (noreply@blogger.com) at May 29, 2020 09:29 PM

Aishwarya Harpale

Week 4 : Last week of Community Bonding

This week I had a video meeting with my mentor Priyanshu Sinha. We discussed a lot of things and I was able to clear most of my queries.

1. I discussed how the datasets suggested earlier were not open source and hence, I would be switching to other open source options.

2. We finalized all the model compression methods that I would be trying. I will be majorly focusing on post-training methods but at the same time, I was free to experiment with compression aided methods.

3. We restructured the system architecture and decided the functionalities of the Flask application. It will run on the Raspberry Pi emulated using Qemu. Qemu will be run using a docker container. I have successfully done 3/4th of this. The integration of the Flask application is challenging and will be done later.

4. Based on the previous point, I modified my Dockerfile and created my first Merge Request.

5. I mapped out a workflow for my project.  First I will begin with model training and then proceed to model compression. Then I will develop the Flask application. Finally I will integrate all the modules.

6. We also discussed that I should also read more about the papers suggested by my other mentor Saptarshi Purkayastha.

7. Next week I will begin EDA on the datasets and model training. I will also look into the Flask integration problem.

Coding period starts next week. Can't wait!

by Aishwarya Harpale (noreply@blogger.com) at May 29, 2020 09:10 PM

Prajwal S Belagavi

Starting to Code : Week 4

In the fourth week of the community bonding period, I had a test server to work to test the sample app. I had a bit of traveling in the week, due to which I wasn’t able to code much. So, I ended up looking into the play store for some inspiration for the app’s UI. I have to admit that there were pretty good apps out there.

I have coded the sample app in Native Android using Java. My initial plan was to build the app in Flutter. So, I tried to do a similar prototype of the sample app in Flutter and ended up working almost 10-15 hours on that particular thing only to see it not work :(. So, I hope to keep trying until I get some success in it. If I’m unable to get it done, I can always go back to native Android to develop the app.

To see more of the conversation concerning the project, refer https://forums.librehealth.io/t/project-android-application-to-show-birth-registration-newborn-health-data/3684

What progress have you made this week?

I had the test server to communicate with the sample app. The test server would provide a QR code for the app to scan to make a successful connection with one of the instances. I added the code in the sample app to scan the QR code and make a successful connection, and I was successfully able to make a connection.

I have also looked into UI/UX guidelines for the app. Looked into play store for apps related to the project and have got some idea on UI of the app.

What do I plan to do next week?

I have received guidelines from the mentors regarding the aesthetics of the app. I will go through that and discuss it with the mentors in the coming week. I also plan to propose a UI for the app and start implementing it after the approval. 

Since it’s a three-month process, I’m going to put the timeline and milestones for the project and discuss it with the mentors at the start of the week.

Have you had any blockers or issues that are impeding your project?

It’s not a blocker now, but I’m facing issues in linking the SDK into the mobile app. It’s taking the time, and that’s the only hard part of the project. This linking process has not stopped and is only seeing growth, but it’s a slower growth so far.

by prajwalsb27 at May 29, 2020 07:50 PM

Bolu Oluwalade

Week 4: Preparation for Coding Period continues

HAPI FHIR

This week, I was focused on expanding my undestanding of the Fast Healthcare Interoperability Resources.I read the documentations about the resources of interest from the HL7 FHIR release documents . In addtion, I read about the HAPI FHIR which is a java implementation of the FHIR. The figure below shows the different ways of interacting with the HAPI FHIR server.

In addition, I also obtained access to the lh-toolkit Gitlab projects.The new components built in the coming months will be integrated to the appropriate lh-toolkit Gitlab projects

..Coding starts next week!!!

May 29, 2020 05:00 AM

May 23, 2020

Darshpreet Singh

Community Bonding May 16 To May 22

Learning About CI Pipeline in GitLab

I have read documentation of GitLab CI (Continuous Integration) pipeline which I will use to update CDM stored in GitLab periodically. The pipeline will scrap data from the stored links & then process the data using a process script which I will make to process it to standard columns. Then the pipeline will push the changes to the GitLab Repository.

I have created a pipeline here

I need to make changes in it to also process the data. I will read documentation of it carefully

https://docs.gitlab.com/ee/ci/pipelines/

Changed UI of Home screen & Search Screen of App

I have changed only home screen & search screen UI . Now, I have used flutter gradient in home screen toolbar.

I have also forked the repo from LibreHealth GitLab Repository

I have scrapped data of few hospitals & tried to use CI Pipeline to update them & the pipeline is working correctly.

I have searched the web for US govt data which contain all hospitals of state. I got New York & California Hospitals CDM ,for rest of state I manually have to save links.

What do I plan to do next week?

  • I will give my mentors Detailed project plan with Milestones for my coding period.

  • Analyzing CDM of hospitals & reading documentation for flutter Sqflite package

  • Preparing up the development environment for start of coding session.

My Entire discussion with mentors can be seen here

https://forums.librehealth.io/t/project-develop-an-android-mobile-application-to-show-patient-friendly-costs-of-care/3685/25

Learning About CI Pipeline in GitLab

May 23, 2020 05:00 AM

Kislay Singh

GSOC community bonding week 3: Change of plans

"Previously on LibreHealth GSOC 2020" [ Recap ]

After forking the repository and writing the Backend, it looked like every thing was going fine the papers were awesome and everything was going well.


"The new Changes"   [ Change of plans ]

The new project in its essence in is very different but technology and implementation wise it is not that big of a change. See I thought we were building a webapp for people to diagnose diseases. Well, that is not at all true. We are building a webapp that annotates diseases with bounding boxes to assist doctors during annotation period. To be a helping hand.

"The new Architecture"   [ Scale ]

The architecture will remain largely the same. But we are taking into account in a real world scenario multiple people will be doing annotations job so, it would be waste if we did inference for each doctor when they for images. We can speed it up. Here is what we will do.

"The frontend"   [ BBoxes ]

The frontend here is actually doing a lot here. It is the drawing bounding boxes on the imgs, these bound boxes can be moved/resized by the annotators. now, I'm sure there must be a library for this but in my case I had to get the co-ordinate of the bboxes to later send to the backend, so I wrote my own custom react component to do this.

How did Do it:
Step 1) made the bbox element draggable.
Step 2) Listen to when the onDragStart and onDragEnd is fired.
Step 3) Get the co-ordinates of the place where dragging ends and update the transition wrt where dragging started
Step 4) You save the co-ordinates of the bbox in your react state.
Step 5) Your bbox moves. Now for resizing, give css prop resize:'both'
Step 6) Now for getting the size listen to mouseup on bbox.
Step 7) onMouseup get offsetWidth and offsetHeight and save it in the react state.

Boom you have a moving and resizable bbox.(Of course the code is in gitlab)

"Next Week"   [ Plan ]

The plan is simple, make an ugly version of the frontend that works completely without breaking.


by Kislay_Singh (noreply@blogger.com) at May 23, 2020 12:44 AM

May 22, 2020

Aishwarya Harpale

Week 3: Community Bonding cont.

Update :

In this week, I did the following tasks.

  1. Prepared Dockerfile to send a merge request. This needed to be integrated with the previous Dockerfile. 
  2. Implemented sample quantization and pruning methods on Densenet201 model. Quantization turned out to be fine but pruning made me run into Out-Of-Memory (OOM) errors multiple times.
  3. Prepared my system for the project by installing all the required packages. I had to uninstall my Ubuntu system and dual boot my PC again with an increased partition size so that it could accommodate the size of the project as well as the Docker images.
  4. Finalized model performance methods and packages for it. I found the psutil python library the could help me perform model evaluation.
  5. Read about Knowledge Distillation and it’s related papers. This concept took time to understand and I found more interesting methods for model compression.
Following are my goals for next week. These are urgent tasks and need to be done asap.
  1. Finalize datasets, models and compression methods to implement after discussing with my mentors.
  2. Finalize the system architecture and the plan of implementation.
I feel that I need to strengthen my communication with my mentors as I have a lot of things to discuss in the following week. Looking forward to the next week!

    by Aishwarya Harpale (noreply@blogger.com) at May 22, 2020 09:18 PM

    Prajwal S Belagavi

    Keep Reading… : Week 3

    In the third week of the community bonding period, I had to read up a lot of information that helped me understand the project’s needs. I became more familiar with the mentors. We had frequent and short meetings regarding the project. We decided to work on the native Android Application, and then to proceed with Cross-Platform FLutter Application. This week was more of a theory week. I understood the need for the project, how it could affect people’s lives. I would be updating this blog with more information on the report I read.

    To see more of the conversation concerning the project, refer https://forums.librehealth.io/t/project-android-application-to-show-birth-registration-newborn-health-data/3684

    What progress have you made this week?

    I went through the sample Android app of the mobile SDK. I understood and debugged the code which was present. I read a report on Birth Registration, which is well documented by Plan. I read an article of the New York Times that talked about the current concerns with Kenya’s new national ID program. There is this article that I went through that talks about the possible threats to human rights that biometric systems pose. These resources justified the need for the project and how it would be useful to society.

    What do I plan to do next week?

    I have received a link to a server to test the app. I plan to complete the app, as mentioned by the mobile SDK’s wiki. I would then be testing the app with the server and see how it communicates.

    I also plan to discuss with the mentors regarding the design of the app. It includes a discussion on the UI/UX of the app, work related to User Stories of the app.

    Have you had any blockers or issues that are impeding your project?

    None as of now.

    by prajwalsb27 at May 22, 2020 07:03 PM

    Bolu Oluwalade

    Week 2 & 3: Preparation for Coding Period

    Creation of Mockups for the resources

    During the week 2 and 3 periods, the community bonding continued and I started preparing for the start of the coding period scheduled for June 1st. During this period, I communicated with my mentors using the libreHealth forums and groups, I read about the projects of others in the community and asked questions, when appropriate.
    To familiarise myself with the FHIR components, I explored the FHIR specification documentations and created mockups for the components of interest which are Observation, Medication, MedicationRequest and MedicationStatement. I borke down the resources into smaller parts thus reducing the complexity of creating the components.
    Below is a mockup created for the Medication resource with the Balsamiq wireframe.

    The Medication resource above can be broken down into parts such as the medication status, medication form, medication amount, medication item etc. These parts when aggregated forms the whole resource. These parts are reusble and can have multiple implementations while still maintaining its core properties. This is made posible through the encapsulation provided Shadow-DOM of the components. Below are the morkups of the parts of the Medication resource.

    This process was repeated for the other resources.

    Polymer and PWA

    Also during this period, I began to learn and practice more on the use of the polymer 3 library to create web components. There are several resources available on the web that answered most of my questions. I also read about the PWA starter kit that helps to implement a progressive web app based on polymer elements.
    In addition, I cloned the github repo containing the PWA created with the 2018 Librehealth GSoC project. I implemented the PWA locally and navigated through it with the aim of getting a better understanding of its functionalities.

    May 22, 2020 05:00 AM

    May 16, 2020

    Aishwarya Harpale

    Week 2 : Community Bonding cont.

    Update :

    This week, I received a brief overview of instructions from my mentor and began working on them. I had finished reading about Quantization and Pruning of Models. I referred to the following videos for a brief overview apart from my other reading material.

    TFWorld session by Raziel Alvarez - https://youtu.be/3JWRVx1OKQQ

    Inside Tensorflow session by Suharsh Sivakumar - https://youtu.be/4iq-d2AmfRU

    I also emulated a Raspberry Pi device using Qemu emulator inside a docker container. Being new to Docker and Qemu, I faced a few errors but in the end, I was able to do this task successfully.

    This week I will read a few papers that my mentors have mentioned. My work will include building upon the work performed by the researchers in the papers. I also plan to set up a detailed plan for the summer with my mentor.

    by Aishwarya Harpale (noreply@blogger.com) at May 16, 2020 11:58 AM

    Week 1 : Acceptance and Community Bonding

    Introduction

    My name is Aishwarya Harpale and I am a Senior year Computer Engineering student from Pune Institute of Computer Technology, Pune. I was selected for GSoC 2020 to contribute to the Open Source Organization — LibreHealth.
    The project that I will be working on is “Low Powered Models for Disease Detection and Classification for Radiology Images”. I will explain a bit about my journey until now.

    Pre-GSoC Period

    After the organizations were announced, I began looking for projects that came under the category of Machine Learning. LibreHealth’s projects caught my eye and I felt that I could contribute to those projects using my knowledge.
    As students, we were asked to develop a Proof of Concept(PoC) so that the mentors could evaluate our coding skills. I developed an application for Classification and Localization of Chest-XRay images. This application had a front-end developed using Bootstrap and it was deployed on a Flask server. For further details regarding this PoC, refer to my Github account.
    I spent days and weeks, day and night implementing my PoC. Unfortunately, I was facing a lot of errors because this was around the same time that Tensorflow had updated from 1.x to 2.x. This Tensorflow dependency had resulted in a multitude of errors in my code. Solving them was such a tedious task that it took away my hunger and sleep. I had revised my code more than 6–7 times only to land myself in another heap of errors. With the help of multiple contributors on Stack Overflow and Github (and with a bit of dash of luck), my PoC was executing successfully.


    Application Period

    During this period, I refined my PoC and updated it so that it was up to the mark. I began writing my proposal and I left no stone upturned to show the mentors about my capacity as a contributor. I asked the mentors to review my proposal and inculcated as many changes as I could. I also asked my ex-GSoC friends to review my proposal so that they could guide me about the best practices to use while writing. In my proposal, I included as much of the research that I had performed while developing my PoC as this was a research project. This was the same time around which Covid-19 had just hit India. So while designing my timeline, I gave myself enough time to adjust my examinations as well as any uncertainties that might arise.

    Proposal Accepted

    On the day the results were going to be announced, I was sure that I was not going to be accepted. I was extremely nervous and decided that I will not check the results till later. As I was scrolling through YouTube, I received a notification that I had been mentioned in a post by one of my mentors on the LibreHealth forum. I held my breath as I opened the forum and ended up releasing a sigh of relief as I found that my proposal had been accepted. I was happy that my efforts came to fruition.

    Community Bonding

    The community bonding period began with everyone introducing themselves. My project specifications have altered a bit and I will write a complete description of my project in my next blog post. For now, I am reading more about Quantization and Pruning for Model Optimization and look forward to implementing these concepts during the course of my coding period.
    I want to thank my Google and my mentors at LibreHealth for selecting me and giving me the opportunity to use my skills to contribute to Open Source. I will be posting weekly updates over here regarding my project and its progress.

    by Aishwarya Harpale (noreply@blogger.com) at May 16, 2020 11:32 AM

    May 15, 2020

    Kislay Singh

    GSOC community bonding week 2: The Paper...s

    "Previously on LibreHealth GSOC 2020" [ Recap ]

    Kislay had celebrated his selection, told all about it to the friends and family, before he embarked on this journey, like a good traveller he has packed up, while in this context it was updating drivers, installing ubuntu and saying good bye to windows for some time. It was then he understood the quote "I get ideas about what's essential when I'm packing my suitcase" by Diane von Furstenberg. Now:

    "Django" [ Gitlab ]

    I have created a new django app and setup a free smtp server from send in blue. The django app is capable of authenticating users by sending them email. I have committed all the changes to the forked repo. Since the plan is to use Reactjs frontend so I have used Django-rest-framework. For authentication I have used rest-auth. "awesome library"

    The steps to setup your own rest authentication service using Django:

    Install django rest auth and allauth:


    pip install django-rest-auth[with_social]
    pip install django-allauth
    Signup with a smtp service provider and get the credentials.
    Modify your settings.py
    First the installed apps:
    INSTALLED_APPS = [
    ...
    'rest_framework.authtoken',
    'rest_auth',
    'django.contrib.sites',
    'allauth',
    'allauth.account',
    'rest_auth.registration',
    'allauth.socialaccount'
    ...
    ]

    SMTP server keys:
    EMAIL_HOST = 'smtp-relay.sendinblue.com'
    EMAIL_PORT = 587
    EMAIL_USE_TLS = True
    EMAIL_USE_SSL = False
    EMAIL_HOST_USER = 'singh.kislay.kunal@gmail.com'
    EMAIL_HOST_PASSWORD = os.environ.get('EMAIL_HOST_PASSWORD')

    Modify your urls.py
    url_pattern = [
    ...
    re_path(r'^rest-auth/registration/account-email-verification-sent/', views.null_view, name='account_email_verification_sent'),
    re_path(r'^rest-auth/registration/account-confirm-email/(?P<key>[-:\w]+)/$', ConfirmEmailView.as_view(), name='account_confirm_email'),
    re_path(r'^rest-auth/registration/complete/$', views.complete_view, name='account_confirm_complete'),
    re_path(r'^password-reset/confirm/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$', views.null_view, name='password_reset_confirm'),
    re_path(r'rest-auth/', include('rest_auth.urls')),
    re_path(r'^rest-auth/registration/', include('rest_auth.registration.urls'))
    ...
    ]
     Easy, you have your authentication server setup. Don't forget to make the migrations.

    "Paper...s" [ Reading ]

    There were several papers that were mentioned to be read and one of them a had a public code repo, so can you guess which paper I started with? I started with "Deep Neural Networks Improve Radiologists’Performance in Breast Cancer Screening" This is simply a beautiful paper, the idea of getting heat maps by sliding window over 224*224 chunks of image and then sending these heat maps directly in to a different neural nework that accepts 4 images, each image being the image(grayscale), heatmap of the malign and heatmap of the benign area for making 3 channels is amazing. mind == blown. I loved reading the paper, right now I'm working on porting there code to tensorflow 2.1 as it is in tensorflow 1.13. Why you ask? well, new is always better.


    "Next week" [ Plan ]

    Port the model to tf 2.1. I have never ported a tf script to a different versions, this will be new and fun. Right now I just feel like I can do it.

    by Kislay_Singh (noreply@blogger.com) at May 15, 2020 07:30 PM

    Prajwal S Belagavi

    Getting Started : Week 2

    In the second week of the community bonding period, I was able to get access to the Evernym Mobile SDK and started working on it. This time, in the weekly meet, there were 4 mentors, and we had a great discussion on the project and how it would impact the world. We plan to build a proof-of-concept of the application with a minimalistic UI and present it to the respective stakeholders. This project is going to revolutionalize the way the world treats personal identity!

    To see more of the conversation concerning this project, refer https://forums.librehealth.io/t/project-android-application-to-show-birth-registration-newborn-health-data/3684

    What progress have you made this week?

    I got access to the Evernym mobile SDK. I read their wiki, cloned the repo, and went through their sample project written in both Java and Kotlin. It was hard for me to figure out the code and what precisely each single Java file does, which requires a technical background that I lack.

    I’ve also proposed to develop the application in Flutter. However, the SDK works on native Android and iOS code with the help of AAR file and Cocoapods, respectively. So the main work is to have my Flutter app communicate with the SDK running on native Android or iOS. This communication happens with the help of Platform Channels in Flutter.

    Platform Channel in Flutter

    Platform Channels provide a simple communication mechanism between the Dart code and the platform-specific code of our host app. I have also read a few articles regarding this and understood the working of it. Links:

    https://medium.com/flutter/flutter-platform-channels-ce7f540a104e

    https://flutter.dev/docs/development/platform-integration/platform-channels?tab=ios-channel-swift-tab

    What do I plan to do next week?

    One of my mentors gave me a report on birth registration in general. It includes information on the birth registration process in Kenya, and the impact of being unregistered has on children’s wellbeing. I would be going through that report, make points, and get back with the mentors on the meet next week with a few questions or doubts.

    I am new to Blockchain and Evernym’s SDK. So, I’m taking the time to figure out how exactly it works. I plan to work with the Evernym team, communicate with them regarding the technical aspects of the project in the coming week.

    Have you had any blockers or issues that are impeding your project?

    None as of now. I feel that the interaction with the mentors is excellent, and the project has decent progress considering it’s still the community bonding period.

    by prajwalsb27 at May 15, 2020 05:57 PM

    Kislay Singh

    GSOC community bonding week 1: The Project Overview

    "Automatic labeling of radiology images" [ Project ]

    I will be developing a stand alone web app. The web app will be able to segment, annotate and classify the uploaded X-ray through different deep learning algorithms such as GradCam and yoloV3. Now the architecture that I have proposed is a server client Restful architecture. The backend will be done in Django and Tensorflow serving( the machine learning framework of choice is Tensorflow2.1 ) and the frontend in Reactjs. The final goal is to make a beautiful web app that is scalable, responsive and beautiful. Here is a diagram of the architecture that we will be building:

    Project 
    [ Project architecture ]


    "Community bonding week 1" [ Work ]


    As first weeks at any organisation goes, I read up the forums and tried to get insights on the community. I also set up my development environment. I updated my visual studio code and cuda toolkit to 10.2. Enjoyed the fact that I got selected for GSOC 2020.

    "What can be expected from this series of blogs" [ Road Map ]


    The project as you can see has a lot of potential and is fairly complex. I will try my best to explain every step in a tutorial fashion through my forthcoming blogs. We will be building this webapp from scratch. I will be sharing illustrations, screenshots and code snippets to explain as much as I can. It will be fun if you stick around.


    by Kislay_Singh (noreply@blogger.com) at May 15, 2020 05:26 PM

    Ruba Awayes

    Hello!

    I’m Ruba Awayes from Palestine.

    Yeah i didn’t blog for a very long time!!
    But Now it’s the time to come back!
    I’m going to blog in the next three months about my Outreachy internship with LibreHealth .

    So stay tuned 😉

    P.s My last blog was on February 3, 2014 !

    by Ruba at May 15, 2020 10:05 AM

    Darshpreet Singh

    Community Bonding May 9 To May 15

    Reading Documentation Of Flutter Packages

    In the second week of community bonding, I read documentation of Flutter packages such as flutter_map (Link) which I will use to display OSM (Open Street Map ) in the app. I read its implementation from examples shown.

    I read about Flutter GeoJSON package which I will use to read geojson output from the Overpass API response.

    location package (Link) It is another package which I will use to get current location of User.

    I will get latitude & longitude of user which I will use in Overpass API to get Nearby Hospitals

    Using Overpass API to retrieve Nearby Hospitals

    I learned to use Overpass API to show nearby Hospitals, I have used Overpass turbo to test my API calls.

    Overpass API uses a Query Language to get data from its Server. I read its documentation carefully. (Here)

    I read its various examples, I will summarize my points here

    Base URL

    https://lz4.overpass-api.de/api/interpreter

    Around

    Around allows you to get all nodes near one or more given nodes.

    Example

    ;\);%20/*end%20of%20auto%20repair*/%20out%20body;%20\>;">around:1000 in area of 1 Km.

    Need to pass current location coordinates

    ;\);%20/*end%20of%20auto%20repair*/%20out%20body;%20\>;">(around:1000,39.435200,%20-74.605448)

    Amenity

    “amenity”=”hospital” , For searching hospitals

    I also discussed with my mentors my approach to scrap Hospitals Data & how I will store it on Github.

    Discussion

    My entire discussion can be seen here

    https://forums.librehealth.io/t/project-develop-an-android-mobile-application-to-show-patient-friendly-costs-of-care/3685/14

    Reading Documentation Of Flutter Packages

    May 15, 2020 05:00 AM

    May 08, 2020

    Prajwal S Belagavi

    Wohooo GSoC 2020!! : Week 1

    It is the first week of the GSoC. By the time I woke up on May 5th, a ton of mails had just dropped off into my inbox from Google. It was probably the first time that I was happy, going through all the mails. It included various information on GSoC like roles and responsibilities, stipend, linking my bank account, acceptance letter, and a whole lot more, which I’m not able to remember at the time of typing this sentence. I had a call with mentors, who were living in various parts of the world and 

    What progress have you made this week?

    I had a video call with the mentors, and we discussed in brief about the project in terms of technicality and practicality of the app. Some of the discussion was on the requirement of the internet connection to the app, the size of the app after the SDK is integrated.

    Also, developing a Flutter app with Evernym mobile SDK is very ambitious and has not been done before. So, we decided to be flexible in terms of the stack in which the app would be built. I also went through youtube videos on SSI principles.

    What do I plan to do next week?

    I have recently got access to the Evernym mobile SDK and I would go about seeing how it could be integrated with Flutter framework.

    Have you had any blockers or issues that are impeding your project?

    Yes. I am not sure whether integrating Evernym SDK with Flutter would be feasible given the time constraints. However, the alternative plan is to develop a native Android application that can have the SDK integrated.

    by prajwalsb27 at May 08, 2020 05:43 PM

    My GSoC Journey!

    It was around mid-February when I decided that I want to participate in GSoC 2020. Since I was confident in Android App Development, I went about looking for organizations that had projects on Android, and there I found LibreHealth. They had great topics on App Development and Health Care topics. I noticed that very few people had approached the mentors of LibreHealth regarding the projects, and it was good to be part of the discussion at the early stage of GSoC. Out of the lot of projects they had, I chose 3 projects which I found interesting and in my range of skill set. I started pitching in points about the projects, discussing with mentors, and taking their feedback. I contributed to one of their open source project even though I did not choose that particular project for my GSoC Application. 

    However, when the GSoC opened their application portal on March 15, I was stuck in the middle of the pandemic. I had to move to my home from my hostel in college, and it took me a week to get back to my work on GSoC. I did not give up! I firmly believe that efforts are more important than the results. So I started working on my proposal for my GSoC application. The last date to apply was on March 31, 11:30 PM IST and I had not submitted the draft proposal until the penultimate day. Usually, the draft proposal gets reviewed by mentors, and they give feedback. In my case, I had submitted the draft proposal so late that I was unable to receive feedback from the mentors. So, I sent the final PDF of my proposal in the portal, hoping that everything was up to the standards.

    From April to May, I couldn’t do much except hope for the best. However, I was interested in the project that I decided to work on the project irrespective of my selection in GSoC and that I didn’t want to let my momentum go down. So I started researching the project and got in contact with a few other individuals who had worked on a similar topic.

    I had made decent progress on the project, and by the end of April, I had lost my hopes in GSoC. But, Destiny had other plans. It was around 11:10 PM IST, May 4th, and I was lying on the bed thinking about GSoC. I couldn’t handle the tension. So I decided to watch an episode of my favorite Netflix show ‘Shark Tank,’ which was about 25 mins. By the end of the show, it was already 11:31 PM, and I slowly closed Netflix and swiped towards the home screen of my Phone. I had my Gmail Widget on the Home Screen of my Phone. To my surprise, I saw the first mail which mentioned ‘GSoC: Congratulations, Your prop..’. For a second, I couldn’t believe it and opened the letter. I was finally selected for GSoC 2020. The news hit me really hard. I was so excited that I couldn’t tell my friend about the news, who was sitting right next to me. My mouth was half-paralyzed. The only thing that I spoke in the first 5 seconds after reading the email was ‘Goo… Goo. Google’. It was a special feeling!

    To all those who read this article, It’s always the efforts that matter, not the result. Do not give up on your goals. Have a goal and work towards it.

    by prajwalsb27 at May 08, 2020 05:36 PM

    Darshpreet Singh

    Community Bonding May 4 To May 8

    I am very much Thankful to LibreHealth & Google for selecting me. I will narrate my story , how I got to know about GSoC , how I prepared for getting selected & my progress till May 8.

    What is GSoC?

    Google Summer of Code (GSoC) is a global program that matches students up with open source, free software and technology-related organizations to write code and get paid to do it! .The organizations provide mentors who act as guides through the entire process, from learning about the community to contributing code. The idea is to get students involved in and familiar with the open source community and help them to put their summer break to good use.

    Getting Ready for GSoC

    There is big hype of GSoC in India. Well, it is the dream of most of students to participate in GSoC, I also have this dream in my mind, from my first year in BTech . I got know about this program , I was really excited about Android Development, I learned it from Udacity free courses & Youtube Videos. Then I did two internships in Android App development & gained a lot of knowledge, I felt confident about my skills.

    Applying for GSoC

    I get to know about LibreHealth Organisation on Feb 22 for an Android Project to show patient friendly costs of care. From that day I started developing the app, I made all Webscrapping Scripts & Flutter App & Submitted my proposal after a lot of conversation & feedback from my mentors.

    May 4 ( The Result Day )

    During the period from 31 March to May 4, I was really anxious about my results, I daily open LibreHealth & GSoC website to check if any update. On May 4 I was eagerly waiting to see results, Although I have 50 % hope of getting selected, then at 11:31 PM , I got mail from Google that I am selected.I was really happy & showed it to my parents.

    Community Bonding Period

    • Community Bonding Period in which you get to know your community and get familiar with their code base and work style.

    • Ask for resources, required by you, to gain your knowledge for the parts of your project you don’t know.

    • Discuss and plan your GSoC work with your mentor.

    • Discuss and plan your time-table for your summer.

    • Plan weekly calls/meetings, to submit your weekly report, with your mentor.

      1. My Project

    I am selected for project to develop an app to which can compare prices of procedures of nearby of hospitals form user’s location.I will use Flutter to make app which will work on both Android & IOS devices. I will use scrapy python Library to scrap CDM’s of hospitals & store it to github .App will use OpenStreetMap Overpass API to search nearby hospitals & will download CDM using Github API’s

    More details about my project can be found here

    https://summerofcode.withgoogle.com/projects/?sp-search=Darshpreet#6196773883740160

    Progress (May 4 to May 8)

    I am very much Thankful to LibreHealth for selecting me. During these days of community bonding I have cleared some doubts about using API to get Nearby Hospitals,I will use Open Street Map for this. I will make a detailed plan (week by week) for coding period & will share with my mentors soon.

    I have read documentation of Scrapy ( Open Source Web Scrapping Library in Python ) because I need to use it for scrapping hospitals CDM.
    I will develop a great app by the end of this program which will be really helpful to humanity.

    I am very much Thankful to LibreHealth & Google for selecting me. I will narrate my story , how I got to know about GSoC , how I prepared for getting selected & my progress till May 8.

    May 08, 2020 05:00 AM

    Bolu Oluwalade

    Week 1 (5/4 - 5/8): Introductions to GSoC and LibreHealth

    Project Description

    My proposal to ‘create web components for FHIR resources’ was accepted for GSoC 2020. I will contribute to the development of the LibreHealth EHR, an open-source EHR maintained by LibreHealth.

    Librehealth

    Libreahealth is an open source community aimed at providing healthcare IT solutions. LibreHealth EHR, LibreHealth Radiology and LibreHealth Toolkit are some of the community's ongoing project. These projects provides easy to use,customizable and open source solutions in various healthcare settings.
    The libreHealth EHR "is a clinically-focused electronic health record (EHR) system designed to be both easy to use “out of the box” and also customizable for use in a variety of health care settings. It builds on the strength of the LibreHealth Toolkit, and adapts many of the proven user experiences built over many years with OpenEMR. It is designed to be a modern, easy-to-use experience for health care professionals in their daily work". To standardise and move towards a common data model, Libreahealth is building an EHR system based on the FHIR standard.

    FHIR and standards of Healthcare Interoperability

    The HL7 has developed several standards of EHR interoperability such as the HL7 V2, V3, Reference Information Model (RIM), and the Clinical Document Architecture (CDA). These standards are widely used in EHR systems. Most recently, the HL7 developed a new standard called the Fast Healthcare Interoperability Resources (FHIR) based on the RESTful API. FHIR is built on a set of components called Resources, which combines the best features of the CDA, HL7 v2, and HL7 v3. A resource can be used to store and exchange healthcare data over an HTTP endpoint using GET/POST request. This makes data exchange seamless and lightweight compared to the previous standards.

    Project Aim

    I am quite familiar and understand the challenges of establishing interoperability in the Electronic Health Record System and the solutions provided by the FHIR standard. This project presents me with an opportunity to contribute significantly to the development of an EHR system that supports FHIR Standards thereby promoting the interoperability of healthcare data. This project aims to build web components for the LibreHealth EHR based on the FHIR resources using the Polymer library. This project will be restricted to the Observation, Medication, MedicationStatement and MedicationRequest FHIR resources. These resources have a maturity level of level 3 and above.
    The Polymer library is used to create web components using HTML imports, HTML Template, Shadow DOM, and custom elements. The created web components in this project can be implemented in other EHR systems. The figure below shows the architecture of a typical web component.

    In addition, the created web components are integrated into the LibreHealth Toolkit and assembled to form a progressive web application. This is a continuation of the Librehealth Toolkit project from a previous GSoC project.

    The opening weeks (before June 1st) are decdicated to community bonding where I will get to know more about the LibreHealth community.I will also familiarise myself with the FHIR resources of interest, breakdown the resurces into simpler parts for ease of development. I will finally develop mockups for these components.

    May 08, 2020 05:00 AM

    March 18, 2020

    Maggie Negm

    Goodbye Outreachy Internship, Hello New Beginnings

    My Outreachy internship has officially ended. It’s a bittersweet ending to a great beginning.

    What I Have Accomplished During My Internship

    My internship tasks centered around bug-fixing and updating documentation for the LibreHealth EHR application.

    I worked on troubleshooting existing and newly discovered bugs in the LibreHealth EHR software that existed in the front-end and back-end through the submission of GitHub Issue Reports and Pull Requests (PRs). I also rewrote and updated the Reports Wiki document and updated the included screenshots to properly display each component and guide users to perform certain functions. While doing so, I tested each component to make sure it was working properly, and reported and fixed any bugs that were discovered.

    What I Learned

    • When you’re fixing a bug: focus on finding the root cause, then create a solution to fix the root cause.

    I learned this lesson the hard way, but keeping this in mind helped me solve bugs faster.

    • Software and software documentation go hand-in-hand.

    It’s important to remember that documentation needs to be updated when a correlating software feature is changed or added. Otherwise, the documentation can become outdated quickly.

    • Remote work is all about communication.

    I had to learn how to effectively ask for help and in a timely manner. When I was stuck, I reminded myself of the issue and retraced the steps I took to solve the issue. If I was still stuck, I would then ask for help by explaining the issue thoroughly and what I have done to solve the issue. This gave me the opportunity to learn from my mentors. Asking for help is just another opportunity to learn from other great developers!

    • “Underpromise, overdeliver.”

    This was advice I read in an article that included tips on how to become a successful software engineer that has stuck with me. During my internship, I was always so excited and eager to start new projects, especially ones where I could learn a lot. What I didn’t account for was time. I would sometimes promise results in an intended amount of time that turned out to be underestimated. I’ve learned that being able to effectively determine how long a “project” will take to complete comes with more developer experience.

    What’s Next

    Contributing to FOSS (Free and Open-Source Software) started as a way to prove to myself that I was meant to be a developer. Now, I contribute to FOSS, because I am more confident in my skills and enjoy contributing to FOSS. More specifically, I’m proud to be a part of the LibreHealth community as if is doing amazing work in the Health IT field!

    I could not have made it here without the immense support I received from my mentors. Toni Shortsleeve, Elizabeth Ngai, Mua Rachmann, Harley Tuck, Virginia Balseiro, and Robby O’Conner, thank you all for your guidance and encouragement throughout my internship. Your words have helped me believe in myself when I was questioning my skills and further cemented that I’m meant to pursue this career path. I’m so excited to work alongside you as we mentor the next interns.

    I started as a volunteer for LibreHealth around this time last year, and now, one year later, I’ve successfully completed my Outreachy internship and will be a mentor for the upcoming LibreHealth Outreachy interns. I can’t wait to see what’s next!

    by maggienegm at March 18, 2020 12:01 AM

    February 14, 2020

    Maggie Negm

    Career Goals: A Short Reflection

    My current career goal is to find a full-time position as a full-stack developer. I equally enjoy both front-end and back-end development and have experience in both.

    Before my Outreachy internship, I interned at a small start-up as a developer intern and graduated from college with Bachelors in Computer Science and Cognitive Science, through which I’ve learned the basics of computer science and OOP (Object Oriented Programming) and gained teamwork and communication skills through technical group projects. Since then, I’ve taken various online classes regarding different topics of programming and contributed to open-source.

    Currently, I’m interning through the Outreachy program, in which I’m working remotely with LibreHealth to improve one of their open-source software projects LibreHealth EHR. My work has taught me how to create and maintain good documentation and effectively troubleshoot software issues by finding the root cause and then coding up an efficient solution. I have also gained more experience with the tech stack being used: HTML/CSS, JavaScript, Knockout.js, PHP, MySQL, and Apache. It’s been a great learning experience!

    Once my internship is over, I will begin job-hunting. I’ll be looking for remote or in-person jobs in Virginia. While job-hunting, I’ll be spending my time improving upon and learning new developer skills by continuing to contribute to LibreHealth and working on a side-project with one of my close (developer) friends.

    I can’t wait to take this next step within my tech career. Wish me luck! Yallah, bye!

    by maggienegm at February 14, 2020 12:33 AM

    February 05, 2020

    Virginia Balseiro

    My FOSDEM Experience

    I attended FOSDEM this year for the first time ever. In fact, it was my first conference ever, so it was very exciting. Brussels is a lovely city and relatively close to where I live, so I decided to take the opportunity to go.

    FOSDEM is one of the biggest Open Source conferences in Europe. It is usually held during the first weekend of February at the Université Libre de Bruxelles

    The conference is free and no registration is required, which is great, but it also means it gets really crowded. If you’re a person who suffers from anxiety particularly among crowds like me, this can be intimidating, but there are ways to still have a great experience.

    The talks are held in different rooms simultaneously, so you can choose between the Keynotes, Main Tracks, Developer Rooms and Lightning talks. The majority of the talks are held in the Developer Rooms, and there are a lot: JavaScript, Internet of Things, Go, Python, Community, and many, many more. 

    I enjoyed all the talks I had the chance to attend, but my favorites were in the Community Devroom. Here are some links to the videos in case you are interested:

    Building Ethical Software Under Capitalism

    IMG_6118

    The Ethics of Open Source

    IMG_6110

    Cognitive biases, blind spots and inclusion

    IMG_6122

    All the talks are available here: https://video.fosdem.org/2020/ 

    There are a lot of food trucks with different food options, and I was able to easily find vegan options. Of course, these spots are usually crowded so if you don’t like crowds, plan to get your meals during less busy moments. 

    If you’re thinking of attending next year, here are some tips:

    • Plan ahead which talks you want to see. This will help you plan your day. 
    • When the rooms are full, the doors close, so you might want to be there 15 minutes before the talk begins.
    • If you’re anxious in crowds or closed spaces, like myself, make sure to stay close to a friend or someone you know 
    • If you’re not feeling well or you feel unsafe, talk to the volunteers, they will help you.

    Overall it was an amazing conference, but it also made me realize how truly unbalanced representation is in tech. Although there were some non cis-male people of course, particularly in the JavaScript and Community Devrooms, in general the crowd was overwhelmingly male. 

    IMG_6064Trying to find a woman in the crowd was like playing Where’s Waldo. Oh there’s a lady! Nope, just a long haired dude.

    While this is not news to anybody, to actually see it in real life with a live sample of people was an eye opener, and a little unsettling. This is why Outreachy exists.

    Outreachy is a paid internship program for people typically underrepresented in tech to work in open source and free software. I got involved with open source as part of my internship with Outreachy, and because Outreachy provides a travel stipend to interns to travel to conferences and events, I was able to attend. So if it wasn’t for Outreachy, I wouldn’t have been in FOSDEM in the first place. I would have probably never even heard of it.

    I am definitely planning to go again next year, so if you’re going too, feel free to reach out – maybe we can meet there!

    by Virginia at February 05, 2020 06:40 PM

    January 21, 2020

    Maggie Negm

    Modifying Expectations: Outreachy Midpoint Review

    It’s hard to believe that I’ve reached the halfway point of my Outreachy internship with LibreHealth. I’m not ready for this experience to end.

    Since my internship doesn’t consist of a specific project, I started my internship with these two project goals outlined: 1) fix issues within the LibreHealth EHR software and 2) create new and update existing documentation that are affected by such bug fixes to keep documentation clear and up-to-date as possible.

    I was able to jump right in on my first day, since I was already familiar with LibreHealth’s workflow. My first assigned task was to solve a series of existing issues – bug fixing. I wasn’t given a deadline by my mentors, so I gave myself one: one month. I was able to meet this deadline. (Yay!)

    My second, and current, assignment is to revise and update the Reports Wiki documentation, which is a series of smaller documents. The Reports section in the LibreHealth EHR software allows users to generate reports to help improve their daily tasks within a clinical office. Since the Reports Wiki was written, the Reports section within the software has changed, but the documentation hasn’t been updated. That means if current users of LibreHealth EHR go to the Reports Wiki, they will be viewing an out-of-date and incomplete document. This may lead to confusion, which we don’t want!

    Once again, I wasn’t given a specific deadline, so I gave myself one: three weeks. Unfortunately, I wasn’t able to meet this deadline. I spent the first week a bit unsure about the requirements until I asked for clarification to put myself at ease. Thank you, Harley Tuck! I have also found that it is going to take me longer to finish due to its large size. Now, I will continue to revise and update the Reports Wiki document, while testing out the forms within the Report modules to report any bugs. My goal is to finish it within a few more weeks – by early or mid-February – in the hopes that I will be able to work on another assignment before my internship is over in early March. Only time will tell!

    Until next time. Yallah, bye!

    by maggienegm at January 21, 2020 09:36 PM

    January 07, 2020

    Maggie Negm

    Welcome to LibreHealth

    Hi readers! As some of you may know, I am currently interning with LibreHealth through the Outreachy program. When I first started contributing to the LibreHealth EHR project, I didn’t know much about LibreHealth, but have learned much more since then. Hopefully, this blog post will give you a better insight into LibreHealth and motivate you to contribute!

    What is LibreHealth

    LibreHealth is an online community that is creating free and open-source Health IT software that is targeted towards providing fast and easy solutions for the healthcare needs of developing countries all around the world. More specifically, LibreHealth is an umbrella organization that currently oversees three main open-source projects: LibreHealth EHR (Electronic Health Records), LibreHealth Toolkit (API and data model software for building Health IT apps), and LibreHealth Radiology (customized LibreHealth Toolkit software for Imaging and Radiology practices). The LibreHealth EHR project is also being used in academia settings to expose and help train future clinical students with EHR software. However, what makes LibreHealth stand apart from other similar organizations is their main focus in creating an open and collaborative community between the users and developers.

    What am I doing exactly with LibreHealth?

    I started as a volunteer with LibreHealth and spent my time writing new and improving old documentation of the LibreHealth EHR software, while reporting any bugs I discovered. Because I wanted to spend more time working on this project, I then became an intern with LibreHealth last December. My internship work consists of improving LibreHealth EHR’s current code and documentation. Currently, I am doing bug fixing!

    How to Get Involved with LibreHealth

    There is more than one way to get involved with LibreHealth as a developer. Whether it’s through Outreachy or as a volunteer, you can contribute to the code and/or documentation of one of LibreHealth’s open-source projects. You can start by first joining LibreHealth’s online chat and forums, then introducing yourself and how you’re interested in contributing. From there, one of the volunteers or mentors can guide you.

    There’s so much more to learn about LibreHealth, and I’ve listed some resources below if you’re interested in learning more. As always, until next time. Yallah, bye!

    Resources:

    LibreHealth Website

    LibreHealth Forums

    LibreHealth Wiki Docs

    “An Interview by Andy Oram with Open Source Health IT Project: LibreHealth” Video

    by maggienegm at January 07, 2020 12:49 AM

    December 10, 2019

    Maggie Negm

    My Year With Outreachy

    Let me paint a picture for you.

    In 2018, after a year of little time spent programming and constantly debating whether I was “good enough” to work in tech, I wrote down a New Year’s goal: to find and contribute to an open-source project. I figured this would help me, once and for all, determine if I was meant to pursue a career in tech.

    Once the new year rolled around, I started researching anything and everything related to “open-source.” This led me to discovering Outreachy.

    Outreachy, Take I

    The Outreachy program is an organization that is committed to increasing diversity in tech by providing mentored, remote internships with partnering free and open-source projects. Unfortunately, I had discovered Outreachy too late in their application process. During this application period, there was no separation between the initial application and contribution rounds, as there is now. So I submitted my initial app and tried to make some contributions all in the last two weeks of the application period. Although my initial application was accepted, I had no time to make any substantial contributions. Trust me, I tried!

    I then decided to go with my initial plan and became a volunteer with the project I had chosen to apply to, LibreHealth.

    Volunteering

    LibreHealth is an organization that is creating free and open-source Health IT software. I initially chose LibreHealth because it aligned with two of my interests: health and tech. It was also being developed in web languages that I was familiar with. However, their welcoming community became my deciding factor. The mentors were encouraging towards applicants and genuinely wanted to help. I spent the next few months working on LibreHealth EHR’s documentation and reporting bugs. (To read more about my experience, check out my last blog post about it.) I had the best time volunteering and would 10/10 recommend for others to do the same!

    Outreachy, Take II

    I wasn’t planning on applying to Outreachy again, but I quickly found myself looking for more time in the day, outside of studying and responsibilities, to volunteer with LibreHealth. This time around I was prepared. I had signed up for email notifications for reminders and news about the Outreachy program. I read past blog posts from previous Outreachy interns. I started early in each round. I did everything I didn’t do the last time I applied.

    My initial application was once again accepted. Then began the contribution period. I had already known what project I was applying to, which saved me some time during the application period. I consistently made contributions. For LibreHealth, it was in the form of creating documentation that adhered to LibreHealth’s established documentation guidelines, reporting bugs, and submitting PRs.

    Although I came in knowledgeable this round, I still encountered many moments of doubt. This round, LibreHealth was only choosing one intern. There were many other qualified people also applying for a chance to work with them. However, I think my volunteering experience really helped me gain confidence in myself and my skills. I just kept going and refused to let fear and doubt stop me.

    A month after the application period closed, I found out that I got accepted!

    Advice for Future Outreachy Applicants

    I’d like to think that I have some substantial advice for future Outreachy applicants. (After all, I did apply twice!) So here it is:

    • Research, research, research.

    It’s better to come prepared for most things in life, including Outreachy. The good news is that Outreachy has numerous resources to help prepare future applicants. Check out Outreachy’s Applicant Guide, Outreachy’s Blog, Outreachy’s Twitter, and past interns’ blog posts. You can even reach out to Outreachy organizers and past interns with any questions.

    • Start early.

    Outreachy outlines their application deadlines on their website. Be aware of these and use them to your advantage! You can also sign up for their email notifications.

    Once the contribution period starts and you’ve chosen your project(s), start engaging with the community and mentors. Make contributions. Technically, you only have to make one contribution to be eligible to apply for a project. However, the more contributions, the better.

    • Believe in yourself! Let go of the fear and negative thoughts of not being good enough.

    This is something that I have struggled with and still struggle with sometimes. However, I always remind myself that these feelings of inadequacy have no positive purpose in my life and can actually hinder me from amazing opportunities and experiences. The power of believing in yourself is real.

    • Don’t give up.

    If you give up, you may miss out on life-changing opportunities. If you ever feel like giving up during the application period, just remind yourself why you’re applying in the first place and what you’ll gain if you’re accepted.

    • Don’t be afraid to ask questions.

    Asking questions can help you learn and grow. If you have any questions about contribution guidelines or anything programming-related and cannot come up with an answer on your own, ask! The project mentors are there for a reason. They want to help you. You can also reach out to other interns.

    Whether you decide to apply for Outreachy or not, contribute to open-source! I cannot stress how much confidence and excitement for software and programming I have gained by contributing to the LibreHealth EHR project this past year.

    Feel free to reach out if you have any questions or need some encouragement!

    Until next time. Yallah, bye!

    by maggienegm at December 10, 2019 04:36 PM