1. Field of the Invention
The present invention relates generally to computer systems, and, more particularly, to data modeling, interface design, and reporting.
2. Discussion of the Related Art
Software systems typically consist of data records and executable code. Tracking and reporting systems typically use a database, executable code, and user interface for adding, editing, and deleting data records.
A typical database model for tracking project information, for example, has at least one table consisting of fields for storing the details about project (
The application model describes screens, forms, and data flow in a system. For the described data models (
The requirements of the information structure depend on the system business goals and environment, which changes continuously. Adding new information requires modification of data model and application model. Therefore, there is a need to have a system, which can support changing business requirements without modification of data model or programming code.
The present invention overcomes the limitations associated with databases as briefly described above.
In accordance with one aspect, the present invention is directed to a method for structuring a database. The method comprising providing a template table, including list of unique templates for an informational entity, providing a template item table including definitions of template attributes, including level position in a hierarchical structure, default values, and set of possible values, providing a template item type, a template item option, and template item option value tables, including definitions and behavior items, having attributes of methods for presentation and validation, of template attributes, providing a code list and code list item tables for storing a list definitions for a template item attribute definition, providing an entity table for storing informational entities and association with their templates and providing an entity item table for storing content corresponding to created entities and defined template item attributes in the template items table.
The present invention describes a system design, including the database model, application model, and user interface design, which support flexibility and extendibility of the described system. The present invention provides the following advantages over traditional software system architecture:
allowing the addition and modification of the informational structure, including informational entities (like Project, Instrument, Contract) and their informational attributes dynamically through the user interface;
creating a hierarchical (tree like) model of informational entity attributes rather having a flat data structure;
supporting different types of informational entity attributes, including—text, numerical information, date / time, predefined value selection, and binary objects;
permitting the real-time configuration of the user interface to meet the needs of the business process;
allowing the creation of relational dependences between informational entities (like parent/child);
providing configurable and extendible reporting capabilities, including the generation of spreadsheets, slides, documents, and timeline charts;
allowing a configurable data entry interface;
allowing the importation of data from an existing data source (like Excel spreadsheets);
full text search;
logging of all modifications for the full audit trial support (which is required for regulated environment, such as Pharmaceutical and Medical Devices (21 CFR Part 11); and
including automated email (or other ways of communication) notifications for important business events (like contract renewal, task due dates, or instrument qualification expiration).
The present invention includes a data model, which includes tables for storing information about templates (describing the informational entities structure), entities, and attributes values, reports, and special tables for system access control, and other application settings.
The present invention includes a software system model, which works with the data model described in the present invention, without requiring modification for different business cases.
The present invention includes the design and method for generating a generic user interface and set of application settings that support a flexible and configurable system design, and may be used for various business purposes without requiring data model or application code modifications.
The foregoing and other features and advantages of the invention will be apparent from the following, more particular description of preferred embodiments of the invention, as illustrated in the accompanying drawings.
The present invention is directed to a generic database structure (or a method for structuring a database) allowing for:
storing different information (including textual, numeric, graphical, and binary) without having to modify tables and columns in the database;
configuring report generating methods and their structure;
configuring access restrictions for different users and user types to different types of content;
configuring generic application attributes, including titles, labels, and messages; and
configuring user interface screens for data modification.
The present invention is also directed to a method for design a generic application structure and generic user interface allowing configuration for different business needs, including project tracking, sample tracking, equipment inventory, contracts management, chemical inventory, etc.
The present invention is also directed to a method for generating a graphical user interface based on a definition of information entity type and attributes, and providing generic workflow for browsing, searching, and updating records.
The present invention is also directed to a method for generating a slide presentation based on automated estimation of a slide content size and supporting both textual, and graphical information.
An exemplary data model in accordance with the present invention is illustrated in
An exemplary data model for storing information about the informational entity structure and values is illustrated in
The table TEMPLATE includes types of informational entities (for example, Project, Task, Contract). Each TEMPLATE has a title, description, and single and plural forms (used for generating messages and GUI elements). The table TEMPLATE_ITEM stores attributes of the templates. Each attribute has a title, description, type, and default value. The type of the template attribute and its options are defined by the tables entitled TEMPLATE_ITEM_TYPE, TEMPLATE_ITEM_OPTION, TEMPLATE_ITEM_OPTION, and TEMPLATE_ITEM_OPTION_VALUE. The tables CODE_LIST and CODE_LIST_ITEM includes lists of values, which define possible values for specific attributes. The fields TEMPLATE_ITEM_LEVEL—1, TEMPLATE_ITEM_LEVEL—2, TEMPLATE_ITEM_LEVEL—3, and TEMPLATE_ITEM_LEVEL—4 are used to specify the position of the attribute in a hierarchy.
The system may have the following types of template items:
When the Template information is specified, the information about entities for the specific types is stored in the tables ENTITY, ENTITY_ITEM. An example of the template structure and its corresponding entity is illustrated in
Entity Items may have sub items even if they are not specified in the TEMPLATE_ITEM table, see for example,
Created reports are stored in the table REPORT. Reports are created by users and each user may publish reports for another user (the field PUBLISHED). Reports have a set of report items, which refer to specific template items and are stored in tables REPORT_ITEM, and TEMPLATE_ITEM. Report items may be configured in groups (see the table REPORT_ITEM_GROUP).
When there are not any records in the table APP_FORM, the information is entered into a system by standard screens or web pages.
The forms module is used as a flexible interface for entering and updating the project information. Forms may be used for entering information about one project (Single Project Form) or multiple projects (Spreadsheet Form). The information about custom forms has the following attributes: form name, form type (single project or spreadsheet), and list of selected template items. When a form is present, users see the names of the template items and project information (values) for one or more projects. Depending on the type of the template item, the form applies an appropriate control: text input, drop down list, multiple select, date picker, file upload, etc. When the form is submitted, the system updates the corresponding fields in the database (PROJECT_ITEM table).
An example of a configured custom form is illustrated in
The single project form is a more convenient interface when the user needs to enter data in many fields (informational items) for one project. The spreadsheet form is more convenient when it is necessary to update a few attributes of many projects. An example of a spreadsheet custom form is illustrated in
The system has the following main report types, specified in the table REPORT_TYPE, (
table report
slide report (PowerPoint presentation)
timeline report
Gantt chart report
schedule (or calendar) report
Reports can be generated in the following formats:
Excel
HTML
Word
PowerPoint
XML
Each report has the following attributes (stored in the tables REPORT_OPTION_TYPE, REPORT_OPTION_VALUE,
report name;
group by column;
start and finish dates;
view sub items (yes or no); this option specifies if the report should include the whole hierarchy from the specified nodes, or the specified nodes only;
list of columns, which include project name, template items, start/finish dates, and calculated fields;
list of selected projects.
The schemas of the data mapping for the slide and table report are illustrated in
The Gantt chart report additionally has a list of tasks, each of which includes two dates (start and finish). The tasks are specified in an additional table, which is connected to the table with dates.
Presentations may be generated for the one or many projects. The system provides automated slides layout, i.e. it defines which project items may be put on the same slide. If there not enough space on the slide, then the rest of information is presented on the next slide.
The generic application model is illustrated in
Generic Graphical User Interface
The generic GUI design is presented in
Although shown and described is what is believed to be the most practical and preferred embodiments, it is apparent that departures from specific designs and methods described and shown will suggest themselves to those skilled in the art and may be used without departing from the spirit and scope of the invention. The present invention is not restricted to the particular constructions described and illustrated, but should be constructed to cohere with all modifications that may fall within the scope for the appended claims.
This application claims the benefit of Provisional Application Number No. 60/956,013, filed Aug. 15, 2007.
Number | Date | Country | |
---|---|---|---|
60956013 | Aug 2007 | US |