The cardiovascular unified real-time intelligent system is an AI-based engine whose purpose is to analyze the cardiovascular health of a given person, this is done through ECG analysis (an existent ECG measuring system is needed to obtain the required values).
Curtis acts as an expert system, a rule-based program that emulates a real-life expert way of thinking about a certain topic, those rules were obtained for Curtis using the "decision tree approach", in which some existent data was given to a decision tree classifier, and it categorized the data into branches of rules and decisions.
First, install the curtis-engine
package:
$ pip install curtis-engine
To start using Curtis, the CurtisEngine
class must be imported, as well as CurtisFacts
for the facts declaration:
>>> from curtis import CurtisEngine, CurtisFacts
>>> curtis = CurtisEngine()
After that, use curtis.declare_facts
method to declare a new CurtisFacts
object, which should contain all the ECG values needed for a diagnosis to be performed:
>>> curtis.declare_facts(
... CurtisFacts(
... sex=1,
... age=89,
... height=140,
... weight=30,
... HR=56,
... Pd=122,
... PQ=164,
... QRS=118,
... QT=460,
... QTcFra=451
... )
... )
Finally, to get a diagnosis over the declared fact, use the curtis.diagnose
method:
>>> diagnosis = curtis.diagnose()
>>> print(diagnosis)
60
The curtis.diagnose
method returns a number (as seen). This number is a diagnosis index, which means it's a unique index for a given diagnosis. To see which diagnosis belongs to that index, import the diagnosis_indexes
dictionary from the curtis.utils.encoding
package, and use the diagnosis as the index:
>>> from curtis.utils.encoding import diagnosis_indexes
>>> print(diagnosis_indexes[diagnosis])
Unifocal premature ventricular complexes
And voilà! you've made your first Curtis diagnosis. 🎉
To see the docs, you can clone the repo and open the docs
folder to serve it as a website.
Using serve
:
$ git clone github.com/gantoreno/curtis-engine.git
$ cd curtis-engine
$ serve docs/curtis
The documentation should now be available at http://localhost:5000.
This project is licensed under the GNU GPLv3 license.