Archive for the ‘tips and tricks’ Category

Voice of the ElePHPant Podcast – PHP, Technology Journey, Opensource, Java

I am excited to have been hosted on the Voices of the Elephant podcast by Cal Evans

https://voicesoftheelephpant.com/2020/06/23/interview-with-stephen-s-musoke/

Talking about my technology journey, opensource, Java, PHP (of course) and what I am doing with it in Uganda and Africa

Drinking Healthy with Locally Available Options

The lockdown has forced me to slow down, and over time pickup and implement some of the local knowledge for drink options to help reduce my sugar intake – I take about 5 cups of tea a day, so need to find other ways to compensate.

I have been lucky to also have ample space in which to plant some herbs and spices, I am searching for more if you have and are willing to share

This post is to share what I have managed to get so far and will keep updating – in addition to recipies

  1. Kombucha (https://en.wikipedia.org/wiki/Kombucha) – fermented tea drink which I leave for 2 weeks to get to the taste that I (and now the rest of the brood) like
    • Preparation:
      • Boil 20l of water with add 200g of tea leaves
      • Leave to cool till cold, filter out the tea leaves, add 0.5kg of sugar per 5 liters of water
      • Add the kombuca mushroom in a dark colored bucket, and put in a cool place without direct sunlight
      • Open once every 3-4 days to let breathe
      • After 2 weeks, remove, keep in white jerrycans in the fridge, serve cold
    • The bucket and handling have to be done very carefully being cold can be an easy transmission mechanism for typhoid, dysentry and other water borne diseases
    • Clean the mushroom, by removing any seemingly dead parts, usually very dark colored and not consistent with the mushroom. It keeps regenerating so these become evident
    • Leaving it longer than 3 weeks leads to more fermentation giving it a more alcholic taste
    • A friend of mine with very low alcohol tolerance got a hangover from a glass of my 2 week old kombucha
    • You can leave it for varying periods of time depending on your taste buds
    • If you do not have a fridge, you can prepare multiple buckets maturing at different times to have consistent supply
  2. Tumeric, lemon and ginger mix
    • Preparation: boil 200g of tumeric, 50g ginger in about 5 liters of water, add 4 lemons to taste
    • This one we usually add to kombucha to add a different dimension in taste and flavor
  3. Munanansi – this is a new addition with the current low cost of pineapples
    • Preparation (in testing):
      • Boil a 1.5kg pineapple with peels cut into pieces, 50g of tea leaves, 200g of sugar (honey can also be used) and 100g of ginger in 20 liters of water
      • Leave to cool for at least 18 hours which improves the flavor, probably due to the pineapples and ginger settling into the juice
      • Filter and put in the fridge to drink serving cold
    • We are testing using a whole pineapple instead of just the peels so that we can get more juice, rather than the 1 liter we get from just the peels
  4. Tamarind juice
    • Preparation:
      • Place tamarind seeds in water and leave overnight
      • Squeeze the covering of the seeds which has loosened, using cheesecloth or another appropriate strainer
      • Add honey to taste
    • This can be drank alone, but is a great addition to kombucha which already has its own flavor
  5. Mululuza – commonly used for the treatment of malaria in Buganda
    • Preparation:
      • Fill a pan with leaves and add 5cm of water to cover the leaves then boil for 30min
      • Leave to cool and keep in the fridge
    • Tend to add this to tamarind, munanasi or kombucha which have their own flavors, so adds a sourish dimension to the taste
  6. Rosemary – a common addition to tea and meals for flavor, however we have started eating 4-5 leaves per person every morning to start the day
  7. Lime basil (known local name kakuba nsiri) – I add these leaves to my hot tea/coffee drink about 4-5 leaves per cup
  8. Coming soon: moringa and aloe vera (will update when we start to try these out)

Please share your local herb drink and the procedure for preparing it to help build the knowledge

Some photos showing some examples of the preparation steps above

2020-06-07 09.11.44

Munanansi fireplace preparation

2020-06-07 09.11.56

Munanansi preparation

2020-05-07 13.50.23

Tamarind being soaked in water

2020-06-05 18.11.02

Lime basil

2020-04-03 16.20.21

Mululuza after boiling

2020-04-12 18.29.22

Healthy kumbucha plant with bubbles showing its breathing and alive

2020-03-01 18.57.13

kumbucha in bucket

2020-03-01 19.10.50

kumbucha – clearning removing dead parts

 

Making MySQL 5.7 fully compatible with 5.6

As a developer there are times you may need to use MySQL 5.7 but have it backwards compatible with MySQL 5.6, so that existing applications work as before. This is a collection from multiple sources, that seems to get everything to work fine

The settings below when added to my.ini or my.cnf have this effect

[mysqld]
# Only allow connections from localhost
# bind-address = 127.0.0.1
innodb_buffer_pool_size=6G
max_allowed_packet=128M
innodb_file_per_table = OFF
table_definition_cache = 400
table_open_cache = 400
performance_schema=ON
show_compatibility_56=1
sql_mode = IGNORE_SPACE,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
ssl=0

# general log
general-log=1
log-raw=1
general-log-file=/var/log/mysql/general.log

An Opinionated Approach to OpenMRS Concept Management

One of the key strengths of the OpenMRS platform is the concept dictionary, which allows for the mapping of real world health care data needs into concepts that provide the questions and answers.

The concept dictionary provides ability to map real life concepts to specializations across health care domains such as: SNOMED CT (clinical healthcare terminology), LOINC (laboratory observations), ICD-10/11 (disease classifications), RxNORM (normalized names for clinical drugs), CVX (vaccination codes) in addition to leaders in certain medical fields such as Partners In Health and AMPATH (HIV Care and treatment).

However with great power comes great responsibility, the concept dictionary coding can easily get out of hand, with duplicate concepts leading to inability to extract data for reporting and improving the efficiency clinical care that are key goals of health informatics activities.

This guide is based on my personal experience from working across multiple diverse implementations and the fact that Open Concept Lab (OCL) is not yet in widespread production usage which would alleviate most of the pains, which includes:

  1. Supporting the upgrade, evolution and rollout of UgandaEMR in Uganda from 350 sites in 2016 to over 1000 sites (December 2019) including implementation of 2 major revisions of national Health Management Information Systems tools
  2. Migration of 2 custom OpenMRS implementations in Uganda to align to and build on top of UgandaEMR
  3. Namibia PTracker PMTCT program
  4. Enhancements of the Reference Application

The key principles to this approach are as follows:

  1. CIEL dictionary is the official source of concepts, and first place to check for concepts
  2. Custom concepts must be setup in such a way that updates to CIEL or other custom modules used do not overwrite the customizations

Concept Server Setup

The setup involves using the following OpenMRS instances:

  1. CIEL dictionary server running the latest reference application version – contains the latest version of the CIEL dictionary and helps for data export when needed. The complete concept dictionary however is not recommended to be loaded for an implementation due to slowdowns in concept lookup, as sample concept numbers are:
    • Reference Application 2.9.0 – 446 concepts
    • UgandaEMR – 5,500 concepts
    • CIEL dictionary – 54,000 concepts
  2. Custom Concepts Server – this one contains the custom concepts and CIEL concepts that exist, is the single source of truth for the project concepts. This needs to run similar modules to what the implementation is running. I would recommend the following additional steps:
    • Set the autoincrement value of the concept table to 5,000,000. This ensure that the concepts created will never be overwritten by CIEL concepts, the last numeric ID as of April 2020 is 165900 due to retired concepts etc
    • Set the auto increment values of the rest of the concept* tables to 10,000,000 (there are usually more values than so these tables grow)
    • Create a custom mapping for your project or implementation, and use that to reference the custom and CIEL concepts that you use in your forms and reports. This adds a layer of redirection and consistency for access
  3. Implementation Development, Staging and Demo Servers – as needed

Moving Concepts Across Servers

There are multiple options for moving concepts from the CIEL to the Custom Concepts Server and finally to the implementation servers

Approach Description Notes
Use of Metadata sharing and metadata deploy modules to build of metadata packages (zip files)
  • Manually downloaded from the servers and uploaded where needed – faces the challenges of manual processes
  • Provide a dedicated url from source servers that clients can subscribe to get updates as the deploy packages are updated following the pub-sub model
  • The creation of the metadata packages is manual
  • The metadata packages are zip files which are difficult to debug
Download the concept data into CSV or DB Unit compliant XML The concept files are then loaded into the implementation using either Initializer or Data Exchange modules
  • This requires developers to extract the concept data from the different tables, without making mistakes.
  • This is still a manual and error prone process
Open Concept Lab (OCL) Allows creation of custom dictionaries and extraction of data through an online web interface This tool is not yet production ready but would provide the automation that solves all issues

Data Export Tools

The following additional tools can be leveraged for this purpose

  1. Dbunit XML data export plugin for Data Grip – https://ssmusoke.com/2017/04/17/techtip-dbunit-export-from-jetbrains-datagrip/

 

 

Perspective: User Requirements for Technology Projects

I was asked to talk about the handling of user requirements, how to link them to implementation within technology projects, by The Medical Concierge Group (TMCG) a digital ehealth service provider.

The key principles are being able to respond to change (agile), keep learning, and how to capture business/customer outcomes as well as improving communication across different departments and external stakeholders.

%d bloggers like this: