Symptom Checker Android is an application example for the ApiMedic Symptom Checker API bundle I developed. It is free and offered to the public for evaluation. If you like it, comments are welcome.
If there is enough interest, it could become a commercial product and be built for Apple and Windows smart devices as well.
[caption id="attachment_2398" align="alignnone" width="279"] Download Symptoms Checker on your Android Device[/caption]
The app works as a wizard, with distinct steps. The page layout is made of three panes:
[caption id="attachment_2378" align="alignnone" width="729"]
Page Layout[/caption]
The top pane is the Data Content pane. It shows information pertaining to the current step and allows the user to input data
The middle pane is the Navigation pane. Here two buttons allow to move to the next and previous step. The Backward (<<) button is always available (except in the first step, Login), while the Forward (>>) button is visible only when enough input has been given to proceed to the next step
The bottom pane is a link that will open this web page
Step 1 - Login
[caption id="attachment_2385" align="alignnone" width="480"]
Login Page[/caption]
Login and Password are those of the user's ApiMedic account. Links to open an account are available in the main page of the ApiMedic portal. Once registered the user can get two different credentials (user/password), to be asked separately.
Sandbox: this credential is mainly used by developers and allows to use the API with limited features but free of any charge. A final user can also use the sandbox credential to illustrate to others how the application works, without consuming live transactions.
Live: this is the credential that gives full access to the Artificial Intelligence (AI) engine. Here it is important to understand that:
registering for the Basic Free account, the live API will still give full featured access for maximum 100 transactions per month.
a transaction is consumed every time a new diagnosis is downloaded, which in the app occurs when navigating forward from the Proposed Symptoms page, but only if the set of symptoms in the previous steps has been changed from the last request.
Language: the ApiMedic API offer several languages for the retrieved information. However, Basic and Light accounts live API will only allow one language, that has to be chosen when registering the account. To be able to use other languages, at least a Premium account is required. Alternatively, also the sandbox API offers multilanguage for test purposes.
Api Type: Two options are available: Demo, which stands for sandbox API and Live.
Once all data are in, tap the Login button; if the credential is correct the Forward button will appear, otherwise an error popup will show up.
[caption id="attachment_2386" align="alignnone" width="1446"]
Logging in - Logged in - Failed Login[/caption]
Step 2 - Body Locations
[caption id="attachment_2388" align="alignnone" width="480"]
Body Locations[/caption]
By navigating forward after a successful login, we access the Body Locations page. Here we select the body part where the symptoms we want ApiMedic to assess are located
Body Locations contains major areas of the human body. Selecting an entry from the drop list, the app will interrogate the server and retrieve a more precise subdivision, populating the Body Sublocations drop list.
Once all the filelds have been selected, including Birth Year (1900 to current year) and Gender (Male/Female), the Forward button appears and lets us navigate to the Symptoms page.
Step 3 - Symptoms
The user can now see the list of available symptoms for the Body Sublocation selected in the previous step. At least one must be selected to proceed, but we can select as many as we want.
Step 4 - Proposed Symptoms
Once the Symptoms are selected, the ApiMedic Engine assesses them, but before inferring a diagnosis, it collects a group of further symptoms that, based on its knowledge base, could be correlated to those chosen in the Symptoms step, and offers the user a second chance to verify whether one or more apply. The user can select as many as she wants, zero included.
Navigating forward from this step will submit all the selected symptoms in steps 3 and 4 and query the engine for a diagnosis. This query is worth an API transaction, which corresponds to a commercial unit for the API.
Remember that you can opt for a Basic Free account, that gives 100 transactions/month free of charge.
Step 5 - Diagnosis
The Diagnosis Page shows a list of issues that the ApiMedic engine has determined to be statistically correlated to the selected symptoms, according to its knowledge base. Each potential issue is associated with an Accuracy factor, given as percentage of probability. The user has now the opportunity to get further information about each of the issues.
The issues can be selected one by one, then navigating forward to steps 6 and 7 we get Issue Info and Specializations for the selected issue.
Step 6 - Issue Info
In this page the user can read detailed information about the selected issue. Usually this content doesn't fit in a smartphone page, but it is scrollable.
Step 7 - Specializations
The last page shows a list of medical specializations that the engine associates to the selected issue in step 5. Each specialization is coming with an accuracy factor, in percentage.