Computable Specifications
From my experience, modern applications cannot be written by hand anymore. There are 100s of similar web forms and components to write (and all the plumbing that is needed). Even if a team writes them by hand, they are hard to maintain and the application usually remains on old framework versions even before it is released.
On my last project I was managing a team writing a business process app using Vue.js and Node.js. We had 450+ tables. I didn't want my developers to write forms one-by-one. So we built an "admin builder" for generating admin forms from the E/R model's XML export.
When I was reading the openEHR architecture overview I couldn't stop thinking that many things could be generated from the computable specifications.
I decided to generate code to enable high performance scenarios - integrations, data transfer on the server-side and validations of data in the frontend applications to make it more responsive to the users. Data is also validated on the server-side.
openEHR specifications are detailed but also complex. Why risk introducing bugs while converting them into code? Why not generate as much code as possible?
Task Planning
I'm working on a low-code implementation of designing and running care plans. The plans will be prepared in a visual diagramming tool. The resulting diagrams will be executable.
SDK
I can already generate an SDK for OPTs. These (data) model classes are prerequisite for working with and validating OPT data. They are already in a structure that will be used by the UI. The validation can be executed on a server or in the client.
Forms
My plan is to take a list of OPTs and generate as good looking forms as possible. Since that is not enough I plan to let users "design" the forms in the forms runtime application (the same that is used for data entry).
Dart / Flutter
The reason I picked Flutter for my openEHR forms is to force me to finally use Flutter on a real project. It would be much simpler for me to use Vue/Angular/Svelte/...
Flutter application can be compiled as web, iOS, Android or desktop application (Windows, Mac, Ubuntu).
It is easy to generate Flutter and JavaScript/TypeScript/Angular/... at the same time. But nobody expressed any interest in it yet.
My generator currently outputs Dart code (its syntax is almost the same as Java and JavaScript). It can be compiled to JavaScript (dart2js, dartdevc). It remains almost readable even after compiling. But the readability is not important. The important part is that the code can be run on Node.js or be called from other JavaScript code.
It is easy to generate code in any programming language. I just don't want to spend time on other languages if there is no interest in them.
Node.js / JavaScript
For my low-code medical planning tool I use JavaScript and Node.js.
Task Planning & CDS
My wish is to work on Task Planning or Clinical Decision Support but I'm not sure how many end-users would trust a solution built by a single person. I'll try it anyway :-)
I believe that the business model of a company should be clear. No hidden agendas. Not giving something for free only to later force you to buy an important part of the solution. Without features that will prevent you from choosing somebody else's solution.
I believe in great vendor-neutral solutions for openEHR with no lock-ins.
I have no external funding for my projects. I work on them full-time and finance it myself. I can be hired and also accept funding for the projects that might be useful to you.
Sponsoring
In a perfect world I would offer all my work as open source. It would mean a lot to me.
In such a small community as openEHR it is not sustainable releasing everything as free open source. I wish that open source products were free for everybody but the people building these products were paid for their contribution.
It would easily become a reality if a few end users would decide to sponsor.
Example: a city with 2 million residents sponsoring 0,05 EUR/resident/year means 100k EUR/year (this gets rounded to 0 in healthcare). If a few such cities decided to sponsor the openEHR contributors at the same rate it would mean €500k/year. Add a few countries and the budget would be quickly large enough to sponsor a team of 20 working on openEHR solutions full time.
Increase 0,05 EUR/resident to 0,50 EUR just for fun.
Open source products are more valuable than proprietary products. Why does everybody expect them for free? Why not support the people building these products and still get a 99% discount compared to the proprietary products? For a cost of 1% you would be free from the vendor lock-in.
Compare free open source with "free cities":
How can a "city" expect a healthcare solution for free without offering "free" apartments to the individuals that created the solution?
Commercial Open Source
I don't expect much but I'm also not fine with free. I don't live in a "free city".
I would like to offer my work as "open source for sponsors only". For a single contributor like me it wouldn't cost much. Especially if divided among a few vendors/end-users.
Those that decide to support my work from the start, will get privileged access to the tools I create. The tools will pay for themself - they are much more productive than human programmers and cost less than an average member of your team. You will also get early access to the source code of the tools (after a minimum of 3 years).
Licensing
Another option is to sell my tools to others who would gladly re-sell them for 100 times more. Financially that would be better for me but I might get bored afterwards.
SaaS
Task Planning
For task planning I could offer an online tool to create and test the plan diagrams. You could use the created diagrams and run them on your infrastructure.
Forms
For openEHR forms I could offer a self-service generator. I would help you generate your first application and you could re-generate it on your own when needed.
You would get a perpetual licence and source code for the latest version generated during the subscription period.
Please visit my services page if you are interested in working together