CROSS REFERENCE TO RELATED APPLICATIONSThis application claims benefit, under 35 U.S.C. § 119(e), of U.S. provisional application Ser. No. 62/132,874, filed on Mar. 13, 2015. All documents above are incorporated herein in their entirety by reference.
FIELD OF THE INVENTIONThe present invention relates to a procedure flow administration system and method. In particular, the present invention relates to a system and method for modifying and approving modifications to procedure flows in a collaborative environment.
BACKGROUND TO THE INVENTIONOrganizations typically introduce standardized operating procedures in order to improve efficiency in operations and control quality. This is especially necessary in large organizations where the size of the operation typically prohibits close supervision of more than a portion of the tasks by any one trusted individual, or in organizations having multiple offices at different locations, many or all of which may be involved at one point in a given procedure.
Traditionally, such standardized procedures are documented in an organization handbook or the like and are in a written form, and may include some descriptive tools such as flow charts or the like to aid the members of the organization in better understanding when a certain task should be performed, by whom and it's interrelationship with other tasks.
In order to improve the ease and efficiency of developing and enforcing standardized operating procedures, a number of tools have been developed. These tools are typically implemented in a networked environment to better leverage collaboration between those developing the operating procedures, simplify roll out and simplify the production of usage reports for audits and governance amongst other reasons.
These tools typically include a graphical user interface displaying a procedure flow chart or the like. One drawback of these tools, however, is that in more complex procedures the tool can typically only show a small portion of the procedure at any one time. One other drawback is that once a procedure is live and being used by the organization, it is difficult to modify the procedure and test modified versions of the procedure prior to their being released. This is especially true in a collaborative environment where more than one person may be attempting to introduce modifications at a given time.
SUMMARY OF THE INVENTIONThe present invention overcomes the above and other drawbacks by providing a collaborative method between an editing user and a reviewing user different from the editing user, the method for editing and reviewing a live procedure flow comprising at least one decision step and at least one action step, wherein each of the at least one steps is interconnected with at least one other of said steps by at least one flow arrow indicating a direction of flow. The method comprises the editing user retrieving the live procedure flow from a repository and making a copy of the live procedure flow as a draft procedure flow, the editing user modifying the draft procedure flow by introducing modifications wherein the modifications comprise at least one of adding an additional decision step, adding an additional action step, modifying a text of the at least one decision step, modifying a text of the at least one action step, adding a flow arrow between two of the steps, rerouting one of the at least one flow arrows, storing said draft procedure flow in said repository and deleting at least one of the at least one flow arrows, the editing user displaying a graphical representation of the modified draft procedure flow and a graphical representation of the live procedure flow side by side on a display device of the editing user and highlighting the modifications in the graphical representation of the modified draft procedure flow, the editing user submitting the modified draft procedure flow to the reviewing user for one of approval and rejection, the reviewing user retrieving the modified draft procedure flow and the live procedure flow from said repository and displaying a graphical representation of the modified draft procedure flow and a graphical representation of the live procedure flow side by side on a display device of the reviewing user wherein the modifications are highlighted in both the graphical representation of the modified draft procedure flow and the graphical representation of the live procedure flow. The reviewing user one of approves of the modifications by replacing the live procedure flow in the repository with the modified draft procedure flow and rejects the modifications by notifying the editing user of the rejection.
There is also disclosed a method for displaying a live version and an edited version of a procedure flow on a display device, the procedure flow comprising a plurality of flow elements comprising a plurality of steps and at least one flow between the plurality of steps, the edited version comprising modifications to at least one of the elements, or both. The method comprises rendering a graphical representation of the edited version in a first display portion of the display and a graphical representation of the live version in a second display portion of the display, the second display horizontally adjacent the first portion, highlighting elements modified by the modifications in both the graphical representation of the edited version and the graphical representation of the live version, and synchronising the first display portion and the second display portion such that scrolling in one of the display portions causes a same scrolling in another of the display portions.
There is also disclosed a method of navigating between procedure flows of a given procedure. The method comprises rendering a graphical representation of a first procedure flow on a display, said first procedure flow comprising at least one action step comprised of a representative action step symbol and an action text describing an action to be taken during the step and at least one decision step comprised of a representative decision step symbol and a decision text describing a decision to be made during the step, wherein each step is interconnected with at least one other step by a flow arrow, wherein said first procedure flow details an order in which said at least one action step must be completed and said at least one decision step must be made in order to complete the given procedure; and associating a hyperlink with one of a first one of said at least one action step and a first one of said at least one decision step; and selecting said hyperlink. On selection of said hyperlink, a sub procedure flow referenced by said hyperlink is rendered on said display, said sub procedure flow comprised of at least one sub action step and at least one sub decision step, wherein each sub step is interconnected with at least one other sub step by a flow arrow and further wherein said sub procedure flow details an order in which said at least one sub action step must be completed and said at least one sub decision step must be made in order to complete said step from which said sub procedure flow is hyperlinked.
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 provides a schematic diagram of a procedure flow administration system in accordance with an illustrative embodiment of the present invention;
FIG. 2A provides a login screen of a procedure flow administration system in accordance with an illustrative embodiment of the present invention;
FIG. 2B provides a user administration screen of a procedure flow administration system in accordance with an illustrative embodiment of the present invention;
FIG. 2C provides an invite new user screen of a procedure flow administration system in accordance with an illustrative embodiment of the present invention;
FIG. 2D provides a view pending invitations screen of a procedure flow administration system in accordance with an illustrative embodiment of the present invention;
FIG. 2E provides a list entry point (procedure flow) screen of a procedure flow administration system in accordance with an illustrative embodiment of the present invention;
FIG. 2F provides an unreviewed changes screen of a procedure flow administration system in accordance with an illustrative embodiment of the present invention;
FIG. 2G provides a list of unreviewed changes screen of a procedure flow administration system in accordance with an illustrative embodiment of the present invention;
FIG. 3A provides a procedure flow viewer screen of a procedure flow administration system in accordance with an illustrative embodiment of the present invention;
FIG. 3B provides a sub procedure flow viewer screen of a procedure flow administration system in accordance with an illustrative embodiment of the present invention;
FIG. 4 provides a schematic diagram of main procedure flows and sub procedure flows of a procedure flow administration system in accordance with an illustrative embodiment of the present invention;
FIG. 5 provides an online help screen of a procedure flow administration system in accordance with an illustrative embodiment of the present invention;
FIG. 6A provides a procedure flow viewer screen displaying a live procedure flow in accordance with an illustrative embodiment of the present invention;
FIG. 6B provides a procedure flow viewer screen displaying an edited procedure flow in accordance with an illustrative embodiment of the present invention;
FIG. 7A provides an editor screen displaying a procedure flow being edited in accordance with an illustrative embodiment of the present invention;
FIG. 7B provides an editor screen detailing modifying a text entry of a step of a procedure flow being edited in accordance with an illustrative embodiment of the present invention;
FIG. 7C provides a review screen in double pane mode for reviewing live versus edited procedure flows in accordance with an illustrative embodiment of the present invention;
FIG. 7D provides a review screen in double pane mode for reviewing live versus edited procedure flows and detailing synchronised scrolling in accordance with an illustrative embodiment of the present invention;
FIGS. 7E and 7F provide respectively zoomed out and zoomed in review screens in double pane mode for reviewing live versus edited procedure flows in accordance with an illustrative embodiment of the present invention;
FIG. 7G provides a review screen in double pane mode for reviewing live versus edited procedure flows and detailing discussions appended to the procedure flow in accordance with an illustrative embodiment of the present invention;
FIG. 8A provides an approvals screen detailing pending approvals for changes to a procedure flow in accordance with an illustrative embodiment of the present invention;
FIG. 8B provides a review screen in double pane mode for reviewing live versus edited procedure flows by an approver and in accordance with an illustrative embodiment of the present invention;
FIG. 8C provides a change history screen detailing changes to a procedure flow and their status in accordance with an illustrative embodiment of the present invention;
FIG. 8D provides a review screen in double pane mode for reviewing old live versus new live procedure flows in accordance with an illustrative embodiment of the present invention;
FIG. 9A provides a screen indicating that a user's draft is out of date in accordance with an illustrative embodiment of the present invention;
FIG. 9B provides a merge screen in double pane mode for reviewing old live versus new live procedure flows prior to merging in an edited procedure flow in accordance with an illustrative embodiment of the present invention; and
FIG. 9C provides an alternative screen shown to a user editing a procedure flow which has subsequently been the subject of approved modifications on behalf of another user and in accordance with an illustrative embodiment of the present invention.
DETAILED DESCRIPTION OF THE ILLUSTRATIVE EMBODIMENTSReferring now toFIG. 1, a procedure flow administration system, generally referred to using thereference numeral10, will now be described. Theserver side12 of the procedureflow administration system10 comprises aload balancer14 and one or more web-application servers16 on which one or moreprocedure flow applications18 are running and each which can access a data repository (SQL database server)20. Theuser side22 of the procedureflow administration system10 comprises one or more client devices as in24 which access the one or more web-application servers16 remotely using abroadband network26 such as the Internet. Each client device as in24 comprises aweb browser28 which illustratively can receive, compile and display web pages to a user based on JavaScript™, HTML and style sheets (CSS) (all not shown) received from the web-application server(s)16.
Referring now toFIG. 2A in addition toFIG. 1, a user at aclient device24 migrates to the address of the web server as in16 using hisweb browser28 and is initially displayed alogin page30, allowing the user to enter user credentials such as user name oremail32 andpassword34 and gain access to thedata servers12 by selecting thelogin button36. Illustratively a cookie (not shown) including the login information is stored on the client device which may be subsequently accessed by the web-application servers as16 during subsequent logins. As will be discussed in more detail below, each user can be assigned varying rights which may be used to selectively limit a given user's access to particular features of the system, or the ability to create, amend and/or approve edited procedure flows.
Referring now toFIG. 3A in addition toFIG. 1, logging into thesystem10 gains theclient device24 access to aprocedure flow viewer38. Theprocedure flow viewer38 generally renders on the display amain procedure flow40, i.e. a diagrammatic representation of a procedure flow, and for particular users may also provide tools, as will described in more detail below, for editing and approving edited procedure flows. Eachprocedure flow40 is comprised of a variety of elements (or symbols) which represent steps in the procedure flow. Action steps42 are represented by a rectangular box which is illustratively coloured blue and include descriptive text detailing the action to be taken by the user. Action steps42 may also be coded to indicate actions which are critical, and must be completed, illustratively by colouring theAction step42 red. Decision steps44 are represented by a diamond which is illustratively coloured yellow and includes descriptive text detailing the decision to be made by the user. Data steps46 are represented by a rhomboid which is illustratively coloured green. Data steps46 include descriptive text indicating information which should be collected by the user during the step as the information is typically necessary in order to complete one or more of the subsequent steps. Backstory steps48 are represented by a rectangle which is illustratively coloured purple. Backstory steps48 provide, for example, textual indications as to why data is being collected, tips, and the like. Freeform text boxes50 can be included as well as images52 to provide additional information and graphics to better enhance the user's experience when using thesystem10, illustrations of usage, additional tips on data entry and the like. The various steps as in40 are interconnected byflow arrows54, typically presented as a solid line arrow, which indicate the order in which the procedure flow is intended to proceed and may include descriptive text, for example to indicate the flow arrow to be followed on exiting a decision step as in44. Optional flow arrows, which indicate that a particular branch or spur of a procedure flow may be followed at the discretion of the user, are typically presented as a dashed line arrow.
Referring now toFIG. 4, the procedure flow may include amain procedure flow40 as described above and one or more sub procedure flows as in56. As will be discussed in more detail below, the sub procedure flows as in56 are accessed via sub procedure flow hyperlinks which are imbedded or anchored in the respective step as in42,44, etc. from which they depend. A sub procedure flow can provide additional Actions steps, Decision steps, Data steps, etc. and can also include additional Back story steps and free form descriptive text. Additional sub procedure flows may also be nested in sub procedure flows. In this manner a user, even for elaborate and detailed procedure flows, can be provided with a viewable series of steps at a given level, while also being able to view particular steps hyperlinked with a sub procedure flow in more detail. As will also be discussed below, this allows sub procedure flows to be modified or exchanged for other sub procedure flows without affecting the layout of the procedure flow from which it depends.
Referring back toFIG. 3A in addition toFIG. 4, procedure flows40 and sub procedure flows56 are typically laid out to the left of a view and such that about 80% of the action steps are arranged vertically in line, and such that they form the “spine” of the procedure flow. 20% of the steps typically extend away from the spine, and typically from a Decision step. This improves the readability of a given procedure flow and typically results in less cluttered procedure flow visual representations.
Still referring toFIG. 3A, during normal use a user logs onto the system and is displayed a toplevel procedure flow40 associated with a default entry point. A different procedure flow may be selected by selecting a differententry point item58 from the list displayed via the Switch Entry Point pull downmenu60. During completion of the procedure flow the user addresses each of the steps along the procedure flow. Sub procedure flows nested in (or which depend from) steps comprising sub procedure flow hyperlinks as in62, which are illustratively anchored to the descriptive text in the step, may illustratively be accessed by selecting the sub procedure flow hyperlink which opens (displays) the sub procedure flow. For example, referring toFIG. 3B in addition toFIG. 3A, selecting ahyperlink62′ displays asub procedure flow64. The previous procedure flow can be returned to simply by selecting the back button on the web browser (or typically alt-left arrow on conventional web browsers). One benefit of using the back button as opposed to a hyperlink to return from a sub procedure flow to the procedure flow from which it depends is that the same procedure flow can be used for detailing more than one step. As a result a change in a sub procedure depending from one step is automatically reflected in all instances of that sub procedure, regardless of the step from which it depends. Referring back toFIG. 3A, on returning to the previous flow, the step associated with the sub flow being returned from is highlighted66, for example using a characteristic colour such as a yellow, or the like.
Referring toFIG. 5 in addition toFIG. 3A, by selecting thehelp menu item68, the user activates anonline help system70 which provides articles on various aspects of thesystem10.
Referring now toFIG. 6A, depending on user access rights which are first established during the login procedure as discussed above in reference toFIG. 2A, and then re-evaluated for every request made by a client device to the system by reading login information from the cookie stored initially on the client device as in24 and as discussed above, a particular user may be granted access to additional tools in order undertake additional operations with respect to theprocedure flow40. In particular, atoggle switch72 is provided allowing the user to toggle between alive version74 of theprocedure flow40 and the user'sdraft version76 of theprocedure flow40, for example if the user is in the process of editing the procedure flow as will be discussed in more detail below.
Referring toFIG. 6B in addition toFIG. 6A, moving thetoggle switch72 from “live”74 to “draft”76 invokes the display of the user's draft on the screen. The user can switch back and forth between the live and draft versions via thetoggle switch72. The draft version functions as the live version, and effectively represents how the draft version will look and operate when made live. If no draft version is available, for example if the live version represents the last draft version, then the live version is displayed as the draft version. The user can edit the draft version by selecting theedit button78. In the event that no draft version is available, the current live version is copied and provides the basis for the draft version.
Referring now toFIG. 7A in addition toFIG. 6B, as discussed above, the user can edit the draft version of theprocedure flow40 by selecting theedit button78. Selecting theedit button78 opens a new tab/window in the web browser and displays the draft procedure flow in anediting environment80. Theediting environment80 includes a variety of tools, for example to add steps as in82, to add links betweensteps84, addimages86, select steps orlinks88, delete selected steps and/or procedure flows, etc. As will now be understood by a person of ordinary skill in the art, using the tools the user can introduce changes to the procedure flow, for example by adding or deleting steps rearranging procedure flows between the steps and the like.
Referring now to7B, in order to edit text items, for example the descriptive text of a step or link, the user double clicks on the respective step or link which opens a correspondingediting dialog box90. Alternatively, the user can hover above the item to be edited and right click, opening a pop menu (not shown) via which the item can selected and coped, pasted, deleted, edited or moved to a different procedure flow. This same method may be used for multiple items which have been previously selected. Text may be entered or deleted via theediting dialog box90.Formatting tools92 are also provided for arranging and highlighting the text. In this regard, the tools generate a markup language syntax which conforms to Markdown and can be easily converted into HTML. A preview field is provided such that the marked up and formatted text may be viewed as it will be displayed to the user when live. The dialog box also comprises additional tabs which can be used to introducepopups94, for example to provide additional useful information, andhyperlinks96 to sub-procedure flows or web pages. Upon closing theediting dialog box90, changes to the procedure flow can be saved by selecting thesave button98.
Referring back toFIG. 6B in addition toFIG. 7B, closing the editing environment returns the user to the draft view. Changes introduced via the editing environment can be viewed adjacent the live version by selecting the “Review Your Changes”menu item100. Referring now to7C, selecting the “Review Your Changes”menu item100 provides display of thelive version102 of the procedure flow and thedraft version104 in a double pane mode in adjacent side-by-side panes as in106. Steps that have been edited in the edited procedure flow are surrounded with a corresponding highlighting108. Corresponding steps in the live procedure flow are also highlighted using a corresponding highlighting110. Illustratively, for the edited procedure flow the steps are highlighted using a bold green outline while the corresponding steps in the live version are highlighted using a bold red outline. This greatly simplifies the comparison of edited and live versions, especially as is typically the case, when being reviewed by a third party approver who was not involved in the editing process. Of note is that more than one main procedure flow or sub procedure flow of a given entry point may be edited by a user. Additionally, new sub procedure flows may be added by introducing sub procedure flow hyperlinks as described above. Athird pane112 is used to display alist114 of all edited (modified, added or deleted) procedure flows of the current entry point. A user may move between one or other of the procedure flows116 in thelist114, for example by selecting one of the procedure flows116. The group of edits to one or more procedure flows of a particular entry point which are carried out and, as will be discussed below, subsequently submitted together for approval are referred to generally as a “changeset”.
Referring now toFIG. 7D in addition toFIG. 7C, in the double pane mode quite large procedure flows can be viewed in their entirety by zooming out (for example by using Ctrl− to zoom out). This causes a similar and simultaneous zooming out of both panes as in106 (as illustrated inFIG. 7E). Similarly, detailed portions of a view may be examined zooming in (for example by using Ctrl+ to zoom in) which gives rise to a similar and simultaneous zooming in of both panes as in106 (as illustrated inFIG. 7F). Additionally, as in complicated implementations the procedure flows can be large, and therefore typically difficult to display legibly in their entirely on the display, the displays are also synchronized such that not only do they zoom in and out in a synchronized fashion, but also such that scrolling one display causes a similar scrolling in the adjacent display. Scrolling can be actuated either via one of the vertical slider/scroll bars as in118 or one of the horizontal slider/scroll bars120, vertically via, for example, a scroll button on a mouse (both not shown) or other input device, or vertically or horizontally by moving an activated cursor (also not shown) to a respective edge of the display. This allows the user to advantageously focus on steps of procedure flows which have been modified.
Referring now toFIG. 7G, a user can submit a changeset for approval by indicating the reason the draft was undertaken in aReason text box122 and selecting a Submit forApproval button124. Comments can also be appended to the draft amended procedure flow in aDiscussion dialog box126 which is opened by selecting aDiscussion button128. Of note is that athird pane130 showing the changeset is also presented providing a brief indication of which procedure flows have been modified132 during the edit, if any new procedure flows have been added 134 and if any existing procedure flows have been deleted135.
In a collaborative environment typically the one who originally entered modifications to a procedure flow is not the final arbiter of their incorporation in a live system. Rather, approval is often left to a more senior employee or system architect. Referring now toFIG. 8A, when logged into the system, users designated as having the right to approve a given procedure flow and its respective sub-procedure flows are presented anApprovals menu item136 which includes anindication138 of the number of approvals which are currently pending. By selecting the Approvals menu item136 a list of pendingapprovals140, if any, is displayed. The proposed changes can be reviewed by selecting a View changes link142.
Referring toFIG. 8B, the actual live procedure flow144 is displayed in the double pane mode adjacent the draft proposed changes146. The changes can be either approved, by selecting the Approve . . .button148, requested to be changed by selecting the Request Changes . . .button150, or declined by selecting the Decline . . .button152. On approval the live version is replaced with the proposed changes in the draft version and the changes are indicated as being approved.
Referring back toFIG. 3A, users of the system viewing a procedure flow which has been the subject of an approved edit or modification are made aware of the modification via anicon154 illustratively displayed adjacent the ChangeHistory menu item156.
Referring toFIG. 8C, a change history of changesets is maintained in the repository and can be listed by the users of the system by selecting the procedure flow in question via the Switch Entry Point pull downmenu60 and selecting theChange History156 menu item. An indication of theuser158 who submitted the modification, theapprover160 and thedate162 the modification was approved is also provided. By selecting the View Changes link164 both theOld Live version166 and the NewLive version168 of the procedure flow can be displayed side by side using the double pane view as discussed above and as illustrated inFIG. 8D.
Referring now toFIG. 9A, in particular instances, for example when multiple users are editing the same procedure flow, it can occur that the live procedure flow is modified by a first user during the editing process by a second user. In this event, and to ensure that approved changes are incorporated first, prior to approving the procedure flow for use as the live procedure flow, the second user is prompted to merge approved changes to the live procedure flow into the procedure flow being edited.
Referring now toFIG. 9B in addition toFIG. 9A, on selecting the Merge the new changes link170, the OldLive procedure flow172 is displayed adjacent the NewLive procedure flow174 with themodifications176 highlighted. In this manner, an administrative user is able to review modifications proposed by one user even when the underlying process has approved modifications introduced by another user. Of note is that changes to the same procedure flow give rise to a conflict requiring the proposed modifications to be discarded and the approved live procedure flow reedited to incorporate the proposed modifications. On the other hand, changes to different sub procedure flows, for example, can be merged together. Similarly, in the event a user is working on modifications based on a live procedure flow which has subsequently been the subject of approved modifications on behalf of another user, as shown inFIG. 9C, the user receives awarning178 to the effect that the current live version is ahead of the draft, and that changes to the current approved live procedure flow should be merged before continuing.
Referring back toFIG. 8A, procedure flows being edited by other users can be viewed by selectingDraft180 from the Approvals menu following which the draft version and the live version are displayed side by side using the double pane mode and highlighting any differences. This allows, for example, a supervising user to view changes in the process of being made. Similarly, previously approved items can be viewed by selecting Approved182 from the Approvals menu. Edited procedure flows which were submitted for approval but declined or where changes were requested can also be view by respectively selecting Declined184 or Changes Requested186 from the Approvals menu.
Referring back toFIG. 2A, as discussed above, each user can be assigned varying rights which may be used to selectively limit a given user's access to particular features of the system, or the ability to create, amend and/or approve edited procedure flows. Referring toFIG. 2B, by selectingUsers188 from theAdministration menu item190 thecurrent users192 of the system and theirrole194 can be reviewed. Selecting theEdit link196 allows an administrator, for example, to modify a user's name and role. Additionally a user can be disabled such that he is no longer able to access the system.
Referring toFIG. 2C in addition toFIG. 2B, one or more new users can be invited to use the system by selecting the Invite users link198. The new users' email addresses200 are entered together with an indication of the procedure flows (entry points)202 to which the new user(s) should have access as well as theirroles204 vis-a-vis those procedure flows. As illustrated, four different types of roles are foreseen vis-a-vis a given procedure flow:viewer206;contributor208;approver210; andadmin212. Alternatively, Organisation wide admin rights can be granted the new user(s) simply by selecting the OrgAdmin radio button214.
Referring toFIG. 2D in addition toFIG. 2B, thestatus216 of pending invitations can be viewed by selecting the Pending invitations link218. A pending invitation may be resent by selecting theResend button220 or withdrawn by selecting the Withdrawbutton222.
Referring toFIG. 2E, existing procedure flows can be listed by selecting the Entry Points link224 from theAdministration menu item190. The name of a procedure flow can be edited by selecting theEdit link226, users who have rights to access the procedure flow may be viewed and their roles edited by selecting the Members link228 and a particular procedure flow viewed by selecting the View Flows link230. New procedure flows (entry points) may be added by selecting the Newentry point link232.
Referring toFIG. 2F, unreviewed changesets of one or other of the procedure flows can be listed by selecting the reports link234 and the Unreviewed Changes link236 from theAdministration menu item190. This provides a means to show which members of a given entry point have or have not been reviewing the approved changesets. Illustratively, members are listed in order to number of unreviewed changes. Edits to a given procedure flow which have not been reviewed by a particular user can be listed by selecting the View changes link238. This allows, for example, an administrator to examine whether particular users have in fact reviewed (and therefore adopted) approved edits to particular procedure flows (for example, in order to audit quality or the like). Referring toFIG. 2G selecting the View changes link240 adjacent one or other of the listed edits as in242 displays the procedure flow immediately subsequent the edit(s) adjacent the procedure flow immediately prior to the edit in a double pane mode as described above, with the edited elements highlighted in both panes.
While this invention has been described with reference to the illustrative embodiments, this description is not intended to be construed to a limiting sense. Various modifications or combinations of the illustrative embodiment of the invention will be apparent to persons skilled in the art upon reference to the description. It is therefore intended that the described invention encompass any such modifications or embodiments.