Inspiration
I was inspired by my extensive and ongoing, personal experience in the systemic & operational deficiencies of the New Zealand public health system, in reliably and consistently managing Personal Medications of New Zealand citizens.
What it does
GetMedNZ allows each of the following Four (4) parties to seamlessly work together, in assisting a Citizen to Request, be Issued and Manage the relevant Medications to support their Health:
- Supported_Client: Patient
- Healthcare_Provider: Medcentre
- Prescribing_Clinician: Doctor
- Pharmaceutical_Provider: Pharmacy
There are another Three (3) parties who have important but peripheral roles, and subject to time constraints and functional merits, may or may not be included in the final version:
- Government_Authorising_Agency: MedSafe NZ
- Adverse_Pharmaceutical_Agency: NZPhvC
- Pharmaceutical_Supply_Entity: PharmaWarehouse
How I built it
The tools that I have used in this project are:
- Daml SDK ver 1.16.0-1.17.1
- VS Code IDE ver 1.61.1
- LXDE Terminal ver 0.3.2
- Ubuntu 16.04 LTS - 20.04 LTS Operating System
- Firefox Web Browser ver 93.0 & Developer Tools
- Vivaldi Web Browser ver 3.8 & Developer Tools
- Various Linux CLI tools such as curl, wget, ping, vim, nano
- SimpleScreenRecorder software, https://www.maartenbaert.be/simplescreenrecorder/
- OpenShot Video Editing software, https://www.openshot.org
- Speechelo Text-To-Speech SaaS, https://app.blasteronline.com/speechelo/
Challenges I ran into
This is the first occasion in which I have participated in a publically-accessible Hackathon. In addition to that, as a Daml Smart Contract & Ledger novice, I have had to approach the project very logically, specifically to separate out the Architecture and Business Logic.
While syntactically the Daml language is nowhere as complex as Node.JS or Java, without a high degree of familiarity with its logical edge-cases, it is easy to become logically-conflicted and therefore not be able to action, simple functions.
Another issue was support for Daml-related queries. The Daml Forum is supported by extremely talented people who are mostly professionally employed; therefore, they contribute when they are able to. However, being in a specific duration event, my needs are far more time-sensitive, and with also being in New Zealand, frequently I find myself in this very drawn-out Query/Answer time loop, of sometimes greater than 24 hours.
That said, the support from the Daml Forum is amazing, and just about always correct the first time.
I also could have spoken to more professional developers, to get their overview as how to scope out, design and implement an application like this. This would have allowed me a greater degree of control, accountability and milestone benchmarking.
Accomplishments that I am proud of
During these past 5 weeks, I have committed a lot of Time & Energy to increasing my current knowledge of Daml, and applying it to a specific issue. This has been a very interesting way to learn more about the core language and using it to identify, and explored further use-cases.
I have enjoyed the structure and commitment of participating in a competition to produce a Minimum Viable Product (MVP), especially as I have never written a non-trivial software application before. The nexus of real-world experience and a novel, interesting programming language (Daml) have provided challenges both Logical and Operational.
Although, with a deep, and wide range of previous skills & experiences, I have been able to draw from previous projects, various techniques to assist & support me in achieving this specific goal.
What I have learned
The top Five (5) learning points from my perspective, are:
- That Daml Documentation while good is not crystal clear for non-Developers & Novices.
- That with a deeper knowledge of the core language, Daml development would not need an IDE.
- The potential for extremely powerful, and flexible functions is available through Data & Record Types.
- That the Daml language allows for a non-professional to design, build & publish tools of value.
- That with further compounding of my knowledge and exposure to use-cases, I could see myself training other potential users of Daml, both absolute Novices and Business professionals.
What's next for GetMedNZ
The plan is to make the codebase, fully Open Sourced and allow the global Daml developer community to use it, as it needs to affect much needed sector change. In addition to that, I will continue to contribute to and extend this application for both potential users and personal skill development.
Log in or sign up for Devpost to join the conversation.