Web utility to assist doctors, nurses, technicians and other medical staff access standard-issued medical diagnosis easily and quickly.
Last updated for version 1.0.0.0 - 10/05/2017.
Hello and welcome to Diagnosis Manager, abbr. DiagMan throughout this document and application-related media. My aim, developing this application, is to assist doctors, nurses and other medical staff access medical diagnosis easily and with efficiency. The application is client-based, meaning that besides the initical load-time, there is no really loading time while operating the application, which allows for much faster workflow.
My name is Itay Asayag and I'm a developer. I've worked on many projects before, which you can reade about later. I develop in the .NET framework and in PHP and web. My work includes community projects, such as helping medical staff, police forces, and young students who live science and computers. My hobbies include programming, photography, writing and playing the guitar. I hope this application will help you help other with more easily, and perhaps even enjoying your job.
The application is built of multiple screens.
You first meet the main screen upon entering the application. It consists of two parts: the header and the body.
The header consists of the search bar, class-selection dropdown, number-of-results field and source selection.
The body includes the result table.
Customize your experience for maximum efficiency with DiagMan.
The code is divided into two ends:
Front End | Back End |
---|---|
Intro.js |
diagPrio.php |
Settings.js |
|
CopyDiag.js |
|
Settings.js |
./resources/js
.
Intro.js
Intro.js
starts with a declaration of the available data sources, i.e. ICD-9 and other collections.
This decleration will be removed somewhere in the future versions replaced by a source-managment dialog, with
the data stored in CSV.
window.$datasource = {}; // data sources dictionary
window.$datasource[0] = "resources/data/CMS32_DESC_LONG_SHORT_DX.csv";
window.$datasource[1] = "";
window.$datasource[2] = "";
Currently, results are being registered to a CSV file. This data is not used yet because I first want to see if this feature is even required.
window.resultsuggestion = "resources/data/searches.csv";
Settings.js
Settings.js
is used to handle getting and setting the settings in the application. The data is saved
in the form of cookies set to expire after 30 days.
var settingCollection = "settingCollection";
var settingNumResults = "settingResult";
var settingRowSize = "settingRowSize";
Following some low-level cookie-managment code there are definitions of two main functions:
loadSettings()
and saveSettings()
.
loadSettings()
Receives no paramers.
Description:
Checks the settings. If saved settings exist in the cookie cache, then
load them into the application and set the Setting Dialog's controls to match the saved
values. Otherwise, save the values as the defaults.
function loadSettings() {
if (checkSetting(settingCollection)) { // data collection
window.selectedDataSource = 0;
setSetting(settingCollection, 0);
document.getElementById("source").value = window.selectedDataSource;
} else {
window.selectedDataSource = parseInt(getCookie("settingCollection"));
document.getElementById("source").value = window.selectedDataSource;
console.log("Loaded new setting 'settingCollection' as " + window.selectedDataSource);
}
[...]
saveSettings()
Receivs parameters: numResults, selectedCollection, rowsize.
Description:
Called upon clicking the "save" button in the settings modal, this function
recieves the values from the modal fields and saves them.
// collection
setSetting("settingCollection", selectedCollection);
window.selectedDataSource = parseInt(selectedCollection);
[...]