End of Community Bonding Period

The community bonding period just came to an end, it’s been filled with lots of reading and QA sessions.
With aim of having clarification of my task and knowing where to begin, my mentor went through the radiology modules to help me address queries about the workflow.

A lot of reading from past GSoc radiology module development blogs was done to get an in depth understanding on what has been accomplished. Also read from OpenMrs since the original radiology module was forked from there. I looked for any writing that will explain the components of the radiology department, the processes, roles and functions of resources. The following references will be helpful to find your way to the understanding of the buildup and reporting workflow of the radiology module:
– Terms, User roles, user stories
http://teleivo.github.io/docs-openmrs-module-radiology/#_requirements
– Gsoc 2017 final report
https://ivange94blog.wordpress.com/2017/08/27/gsoc-2017-final-report/
– Creating a Radiology Report using MRRT Report template LibreHealth Radiology
https://ivange94blog.wordpress.com/2017/08/21/creating-a-radiology-report-using-mrrt-report-template- librehealth-radiology/
– User stories
https://librehealth.gitbooks.io/radiology-user-stories/content/
– Dicom Basics
https://saravanansubramanian.com/creatingdicomfile/
– Video on standard radiology workflow
https://www.youtube.com/watch?v=czApoO5N9K8&feature=youtu.be

To Do

Having done all those findings, this will be my objective throughout the summer:
– Implement the start of the reporting process such that after clicking the ‘claim study’ button:
Allows the user to select a template
Dictate report; integration of voice dictation
– Once a study is completed(report) it should fall off the dictation list
– User can view report by clicking on patient
– Incorporating ACR assist modules for decision support
All these objectives will have sub tasks, which will be arrange in a google doc with an updated
timeline or use the trello boards if permitted. The sub tasks will be modified as I progress.

You may like to know

Faced some errors while trying to run the Lh-radiology-owa
The error message seemed to prove that my angularcli version was higher than the project’s. So I had to downgrade. After searching online, these commands were used to uninstall and install a lower version of angular(angular 4).

npm uninstall -g @angular/cli # If angular version is 5 or greater
npm uninstall -g @angular-cli # If angula version is lower than 5
npm cache verify #if npm version is < 5 then use npm cache clean
npm npm install -g @angular/cli@1.4.9

These link will help address issues on angular versions
-Upgrade/uninstall install instructions
https://www.npmjs.com/package/@angular/cli

NB: It is advised that all packages should be installed locally. This makes sure you can have dozens of applications in your computer, all running a different version of each package if needed. Updating a global package would make all your projects use the new release, and as you can imagine this might cause nightmares in terms of maintenance as some packages might break compatibility with further dependencies, and so on. All projects have their own local version of a package, even if this might appear like a waste of resources, it’s minimal compared to the possible negative consequences.

Bad sitting posture

Being new to Angular and Javascript, I will be following angular tutorials these few days to help me get around the radiology UI and implement or modify different functionalities. This week will be very demanding and I will have to exhaust every bit of my productivity techniques to accomplish these tasks in time. May the force be with me!

Advertisements

Community Bonding; Second Week

It’s been a wonderful experience so far. It seems rather frightful than surprising how much i have learned these weeks. Ten hours a day have been dedicated for this project, making it seventy hours a week. It will seem much, but i have ninety-eight hours to do my other stuff, so all is well.
In attempt to answer the question “what to do“, communication with mentors have to take place so that i refine my original project proposal to reflect the exact task to be done and in more detail, giving out clear milestones and deadlines. This process prompted me to:
– Read past chats under related topics,
– Read past Gsocers blogs to have a more detailed idea on what they had worked on,
– Ran modules, and other openWeb Apps to see what has been implemented and what hasn’t.
All these was with aim of coming out with a more chronological arrangement of my tasks
to be done (detail workflow). I’ll be preparing a new wireframe based on the new openWeb app that was built for radiology.

Faced many little huddles, but learned a lot form them..
Faced the nvm EACCES: permission denied error when i ran an nvm install in a polymer project directory. I did this with aim of understanding the concept of web components.
That error was caused by the original approach i used to install npm. I highly recommend that NodeJs and nvm package manager should be installed using a node version manager and not the traditional sudo install command. These links could help one rectify that problem.
Documentation
Give permission

Also encountered a Problem with dial: dial tcp: lookup mysql on 127.0.0.11:53: no such host. Sleeping 1 error when running my toolkit/radiology containers. Tried many solutions; restarting mysql, killed processes on ports… but only succeeded running my container after i refreshed my docker system(removing and re-downloading the image/container/volume) using commands:
docker container stop $(docker container ls -a -q) #Stopping all docker containers
docker container prune # Remove all stopped containers
docker volume prune # Remove all unused volumes
docker image prune # Remove unused images
or just docker system prune --all --force --volumes for all the above
as learned from this post and many other little issues.

Now i see how essential it is to document errors for one may face it again, and it’ll be then easier to tackle. One of my previous internship mentors made the statement, “Not all knowledge has been documented” i shall continue to do blogs aimed at reducing the accuracy of that statement.

Just an image I like

Generally i have had a good grasp of:

  • How to search for error solutions and filter solutions on online forums,
  • Learned more of git branching using the book git pro especially with commands “merge” and “rebase” (a separate blog post will be done on git’s merging and “rebasing” commands and it’s use cases),
  • Learned more about the docker engine and now know many commands off the top of my head,
  • Learned more about the polymer and web component concept.

Many people have the wrong notion of Gsoc, the google summer of code is all about the wonderful experience of learning; software development, collaboration, communication with aim of gaining insight of the OpenSource, It surpasses just being there to code and get payed. The experience is an integral part of it. If not, organisations will simply get professional developers to do their projects for them in a shorter range of time. Reason why i am grateful for this opportunity and i plan to let it not go to waste.
The feeling is exhilarating, and there will be some additional satisfaction having this project accomplished under my watch.
I look forward to the challenges of next week.

The Gsoc Journey Begins (Extended)


Dreadful but Mesmerizing

It felt good, it did. A feeling one can’t fake after experiencing a breakthrough after quite some investment; time, money, brain power, healthy spine… All that was felt internally, it would’ve been tough to tell from looking at me. What may betray me are my eyelids, they’d appear narrowly opened, like when savouring a bite-size piece of sugar cane in the dry season knowing it’s a delicacy.

My successes this period was highly influenced by an internship i took part in during the summer holidays of 2018. Did a two months internship with Gr8di where i got to learn a lot about back-end development with groovy(Grails framework) but the knowledge cuts across most JVM technologies. I gained and honed many skills, had a clearer career path and my confidence boosted. I owe them a huge gratitude, for Kraulain and Jenn Strater were the roots of my success in groovy; (Groot). *Bad pun, Roy *. A series of posts will be created based on my experiences at Gr8di.

After receiving a text that read ‘Congratulations Roy…’ I was happy, not excited, there is a clear distinction of both meanings, but most people blatantly refuse to see it. I believe that if i expressed joy by uttering phrases like “Yes, I did it ! ” , a keen someone will be able to see through that thin layer of faut excitement, the phrase “Oh shit! I have a lot on my plate now”. This reaction is not surprising as i’m doing seven university courses this semester with two being project design related courses. With all this I’d have to exhaust all my techniques of productivity, making good use of the Pomodoro technique, through the pormodoro timer and the collaboration tool; Trello.

This is a time management technique where tasks are given intervals of 25 minutes(a pomodoro) punctuated by short breaks. Will be getting a timer for my Win10, i still have that for Ubuntu.

Trello is a system of boards, lists and cards. This creates a system that allows for individuals or teams to track a project and collaborate. I’d use this with my mentor to keep track of my activities. The feeling of moving a task to “Done” is priceless!

I’ll dedicate ten hours a day on week days, twelve on weekends for my Gsoc project (Yes it’s much) and six hours for school work. Ten hours on the project is not too much, i may be productive only for four hours within the ten hours and will do other related issues within the remaining time.

I was told to celebrate, i did, but many won’t agree. Watched an episode of
Shingeki no Kyojin (Attack on titans) season 3 part 2 and the latest episode of One Punch man. Had a glass of ‘tole’ tea and rewarded myself with seven hours of sleep. What could beat that?

The GSoC Journey Begins

The chosen google summer of code student participants have been announced and i’m in! 

gsocpic12

 

It’s been 2 days since the declaration of Gsoc 2019 selected students. I was accepted into the program under Librehealth open source organization to work on the project Incorporate radiology workflow into radiology  which could be also be referred to, on the Gsoc site, piloted by mentors Judy Gichoya and Ivange Larry Ndumbe.

I could tell i’m excited, there’s this soothing feeling like a whirling pool right beneath my sternum that occasionally scrubs against the spine and gives nothing but satisfaction. It’s tough ignoring this frequent palpitations though. Knowing the task ahead, i guess the palpitations are caused by that speck of fear one feels when taking on a new and demanding journey. I’ll need it, i will. Not too much to cause stress or distort my thought process, neither too little to make me take things for granted, but just enough to keep me focused and disciplined.  Nevertheless, it’s thrilling getting out of your comfort zone to explore new ventures. 

This project encompasses the implementation of the Draft and approval workflow (with respect to radiology user stories) and other functionalities which will be highlighted after discussion with mentors during this bonding period to be incorporated into the radiology module. This will entail that I study the code base of several past Gsoc participants under the following topics:

A new work timeline with updated milestones will be created on google Docs by the end of the community bonding period to clearly highlight my goals, milestones and respective deadlines throughout the summer. I’ll also be doing weekly posts on my activities, experiences and accomplishments.