- Java 11
- Tomcat 8.5 (no higher version, clashes with Java version and crashes project)
- NodeJS 16.14.0
- Maven 3.8
npm -i
to install JavaScript dependencies
N.B. This project has been built and tested on Windows 10/11 and using Google Chrome. While the project should be platform-independent and browser-independent, this cannot be guaranteed.
This project is a prototype graphical knowledge authoring tool for rule-based clinical decision support. It is domain-specific language-independent and allows projects created by users to be exported to any programming language. At the moment, only Arden Syntax is supported, but modules for other languages can be written and added. 'Choosing' a language is then simply changing the call in the servlet (chartservlet.java) on line 190 (undercase "translateAS":
).
MIKAT allows creation of projects that do not use time-based functionality (e.g., no delays such as wait for x). Projects can use conditional statements, for loops, subroutines (using another MIKAT project's output), dossier data (retrieve medical data) based on mappings, return values, and a multitude of medical actions including writing prescriptions.
Keep in mind that this is decision support, the engine and electronic health record used determine if and how return values and medical actions are displayed.
MIKAT allows for test-driven development. Users can load existing files with testcases (either JSON in MIKAT accepted format or CSV) and edit these. It is also possible to create test cases within MIKAT, reuse these in other projects, and export the test cases to CSV. Test cases are required to run tests on the model. Testing is facilitated through translation of the model state to JavaScript.
The terminology used within a MIKAT project is usually the same as used within the target healthcare institution. MIKAT facilitates mappings between this local terminology, the database queries used to retrieve data and standarized terminology such as SNOMED CT. When a project is exported to a domain-specific language, the database mappings are used. In the future, it will likely be possible to share projects using the standardized terminology and change this back to local terminology.
MIKAT saves projects as JSON files in the preferred working directory (which is set as a project property). This means that the local file system is accessed by MIKAT and files are created and edited. However, files are searched for within the working directory. If they are not found there, the default working directory is searched and everything under the root path if necessary. Settings are saved in Program Files or it's Mac or Linux equivalent.
This work is licenced under the GNU General Public License (GPL) version 3.
- Facilitate insertion of conditionals between existing ChartItems
- Allow sharing MIKAT projects using standardized terminology
- Add more information boxes about the status of a query (e.g., saved successfully)
- Add an example model + explanation, which is shown when no project is opened
- Fix absolute path issues when saving changes. // is multiplied
- Fix overlap between conditionals if they are placed under one another (e.g., both the if and else branches have their own conditionals)
- Allow to use elements from a loop within a loop (e.g.,
for (let row in rows) { do something with row }
) - Generate testcases based on model
- Stop running tests