Assumption
This guide assumes the reader has already read the Joty application guide of the Joty framework web site.
Installation
Here it is to be pointed that either the application is set with a client server asset or with a web application asset, the availability of an instance of MySql server is a precondition for Odontior 2.0 to be run. Then the first action is the launch, as MySql 'root', of the script for the creation of the database of the application.
The database script and all other ingredients specific to the application can be found in the Downloads section of the odontior.org web site.
The database instance provided is completely empty except the descriptions strictly bound to the semantics of the application.
Default user's credentials and built-in application roles
The application is distributed with three users defined with the associated default password:
User | Password |
admin | JotyAdmin |
user1 | JotyUser1 |
user2 | JotyUser2 |
(NOTE) The shared demonstrative instance, made available along this web site, requires that the credentials received by the visitor are to be used. The credentials take the following form:
User | Password |
admin_[NNNN] | [a received password] |
user1_[NNNN] | [a received password] |
user2_[NNNN] | [a received password] |
... where [NNNN] stays for an up to four digits number as it is assigned by the dispenser procedure.
and has the following built-in application roles:
Role | Abilities |
Administrators | Write access to Users dialog and Application features |
Practitioners | Access to the dentistry |
Doctors | Access to all medical data |
Administrative personnel | Access to financial data and the dentistry |
Schedulers | Appointments management |
The predefined users, then, have the following roles active:
User | Administrators | Practitioners | Doctors | Administrative personnel | Schedulers |
admin | X | ||||
user1 | X | X | X | X | |
user2 | X |
The File menu
Next are the descriptions of each item:
item | Description |
Patients | Opens the Patients dialog |
Customers | Opens the Customers dialog |
Insurance companies | Opens the Insurance companies dialog |
Practitioners | Opens the Practitioners dialog |
Organizer | Opens the Organizer dialog |
Waiting list | Opens the Waiting list dialog |
Treatments | Opens the Treatments dialog |
Invoices | Opens the Invoices dialog |
Estimates | Opens the Estimates dialog |
Armchairs | Opens the Armchairs dialog |
Set last invoice number | Allows the setting of the number the system have to consider to evaluate the next value for the invoice numbering |
The 'Teeth naming' item of the Tools menu
Opens the teeth naming and quadrants naming editing context (only for Administrators)
The Odontior 2.0 data dialogs reference
Index
- Appointment dialog
- Armchairs dialog
- Clinical card Descriptor dialog
- Clinical card dialog
- Customer's estimates dialog
- Customer's invoices dialog
- Customers dialog
- Customer details dialog
- Estimates dialog
- Images dialog
- Insurance companies dialog
- Insurance company details dialog
- Insurances dialog
- Interventions dialog
- Invoices dialog
- Organizer dialog
- Patients dialog
- Patient details dialog
- Person searcher dialog
- Practitioners dialog
- Quadrants naming dialog
- Reimbursement plan (details) dialog
- Reimbursement plans dialog
- Teeth naming dialog
- Treatments dialog
- Waiting list dialog
On the left it has an area for the patient lookup and on the right a data management region for accessing the record, or record related data, corresponding to the selected row on theSearch Result list. Then the data management is performed by means of three data panels described as follows:
Main data
Accessing roles:
Role | Permissions |
Administrative personnel | all |
Practitioners | read |
Doctors | read |
All the fields in the upper region are mandatory when editable. Then details data grids, just below, are about :
- Queued events: pending and unscheduled events; Double click mapped data dialog: Waiting list dialog.
- Appointments: scheduled events; Double click mapped data dialog: Organizer. A flag allows a 'future only' insight.
- Clinical cards:
- Double click mapped data dialog: if selected row, Clinical card else Descriptor dialog.
- The Descriptors button opens the Descriptor dialog
- The Unified button merges the details of all the listed Clinical cards and opens them as a single details data dialog
The Related invoices (view) button opens in read-only mode the Customer invoices dialog populated with the data of all the customers related to the patient
Related customers
Accessing roles:
Role | Permissions |
Administrative personnel | all |
Practitioners | read |
The panel allows the specification of many customers as related to the current patient. Each record created is dedicated to a related customer.
The customer must be selected by the use of the Browse button that opens the Person searcher. Then a relationship (descriptive) must be specified or the checkbox Is the patient must be checked for asserting that Customer data and Patient data refer to the same physical person (the system alerts if names do not match but allows the mismatching)
The Customer details button opens, in read-only mode, the details panel of the customer data, like that one that composes the Customer dialog
The Invoices and Estimates buttons give an insight of these inherent details for the customer just as those ones contained in the Customer dialog
Reserved notes
Accessing roles:
Role | Permissions |
Doctors | all |
The panel allows the creation and the collection of more records related to the current patient. The fields have all obvious meaning a part from Practitioners: The doctor that has access to this panel can be listed in the drop-down list if he/she has been inserted in the Practitioners dialog. If this is the scenario typically the doctor operates as by self and his account has been equipped with the 'Practitioners' role but this is not needed for the access to this panel.
On the left it has an area for the customer lookup and on the right a data management region for accessing the record, corresponding to the selected row on theSearch Result list. This region is made by a single data panel:
Data panel
Accessing roles:
Role | Permissions |
Administrative personnel | all |
Practitioners | read |
Doctors | read |
Schedulers | read |
All the fields, when editable, are mandatory except the last two phone numbers and the Note field. In the lower part there are two details data grids:
- Insurances: the insurance coverage as all the possible insurances registered with the customer. Double click mapped data dialog : Insurances dialog.
- Patients: the patients which the customer is responsible for, about payments. Double click mapped data dialog : Patients dialog.
The Invoices and Estimates buttons become enabled when a patient row is selected and open the respective details dialog, that is, respectively, the Customer invoices dialog and the Customer estimates dialog
It allows treatment lookup when opened as selector and complete management of treatments when opened by the application.
In both opening mode it presents in the upper region a searcher that is input sensitive (the research runs just the user inputs something in the criteria field).
In the lower region there is the data management section that when the dialog is opened as selector can be used as details region about what selected.
The data management area is composed by the following data panels:
-
Main data
Essentially the mapping between symbol and description is defined here.
The Type option is only for helping the look-up that provides even in the criteria fields the same attribute available. 'Any' means that the treatment is classified both for general context and for specific tooth context.
Accessing roles:
Role Permissions Administrators all Doctors read-write Practitioners read Administrative personnel read -
Price
Allows the definition of prices. The Default one propagates its value on intervention definition (see Interventions dialog). The Maximum is not processed by the system but only collected for records
Accessing roles:
Role Permissions Administrative personnel read-write
It is a real panel with no direct access to data a part from a first overall insight. It can be seen as the selector of the core clinical entity: the tooth.
Accessing roles:
Role | Permissions |
Practitioners | all |
Administrative personnel | read |
Doctors | read |
Schedulers | read |
The region headed with the label Selection of the context allows, just as said, the identification of the target entity, that is the tooth or the entire mouth, either for an overall insight of the related data or for the settlement of it as central main datum in respect of which opening the details dialog mapped to the details grids, in order to perform the editing, indeed.
The horizontal bar that separates the upper and the lower arcade represent the entire mouth and behave as analogical selector together with the teeth of the arcades (upper and lower - decidual and/or normal)
The selection of the context, indeed, may be performed by means of the analogical entity or by selecting a row of the grid.
The analogical region accompanies the grid also in representing:
- The selection status: blu is the color of the currently selected entity
- The presence of data related to the entity: dark grey means that some related datum exists
Data related to the selectable entity are Interventions and Images. In the main grid, then, quantities of records of these data are presented, row by row. Executed and un-executed interventions are presented in different columns.
The identification of the selectable entity is made either analogically or by the row heading performed by the two columns on the left of the main grid.
On the bottom and on the right of the selection region are the following grids:
- Interventions. Double click mapped data dialog : Interventions dialog.
- Images. Double click mapped data dialog : Images dialog. By double clicking the picture an insight of the image content is got (by means of the opening of the Joty framework built-in viewer)
A direct opening of the mapped details dialogs can be got by double clicking the cells of the columns of the main grid.
The View card descriptor button opens the Descriptor dialog
Clinical card Descriptor dialog
It is a multi-record data dialog that navigates along the clinical cards of the patient about only their main editable properties and it leads to the Clinical card dialog by means of the Open details button.
Accessing roles:
Role | Permissions |
Doctors |
|
Practitioners | read |
Administrative personnel | read |
Schedulers | read |
It is apparent that only Doctors are responsible of the maintenance of the card in term of creation, deletion and editing of the main properties (dates and notes). By comparing the permissions with the ones of the Clinical card dialog results that an operator in order to have full control on the clinical cards data must own both Doctors and Practitioners roles.
Number is an auto-increment integer that enumerates the cards of the patient
It is a multi-record data dialog with the navigation grid at the top of its layout and it is composed by the following two data panels:
Main data panel
Accessing roles:
Role | Permissions |
Practitioners | all |
Administrative personnel | read |
Treatment and Diagnosis time fields are mandatory. The first one must be specified by means of the Browse button that leads to the Treatments data dialog opened as selector.
Exeution time, when entered, tells the system that the intervention is to be enumerated in the executed interventions.
Commercial data
Accessing roles:
Role | Permissions |
Administrative personnel | all |
The price about this specific instance of intervention is held here. It inherits its default value from the corresponding record in the treatments archive.
An only data panel composes this multi-record data dialog
Accessing roles:
Role | Permissions |
Doctors | all |
Practitioners | read |
Timestamp is the only field normally editable. It is initialized with the 'now' date-time value.
The Image field gets its value through the use of the image component mapped on it.
The Open all as tiles button perform a shortcut to the built-in feature of the image component: All the images listed in the master grid are opened, each in a dedicated viewer window, and disposed as tiles.
It has, at the top, a searcher for looking up the companies archive.
In the lower region there is the data management area made by an only data panel that access the record corresponding to the currently selected row in the result list of the searcher.
Accessing roles:
Role | Permissions |
Administrative personnel | all |
The main data are presented as attributes of the company
Every company may have one or more reimbursement plans built as percentage of the price of each treatment registered by the application
These plans are listed, by name, in the Reimbursement plans grid. Double click mapped data dialog : Reimbursement plans dialog.
It is a data dialog that lists the reimbursement plans of an insurance company. It is just to specify the name and a note about the plan currently selected in the navigation list, and that is accessed in details by means of the Details button.
Role | Permissions |
Administrative personnel | all |
Reimbursement plan (details) dialog
It lists all the percentages of the price of each treatment registered i the system.
It is a navigator-editor list dialog having Percentage as editable column.
It is a multi-record data dialog that makes the access to the insurances of a customer.
Accessing roles:
Role | Permissions |
Administrative personnel | all |
The one only data panel collects the most significant quantities that define an insurance coverage
The coverage type is summarize in a domain of three values:
- Deductible / Maximum: the coverage is complete but is actual when the amount, spent in the benefit period, is between the Deductible amount and the Maximum amount
- Coinsurance provision: the coverage is based on a percentage of what is spent in the benefit period
- Reimbursement plan: the coverage is based on a percentage reimbursed specific to each treatment.
The Type drop-down list helps to locate the suited quantities but lets the user, also, to enter all the values, in fact it provides the 'custom' value. The system processes these data only in the compute of an estimate and does not take in account the benefit period that lasts a simple collected datum for records.
The algorithm by which the quantities are elaborated, is documented in the Customer's estimates dialog.
The Company, one of the mandatory fields, must be selected by means of the Browse button.
The Friendly name field is mandatory as it is used by the system as identification key for choosing among different owned chances of insurance coverage. It might be chosen typically by the customer.
As multi-record data dialog with the navigator list on the left and the data management panel (one only) on the right, it lists the invoices of the customer
Accessing roles:
Role | Permissions |
Administrative personnel | all |
The dialog allows the composition of an invoice picking interventions up from the grid of the Available items; double clicking on this grid the item of the row is pushed into the Items grid, that is ...items of the invoice.
Note: For the invoicing it was chosen to make available also interventions where the execution time is not specified (maybe was not for some reason); it is up to the administrative user to recognize the actual item to be invoiced: the system presents, as available, all those ones related to the patient (mentioned in the heading of the invoice) and not yet invoiced (not yet present in other invoices generated for works for the patient). As an help the Intervention details button is available: when the dialog is in editing mode and before any exchange occurred between the two grid, the button provides details of the intervention selected in the Available items grid.
An invoice can manage only works for only one patient.
The lack of the patient value means that the customer is the patient too.
The Number field is an auto-increment integer that enumerates the invoices of the company within the year. At any rate a user having the 'Administrators' role can set the value of the last invoice number by means of the dedicated item in the file menu.
Let's name 'items sum' the sum of the price of all the items collected by the invoice. Then there are the following fields that deserve a description:
- Tax rate: a percentage expressing a tax to be applied and, as such identifies a contribution to be added
- Tax rated extra amount: a quantity that contributes to the final count, and as 'items sum' is subject to the tax appliance
- Non tax rated extra amount: a quantity that contributes to the final count but that is not subject to the tax
The two extra amount quantities have, next, a description field by which the user can qualify semantically the quantity field.
At last the Render button is available: it generates the invoice as printable document.
It is similar to the Customer's invoices dialog.
Role | Permissions |
Administrative personnel | all |
The main differences are that:
- there is no Number field
- 'Amount' becomes Cost by respecting the point of view of the customer that is waiting for the estimate computation
- A couple of fields appear: Insurance and Already spent. The former is one of the insurances of the customer, identified by its friendly name (see the Insurances dialog) and the latter is initialized by the field having the same name in the insurance record but can be customized / actualized and with its new value it is stored in the estimate document. The 'Insurances' field is modifiable until an exchange of items occurs between the two grid
- In the 'Available items' grid the presence of the 'Reibursement (%)' column that indicates, for the selected insurance, the reimbursed percentage of the item price based on the possible existing reimbursement plan
- Pushing items in the estimate does not avoid that the same items were pushed in other estimates (it makes sense building more estimates for a scenario and it is not the same for an invoice).
- There is no Render button
The algorithm by which 'Cost' is computed is the following :
- Let's name 'Reimbursement' a possible quantity due to the presence of an insurance coverage, let's set it to zero, indeed
- 'Cost' is initialized with the sum of the price of each item augmented by the contribution due to the tax appliance, that is, price multiplied by the tax rate
- If the insurance selected (if one is selected) defines a reimbursement plan contribution then 'Reimbursement' is augmented by the sum of all contribution calculated on each item as: the percentage of the price specific for each treatment which the item makes reference to, and listed in the plan
- 'Cost' is augmented by the 'tax rated extra amount' plus this amount multiplied by the tax rate
- 'Cost' is augmented by the 'non tax rated extra amount'
- If, for the insurance selected, the coinsurance provision percentage (see Insurances dialog) is specified then 'Reimbursement' is augmented by 'Amount' multiplied by that percentage
- If 'Already spent' (as appears in the Estimate) is less then 'Deductible' (see Insurances dialog) then 'Reimbursement' is diminished by the difference {'Deductible' - 'Already spent'}
- If 'Reimbursement' is less then zero it is set to zero
- If, for the insurance selected, 'Max amount' (see Insurances dialog) is specified and 'Already spent' + 'Reimbursement' overcomes 'Max amount' then 'Reimbursement' is set to the difference {'Max amount' - 'Already spent'}
- 'Cost' is diminished by 'Reimbursement'.
Allows the research of invoices by 'Number', by 'Date' (with greater than and less than operators) and by customer.
Furthermore it allows the printing of the found document.
Accessing roles:
Role | Permissions |
Administrative personnel | all |
Allows the research of estimates by 'Date' (with greater than and less than operators) and by customer.
Accessing roles:
Role | Permissions |
Administrative personnel | all |
It is the application organizer.
Accessing roles:
Role | Permissions |
Schedulers | all |
Practitioners | read |
Administrative personnel | read |
By means of a calendar instance it allows navigation along the time and allows to set up the appointments either by double clicking a row of the grid on the right, so that the Appointment dialog opens, or by dragging and dropping a grid row from the Interventions grid of the Clininical card Dialog or from the Waiting list dialog
.In the first case a simple appointment is created, in the second case the appointment is transferred as is, a part from the acquisition of the coordinates.
Let's say 'time slot' the interval time five minutes long in which the whole working day is divided.
The grid on the left has two tasks to accomplish:
- to give an insight of the working day engagement by displaying in each hour:
- the names of patients of which an appointment fall in
- a graphical sign with the following meaning:
- '\': the hour begins with a time slot free and ends with a time slot engaged
- '|': the hour is completely engaged
- '/': the hour begins with a time slot engaged and ends with a time slot free
- '<': the hour begins with a time slot engaged and ends with a time slot engaged but inside some time slot is free
- '>': the hour begins with a time slot free and ends with a time slot free but inside some time slot is engaged
- to select the base hour focused by the grid on the right. Note that this selection is stored by the system in the user home directory and applied again at the next opening event.
The grid on the right has significant columns:
- The second column provides analogically the extent of the engagement of the appointment of which only the row of the first time slot is populated with data.
- 'Macro' that can be occupied by an 'X' to assert that the appointment contains more interventions. When the assertion is true the columns about the intervention are empty.
- 'Done', that has meaning only for simple appointment in order to assert that the appointment has the execution time specified (note that no semantic temporal analysis is done in respect of the today date).
The Go to button with the date field just attached down, let the user jump to a key typed date.
The Back button becomes useful when a collision is detected during the insertion of an intervention into an appointment; in that occasion the system drives the user to the context where the intervention is already mentioned. Then the button can drive the user back to the insertion context.
Accessing roles:
Role | Permissions |
Schedulers | all |
Practitioners | read |
Administrative personnel | read |
This is a single record data dialog that allows to set up the definition of an appointment.
It is opened either from the Organizer or the Waiting list. In the first case the fields at the top are populated by the coordinates of the first time slot, mandatorily engaged by the appointment definition; in the second case they are empty.
The selection of the patient is mandatory and must be accomplished by the next Browse button.
The Duration field is mandatory too (expressed in minutes) because it is used by the system for the management of the time coverage.
The Details button makes the opening of Patient details dialog.
This is the place where an appointment is defined as built by a single intervention or more interventions (in which case it is said 'macro').
The Macro check box asserts that truth.
The dialog has special behavior in respect of data access when the switching occurs between the two inherent states:
- regardless the versus of the switch the system alerts the user that, in order to continue, data modified during the editing session will be saved (making useless the 'cancel' command)
- by switching the 'macro' attribute on, if the intervention was specified then the interventions grid, contextually appearing, is initialized with the intervention
- by switching the 'macro' attribute off, if the interventions exist then the following options occur:
- if the interventions grid contains one only item then this one is used to populate the definition of the intervention in the simple asset
- if the interventions grid contains more items the user is alerted that all of them will be deleted
In the macro state the changes to the interventions grid performed by the Add and Delete buttons are immediately effective and the editing session of the dialog continues independently. The same is for modifications to the grid derived by dragging and dropping a row from the interventions grid of the Clinical card dialog
Accessing roles:
Role | Permissions |
Schedulers | all |
Practitioners | read |
Administrative personnel | read |
This data dialog is made only by a grid the row of which can be dragged up and down to change the queuing order of them, order marked by the first column.
Adding rows is possible only by dragging and dropping interventions from the interventions grid of the Clinical card dialog or appointments from the Organizer
In the first case a simple 'undefined' appointment is created, in the second case the appointment is transferred as is, a part from the leakage of the coordinates.
A row can be edited double clicking it: the Appointment dialog opens. Then the appointment can be also deleted.
The composition of the grid is similar to that one of the grid on the right in the Organizer.
Accessing roles:
Role | Permissions |
Administrators | all |
It allows to set the symbols that the application uses to make references to all the teeth. It is made by an analogical region that helps to select each row of the grid making the values editable.
Even a direct selection of the row is possible; in this case the analogical region gives the user a visual feedback of which tooth is being defined.
The Quadrants button opens the Quadrants naming dialog
Analogous to the Teeth naming dialog but for quadrants.
Accessing roles:
Role | Permissions |
Administrators | all |
Provides the simple data collection of the practitioners mentioned in the application.
Accessing roles:
Role | Permissions |
Administrators | all |
Administrative personnel | read |
Practitioners | read |
Doctors | read |
Schedulers | read |
Provides the core definition of the armchairs managed by the system.
Accessing roles:
Role | Permissions |
Administrators | all |
A dialog made by a searcher and dedicated for the lookup of the customers and the patients
Accessing roles: inherited from the calling context.
It is made by the main data panel of Patients dialog made read-only.
It is made by the main data panel of Customer dialog made read-only.
Insurance company details dialog
It is made by the main data panel of Insurance companies made read-only.