For software developers, medical systems are some of the most challenging systems to develop. They require higher non functional attributes such as accuracy, robustness, reliability and above all advanced security.
Medical systems also use a highly specialized domain language with concepts not common in other systems. Concepts such as Triage, Admission, Visit, Encounter, Re-Attendance and many others need software engineers who are willing to learn new knowledge and understand the business processes in medical facilities.
Work on OPD modules required our team to understand concepts such as MUAC, distinctions between clinical findings, symptoms, allergies, initial findings and related terms. In fact, the usage of some of the concept varies among medical practitioners.
Despite having female developers on our team, concepts related to MCH were not straight forward to our talented developers. Computations of EDD based on LMNP was interesting to learn while understanding and automating Gravida/Para was new to most of our team members.
Several visits to many hospitals around Uganda during the requirements elicitation phases, deployments at different sites have enabled us to understand and developer smarter medical systems that mirror the capabilities of hospital processes. So far, our domain knowledge in medical systems spans a whole range of activities including OPD, IPD processes, Lab Tests, Antenatal, postnatal modules, operating theater processes, dispensing and prescriptions subsystems.
HIV Care and Art automation is another subsystem that required intimate understanding with concepts such as PMCT, PEP, Regimen substitutions proving to be fundamental to the general knowledge of our developers.
At decimalworks, medical systems continue to be one of strong areas of our expertise and we continue to support, train and enhance our existing systems with new capabilities.
Initially our developers believed they had sufficient knowledge about Justice Law and Order Sector (JLOS) - enough knowledge to craft exceptional systems. As the team went deep into the specification and design of prisoner management information system, the uniqueness and specialty of the domain language for JLOS become pronounced. In this domain our team optimizes security as the most important non-functional requirement. The business process involves several stakeholders and an array of concepts.
Our team had to understand the entire process which start with an arrest by police, and then to court. The court generates a court warrant that admits an offender to a specific prison station. Admission into a station is an elaborate process handled by a designated officer called a receptionist. The court warrant usually indicates the next date of court appearance for remands.
Our developers understand that remand implies more that thought. Remands still have court appearances, while convicts have sentences to serve. If convicts choose to appeal either the sentence or the case, then a different process has to be followed. Sentence administration is a technical area that has taken a while for our developers to understand. A sentence may involve multiple counts, and for the same prisoner, a ruling for different counts can be delivered at different times. There are concurrent sentences and consecutive sentences. Computing the Last Possible Date (LPD) and the Earliest Possible Date of release after applying remission is not straight forward as our designers initially thought.
Once in custody, the rehabilitation programme for each prisoner has to be designed. Enough data must be collected to provide a data-driven decision. Transfer of prisoners with the prison system and location of prisoners is an critical task. At the end of the sentence, other concepts such as Discharge, Time at Large (TAL) come into play. Monitoring of ex-prisoners is another subsystem that is very critical.
At decimalworks, we have provided specifications and systems in the domain of Justice Law and Order Sector (JLOS).
Several systems and partners we have worked with in the domain of risk assessment and management have cemented the knowledge in the risk management systems.
Understanding risk dimensions such as governance, compliance, strategy to mention but a few created a sound design for systems in this domain. A risk has materiality chance and severity estimates. A set of mitigations reduce the risk. However, while designing such systems, mitigation measures must be inline with existing controls.