Skip to content

66Noah2018/MIKAT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

90 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Medical Informatics Knowledge Authoring Tool (MIKAT)

Required programs

  • Java 11
  • Tomcat 8.5 (no higher version, clashes with Java version and crashes project)
  • NodeJS 16.14.0
  • Maven 3.8
Run 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.

MIKAT features

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 (under case "translateAS":).

MIKAT projects

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.

Testing and test-driven development

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.

Database and standardized terminology mappings

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.

Local storage

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.

License

This work is licenced under the GNU General Public License (GPL) version 3.

Possible future changes

  • 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

About

KA tool project thesis MSc MI

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published