CROSS-REFERENCE TO RELATED APPLICATIONSThis application claims priority to U.S. Provisional Application No. 60/946,293 entitled VARIABLE DRIVEN INFORMATION MANAGEMENT SYSTEM AND APPLICATION BUILDER and filed Jun. 26, 2007, the disclosure of which is incorporated herein by reference in its entirety.
BACKGROUND OF THE INVENTION1. Field of the Invention
The present invention relates to a computer-implemented information management system and application builder and a method for managing and displaying information to a user. More particularly, the present invention relates to a computer-implemented information management and display system where data field configuration variables are used to create data fields. The use of configuration variables to create data fields enables a user to manipulate and display information based on the preferences that are set by that user or for that user.
2. Description of Related Art
Conventional systems for organizing, controlling and manipulating files and other data on a computer system are typically implemented using a hierarchy-based display of the files, commonly referred to as a display tree or an explorer tree. Electronic files are typically stored on a computer system in folders and subfolders that are organized based upon a display tree hierarchy that is established by a system administrator and the established hierarchy cannot be manipulated by an end-user without altering the hierarchy that is displayed to other users of the system. Locating relevant information for collating, manipulating and/or reporting on the information can be a difficult and time consuming task, particularly when the information is located in disparate locations.
It would be useful to provide a means to allow a user to identify, organize and manipulate files or other data and information in a manner that is more user-friendly to the end user and reduces the amount of time and effort required by the user to identify the information.
Further, creating a new database and information management system (i.e., an application) for an entity generally requires building a new system from scratch, e.g., by writing new code, and such a system cannot be easily changed once it is created. It would be useful to provide a means to facilitate the rapid and economical creation of new information retrieval and management systems without requiring the writing of new code for each new system.
SUMMARY OF THE INVENTIONIn one embodiment, a method for managing and displaying information is provided. The method can include the step of configuring a plurality of key data fields to create a key data field set, the key data field set including a primary key data field and a plurality of secondary key data fields. The configuration step can include assigning values to a configuration variable set that defines properties of the key data fields. A plurality of unique static data field values are assigned to the primary key data field, where each static data field value identifies a unique database record. The secondary data key fields can be populated with secondary key data field values. Information can then be displayed to a user on a graphical user interface (GUI), where the graphical user interface includes a skewable display tree whereby at least a portion of the secondary key data field values are displayed to the user in the skewable display tree.
In one aspect, the populating step comprises assigning a dynamic data field value to at least one secondary key data field. A stored procedure for computation of the dynamic data element can be linked to the secondary key data field. In another aspect, the populating step can include assigning a static data field value to at least one secondary key data field.
In another aspect, the step of displaying can include applying a hierarchy mask to the key field set to restrict the key fields that are displayed to a user on the graphical user interface. The hierarchy mask can be a security hierarchy mask that restricts the key fields that can be edited by a particular user on the graphical user interface.
In one aspect, the step of populating the secondary key data fields can include accepting input of data field values from a user through the graphical user interface. In another aspect, the step of populating the secondary key data fields with data can include importing data field values from a file.
In one aspect, the step of displaying information on a graphical user interface can include displaying a plurality of dynamic display tree configuration widgets, whereby a user can select the display hierarchy of secondary key data field values on the graphical user interface by selecting one of the display tree configuration widgets. The display tree configuration widget can be, for example, a tab. The hierarchy of the secondary key data field values can be set by the user and associated with a display tree configuration widget. In a particular aspect, the configuration of the display tree by one user does not affect the display tree configuration of another user who is accessing the same key field set.
In one aspect, the step of displaying information includes displaying a plurality of text boxes to permit a user to edit data values. The text boxes can include, for example, drop-down menus when the available set of data values is finite.
In another aspect, the graphical user interface is customizable. In this regard, the step of configuring the key data fields can include assigning data field values to variable configuration fields to assign placement criteria in the graphical user interface to text boxes representing the key fields.
In yet another aspect, a file can be attached to the database record such that the file can be accessed by a user. Files can include, but are not limited to, word processing files, spreadsheets, images and other documents such as PDF files. The configuration step can include associating a program with the type of attached file, such as particular word processing program or spreadsheet program. The program association can also include specifying the program version that is to be used to open a file.
The data field values can be stored in a single database file, which can be backed-up. The single database file can also include any attachments, such that the entire application is contained in a single file.
In another embodiment, a computer-readable medium is provided that includes stored instructions adapted for providing information in a graphical user interface by receiving a plurality of data field configuration variables that define the properties of a plurality of data fields and generating a graphical user interface comprising the data fields, where the graphical user interface includes a skewable display tree that can be configured by a user interfacing with the graphical user interface.
In another embodiment, a computer-implemented system is provided for the management and display of information on a graphical user interface. The system can include a configuration component for interacting with a user wherein the user inputs data field configuration variables that are stored in a database, and an application component, wherein the application component reads the data field configuration variables and displays a graphical user interface that is defined by the data field configuration variables.
In one aspect, the computer-implemented system also includes a data loader component for populating data fields with data.
These and other embodiments and aspects of the present invention will be apparent from the following description.
DESCRIPTION OF THE DRAWINGSFIG. 1 illustrates types of configuration variable values that can be used in a framework configuration variable set according to an embodiment of the present invention.
FIG. 2 is a flowsheet illustrating the generation of display of information through a hierarchy mask according to an embodiment of the present invention.
FIG. 3 is a flowsheet illustrating the configuration of a module according to an embodiment of the present invention.
FIG. 4 is a screen shot illustrating the configuration of a variable key field according to an embodiment of the present invention.
FIG. 5 is a screen shot illustrating the configuration of a variable primary key field according to an embodiment of the present invention.
FIG. 6 is a flowsheet illustrating the generation of a variable module field set according to an embodiment of the present invention.
FIG. 7 is a screen shot illustrating the configuration of associations between a file type and a program according to an embodiment of the present invention.
FIG. 8 is a flowsheet illustrating the generation of a display of information according to an embodiment of the present invention.
FIG. 9 illustrates a screen shot of a login interface for accessing a database according to an embodiment of the present invention.
FIG. 10 is a screen shot illustrating the selection of a module from within a database according to an embodiment of the present invention.
FIG. 11 is a screen shot illustrating a graphical user interface for the display of information including dynamically skewable display tree and a display of information according to an embodiment of the present invention.
FIG. 12 is a flowsheet illustrating the individual configuration of a dynamically skewable display tree according to an embodiment of the present invention.
FIG. 13 is a screen shot illustrating the configuration of a display tree tab according to an embodiment of the present invention.
FIG. 14 is a screen shot illustrating the configuration of a display tree associated with a display tree tab according to an embodiment of the present invention.
FIG. 15 is a screen shot illustrating the configuration of a display tree associated with a display tree tab according to an embodiment of the present invention.
FIG. 16 is a screen shot illustrating a revised configuration of a display tree associated with an explorer tab according to an embodiment of the present invention.
FIG. 17 is a screen shot illustrating the configuration of display tree tab placement according to an embodiment of the present invention.
FIG. 18 is a screen shot illustrating a revised configuration of display tree tab placement according to an embodiment of the present invention.
FIG. 19 is a screen shot illustrating a revised dynamically skewable display tree according to an embodiment of the present invention.
FIG. 20 is a screen shot illustrating a revised dynamically skewable display tree that can be selected through a display tree tab according to an embodiment of the present invention.
FIG. 21 is a flowsheet illustrating the application of a security hierarchy mask to a variable field set according to an embodiment of the present invention.
FIG. 22 is a screen shot illustrating an interface for configuring security access levels for users of a system installation according to an embodiment of the present invention.
FIG. 23 is a flowsheet illustrating the implementation of a search of data field values according to an embodiment of the present invention.
FIG. 24 is a flowsheet illustrating the generation of a report on data field values according to an embodiment of the present invention.
FIG. 25 is a flowsheet illustrating the population of variable fields with data field values and attachments according to an embodiment of the present invention.
DESCRIPTION OF THE INVENTIONThe present invention is directed to a computer-implemented and variable-driven information retrieval and management method and system that is adapted to create and implement a client-specific application for managing information. In this regard, data fields of interest can be dynamically configured by the implementation of data field configuration variables that are assigned a unique set of configuration values to define, for example, what the application can do, how the application is interfaced by a user, what users can interface with the application, what those users can do within the application, and what data values are stored in the application.
The configured application can include a set of variable data fields that includes one or more module data field sets, each of which defines a unique module within a system installation. Each module data field set includes and is defined around a primary key data field, where the primary key data field is the primary constraint for the other data field values contained in that module. Each module data field set can also include a plurality of secondary key data fields. The secondary key data fields, along with the primary key data field, comprise the variable data fields that can be utilized in a dynamically skewable display tree to display information to a user and to facilitate the rapid location of information by a user.
The variable-driven and computer-implemented information management system, sometimes referred to herein as a system installation, can include: i) an application component for accessing and manipulating electronic information through one or more modules, such as data, objects and attachments that are contained in the module(s); ii) configuration component for configuring the data fields using configuration variables, including at least one complete module data field set to define a unique module within the system installation; and optionally iii) a loader component for populating the data fields in the module(s) with, for example, data field values, objects and attachments.
Different pieces of electronic information (e.g., data field values or files) can be stored in the same system installation. Further, each system installation can include one or more module data field sets, and each module data field set within a system installation can be created by a unique set of data field configuration variables and can include its own unique set of data field values, attachments and/or electronic objects. Each module, defined by a module data field set, can also be searched and reports can be generated using the data field values and the electronic files and objects that are associated with that module. A module within a system installation can also be capable of connecting to other data sources and objects, such as through ADO (ActiveX Data Objects) connectivity, to extract data, files, objects and other information from those data sources.
Once a data field set is configured, such as by using a configuration component, and is populated with data field values, such as by using a loader component, the entire system installation can advantageously be saved into a single backup file, which when restored can restore all of the necessary components for the system installation, including the data field configuration variables and the most recent data field values. In this manner, the system installation can be easily backed-up, and can be easily copied and moved from one location to another, for example from one server to another server. Further, the system installation can be client-server based and/or can be accessed through a web-browser environment (e.g., HTML-based) using the same configuration variable set.
The method and system of the present invention utilize variables, referred to as configuration variables, to define and create an application for managing information. By using variable configuration values, new applications can be rapidly created and existing applications can be readily changed to meet the demands of the end-user client. Thus, a system installation can include a set of data field configuration variables that are stored by the system in configuration variable fields. The configuration variables can define the overall configuration of a given system installation, and can be unique for every system installation. The configuration variables can be categorized under two configuration variable sets: a framework configuration variable set and a module configuration variable set. The framework configuration variable set can include the core variables that define what the overall system installation is and what it does, and the framework configuration variable set can be fully customized for each system installation. Every module in a given system installation can be constrained by the same framework configuration variable set.
In comparison, each module configuration variable set within the system installation defines what each module is and what each module can do within the parameters of the framework configuration variable set. A system installation will typically have one framework configuration variable set and multiple module configuration variable sets, each module configuration variable set defining a unique module within the system installation. These configuration variable sets, taken together, can define all aspects of how the system installation functions.
The configuration variable sets can be created using a configuration component. The configuration component of the system installation will typically only be accessed by a system administrator, programmer or similar person, as the configuration component is used to define the parameters of the application, to set permissions for users, and the like.
As is noted above, each system installation will include at least one module, and typically will include multiple modules. Each module can be constrained by the framework configuration variable set, which is the standard configuration that is created for a given system installation. Thus, the framework configuration variable set is populated with configuration values for potential use by all modules within the given system installation. Some of the different constraints and parameters that can be implemented through a framework configuration variable set are illustrated inFIG. 1.
The framework configuration variable set comprises a set of values that define how the application component interacts with the module data fields within the system installation, and the framework configuration variable set can be unique for a given system installation. For example, the framework configuration variable set can includeconfiguration variables102 that determine which instances (e.g., independent database engines) of the system installation are available to the users of the system installation. That is, different instances of a system installation can reside on different database installations, or can have different system configurations within the same database installation. This configuration variable102 can thus be changed to prevent access to certain information for all or some users of the system installation.
The framework configuration variable set can also includevariables106 that determine which of the modules within the system installation are available to users. A given system installation will have a minimum of one module, and there is no practical upper limit on the number of installed modules for a given system installation.
The framework configuration variable set can also includevariables104 that set the number of users that are permitted to access a module within a system installation. This can be useful, for example, for complying with licensing provisions of a software installation that restrict the number of users that can use the software. If the permitted number of users changes, a system administrator can implement the change by simply changing this variable.
The framework configuration variable set can also include variables that set certain default values for modules in a system installation. Some of these default settings can subsequently be changed during module configuration or by a user of the application for that user from within a module. For example, defaulttab configuration variables108 can be set as a default for each user. Thedefault menu items112 that will appear on the graphical user interface can also be set. Framework configuration variables can also be used, for example, to set other aspects of the default GUI appearance and available navigation options for the users. Preferably, a user can later dynamically create and select new tabs for skewable display tree navigation, such as by altering the display tree hierarchy, as is discussed below.
The framework configuration variable set can also be used to configure security groups that are available in the system installation for the modules contained in that installation. Different security groups can be set with different levels of security within a system installation (e.g., ability to access, view, edit or delete information) and with respect to each module contained within the system installation. Users can then be assigned to a security group, such as by a system administrator. For example, if a user is not a member of a security group that has permission to access a given module, then that user will not see the name of that module when they log in to the system installation. The framework configuration variable set can also include variables that determine the security levels that a user can operate within each module, if they have permission to access that module.
The framework configuration variable set can also include defaultfile association variables110 that set the default file-program associations within a module for accessing and/or manipulating different types of electronic files. The file association determines what program and/or what program version will be used to open a selected file when that file is checked out of the database. In one embodiment, individual users can override the default association set by the framework configuration variables and set the program or program version that will be used to open a particular file type. A file association configuration can include program version settings for each user when users have different versions of the same program. If a user has more than one version of the same program (e.g.,Microsoft Word 2000 and Microsoft Word 2003), the file can be opened with the version of the program that is appropriate for the selected file, such as to maintain the compatibility of saved documents across users with different program versions.
The framework configuration variable set can also include the incorporation of a help system114 for the system installation. The framework configuration variable set can also include variables that set the default location of certain data fields on the GUI when a module is accessed, such as the location of the primary key data field.
The foregoing represents only an illustrative description of parameters and settings that can be set through the use of framework configuration variables.
FIG. 2 is a flowsheet that illustrates steps for configuring a new module or editing an existing module within a system installation using a configuration component. Modules are contained within a system installation and each module is defined by the configuration variables that are used to create the module, including the module data fields. The creation of different modules within a system installation enables users to rapidly locate and manage different types of information that are relevant to their tasks. The module data fields can include variable key data fields, all of which are required to be populated with data, and can also include variable regular data fields. The key data fields can include a primary key data field and one or more secondary key data fields. The key fields are the data fields that will be available for display in a hierarchal display tree for that module. Each module includes a single primary key data field which is assigned a static data field value, where the primary key data field value is different for each database record in the module. The secondary key fields can include static values or dynamic (i.e., calculated) values.
To configure or create a module in a system installation, a user such as a system administrator opens theconfiguration component202. The user decides203 to either edit an existing module or to create a new module. If the user chooses to edit an existing module, then the user opens the existingmodule208, which is identified by a unique module name within the system installation and is created around a unique primary key data field. As is discussed above, each module has one primary key data field that is unique to that module within the system installation, and the primary key field is preferably assigned a static data field value (i.e., the value is not dynamically calculated).
When an existing module is opened using the configuration component, the pre-existing configuration variable set is retrieved210, such as by retrieving the data from a SQL server. Thereafter, the user can edit theconfiguration variables215 for the module, such as by manually editing the configuration variables, to create a revised module configuration variable set. The revised variable set can then be saved in thesystem installation database216. Data field properties that can be configured through the configuration variable set can include, but are not limited to, the name of a data field, the size of a data field, the placement of a data field name and text box on the graphical user interface, the type of data and the source of the data that will populate a data field, and whether or not a data field is a primary key data field, a secondary key data field or a regular data field. The setting of data field configuration variables are discussed in more detail below with respect toFIG. 4.
Alternatively, a user can decide to create and configure a new module by selecting aunique name212 to identify the module. The user then creates and configures a new configuration variable set214 by assigning values to the configuration variables. The new module configuration variable set can be saved in thesystem installation database216 where it can be readily identified by its unique name. At a minimum, the new module configuration variable set includes the primary key data field around which the module is configured.
FIG. 3 is a flowsheet that illustrates how a GUI display of information can be generated through the implementation of a module configuration variable set301. As noted above, the module configuration variable set301 is unique for each module within a system installation. The variable set301 comprises variables that define thekey data fields302, including a primarykey data field304 and one or more secondary key data fields306. For every module, the primarykey data field304 is the field through which all other data fields for that module are related, and it is the primary constraint on the information that can be accessed, manipulated and displayed using that module. The primarykey data field304 can be populated with a unique static value for every database record in the module, the value being a primary piece of information that is useful for searching and reporting functions within a module field set. By way of example, if the module relates to the information and data maintained by a professional services firm, such as an accounting firm or law firm, the primary key field could be the client number, and each database record could then be identified by a unique client number value (e.g. 001, 002, 003, etc.) in the primary key field. Thus, all of the other data field information in that database record would relate to that client number. Each system installation can include multiple modules. By way of illustration, and continuing the previous example, a different module could be created for the professional services firm that related to the individuals who are employed with the firm. In this case, the primary key field for that module could be, for example, the last name of the employees. Secondary key data fields and regular data fields that could be associated with this primary key field could include, for example, a home address, a birth date, a telephone number or the like.
Thus, the primarykey data field304 is the primary constraint for data entry into the other data fields within the module. The primarykey data field304 should therefore be carefully selected and well-defined when configuring a module using a configuration variable set. Each unique module is associated with a unique primary key data field, and hence a unique data field set within the system installation.
As is noted above, the module data field set also includes secondary key data fields306. The secondarykey data fields306 and the primarykey data field304 together comprise the key data fields, and therefore themaster hierarchy mask316. Themaster hierarchy mask316 can include all of the key data fields that are available for display in a hierarchal display tree for that module. The data field values for the secondary key data fields can optionally be changed by a user and the revision to the database record can be saved. As with the primarykey data field304, the secondarykey data fields306 can be used for all searching and reporting functions within a module and are required to have a value.
The module data field set can also include regular data fields312.Regular data fields312 make up the rest of the data fields in a module data field set, and are not part of themaster hierarchy mask316. As a result, the regular data fields312 do not appear in a hierarchal display tree and therefore cannot be dynamically skewed by a user, as is described below. However, regular data field values312 can be used for searching and reporting functions within the module.
The properties of each data field within a module data field set are defined during the configuration of the module through the configuration variables. The data field properties can include what the type of data is and what the source of the data is for that field. For example, the data can be static or dynamic, and if it is dynamic the data field configuration can include instructions as to how the data is to be calculated and what and where the source data values are for the calculation. For example, a data field could be defined as “Member Age” where the data is the age of a person. The value for this field could be calculated using an algorithm by extracting the person's birthdate from a data table and the current date from a computer system. Thus, the age of the person would be dynamically calculated and automatically inserted into that field.
The last known data field values are stored in the system installation database and are refreshed when a module is opened and a field value is accessed. If a change is made to the value, such as by user input at the GUI, the new value is revisioned and stored in the system installation database. Optionally, the system installation database can save the prior revisions of a database record such that the prior revisions of the information are available for display. The prior revisions can also be locked to prevent further editing of the prior revisions.
Further, data field values can be acquired and can populate the module data fields from different systems that are resident outside of the system installation database. Thus, disparate systems including different types of data can be tied together to yield data field values that combine systems that would otherwise not be combinable. Data field values for a module can also be extracted from other module field sets within the system installation or a separate system installation.
Through the configuration component, the module field set can be created by creating a plurality of data fields, including the primary key field, secondary key fields and regular data fields. Each data field can be defined with respect to the type of field, the data type which will populate the field, the size of the field and the display properties for the field, such as the position of the field name and field text box on the GUI when the module is accessed.
Different modules that share a common master hierarchy mask can advantageously share data field values from one module to another. That is, master hierarchy mask field values in one module can advantageously be copied to a different module to ease the creation of multiple modules that use overlapping data within a given system installation.
Referring back toFIG. 3, the module can also include asecurity hierarchy mask320, which is defined when the module is configured. The key fields in thesecurity hierarchy mask320 are also members of themaster hierarchy mask316. Thesecurity hierarchy mask320 is composed of the key fields in themaster hierarchy mask316 that are available for display318 in a display tree, but whose field values cannot be changed by one or more end-users, depending on the security settings applied to that module with respect to that user.
The module can also include primary key field entry revision information. That is, as changes are made to a secondary key data field or a regular data field in a module, the user can have the option to save each change under the primary key field, making a revision of the information contained in the module and saving the revision. As each module is based upon a unique primary key field, it is the primary key field around which all revisions to the secondary key fields and regular data fields are made.
When accessed by a user, the module data fields are populated with data. Through the configuration of the module, data sourceinformation314 and307 is applied to populate the secondary key fields and the regular data fields. The primary keydata field information308 includes the location of the static values for the primary key field. Thus, each data field in a module data field set can be defined during configuration, such as to its data type and data source. Examples of the data definition include whether the data is static or dynamic (e.g., calculated), and if dynamic, how it's calculated and what the source data values are for the calculation. The module can also be configured to periodically execute live updates, whereby data in the database is compared to the source of the data to determine if any changes have been made.
The module can also include configuration variables that identify attachments310 (e.g., electronic files and objects) and a module can have the ability to attach files and objects to its primary key data field. The attachments are stored in the system installation database, and when a user desires to access a file, such as a word-processing document or other file to edit or otherwise manipulate the file, the file is “checked-out” of the system installation database and the user can modify the file outside of the system installation. When the user has completed editing or otherwise manipulating the file, the file is checked back into the system installation database and stored as a binary large object (BLOB). This enables a user to check-in and check-out theelectronic attachments310. The GUI can also identify if another user of the system is currently accessing theattachment310 and the system can lock-down that attachment until the other user has checked the attachment back in to the database. This can prevent one user from over-writing the work of another user.
The module field set can also include revision information for anattachment310. As file attachments are modified, the system can recognize that a revision to the file has been made and the revision information can be stored along with a separate copy of each revised file as a separate BLOB. Thus, when a document or other file is attached to the primary key field, one or more new variables can be stored to track the document and the revision information.
FIG. 4 illustrates ascreenshot400 from a configuration component where a user such as a system administrator sets the configuration variables for a module in a system installation. The configuration variables can be used to configure, for example, the placement of a field on the display screen and the field data value definitions for the data fields.
As illustrated inFIG. 4, the module being configured is identified at the top of theProperties dialog box401 by the FormID “LM”, the name of the module. The name of the field that is being edited through the configuration component inFIG. 4 is “MemberID”, and theProperties dialog box401 illustrated inFIG. 4 permits the configuration of the MemberID data field. Thisproperties dialog box401 can be opened by clicking in thetext box408 in thePreview dialog box403, and clicking on a different text box (e.g., First Name) will bring up a Properties dialog box for that data field. ThePreview dialog box403 also previews the appearance of that page of the module field set as changes are made to the appearance variables in theProperties dialog box401.
The configuration variables in the left-hand column404 of thedialog box401 generally relate to the appearance of the data field name and data entry widget on the GUI. For example, numerical values can be entered that set the size of the data field (i.e., the maximum number of characters), the width and height of a text box or similar widget, the position of the text box and the position of the text box label.
In the right-hand column406 of theproperties dialog box401, configuration variables that set other constraints and parameters for the selected field can be entered. These can include a configuration variable that defines whether the field is the primary key field. In this instance, MemberID is identified as the primary key field for the module by setting the “Required” variable402 to True. The “Group By”variable412 indicates whether the field is a secondary key field. In this case, since the data field MemberID is set as the primary key field, it is not a secondary key field. If bothvariable values402 and412 are set to False, then the data field would be a regular data field. Thedata type410 is set to “char” (i.e., character data), and other types of character data can include, for example, date/time data, monetary data, and the like. In addition, the type of widget that is used to accept the value for the data field can also be changed. In the example illustrated inFIG. 4, the type of widget is a text box. Other types of widgets could include, for example, a drop-down menu, a check box, a calendar pop-up window for selecting a date, or the like.
Other information entered in theProperties dialog box401 can include the source of the data that will populate the selected field, such as the Source Server, Source Database and/or the Source Table. A Stored Procedure for calculating a dynamic field value can also be identified.
Thetool dialog box420 illustrated inFIG. 4, is provided to initiate the creation or editing of a field. Further, data fields can be displayed on different display pages of the module interface and the display page being edited can also be selected from the drop down-list424.
After each desired data field (e.g., Salutation, First Name, Middle Name, etc. . . . ) is configured, the configuration variable set can be saved. Thereafter, when a user accesses the LM module, the input configuration variables will be applied to create and display the module and populate the data fields with data field values.
FIG. 5 illustrates a screenshot of adialog box500 for defining a module, in this instance, for a module with the name “LM” (e.g., the module illustrated inFIG. 4). Thedialog box500 can be accessed by selecting from a drop down list that appears under the Edit menu entry inFIG. 4. The name of the primary key data field isMemberID510, and other primary key data fields can be accessed through the drop-down menu.
As is illustrated inFIG. 5, different data fields can be added to, or deleted from, aSecurity Hierarchy Mask508 based on the key data fields available in theMaster Hierarchy Mask506. The data fields placed in the Security Hierarchy Mask (LastName, FirstName, State and City) will not be able to be changed by a user of the LM module without access to the configuration component. The key fields that are in theMaster Hierarchy Mask506, but are not in the Security Hierarchy Mask508 (e.g., MemberStatus, MemberType) can be revised by a user accessing the LM module.
TheMediaTable502 indicates the media table that will be accessed to retrieve the field data values for that module, and each module can have its own media table. TheDocTable504 indicates the data table where files, typically in the form of BLOBs, are stored for that module. TheMedia Key510 represents the name given to the primary key field for that module and the FormName512 (e.g., Member Explorer) is the name given to the module that will appear in a drop-down list of available modules to the user, such as from the top menu bar.
Thus, by using a configuration component to define a module (FIG. 5) and to input configuration variables to define the data fields within the module (FIG. 4), one or more unique modules can be created within the system installation.
Thus, the data field properties for each module are stored by the system as configuration variables. Because the data field properties are stored as variables, a user can manipulate the data fields within a module in a manner that is most convenient for that user. For example, according to one aspect of the present invention, a user can advantageously configure how information (e.g., data field values) is displayed within a module through the use of dynamic tab configurations and a dynamically skewable hierarchal display tree, and can also configure how attachments will be opened. In this regard,FIG. 6 is a flowsheet illustrating the generation of a module display for an individual user.
For example, storedfile association configurations604 determine how an attachment is opened from within the module, such as with what program and/or program version. Typically, the configuration component will establish a set of default association values, as is noted above. After accessing the module, a given user can be given the option to select a different program and/or program version to open a selected file type. Upon opening, the file will be checked-out of the system, anddisplay page606 will display theopen attachment608 by utilizing the selected program.
As an example,FIG. 7 is a screen shot700 illustrating the setting of file associations by a user working in a module labeled Member. Using the AssociationManager dialog box702, the user can configure the association manager to open files with anextension708 of “SPD” withVersion 13706 of theprogram SoftPlan.exe704. The user can also provide the external path to that program.
Referring back toFIG. 6, a skewable display tree can also be configured and viewed by a user. As used herein, a skewable display tree is a hierarchal display tree, similar to the common folders view of folders and sub-folders in a Windows operating system, but where the data values and the hierarchy of the of data values that are displayed in the tree can be reconfigured by a user, and preferably only for use by that user. The reconfiguration of the display tree can include adding or removing key data field values from the tree hierarchy, or changing the hierarchy of the key data field values. The re-skewing of the tree hierarchy by a user preferably does not change the key data field values and/or the hierarchy of the key data field values that are displayed to another user. The viewable key data field values can include both static data612 anddynamic data614. The viewable key data fields can optionally be displayed in a web-based application that runs through a web browser.
The GUI can also include one or more GUI widgets, such as radio buttons or tabs, that can be configured by a user to dynamically display a pre-defined skewable display tree. Preferably, the GUI widget is a configurable tab that can be selected by the user to dynamically generate the skewable display tree.Dynamic tab configurations610 enable a user to quickly view information in a manner that is most useful to that individual user. By adjusting the dynamic displaytree tab configurations610, a skewed (reconfigured)display tree618 can be instantly generated and viewed by the user.
FIG. 8 is a flowsheet illustrating the access to a module by a user and the display of information by the module. A user inputs log-insecurity credentials802, which are passed on to the system installation. Based upon the security credentials input by the user, selected modules are loaded into the application for access by the user. Each module is loaded804 based upon the security credentials that are input by the user. As is discussed above, each module includes a unique set ofdata fields808, including secondarykey data fields810 and a primarykey data field814. As is discussed above, the data fields are populated based upon the configuration of the data fields through the configuration variable set. The primarykey data field814 and secondarykey data fields810 make up themaster hierarchy mask826, including thesecurity hierarchy mask828.
FIG. 9 illustrates ascreenshot900 of a log-in interface for a system installation. A user logging into a system installation can select a server902 (e.g., BIZLT0001\BIZEXP) and/or a database904 (e.g., BE333) to access. Access to the servers and databases can be controlled through the security credentials for the user, who inputs a username and password to access the selected database.
FIG. 10 illustrates ascreenshot1000 of the main GUI that can appear when a module within a system installation is accessed by a user. The selections available by accessing themenu bar1001 at the top of the screen generally represent options set by the framework configuration variable set for that system installation. For example, as illustrated inFIG. 10, the user has opened the list of available modules for that system installation, as determined by the user's security credentials, and has selected a module labeledMember1002. Once the module is selected and opened, askewable display tree1003 on the left-hand side of the GUI will be populated with the data field values from the key fields for that module, and in the default display configuration of the module, or the revised display configuration that was last utilized by the user for that module. As illustrated inFIG. 10, theskewable display tree1003 is displayed with a top hierarchy field of the last name.Dynamic configuration tabs1004 are located below theskewable display tree1003. Selecting one of the dynamic display tree tabs will immediately change the hierarchy of theskewable display tree1003. It should also be noted that the GUI also includespaging tabs1005 at the bottom of the data display to change the page that is being viewed.
FIG. 11 illustrates ascreenshot1100 of skewable display tree for the Member module. As illustrated inFIG. 11, the display tree is set with a hierarchy of Last Name\First Name\MemberID. That is, the display tree is first arranged alphabetically by last name, and under each last name entry the tree is arranged by a first name. Under the first name, the identification number (MemberID) for that member is displayed. In this instance, MemberID is the primary key field for the Member module. Under the Member ID value, the revision number of that database record (R00) is displayed. Revision R00 is unlocked (i.e., is not being accessed and revisioned by another user) as indicated by theunlocked icon1104 in the display tree. If information in the database record is revisioned in any way by the user, that revisioned record can be saved as a new record (e.g., R01).
The GUI also includes dynamic displaytree configuration tabs1102a,1102band1102cthat permit the user to quickly and easily view the display tree in a different hierarchy or using different key data fields by simply selecting a different display tree tab. It will be appreciated that other GUI widgets could be used, such as radio buttons.
As illustrated inFIG. 11, the user has selectedMemberID349, Revision R00, and the right-side information pane of the screen shows the information that is associated with that MemberID through implementation of the configuration variables for the module and the population of the data fields for that module. A user having sufficient security credentials can update the database record (e.g., as identified by MemberID349) by editing the information displayed in the data fields.
As is noted above, one aspect of the present invention is directed to a dynamically skewable display tree that is individually configurable by a user.FIG. 12 is a flowsheet that illustrates the configuration of a dynamic display tree according to an embodiment of the present invention. Adisplay1202adisplays the existing configuration when initially accessed by a user (e.g, as inFIG. 11). The existing display configuration is generated based upon the current field data values1204a, the display tree1206a, the primarykey field1208aand thefile association variables1210a. The display of each of thedata1204a, the display tree1206aand the primarykey field1208acan be manipulated by changing thedisplay tree hierarchy1216 associated with each dynamic display tree tab. This can be accomplished by changing the display tree hierarchy1214 for a selected tab using the tab configuration, and thus effecting thedisplay tree hierarchy1216 which is then loaded1218 as the new display tree tab configuration. Thus, the data1204b, display tree setup1206band primary key field1208bwill be reconfigured and redisplayed on the module display1202b.
FIG. 13 illustrates a screen shot of an explorer tabconfiguration dialog box1300. Thedialog box1300 can be accessed by selectingAppearance1306 from the top level menu. By selecting to change the display tree hierarchy1304 (e.g., by mouse-clicking in the Hierarchy text box) for the selected tab1302 (e.g., Last Name), the user can access a SetHierarchy dialog box1400, as is illustrated byFIG. 14. Thedialog box1400 displays to the user the existing configuration for the display tree tab Last Name and provides a list of key fields from the master hierarchy mask that can be added to the hierarchy configuration. For example, if the user selects MemberStatus1402 (FIG. 14), then MemberStatus is added to the display tree hierarchy (FIGS. 15 and 16).
Further, the order of the tabs can also be changed by the user, such as by selecting the Re-Order Tabs radio button (FIG. 13). In this case, a Select Tab Order dialog box (FIGS. 17 and 18) is displayed and the user can change the order in which the display tree tabs are displayed. As illustrated inFIG. 17, the display tree tab order is LastName\Location\MemberStatus, as is illustrated inFIG. 11. InFIG. 18, the user has changed the order to Location\LastName\MemberStatus, as is illustrated inFIG. 19. Note that as illustrated inFIG. 19, the Location display tree tab hierarchy is set to State\City\LastName\FirstName. Should the user then wish to display the information by Last Name at the top of the display tree hierarchy, the user can simply select theLast Name tab1902 and the display tree will be instantly and dynamically redisplayed accordingly, as is illustrated inFIG. 20. Since all of the key data field information is stored by the system as variables, these display reconfigurations advantageously do not affect the underlying data and do not affect the way that other users of the same system view the data. The configuration changes made by a user are unique to that user and are stored by the system in relation to that user.
As is noted above, the present invention can also provide a security hierarchy to control access to electronic information within the system.FIG. 21 is a flowsheet that illustrates the implementation of a security hierarchy configuration. After adetermination2102 by a system administrator as to which module(s) and what level of access a given user will have, the system installation is loaded with those security settings. The security settings can control, for example, theavailable data2106, the display tree2108, the primary key field2110 and thefile associations2112 that a user is able to access. As a result of these security settings, the display1214 will be configured for that user and some of the data fields will not be able to be modified or deleted by an individual user.
FIG. 22 illustrates ascreenshot2200 of an interface that can be used by, for example, a system administrator setting the security access for individual users. Options include security groups that can be selected for the user. The access that is configured for a user can be different for each module in the system installation (referred to inFIG. 22 as Form Name2202).
Another feature that can be included in the information management system is a method for searching and reporting on data within a module. A search hierarchy is illustrated inFIG. 23 and a report hierarchy configuration is illustrated inFIG. 24.
Referring to the search hierarchy illustrated inFIG. 23, the user causes a module to send asearch request2302 based upon the module field set. The module name is sent to thesearch engine2304. Thereafter, a user can choose2306 to either search the module for data values2306aor for character strings related to anattachment2306b. When searching for a data value2306a, the search engine can search upon the available search fields from all of the meta-data fields, including the primary key field, secondary key fields and general data fields. For example, as is illustrated inFIG. 23, up to five data fields can be searched simultaneously to obtain aresult set2318.
When searchingattachments2306b, the search engine provides entry fields for searching by attachment file name or extension, or portions thereof. The full-text of an attachment (e.g., a word-processing document) can also be searched. Thus, a search can be conducted byattachment name2312 or byattachment extension2314 to produce aresult set2318. The user can then choose the desiredsearch result2320 from the result set and the results can be displayed in the module2322.
FIG. 24 illustrates a report hierarchy configuration. A module sends areport request2402 to a report engine, which displays thereport2406. The user can then decide2408 to create anew report2408aor modify an existingreport2408b.
As is noted above, the system installation can optionally include a data loader to initially populate a module with data. A flowsheet illustrating the use of a data loader is illustrated inFIG. 25. A user opens adata loader2502 and then chooses2504 which module will be populated and with what type of data. Meta-data2506 andattachments2506 can be loaded using the data loader. For meta-data2506,external data2510 is mapped to the module field set based upon the provided FormId forattachments2508, the attachments are mapped2512 to the module key field set also based on the FormId and the primary key field value. The external meta-data2514 and theexternal data attachments2516 are then loaded into the module data tables based on the FormId and the method chosen by the user so that the data can be displayed2520.
Each individual module, with its unique primary key field and secondary key field set, is searchable and reportable as the system installation knows which module it is working with by virtue of the field definitions associated with that module.
In accordance with the foregoing, the method and system of the present invention advantageously can provide one or more of the following advantages:
the generation of dynamically skewable display trees, optionally with security settings that are determinable by user group;
configurable dynamic display tree tabs that can be configured by an individual user without affecting the configuration used by another user;
search capabilities that are dynamically related to the field data values;
different module key field sets that automatically bring different search parameter options;
module key field set that determines the search parameters options that are displayed;
the entire workings of the application can be stored in a SQL server database as variables—it is because the entire application is stored as variables that the application can be dynamically changed;
the entire framework for the system installation can be contained within the database;
all of the customization that makes the module key field sets function individually can be stored within the database;
all security, user data, attachments, reports, and functional intelligence can be contained within the database;
the ability to pull data values from multiple data sources to populate the fields in the graphical user interface;
ability to join disparate types of systems and data utilizing common ODBC using Microsoft SQL Server linked servers for live updates;
non-live updates can be performed through file conversions and loading through a data loader component that does not use Microsoft SQL Server linked servers for the data flow or an ETL (extract, transfer, load) tool;
enables software version and revision control;
revisions of attached files can be made and saved;
different versions of the same software can be managed to open the original file type correctly, as set by a user;
file protection can be assured by using a secured “check-in/check-out” system that integrates with third-party software applications. This enhances file management and security. When a file is changed by a user, the system can automatically save the revised file with a new filename while also saving the prior version(s) of the document. The prior version(s) can optionally be “locked” to prevent further editing once the newer version has been saved;
can keep third-party application users from over-writing their work by checking the file out to a user and then blocking all other users from checking out the same file there is no issue of over-writing work;
can open third-party applications only in the mode intended and that the user has permissions for; and
can provide group level security on all third-party application files and informational objects.
While various embodiments of the present invention have been described in detail, it is apparent that modifications and adaptations of those embodiments will occur to those skilled in the art. However, is to be expressly understood that such modifications and adaptations are within the spirit and scope of the present invention.