US20090094271A1 - Variable driven method and system for the management and display of information - Google Patents
Variable driven method and system for the management and display of information Download PDFInfo
- Publication number
- US20090094271A1 US20090094271A1 US12/147,347 US14734708A US2009094271A1 US 20090094271 A1 US20090094271 A1 US 20090094271A1 US 14734708 A US14734708 A US 14734708A US 2009094271 A1 US2009094271 A1 US 2009094271A1
- Authority
- US
- United States
- Prior art keywords
- data field
- key data
- module
- configuration
- recited
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/168—Details of user interfaces specifically adapted to file systems, e.g. browsing and visualisation, 2d or 3d GUIs
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/217—Database tuning
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/164—File meta data generation
Definitions
- 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.
- creating a new database and information management system i.e., an application
- 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.
- a method for managing and displaying information 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.
- GUI graphical user interface
- 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.
- the populating step can include assigning a static data field value to at least one secondary key data field.
- 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.
- 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.
- the step of populating the secondary key data fields with data can include importing data field values from a file.
- 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.
- 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.
- 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.
- the graphical user interface is customizable.
- 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.
- 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.
- a computer-readable medium 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.
- a computer-implemented system 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.
- the computer-implemented system also includes a data loader component for populating data fields with data.
- FIG. 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.
- the 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.
- 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.
- variable-driven and computer-implemented information management system 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.
- modules such as data, objects and attachments that are contained in the module(s)
- 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
- a loader component for populating the data fields in the module(s) with, for example, data field values, objects and attachments.
- 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.
- ADO ActiveX Data Objects
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- the framework configuration variable set is populated with configuration values for potential use by all modules within the given system installation.
- 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.
- the framework configuration variable set can include configuration variables 102 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 variable 102 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 include variables 106 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 include variables 104 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, default tab configuration variables 108 can be set as a default for each user. The default menu items 112 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 default file association variables 110 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.
- 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 system 114 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.
- 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.
- a user such as a system administrator opens the configuration component 202 .
- the user decides 203 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 existing module 208 , which is identified by a unique module name within the system installation and is created around a unique primary key data field.
- 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).
- the pre-existing configuration variable set is retrieved 210 , such as by retrieving the data from a SQL server. Thereafter, the user can edit the configuration variables 215 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 the system installation database 216 .
- 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 to FIG. 4 .
- a user can decide to create and configure a new module by selecting a unique name 212 to identify the module. The user then creates and configures a new configuration variable set 214 by assigning values to the configuration variables.
- the new module configuration variable set can be saved in the system installation database 216 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 set 301 .
- the module configuration variable set 301 is unique for each module within a system installation.
- the variable set 301 comprises variables that define the key data fields 302 , including a primary key data field 304 and one or more secondary key data fields 306 .
- the primary key data field 304 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 primary key data field 304 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.
- 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.
- client number value e.g. 001, 002, 003, etc.
- a different module could be created for the professional services firm that related to the individuals who are employed with the firm.
- 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.
- the primary key data field 304 is the primary constraint for data entry into the other data fields within the module.
- the primary key data field 304 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.
- the module data field set also includes secondary key data fields 306 .
- the secondary key data fields 306 and the primary key data field 304 together comprise the key data fields, and therefore the master hierarchy mask 316 .
- the master hierarchy mask 316 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.
- the secondary key data fields 306 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 fields 312 .
- Regular data fields 312 make up the rest of the data fields in a module data field set, and are not part of the master hierarchy mask 316 .
- the regular data fields 312 do not appear in a hierarchal display tree and therefore cannot be dynamically skewed by a user, as is described below.
- regular data field values 312 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- the module can also include a security hierarchy mask 320 , which is defined when the module is configured.
- the key fields in the security hierarchy mask 320 are also members of the master hierarchy mask 316 .
- the security hierarchy mask 320 is composed of the key fields in the master hierarchy mask 316 that are available for display 318 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.
- 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.
- 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.
- 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 attachments 310 (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 the electronic attachments 310 .
- the GUI can also identify if another user of the system is currently accessing the attachment 310 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.
- BLOB binary large object
- the module field set can also include revision information for an attachment 310 .
- revision information for an attachment 310 .
- 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.
- one or more new variables can be stored to track the document and the revision information.
- FIG. 4 illustrates a screenshot 400 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.
- the module being configured is identified at the top of the Properties dialog box 401 by the FormID “LM”, the name of the module.
- the name of the field that is being edited through the configuration component in FIG. 4 is “MemberID”, and the Properties dialog box 401 illustrated in FIG. 4 permits the configuration of the MemberID data field.
- This properties dialog box 401 can be opened by clicking in the text box 408 in the Preview dialog box 403 , and clicking on a different text box (e.g., First Name) will bring up a Properties dialog box for that data field.
- the Preview dialog box 403 also previews the appearance of that page of the module field set as changes are made to the appearance variables in the Properties dialog box 401 .
- the configuration variables in the left-hand column 404 of the dialog box 401 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.
- 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” variable 402 to True.
- the “Group By” variable 412 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 both variable values 402 and 412 are set to False, then the data field would be a regular data field.
- the data type 410 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.
- type of widget that is used to accept the value for the data field can also be changed.
- 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 the Properties dialog box 401 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.
- the tool dialog box 420 illustrated in FIG. 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-list 424 .
- 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.
- desired data field e.g., Salutation, First Name, Middle Name, etc. . . .
- FIG. 5 illustrates a screenshot of a dialog box 500 for defining a module, in this instance, for a module with the name “LM” (e.g., the module illustrated in FIG. 4 ).
- the dialog box 500 can be accessed by selecting from a drop down list that appears under the Edit menu entry in FIG. 4 .
- the name of the primary key data field is MemberID 510 , and other primary key data fields can be accessed through the drop-down menu.
- different data fields can be added to, or deleted from, a Security Hierarchy Mask 508 based on the key data fields available in the Master Hierarchy Mask 506 .
- 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 the Master Hierarchy Mask 506 , but are not in the Security Hierarchy Mask 508 can be revised by a user accessing the LM module.
- the MediaTable 502 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.
- the DocTable 504 indicates the data table where files, typically in the form of BLOBs, are stored for that module.
- the Media Key 510 represents the name given to the primary key field for that module and the FormName 512 (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.
- one or more unique modules can be created within the system installation.
- 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.
- FIG. 6 is a flowsheet illustrating the generation of a module display for an individual user.
- stored file association configurations 604 determine how an attachment is opened from within the module, such as with what program and/or program version.
- the configuration component will establish a set of default association values, as is noted above.
- a given user can be given the option to select a different program and/or program version to open a selected file type.
- the file will be checked-out of the system, and display page 606 will display the open attachment 608 by utilizing the selected program.
- FIG. 7 is a screen shot 700 illustrating the setting of file associations by a user working in a module labeled Member.
- the user can configure the association manager to open files with an extension 708 of “SPD” with Version 13 706 of the program SoftPlan.exe 704 .
- the user can also provide the external path to that program.
- a skewable display tree can also be configured and viewed by a user.
- 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 data 612 and dynamic data 614 .
- 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.
- the GUI widget is a configurable tab that can be selected by the user to dynamically generate the skewable display tree.
- Dynamic tab configurations 610 enable a user to quickly view information in a manner that is most useful to that individual user. By adjusting the dynamic display tree tab configurations 610 , a skewed (reconfigured) display tree 618 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-in security credentials 802 , 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 loaded 804 based upon the security credentials that are input by the user. As is discussed above, each module includes a unique set of data fields 808 , including secondary key data fields 810 and a primary key data field 814 . As is discussed above, the data fields are populated based upon the configuration of the data fields through the configuration variable set. The primary key data field 814 and secondary key data fields 810 make up the master hierarchy mask 826 , including the security hierarchy mask 828 .
- FIG. 9 illustrates a screenshot 900 of a log-in interface for a system installation.
- a user logging into a system installation can select a server 902 (e.g., BIZLT0001 ⁇ BIZEXP) and/or a database 904 (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.
- a server 902 e.g., BIZLT0001 ⁇ BIZEXP
- a database 904 e.g., BE333
- FIG. 10 illustrates a screenshot 1000 of the main GUI that can appear when a module within a system installation is accessed by a user.
- the selections available by accessing the menu bar 1001 at the top of the screen generally represent options set by the framework configuration variable set for that system installation.
- 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 labeled Member 1002 .
- a skewable display tree 1003 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.
- FIG. 10 illustrates a screenshot 1000 of the main GUI that can appear when a module within a system installation is accessed by a user.
- the selections available by accessing the menu bar 1001 at the top of the screen generally represent options set by the framework configuration variable set for that system installation.
- the user has opened the list of available modules for
- the skewable display tree 1003 is displayed with a top hierarchy field of the last name.
- Dynamic configuration tabs 1004 are located below the skewable display tree 1003 . Selecting one of the dynamic display tree tabs will immediately change the hierarchy of the skewable display tree 1003 .
- the GUI also includes paging tabs 1005 at the bottom of the data display to change the page that is being viewed.
- FIG. 11 illustrates a screenshot 1100 of skewable display tree for the Member module.
- 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 the unlocked icon 1104 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).
- a new record e.g., R01
- the GUI also includes dynamic display tree configuration tabs 1102 a , 1102 b and 1102 c that 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.
- the user has selected MemberID 349 , 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 MemberID 349 ) by editing the information displayed in the data fields.
- FIG. 12 is a flowsheet that illustrates the configuration of a dynamic display tree according to an embodiment of the present invention.
- a display 1202 a displays the existing configuration when initially accessed by a user (e.g, as in FIG. 11 ).
- the existing display configuration is generated based upon the current field data values 1204 a , the display tree 1206 a , the primary key field 1208 a and the file association variables 1210 a .
- the display of each of the data 1204 a , the display tree 1206 a and the primary key field 1208 a can be manipulated by changing the display tree hierarchy 1216 associated with each dynamic display tree tab.
- the data 1204 b , display tree setup 1206 b and primary key field 1208 b will be reconfigured and redisplayed on the module display 1202 b.
- FIG. 13 illustrates a screen shot of an explorer tab configuration dialog box 1300 .
- the dialog box 1300 can be accessed by selecting Appearance 1306 from the top level menu.
- the user can access a Set Hierarchy dialog box 1400 , as is illustrated by FIG. 14 .
- the dialog box 1400 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 MemberStatus 1402 ( FIG. 14 ), then MemberStatus is added to the display tree hierarchy ( FIGS. 15 and 16 ).
- the order of the tabs can also be changed by the user, such as by selecting the Re-Order Tabs radio button ( FIG. 13 ).
- 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.
- the display tree tab order is LastName ⁇ Location ⁇ MemberStatus, as is illustrated in FIG. 11 .
- the user has changed the order to Location ⁇ LastName ⁇ MemberStatus, as is illustrated in FIG. 19 .
- the Location display tree tab hierarchy is set to State ⁇ City ⁇ LastName ⁇ FirstName.
- Last Name tab 1902 the display tree will be instantly and dynamically redisplayed accordingly, as is illustrated in FIG. 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.
- FIG. 21 is a flowsheet that illustrates the implementation of a security hierarchy configuration.
- the security settings can control, for example, the available data 2106 , the display tree 2108 , the primary key field 2110 and the file associations 2112 that a user is able to access.
- the display 1214 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 a screenshot 2200 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 in FIG. 22 as Form Name 2202 ).
- 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 in FIG. 23 and a report hierarchy configuration is illustrated in FIG. 24 .
- the user causes a module to send a search request 2302 based upon the module field set.
- the module name is sent to the search engine 2304 .
- a user can choose 2306 to either search the module for data values 2306 a or for character strings related to an attachment 2306 b .
- 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 in FIG. 23 , up to five data fields can be searched simultaneously to obtain a result set 2318 .
- the search engine When searching attachments 2306 b , 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
- a search can be conducted by attachment name 2312 or by attachment extension 2314 to produce a result set 2318 .
- the user can then choose the desired search result 2320 from the result set and the results can be displayed in the module 2322 .
- FIG. 24 illustrates a report hierarchy configuration.
- a module sends a report request 2402 to a report engine, which displays the report 2406 .
- the user can then decide 2408 to create a new report 2408 a or modify an existing report 2408 b.
- 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 in FIG. 25 .
- a user opens a data loader 2502 and then chooses 2504 which module will be populated and with what type of data.
- Meta-data 2506 and attachments 2506 can be loaded using the data loader.
- external data 2510 is mapped to the module field set based upon the provided FormId for attachments 2508
- the attachments are mapped 2512 to the module key field set also based on the FormId and the primary key field value.
- the external meta-data 2514 and the external data attachments 2516 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 displayed 2520 .
- 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.
- the method and system of the present invention advantageously can provide one or more of the following advantages:
- 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;
- 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;
- 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.
- 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;
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
- This 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.
- 1. 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.
- In 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.
-
FIG. 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. - The 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 in
FIG. 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 include
configuration variables 102 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 variable 102 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 include
variables 106 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 include
variables 104 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, default
tab configuration variables 108 can be set as a default for each user. Thedefault menu items 112 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 default
file association variables 110 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 system 114 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 the
configuration component 202. The user decides 203 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 existingmodule 208, 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 retrieved 210, such as by retrieving the data from a SQL server. Thereafter, the user can edit the
configuration variables 215 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 database 216. 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 a
unique name 212 to identify the module. The user then creates and configures a new configuration variable set 214 by assigning values to the configuration variables. The new module configuration variable set can be saved in thesystem installation database 216 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 set 301. As noted above, the module configuration variable set 301 is unique for each module within a system installation. The variable set 301 comprises variables that define thekey data fields 302, including a primarykey data field 304 and one or more secondary key data fields 306. For every module, the primarykey data field 304 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 field 304 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 primary
key data field 304 is the primary constraint for data entry into the other data fields within the module. The primarykey data field 304 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 fields 306. The secondary
key data fields 306 and the primarykey data field 304 together comprise the key data fields, and therefore themaster hierarchy mask 316. Themaster hierarchy mask 316 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 field 304, the secondarykey data fields 306 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 fields 312.
Regular data fields 312 make up the rest of the data fields in a module data field set, and are not part of themaster hierarchy mask 316. As a result, the regular data fields 312 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 values 312 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 to
FIG. 3 , the module can also include asecurity hierarchy mask 320, which is defined when the module is configured. The key fields in thesecurity hierarchy mask 320 are also members of themaster hierarchy mask 316. Thesecurity hierarchy mask 320 is composed of the key fields in themaster hierarchy mask 316 that are available for display 318 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 source
information data field information 308 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 attachments 310 (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 the
electronic attachments 310. The GUI can also identify if another user of the system is currently accessing theattachment 310 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 an
attachment 310. 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 ascreenshot 400 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 in
FIG. 4 , the module being configured is identified at the top of theProperties dialog box 401 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 box 401 illustrated inFIG. 4 permits the configuration of the MemberID data field. Thisproperties dialog box 401 can be opened by clicking in thetext box 408 in thePreview dialog box 403, and clicking on a different text box (e.g., First Name) will bring up a Properties dialog box for that data field. ThePreview dialog box 403 also previews the appearance of that page of the module field set as changes are made to the appearance variables in theProperties dialog box 401. - The configuration variables in the left-
hand column 404 of thedialog box 401 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 column 406 of theproperties dialog box 401, 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” variable 402 to True. The “Group By”variable 412 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 values data type 410 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 the
Properties dialog box 401 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. - The
tool dialog box 420 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-list 424. - 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 box 500 for defining a module, in this instance, for a module with the name “LM” (e.g., the module illustrated inFIG. 4 ). Thedialog box 500 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 isMemberID 510, and other primary key data fields can be accessed through the drop-down menu. - As is illustrated in
FIG. 5 , different data fields can be added to, or deleted from, aSecurity Hierarchy Mask 508 based on the key data fields available in theMaster Hierarchy Mask 506. 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 Mask 506, but are not in the Security Hierarchy Mask 508 (e.g., MemberStatus, MemberType) can be revised by a user accessing the LM module. - The
MediaTable 502 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. TheDocTable 504 indicates the data table where files, typically in the form of BLOBs, are stored for that module. TheMedia Key 510 represents the name given to the primary key field for that module and the FormName 512 (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, stored
file association configurations 604 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 page 606 will display theopen attachment 608 by utilizing the selected program. - As an example,
FIG. 7 is a screen shot 700 illustrating the setting of file associations by a user working in a module labeled Member. Using the AssociationManager dialog box 702, the user can configure the association manager to open files with anextension 708 of “SPD” withVersion 13 706 of theprogram SoftPlan.exe 704. The user can also provide the external path to that program. - Referring back to
FIG. 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 data 612 anddynamic data 614. 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 configurations 610 enable a user to quickly view information in a manner that is most useful to that individual user. By adjusting the dynamic displaytree tab configurations 610, a skewed (reconfigured)display tree 618 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 credentials 802, 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 loaded 804 based upon the security credentials that are input by the user. As is discussed above, each module includes a unique set ofdata fields 808, including secondarykey data fields 810 and a primarykey data field 814. 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 field 814 and secondarykey data fields 810 make up themaster hierarchy mask 826, including thesecurity hierarchy mask 828. -
FIG. 9 illustrates ascreenshot 900 of a log-in interface for a system installation. A user logging into a system installation can select a server 902 (e.g., BIZLT0001\BIZEXP) and/or a database 904 (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 ascreenshot 1000 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 bar 1001 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 labeledMember 1002. Once the module is selected and opened, askewable display tree 1003 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 tree 1003 is displayed with a top hierarchy field of the last name.Dynamic configuration tabs 1004 are located below theskewable display tree 1003. Selecting one of the dynamic display tree tabs will immediately change the hierarchy of theskewable display tree 1003. It should also be noted that the GUI also includespaging tabs 1005 at the bottom of the data display to change the page that is being viewed. -
FIG. 11 illustrates ascreenshot 1100 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 icon 1104 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 display
tree configuration tabs - As illustrated in
FIG. 11 , the user has selectedMemberID 349, 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 MemberID 349) 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. Adisplay 1202 a displays 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 values 1204 a, the display tree 1206 a, the primarykey field 1208 a and thefile association variables 1210 a. The display of each of thedata 1204 a, the display tree 1206 a and the primarykey field 1208 a can be manipulated by changing thedisplay tree hierarchy 1216 associated with each dynamic display tree tab. This can be accomplished by changing the display tree hierarchy 1214 for a selected tab using the tab configuration, and thus effecting thedisplay tree hierarchy 1216 which is then loaded 1218 as the new display tree tab configuration. Thus, the data 1204 b, display tree setup 1206 b and primary key field 1208 b will be reconfigured and redisplayed on the module display 1202 b. -
FIG. 13 illustrates a screen shot of an explorer tabconfiguration dialog box 1300. Thedialog box 1300 can be accessed by selectingAppearance 1306 from the top level menu. By selecting to change the display tree hierarchy 1304 (e.g., by mouse-clicking in the Hierarchy text box) for the selected tab 1302 (e.g., Last Name), the user can access a SetHierarchy dialog box 1400, as is illustrated byFIG. 14 . Thedialog box 1400 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 MemberStatus 1402 (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 tab 1902 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 adetermination 2102 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 data 2106, the display tree 2108, the primary key field 2110 and thefile associations 2112 that a user is able to access. As a result of these security settings, the display 1214 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 ascreenshot 2200 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 Name 2202). - 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 in
FIG. 23 and a report hierarchy configuration is illustrated inFIG. 24 . - Referring to the search hierarchy illustrated in
FIG. 23 , the user causes a module to send asearch request 2302 based upon the module field set. The module name is sent to thesearch engine 2304. Thereafter, a user can choose 2306 to either search the module for data values 2306 a or for character strings related to anattachment 2306 b. When searching for a data value 2306 a, 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 set 2318. - When searching
attachments 2306 b, 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 name 2312 or byattachment extension 2314 to produce aresult set 2318. The user can then choose the desiredsearch result 2320 from the result set and the results can be displayed in the module 2322. -
FIG. 24 illustrates a report hierarchy configuration. A module sends areport request 2402 to a report engine, which displays thereport 2406. The user can then decide 2408 to create anew report 2408 a or modify an existingreport 2408 b. - 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 in
FIG. 25 . A user opens adata loader 2502 and then chooses 2504 which module will be populated and with what type of data. Meta-data 2506 andattachments 2506 can be loaded using the data loader. For meta-data 2506,external data 2510 is mapped to the module field set based upon the provided FormId forattachments 2508, the attachments are mapped 2512 to the module key field set also based on the FormId and the primary key field value. The external meta-data 2514 and theexternal data attachments 2516 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 displayed 2520. - 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.
Claims (22)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/147,347 US20090094271A1 (en) | 2007-06-26 | 2008-06-26 | Variable driven method and system for the management and display of information |
US15/444,561 US11003628B2 (en) | 2007-06-26 | 2017-02-28 | Variable driven, customizable information management system |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US94629307P | 2007-06-26 | 2007-06-26 | |
US12/147,347 US20090094271A1 (en) | 2007-06-26 | 2008-06-26 | Variable driven method and system for the management and display of information |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/444,561 Continuation US11003628B2 (en) | 2007-06-26 | 2017-02-28 | Variable driven, customizable information management system |
Publications (1)
Publication Number | Publication Date |
---|---|
US20090094271A1 true US20090094271A1 (en) | 2009-04-09 |
Family
ID=40524201
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/147,347 Abandoned US20090094271A1 (en) | 2007-06-26 | 2008-06-26 | Variable driven method and system for the management and display of information |
US15/444,561 Active 2031-04-23 US11003628B2 (en) | 2007-06-26 | 2017-02-28 | Variable driven, customizable information management system |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/444,561 Active 2031-04-23 US11003628B2 (en) | 2007-06-26 | 2017-02-28 | Variable driven, customizable information management system |
Country Status (1)
Country | Link |
---|---|
US (2) | US20090094271A1 (en) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100017504A1 (en) * | 2008-07-16 | 2010-01-21 | Samsung Electronics Co., Ltd. | Method and apparatus for transmitting and receiving rich media content |
US8478782B1 (en) * | 2008-05-08 | 2013-07-02 | Salesforce.Com, Inc. | System, method and computer program product for sharing tenant information utilizing a multi-tenant on-demand database service |
US8713043B2 (en) | 2010-03-01 | 2014-04-29 | Salesforce.Com, Inc. | System, method and computer program product for sharing a single instance of a database stored using a tenant of a multi-tenant on-demand database system |
US20140358999A1 (en) * | 2013-05-30 | 2014-12-04 | ClearStory Data Inc. | Apparatus and Method for State Management Across Visual Transitions |
US20170169047A1 (en) * | 2007-06-26 | 2017-06-15 | Michael A. Brewer | Variable Driven, Customizable Information Management System |
US9842027B1 (en) * | 2013-12-27 | 2017-12-12 | EMC IP Holding Company LLC | Intelligent application optimized backups |
CN107545026A (en) * | 2017-06-28 | 2018-01-05 | 新华三技术有限公司 | A kind of implementation method and device of interface name resolution tree function |
CN109857875A (en) * | 2019-01-31 | 2019-06-07 | 山东省国土测绘院 | A kind of electronic record group volume method and system |
US20230069499A1 (en) * | 2008-12-30 | 2023-03-02 | 23Andme, Inc. | Learning System for Pangenetic-Based Recommendations |
US12100487B2 (en) | 2008-12-31 | 2024-09-24 | 23Andme, Inc. | Finding relatives in a database |
US12106862B2 (en) | 2007-03-16 | 2024-10-01 | 23Andme, Inc. | Determination and display of likelihoods over time of developing age-associated disease |
US20250291773A1 (en) * | 2024-03-12 | 2025-09-18 | Microsoft Technology Licensing, Llc | System and Method for Flowsheet Population |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11595469B2 (en) * | 2021-05-25 | 2023-02-28 | Red Hat, Inc. | Balancing data partitions among dynamic services in a cloud environment |
US12032598B2 (en) | 2021-12-27 | 2024-07-09 | Data Ramp Technologies Llc | Personal data association method |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7328225B1 (en) * | 2002-03-27 | 2008-02-05 | Swsoft Holdings, Ltd. | System, method and computer program product for multi-level file-sharing by concurrent users |
US7698160B2 (en) * | 1999-05-07 | 2010-04-13 | Virtualagility, Inc | System for performing collaborative tasks |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0770967A3 (en) * | 1995-10-26 | 1998-12-30 | Koninklijke Philips Electronics N.V. | Decision support system for the management of an agile supply chain |
JP3990843B2 (en) * | 1999-07-12 | 2007-10-17 | 株式会社日立製作所 | Spatial data correspondence display method |
US6591278B1 (en) * | 2000-03-03 | 2003-07-08 | R-Objects, Inc. | Project data management system and method |
US6727927B1 (en) * | 2000-03-08 | 2004-04-27 | Accenture Llp | System, method and article of manufacture for a user interface for a knowledge management tool |
JP4143277B2 (en) * | 2001-05-22 | 2008-09-03 | Necインフロンティア株式会社 | Communication system, connection setting method and connection setting program for exchange and terminal |
US7461077B1 (en) * | 2001-07-31 | 2008-12-02 | Nicholas Greenwood | Representation of data records |
US7077516B2 (en) * | 2003-03-26 | 2006-07-18 | Eastman Kodak Company | Inkjet printing method |
US20090094271A1 (en) * | 2007-06-26 | 2009-04-09 | Allurdata Llc | Variable driven method and system for the management and display of information |
-
2008
- 2008-06-26 US US12/147,347 patent/US20090094271A1/en not_active Abandoned
-
2017
- 2017-02-28 US US15/444,561 patent/US11003628B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7698160B2 (en) * | 1999-05-07 | 2010-04-13 | Virtualagility, Inc | System for performing collaborative tasks |
US7328225B1 (en) * | 2002-03-27 | 2008-02-05 | Swsoft Holdings, Ltd. | System, method and computer program product for multi-level file-sharing by concurrent users |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12106862B2 (en) | 2007-03-16 | 2024-10-01 | 23Andme, Inc. | Determination and display of likelihoods over time of developing age-associated disease |
US12243654B2 (en) | 2007-03-16 | 2025-03-04 | 23Andme, Inc. | Computer implemented identification of genetic similarity |
US11003628B2 (en) * | 2007-06-26 | 2021-05-11 | Michael A. Brewer | Variable driven, customizable information management system |
US20170169047A1 (en) * | 2007-06-26 | 2017-06-15 | Michael A. Brewer | Variable Driven, Customizable Information Management System |
US8478782B1 (en) * | 2008-05-08 | 2013-07-02 | Salesforce.Com, Inc. | System, method and computer program product for sharing tenant information utilizing a multi-tenant on-demand database service |
US8560571B1 (en) * | 2008-05-08 | 2013-10-15 | Salesforce.Com, Inc. | System, method and computer program product for sharing tenant information utilizing a multi-tenant on-demand database service |
US20100017504A1 (en) * | 2008-07-16 | 2010-01-21 | Samsung Electronics Co., Ltd. | Method and apparatus for transmitting and receiving rich media content |
US8688810B2 (en) * | 2008-07-16 | 2014-04-01 | Samsung Electronics Co., Ltd. | Method and apparatus for transmitting and receiving rich media content |
US20230069499A1 (en) * | 2008-12-30 | 2023-03-02 | 23Andme, Inc. | Learning System for Pangenetic-Based Recommendations |
US12100487B2 (en) | 2008-12-31 | 2024-09-24 | 23Andme, Inc. | Finding relatives in a database |
US8713043B2 (en) | 2010-03-01 | 2014-04-29 | Salesforce.Com, Inc. | System, method and computer program product for sharing a single instance of a database stored using a tenant of a multi-tenant on-demand database system |
US9495436B2 (en) | 2013-05-30 | 2016-11-15 | ClearStory Data Inc. | Apparatus and method for ingesting and augmenting data |
US9613124B2 (en) * | 2013-05-30 | 2017-04-04 | ClearStory Data Inc. | Apparatus and method for state management across visual transitions |
US20140358999A1 (en) * | 2013-05-30 | 2014-12-04 | ClearStory Data Inc. | Apparatus and Method for State Management Across Visual Transitions |
US9842027B1 (en) * | 2013-12-27 | 2017-12-12 | EMC IP Holding Company LLC | Intelligent application optimized backups |
CN107545026A (en) * | 2017-06-28 | 2018-01-05 | 新华三技术有限公司 | A kind of implementation method and device of interface name resolution tree function |
CN109857875A (en) * | 2019-01-31 | 2019-06-07 | 山东省国土测绘院 | A kind of electronic record group volume method and system |
US20250291773A1 (en) * | 2024-03-12 | 2025-09-18 | Microsoft Technology Licensing, Llc | System and Method for Flowsheet Population |
Also Published As
Publication number | Publication date |
---|---|
US20170169047A1 (en) | 2017-06-15 |
US11003628B2 (en) | 2021-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20090094271A1 (en) | Variable driven method and system for the management and display of information | |
US10304021B2 (en) | Metadata-configurable systems and methods for network services | |
US8812439B2 (en) | Folder structure and authorization mirroring from enterprise resource planning systems to document management systems | |
US7853610B2 (en) | Virtual foldering system for blending process and content in a collaborative environment | |
US5845067A (en) | Method and apparatus for document management utilizing a messaging system | |
US7802194B2 (en) | Business query language | |
US7567964B2 (en) | Configurable search graphical user interface and engine | |
US12086392B2 (en) | System and method for content management | |
US20050262439A1 (en) | Automatic web publishing | |
US20090049064A1 (en) | Data and application model for configurable tracking and reporting system | |
US20150058363A1 (en) | Cloud-based enterprise content management system | |
US20060129590A1 (en) | Method and medium for managing data | |
KR20060067812A (en) | Complex data access | |
Eckard et al. | Bridging technologies to efficiently arrange and describe digital archives: the Bentley Historical Library’s ArchivesSpace-Archivematica-DSpace Workflow Integration Project | |
US20050193033A1 (en) | System and method for database management | |
US10984119B2 (en) | Simplifying data protection in CDS based access | |
JP3493354B2 (en) | Document search method | |
US7293252B2 (en) | Case modelling | |
Smith | Managing Lists and Libraries | |
Cody | The Business Analyst's Guide to Oracle Hyperion Interactive Reporting 11 | |
Munro | Working with Tables | |
Bates et al. | SharePoint 2003 User’s Guide | |
WO2011023959A1 (en) | Database access | |
Bates et al. | Libraries | |
Ardestani et al. | Document Management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: ALLURDATA LLC, COLORADO Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BREWER, MICHAEL A.;WAGNER, FREDERICK CURT;REEL/FRAME:021981/0965;SIGNING DATES FROM 20081214 TO 20081215 |
|
AS | Assignment |
Owner name: ALLURDATA, INC., COLORADO Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ALLURDATA LLC;REEL/FRAME:022594/0423 Effective date: 20090424 |
|
AS | Assignment |
Owner name: ALLURDATA, INC., COLORADO Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ALLURDATA, INC.;REEL/FRAME:022672/0880 Effective date: 20090511 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |