A method of extending a user interface to include additional data fields is provided. A first response is received at a first application. The first response indicates a selection of an add button associated with addition of a data field to a first window associated with a user interface of a second application. A second window is presented to a user of the first application. A second response is received at the first application. The second response includes a name for the data field entered by the user using the presented second window and a data type of the data field. A position of the data field is identified on the first window. The received name, the received data type, and the identified position for the data field are stored. The data field is presented in the first window at the stored position using the stored name when a second user executes the second application.
|
3. A method of extending a user interface to include additional data fields, the method comprising:
receiving a first response at a first application executing at a computing device, wherein the first application controls presentation of a first plurality of linked user interface windows when executed, wherein the first response indicates a first selection of an add button from a first window of the first plurality of linked user interface windows, wherein the add button is associated with addition of a data field to a first window of a second plurality of linked user interface windows presented as part of a user interface of a second application when the second application is executed, wherein the second application controls presentation of the second plurality of linked user interface windows when executed, and further wherein the data field accepts data for a new attribute not previously presented in the second plurality of linked user interface windows when the second application is executed;
controlling presentation of a second window of the first plurality of linked user interface windows to a user of the first application executing at the computing device;
receiving a second response at the first application executing at the computing device, wherein the second response includes a name for the data field entered by the user using the presented second window and a data type of the data field;
at the computing device, identifying a position of the data field on the first window of the second plurality of linked user interface windows; and
storing the received name, the received data type, and the identified position for the data field at the computing device,
wherein the data field is presented in the first window of the second plurality of linked user interface windows at the stored position using the stored name when a second user executes the second application and is configured to allow the second user to define a value for the new attribute of the data field.
2. A hardware storage device including computer-readable instructions that, upon execution by a processor, cause the processor to extend a user interface to include additional data fields, the instructions configured to cause a computing device to:
receive a first response at a first application, wherein the first application controls presentation of a first plurality of linked user interface windows when executed, wherein the first response indicates a first selection of an add button from a first window of the first plurality of linked user interface windows, wherein the add button is associated with addition of a data field to a first window of a second plurality of linked user interface windows presented as part of a user interface of a second application when the second application is executed, wherein the second application controls presentation of the second plurality of linked user interface windows when executed, and further wherein the data field accepts data for a new attribute not previously presented in the second plurality of linked user interface windows when the second application is executed;
control presentation of a second window of the first plurality of linked user interface windows to a user of the first application;
receive a second response at the first application, wherein the second response includes a name for the data field entered by the user using the presented second window and a data type of the data field;
identify a position of the data field to be presented on the first window of the second plurality of linked user interface windows; and
store the received name, the received data type, and the identified position for the data field, wherein the data field is presented in the first window of the second plurality of linked user interface windows at the stored position using the stored name when a second user executes the second application and is configured to allow the second user to define a value for the new attribute of the data field.
1. A device for extending a user interface to include additional data fields, the device comprising:
a hardware storage device having computer-readable instructions therein which are programmed to receive a first response at a first application, wherein the first application controls presentation of a first plurality of linked user interface windows when executed, wherein the first response indicates a first selection of an add button from a first window of the first plurality of linked user interface windows, wherein the add button is associated with addition of a data field to a first window of a second plurality of linked user interface windows presented as part of a user interface of a second application when the second application is executed, wherein the second application controls presentation of the second plurality of linked user interface windows when executed, and further wherein the data field accepts data for a new attribute not previously presented in the second plurality of linked user interface windows when the second application is executed;
control presentation of a second window of the first plurality of linked user interface windows to a user of the first application;
receive a second response at the first application, wherein the second response includes a name for the data field entered by the user using the presented second window and a data type of the data field;
identify a position of the data field to be presented on the first window of the second plurality of linked user interface windows; and
store the received name, the received data type, and the identified position for the data field, wherein the data field is presented in the first window of the second plurality of linked user interface windows at the stored position using the stored name when a second user executes the second application and is configured to allow the second user to define a value for the new attribute of the data field; and
a processor, the processor coupled to the hardware storage device and configured to execute the instructions.
4. The method of
5. The method of
6. The method of
7. The method of
8. The method of
receiving a third response at the first application executing at the computing device, wherein the third response indicates a second selection of a view layout button;
controlling presentation of a screen layout of the first window of the second plurality of linked user interface windows in response to the second selection of the view layout button; and
receiving a fourth response at the first application executing at the computing device, wherein the fourth response includes the position selected by the user by moving the data field in the presented screen layout.
9. The method of
receiving a third response at the first application executing at the computing device, wherein the third response indicates a second selection of a delete button, wherein the delete button is associated with deletion of a second data field from the first window of the second plurality of linked user interface windows of the second application; and
receiving a fourth response at the first application executing at the computing device, wherein the fourth response includes a second name for the second data field identified by the user;
wherein the first window of the second plurality of linked user interface windows is presented to the second user with the second data field removed when the second user executes the second application.
10. The method of
receiving a third response at the first application executing at the computing device, wherein the third response indicates a second selection of a layout button; and
automatically controlling presentation of a representation of the first window of the second plurality of linked user interface windows using the first application in response to the second selection of the layout button wherein the presented representation of the first window includes the data field.
11. The method of
12. The method of
13. The method of
receiving a third response at the second application, wherein the third response includes a data value associated with the data field and entered by the second user; and
storing the data value associated with the data field in an electronic memory.
14. The method of
receiving a fourth response at the second application, wherein the fourth response indicates a second selection of a first search button;
controlling presentation of a second window of the second plurality of linked user interface windows in response to the second selection of the first search button wherein the presented second window includes a first indicator associated with the data field;
receiving a fifth response at the second application, wherein the fifth response indicates a third selection of a second search button and a search value associated with the data field;
performing a search of the electronic memory based on the search value associated with the data field; and
controlling presentation of a result of the performed search to the second user using the second application.
15. The method of
receiving a fourth response at the second application, wherein the fourth response indicates a second selection of a reporting button;
controlling presentation of a second window of the second plurality of linked user interface windows in response to the second selection of the reporting button wherein the presented second window includes a first indicator associated with the data field;
receiving a fifth response at the second application, wherein the fifth response indicates selection of the first indicator;
receiving a sixth response at the second application, wherein the sixth response includes a comparison value;
performing a search of the electronic memory based on the comparison value associated with the data field; and
controlling presentation of a result of the performed search to the second user using the second application.
17. The method of
18. The method of
19. The method of
|
The field of the disclosure relates generally to computer systems. More specifically, the disclosure relates to a method and a system for generating reports that include extensible data added by an end user to an existing application.
Currently, there is no common repository for cancer specific clinical and research data to support translational research. Clinical research programs are interested in collecting a detailed set of clinical and research information on their patients that is easy to maintain and from which relevant data can be analyzed and extracted. The information needed is not a repetition of the existing electronic medical record, but instead provides additional, complementary, and specific information for analysis and presentation of the data for various research studies. Each program, however, has established their own mechanisms for extracting, recording, and using this data, using a variety of technical approaches. These mechanisms have so far been incomplete, difficult to maintain, and difficult to extract data from. Thus, what is needed is a method and a system for allowing the user to extend the research application to collect additional data in combination with pre-defined data collection. What is additionally needed is a method and a system for allowing the generation of reports which include the extensible data added to the application for collection, analysis, and information extraction.
In an exemplary embodiment, a device for extending a user interface to include additional data fields is provided. The device includes a computer-readable medium having computer-readable instructions therein and a processor coupled to the computer-readable medium and configured to execute the instructions. The instructions include receiving a first response at a first application, wherein the first response indicates a first selection of an add button. The add button is associated with addition of a data field to a first window associated with a user interface of a second application. The instructions further include presenting a second window to a user of the first application and receiving a second response at the first application. The second response includes a name for the data field entered by the user using the presented second window and a data type of the data field. The instructions still further include identifying a position of the data field on the first window and storing the received name, the received data type, and the identified position for the data field. The data field is presented in the first window at the stored position using the stored name when a second user executes the second application;
In another exemplary embodiment, a method of extending a user interface to include additional data fields is provided. A first response is received at a first application. The first response indicates a selection of an add button associated with addition of a data field to a first window associated with a user interface of a second application. A second window is presented to a user of the first application. A second response is received at the first application. The second response includes a name for the data field entered by the user using the presented second window and a data type of the data field. A position of the data field is identified on the first window. The received name, the received data type, and the identified position for the data field are stored. The data field is presented in the first window at the stored position using the stored name when a second user executes the second application.
In yet another exemplary embodiment, computer-readable instructions are provided that, upon execution by a processor, cause the processor to implement the operations of the method.
Other principal features and advantages of the invention will become apparent to those skilled in the art upon review of the following drawings, the detailed description, and the appended claims.
Exemplary embodiments of the invention will hereafter be described with reference to the accompanying drawings, wherein like numerals denote like elements.
With reference to
First computing device 102 may include a display 104, an input interface 106, a first memory 108, a first communication interface 110, a first processor 112, and a browser application 114. Second computing device 103 may include a second memory 109, a second communication interface 111, a second processor 113, a medical research application 116, a bio-sample tracking application 118, a metabuilder application 120, and a database 122. Different and additional components may be incorporated into medical research system 100, first computing device 102, and second computing device 103. For example, computing device 102 may also include medical research application 116, bio-sample tracking application 118, metabuilder application 120, and/or database 122. Medical research application 116, bio-sample tracking application 118, metabuilder application 120, and database 122 may be implemented in one or more computing devices. Thus, the components of medical research system 100 may be positioned in a single device or a plurality of devices in a single location, in a single facility, and/or remote from one another.
Display 104 presents information to a user of first computing device 102 as known to those skilled in the art. For example, display 104 may be a thin film transistor display, a light emitting diode display, a liquid crystal display, or any of a variety of different displays known to those skilled in the art now or in the future.
Input interface 106 provides an interface for receiving information from the user for entry into first computing device 102 as known to those skilled in the art. Input interface 106 may use various input technologies including, but not limited to, a keyboard, a pen and touch screen, a mouse, a track ball, a touch screen, a keypad, one or more buttons, etc. to allow the user to enter information into first computing device 102 or to make selections presented in a user interface displayed on display 104. Input interface 106 may provide both an input and an output interface. For example, a touch screen both allows user input and presents output to the user.
First memory 108 is an electronic holding place or storage for information so that the information can be accessed by first processor 110 as known to those skilled in the art. Second memory 109 is an electronic holding place or storage for information so that the information can be accessed by second processor 113 as known to those skilled in the art. First computing device 102 and second computing device 103 may have one or more memories that use the same or a different memory technology. First computing device 102 and second computing device 103 may have one or more memories that use the same or a different memory technology. Memory technologies include, but are not limited to, any type of RAM, any type of ROM, any type of flash memory, etc. First computing device 102 and second computing device 103 also may have one or more drives that support the loading of a memory media such as a compact disk or digital video disk.
First communication interface 110 provides an interface for receiving and transmitting information communicable between computing devices. Second communication interface 111 provides an interface for receiving and transmitting information communicable between computing devices. Communications between first computing device 102, second computing device 103 and other devices may use various transmission technologies and media as known to those skilled in the art.
First processor 112 and second processor 113 execute instructions as known to those skilled in the art. The instructions may be carried out by a special purpose computer, logic circuits, or hardware circuits. Thus, first processor 112 and second processor 113 may be implemented in hardware, firmware, software, or any combination of these methods. The term “execution” is the process of running an application or the carrying out of the operation called for by an instruction. The instructions may be written using one or more programming language, scripting language, assembly language, etc. First processor 112 and second processor 113 execute an instruction, meaning that they perform the operations called for by that instruction. First processor 112 may operably couple with display 104, with input interface 106, with first memory 108, and with first communication interface 110 to receive, to send, and to process information. Second processor 113 may operably couple with second memory 109 and with second communication interface 111 to receive, to send, and to process information. First processor 112 and second processor 113 may retrieve a set of instructions from a permanent memory device and copy the instructions in an executable form to a temporary memory device that is generally some form of RAM. First computing device 102 and second computing device 103 may include a plurality of processors that use the same or a different processing technology.
First computing device 102 and second computing device 103 may include computers of any form factor such as a laptop, a desktop, an integrated messaging device, a personal digital assistant, etc. First computing device 102 and second computing device 103 may interact using a network such as a local area network, a wide area network, a cellular network, the Internet, etc. If implemented in separate computing devices, medical research application 116, bio-sample tracking application 118, metabuilder application 120, and database 122 may communicate using the same or a different network.
Database 122 can be a standard structured query language (SQL) database. Database 122 may store information for use by medical research application 116, bio-sample tracking application 118, and/or metabuilder application 120. Database 122 may be organized into multiple databases to improve data management and access. The multiple databases may be organized into tiers.
Computing devices may act as web servers providing information or data organized in the form of websites accessible over a network. A website may comprise multiple web pages that display a specific set of information and may contain links to other web pages with related or additional information. Each web page is identified by a Uniform Resource Locator (URL) that includes the location or address of the computing device that contains the resource to be accessed in addition to the location of the resource on that computing device. The type of file or resource depends on the Internet application protocol. For example, the Hypertext Transfer Protocol (HTTP) describes a web page to be accessed with a browser application. The file accessed may be a simple text file, an image file, an audio file, a video file, an executable, a common gateway interface application, a Java applet, or any other type of file supported by HTTP.
In an exemplary embodiment, medical research application 116, bio-sample tracking application 118, and metabuilder application 120 are web applications, which can be accessed using browser application 114 from first computing device 102 using a network such as the Internet. Thus, medical research application 116, bio-sample tracking application 118, and metabuilder application 120 may be accessed, for example, using a URL entered in a browser address window of browser application 114 as known to those skilled in the art. Medical research application 116, bio-sample tracking application 118, and metabuilder application 120 may communicate with database 122 directly or over a network.
Medical research application 116 performs operations associated with conducting medical research based on patient medical histories. Some or all of the operations and interfaces subsequently described may be embodied in medical research application 116. The operations may be implemented using hardware, firmware, software, or any combination of these methods. With reference to the exemplary embodiment of
Bio-sample tracking application 118 performs operations associated with finding and accessing information related to biological samples. Some or all of the operations and interfaces subsequently described may be embodied in bio-sample tracking application 118. The operations may be implemented using hardware, firmware, software, or any combination of these methods. With reference to the exemplary embodiment of
Metabuilder application 120 performs operations associated with extending the functionality of an application based on user requirements. Some or all of the operations and interfaces subsequently described may be embodied in metabuilder application 120. The operations may be implemented using hardware, firmware, software, or any combination of these methods. With reference to the exemplary embodiment of
Exemplary embodiments are described herein with reference to medical research. Application to medical research is not intended to be limiting. In general, information to be tracked in support of medical research is associated with a patient. In order to be considered a patient for a specific medical condition, such as cancer, arthritis, Alzheimer's, diabetes, a patient may be linked to that medical condition group. In the exemplary embodiments shown and described herein, the medical condition is cancer though use of cancer as a medical condition is not intended to be limiting.
In an exemplary embodiment, a user may access medical research application 116 from first computing device 102 using browser application 114 and known login procedures. After a user is validated based on authentication using a username/password, a welcome screen 200 may be presented as shown with reference to
A cancer group of interest is selected using cancer group selector 202 if more than one cancer group is accessible by the user based on the control parameters associated with the user's username. Cancer group selector 202 may be a drop-down box. A session purpose is selected using session purpose selector 204 which may include options such as: clinical, quality assurance, research/general, research/study, etc. Session purpose selector 204 may be a drop-down box. A study is selected using study selector 206, which may be a drop-down box. For example, if the selected session purpose is research/study, the user may select a study from a list of studies sponsored by the selected cancer group to which the user has been granted access.
The user may choose to work with patient data that does not include patient identification information by selecting de-identified selector 208, which may be a checkbox. Medical research application 116 may display the cancer group, session purpose, study, and de-identified status prominently throughout the session for user reference. After login, patients and information retrieved during the session may be limited based on the selected user role and permissions associated with the user, the selected session purpose, and the de-identified status. If the selected session purpose is research/study, patients retrieved may be limited to those who have consented to inclusion in the study. A patient may be linked to more than one medical condition group. Some information may be shared across medical condition groups. For example, basic demographic information may be shared by all medical condition groups and all applications within medical research system 100.
User selection of cancel button 212 may end the session. After user selection of continue button 210, the user may be presented a main menu 300, shown with reference to
The patient look-up section may include a patient look-up text box 302 and a proceed button 304. The user may enter a medical record number (MRN) into patient look-up text box 302 and select proceed button 304 using input interface 106. Database 122 is searched using the entered MRN and matching information is returned to the user. The patient quick search section may include patient name text boxes 306, date range boxes 308 for the patient's first visit, a medical event type selector 310, a patient classification selector 311, a stage selector 312, and a search button 314. The user enters data into and/or selects data from patient name text boxes 306, date range boxes 308, medical event type selector 310, patient classification selector 311, and stage selector 312 before selecting search button 314. For example, patient classification selector 311 may be implemented as a drop down box which includes user defined selections which can be different for example for each cancer group. Exemplary classifications may include: “Dr. ‘X’ Patients”, “Needs Review”, “Surgical Candidate”, etc. Database 122 is searched using the entered/selected data and matching information is returned to the user.
With reference to
With continued reference to
Advanced search criteria selection window 500 may include a patient parameters section 502, a medical event parameters section 504, a pathology report section 506, a diagnosis parameters section 508, a staging parameters section 510, a tumor section 512, a study section 514, a search button 516, and a clear button 518. Patient parameters entered/selected by the user in patient parameters section 502 may include MRN, last name, first name, middle name, gender, first visit date, birth date, progression free days, survival days, classification, and extended attributes which can be custom defined as described later with reference to metabuilder application 120. Medical event parameters entered/selected by the user in medical event parameters section 504 may include event type, start date, and extended attributes which can be custom defined as described later with reference to metabuilder application 120. Pathology reports entered by the user in pathology report section 506 may include extended attributes which can be custom defined as described later with reference to metabuilder application 120. Diagnosis parameters entered/selected by the user in diagnosis parameters section 508 may include International classification of diseases for oncology (ICD-O) morphology, cancer group morphology, ICD 9th edition (ICD-9), ICD-O topography, diagnosis date, and diagnosis age. Staging parameters entered/selected by the user in staging parameters section 510 may include a tumor size status, a lymph node spread status, a metastasis status (TNM status), a stage selector, an initial stage indicator, and a current stage indicator. Tumor parameters entered/selected by the user in tumor section 512 may include a body site selector, a tumor type selector, and extended attributes which can be custom defined as described later with reference to metabuilder application 120. Study parameters entered/selected by the user in study section 514 may include a study selector, a consent type selector, a patient study identifier, and extended attributes which can be custom defined as described later with reference to metabuilder application 120.
The user enters as many search criteria as needed and selects search button 516. Clear button 518 can be selected to blank out all selections in advanced search criteria selection window 500. To select search criteria from one of the extended attributes, a ‘+’ button may be selected. A dialog window (not shown) may be presented which presents the user with a list of attributes available for selection. After selecting search button 516, the user is presented with a list of patients that match the search criteria. For example, search results window 400 may be presented with a list of matching patients as described with reference to
With continued reference to
Results section 612 may include patient identification information such as the MRN, the first name, the middle name, the last name, the birth date, and the gender. If the correct patient is identified in results section 612, the patient may be added for use clinically or for research/study using medical research application 116 by selecting add patient button 614. For further verification, additional patient information may be presented by selecting view patient button 616. Execution of the new patient wizard may be cancelled by selecting cancel button 618. Lookup by name tab 604 allows the user to identify a patient by entering name information instead of a MRN. Using non-clinic patient tab 606, an application programming interface is presented to the user to add a patient to database 122 whose medical information is not stored in records database 124.
With continued reference to
Selection of encounter review button 322 causes presentation of windows which support the efficient entry of additional data for a patient that results from subsequent medical encounters. With reference to
Medical event selection section 636 may include a medical event selector 644 and a medical event link button 646. If the user decides to enter a new medical event to capture the encounter information for one or more encounters listed in encounter table 642, the user selects an appropriate medical event using medical event selector 644 and selects medical event link button 646 to store the medical event. In an exemplary embodiment, the event start date and the type of event are filled in and stored automatically. Subsequently, when the user views a patient's detailed record, the new medical event is highlighted, for example using color such as green to alert the user that additional information associated with the medical event may be entered.
With reference to
With continuing reference to
Overview tab 716 may include information that summarizes the state of the disease and the disease progression, a diagnosis section 726, and a tumor section 728. Diagnosis section 726 may include a diagnosis grid 730, a stage grid 731, a show all checkbox 732, a calculate stage button 734, an enter stage button 736, first add/remove buttons 738, and a remove button 740. Diagnosis grid 730 may include diagnoses of interest to the cancer group and/or entered by the cancer group. Associated with each diagnosis included in diagnosis grid 730 may be the cancer group, the date, ICD-9 or ICD-O codes, cancer-group specific morphology and comments, patient age at diagnosis (calculated if possible), the source of the diagnosis, the non-microscopic or microscopic basis for the diagnosis, etc. Diagnosis grid 730 can be expanded to show all known diagnoses for the patient by selecting show all checkbox 732. After a cancer diagnosis has been entered calculate stage button 734 and enter stage button 736 may be activated. If sufficient pathologic and/or clinical information is available to stage a cancer patient, calculate stage button 734 may be selected. Alternatively, enter stage button 736 can be selected to enter a stage that is not calculated. Selection of first add/remove buttons 738 adds/removes diagnoses from diagnosis grid 730. Selection of remove button 740 removes erroneous stages from stage grid 731. Tumor section 728 may include a tumor grid 742 and second add/remove buttons 744. Tumor grid 742 may include tumor information for each tumor such as an identification date, a tumor type, body site information, etc. Selection of second add/remove buttons 744 adds/removes diagnoses from tumor grid 742.
With reference to
With reference to
A stage entry in the stage history represents an overall patient staging related to the diagnosis taking into account all of the information, tests, and imaging results available for the patient at that time, as opposed to a single pathologic staging. If the stage is being calculated automatically, stage detail window 900 is presented with the staging information filled in by the calculator. If the information returned by the calculator needs to be corrected due to inaccuracy or incompleteness, the controls on stage detail window 900 are editable. Editing of the stage manually results in an auto checkbox 908 becoming unchecked. If the stage is being manually entered, stage detail window 900 is presented without the staging information filled in. The user fills in the desired stage entries. From the stage history TNM status entries for a cancer group, the system may calculate and store cancer progression related information. Cancer progression related information may include initial TNM status, dates of regional and distant progression, days to regional and distant progression, progression free days (until death, progression, or last known alive date), survival days (until death or last known alive date), and relapse free survival days (until death, relapse, or last known alive date).
With reference to
In staging the patient, the status of detection of nodal and distant metastasis is important. This information may eventually become available and be collected during pathologic investigation of tumor samples. However, in cases where clinical investigation has determined that no nodal or distant metastasis has occurred, this may be explicitly recorded with checkboxes included under overview tab 1002. The explicit recording of nodal and distant metastasis status assists the staging calculator in selecting the correct stage. The tumor may also link to medical events (such as tumor biopsy) which may contain more detailed information on specific procedures and diagnostics performed for the tumor, including pathology report data. The medical events may be added to or removed from a medical event grid 1012. Selection of a save button 1006 saves the entered data into tumor grid 728. Selection of a cancel button 1008 cancels entry of the entered data into tumor grid 728.
With reference to
With reference to
With reference to
A sample detail window 1304, presented using medical research application 116, is shown in accordance with an exemplary embodiment. Sample detail window 1304 may be presented after double-clicking on a sample in sample grid 1300 or using other methods known to those skilled in the art. Selection of a save button 1306 saves any modified sample data into sample grid 1300. Selection of a cancel button 1308 cancels entry of any modified sample data into sample grid 1300. Selection of a view in BST button 1310 transfers the user to BST application 118 to view additional sample details if the sample has been linked through BST application 118. If the sample has not been linked to a sample, view in BST button 1310 is replaced with a link to BST button (not shown).
Access to biological samples, and accurate information about them, is essential to research. For example, progress on research projects may hinge on the availability of tissue samples from individuals with particular phenotypes or genotypes. BST application 118 addresses the need for researchers to find samples, to track access to samples, and to access related clinical data. Samples come into research programs through many avenues. Samples may come from a tissue acquisition and distribution facility, a laboratory, collaborative research sources, or be purchased from a vendor. Using BST application 118, the user can identify the quantity of the sample collected, the preparation method and storage location of the sample, which projects have received the sample, how much of the sample remains for use, how/if the sample was transformed into DNA, RNA, or cell lines, etc.
With reference to
With reference to
With reference to
With reference to
With reference to
With reference to
Medical event detail window 2200 may include a first section 2202 which presents basic information shared by all medical events such as a pre-defined set of data items and links that each medical event generally has available. First section 2202 may include an event type, a start date, an end date, a performing provider, a facility, a report number and/or a report number type, a detailed procedure, etc. Medical event detail window 2200 further may include a plurality of tabs 2204 which provide additional detail associated with a medical event. Exemplary tabs of the plurality of tabs 2204 include “Overview”, “Details”, “Surgery Detail”, “Room Detail”, and “Outcomes” tabs. Additional tabs may include “Imaging” and “Radiation Therapy”. An “Overview” tab 2206 may include an assessment details section 2208, a pathology report grid 2210, pathology report add/remove buttons 2212, a medical event grid 2214, medical event add/remove buttons 2216, and a context search button 2218, etc. The medical event may be classified according to the predefined groupings built for the cancer group to allow the views grouped based on classification. Selection of context search button 2218 allows the user to search textual reports stored in records database 124 by matching strings in the text with the items that need to be entered using medical event detail window 2200 and other user interface windows of medical research application 116.
Assessment details section 2208 may include a vital status selector, a performance score selector, a treatment response selector, and evidence of disease indicators. Assessment details section 2208 provides a mechanism for attaching summary level standardized measures of patient capabilities or response. These assessments are at the time of, or due to, the medical event. The vital status selector may be an overall vital and disease status. The performance score selector may be an overall performance score, such as the World Health Organization five-level scale from normal to completely disabled. The treatment response selector may be an overall measure of disease progression. The evidence of disease indicators may include clinical, biochemical, radiologic, and pathologic. Any additional types of assessment needed, especially fields to support detailed assessment systems, are built and added by the cancer group as custom data for example using metabuilder application 120 discussed with reference to
Selection of a save button 2220 saves the entered data into the medical events grid 1900, 2000, 2100, but leaves medical event detail window 2200 open for further editing if needed. Selection of a “save & close” button 2222 saves the entered data into the medical events grid 1900, 2000, 2100 and closes medical event detail window 2200. Selection of a cancel button 2224 cancels entry of the entered data into the medical events grid 1900, 2000, 2100 and returns the user to medical events tab 722 of patient information window 700.
With reference to
With reference to
A pathology report can be added using an add button of the pathology report add/remove buttons 2212 shown with reference to
If the pathology report of interest is not found, a “Create New Pathology Report” button 2510 may be selected. Selection of button 2510 may cause presentation of a pathology report window 2600 shown with reference to
Metabuilder application 120 provides the ability to include user extensible data configured by the end user into medical research application 116 and/or BST application 118. Metabuilder application 120 may be accessed from medical research application 116 and/or BST application 118, for example, using a button. In an exemplary embodiment, a user also may access metabuilder application 120 from first computing device 102 using browser application 114. One or more windows may be presented to the user. With reference to
In the exemplary embodiment of
Selection of an add button 2806 after selection of a group resource, such as first group resource 2804, of the plurality of group resources 2802 allows the user to create a new data extension which can be added to the selected group resource. With reference to
With reference to
Second window 3004 may include a copy button 3015, a paste button 3017, an add button 3014, and a remove button 3016. Selection of add button 3014 allows the user to create a new tab or a new field depending on the selected item in second window 3004. For example, if a first tree level 3018 is selected by the user, a subsequent selection of add button 3014 causes presentation of a third window 3020. Third window 3020 includes a text field 3022 for entry of a tab name and radio buttons 3024 for layout generation. Radio buttons 3024 allow the user to select whether or not the tab generation is automatic or custom defined by the user. Selection of an “Ok” button 3026 closes third window 3024 and adds the tab extension to the one or more custom user interface items 3006 with the defined tab name. The tab extension is saved as an instance of a class such as an instance of an Attribute Container class in database 120.
If tab 3008 is selected by the user, a subsequent selection of add button 3014 causes presentation of a fourth window 3100 shown with reference to
Selection of copy button 3015 copies a selected extension. A subsequent selection of paste button 3017 pastes a copy of the copied extension into a group/resource for use as a starting point for designing a new extension. As a result, the user can start with a similar extension as a template, rather than having to design an extension from scratch.
With continuing reference to
A meta attribute model to support the extensible data may be represented as a Java package and be deployed as a Java archive (JAR) file. From a class perspective, the meta attribute model includes two main aspects: a definitional aspect (i.e. a “tag”) and a runtime aspect (i.e. a “value”). The main definitional class is for an Attribute, which identifies a piece of extensible data to be collected. The Attribute has a data type, which defines the kind of value to be collected. The data types supported by the model include the data types selectable using data type selector 3108.
The meta attribute model supports the generalized concept of attaching extensible data to any persistent object in an application such as medical research application 116 or BST application 118. For example, users can define extensible data for patients, medical events, tumors, study enrollments, pathology reports, etc. In the model, these objects are considered Attribute Contexts, meaning they have a set of attributes (extensible data) associated with them. Different kinds of extensible data may be collected for the same Attribute Context. For example, a medical event (the Attribute Context) may have a different set of extensible data depending on the event type. To represent a differing set of extensible data, the model uses a class Attribute Configuration, which represents a level at which a set of extensible data (i.e. the Attributes) is defined. Thus, an Attribute Configuration class may be identified by its Attribute Context and other data set filters like the event type and a set of Attributes.
Attributes can be organized under a group attribute. This hierarchy allows a set of attributes to be represented as a “row” while the collection of “rows” represents the group attribute. For example, a group attribute named “Drain Info” may include a drain in date and drain out date as child Attributes as shown below in Table 1.
TABLE 1
Drain Info:
Drain In
Drain Out
Sep. 1, 2005 3:00 pm
Sep. 2, 2005 4:00 pm
Sep. 3, 2005 10:00 am
Sep. 4, 2005 10:20 am
In addition to describing the kind of extensible data to be collected, the meta attribute model can describe the way that the user interface presents the extensible data. A class Graphical Attribute, which is a subclass of Attribute, represents the customizable user interface aspect of the Attribute. For example, Graphical Attribute contains information about layout (x,y), size (width, height), and tab order. Graphical Attributes may be organized in Attribute Containers, which include panels or tabs. The Graphical Attributes in the Attribute Container are organized automatically (default positioning) or if desired, can be organized (and sized) based on a custom layout defined by the user (X/Y positioning). The appropriate attribute information is defined using metabuilder application 120. At runtime, portions of an Altio defined window may be created dynamically, based on the Attribute and Graphical Attribute data collected for an Attribute Configuration. For example, with reference to
TABLE 2
Grouped Under
Name
(GroupAttribute)
Data Type
Attribute Choices
Tab Order
Surgery Type
Attribute
Excisional Resection w/o
1
Choice
limb resalvage
Excisional Resetion with
limb salvage
Intralesional Resection
Other
Resection
Integer
2
Length
Notes
Long Text
3
Drain Info
Grouped
4
Attribute
Date In
Drain Info
Date
1 (within Group)
Date Out
Drain Info
Date
2 (within Group)
At runtime, the data in the meta attribute model is used to construct custom window 3200. For example, a “configure-on-demand” (COD) window can be rendered using the AltioLive suite of software developed by Altio. Altio's COD feature allows a backend command to generate XML at runtime that represents an Altio window. This XML is interpreted by Altio's Presentation Manager and rendered as a window in an Altio container, which enables medical research application 116 and/or BST application 118 to present a customized user interface based on the meta attribute data defined using metabuilder application 120. To utilize this feature, a set of classes that closely model Altio's concept of a window is used to encapsulate the code needed to generate the requisite XML.
A high level class in a COD package contains a method (or a set of methods) for building the Altio window XML based on the Attributes organized in the Attribute Container or set of Attribute Containers. Only a portion of the window may be configurable. A COD application programming interface (API) performs the work of building the configurable portion of the screen and “inserting” it into the fixed XML that defines the standard part of the window created. When the user enters and saves data, the data is stored as Attribute Values. The set of Attribute Values stored for a given Attribute Configuration are stored in an Attribute Value Set. Using this class hierarchy allows the attachment of Attribute Values to any persistent object in an application, such as medical research application 116, because the Attribute Value has no reference to its “parent”. Thus, the association flows downward, from the parent (e.g. the Medical Event) to its Attribute Value Set, and subsequently to its Attribute Values.
In order to better support the various representations of values, including the primitive data types as well as list selections, an AttributeValue class has various subclasses which correspond to the different data types. Exemplary data types which correspond with data types included in data type selector 3108 include: AttributeValueString, AttributeValueLongText, AttributeValueBoolean, AttributeValueExtendedBoolean, AttributeValueInteger, AttributeValueNumeric, AttributeValueDate, AttributeValueDateTime, AttributeValueChoice, AttributeValueDictionary.
Run time data collected may be represented as indicated in Table 3 using a tag format as known to those skilled in the art.
TABLE 3
Attribute Name
Subclass
Value
Smoking History
AttributeValueChoice
1 (Never smoked)
Number of Children
AttributeValueInteger
3
Date of Last Mammogram
AttributeValueDate
Jan. 20, 2004
In general, each field on the configurable tabs of the window are captured as an AttributeValue. However, multiple attribute values may be captured for a screen element. For example, an Attribute may be defined as multi-valued in which the user can select more than one value for the screen element. Typically, this is used to define a multi-select list such as a drop down menu from which multiple selections may be made. For example, to capture different Allergies a patient may have a multi-value Attribute as shown in Table 4 below:
TABLE 4
Attribute Name
Subclass
Value
Allergies
AttributeValueChoice
1 (Pollen)
Allergies
AttributeValueChoice
2 (Mold)
As a second example, attributes organized within a Group Attribute and entered as shown in Table 5. may be captured as shown in Table 6:
TABLE 5
Drain In
Drain Out
Sep. 1, 2005 3::00 pm
Sep. 2, 2005 4:00 pm
Sep. 3, 2005 10:00 am
Sep. 4, 2005 10:20 am
TABLE 6
Group
Attribute
Attribute
Attribute
Group
Name
Name
Subclass
Value
Row ID
Drain In
Drain Info
AttributeValue
Sep. 1, 2005
1
DateTime
3:00 pm
Drain Out
Drain Info
AttributeValue
Sep. 2, 2005
1
DateTime
4:00 pm
Drain In
Drain Info
AttributeValue
Sep. 3, 2005
2
DateTime
10:00 am
Drain Out
Drain Info
AttributeValue
Sep. 4, 2005
2
DateTime
10:20 am
The following code block illustrates reading of an Attribute Value for an object.
Patient patient = (Patient)sess.load(Patient.class, idPatient);
if (patient.getAttributeValueSet( ) != null)
{
List attributeValues =
patient.getAttributeValueSet( ).getAttributeValues( );
for (Iterator i = attributeValues.iterator( ); i.hasNext( ); )
{
AttributeValue av = (AttributeValue)i.next( );
System.out.printIn(av.getAttribute( ).getDisplayName( ) +
“ = “ + av.getValue( ));
}
}
To generate extensible markup language (XML) for attribute values in a way that makes them appear as normal Java data members of the class, the toXMLDocument( ) may be overridden in the class that contains the Attribute Value Set. In the example code block, the Patient.toXMLDocument method has been overridden.
public Document toXMLDocument(List list, int dateOutputStyle)
throws XMLReflectException
{
Document doc = super.toXMLDocument(list, dateOutputStyle);
if (this.getAttributeValueSet( ) != null)
{
this.getAttributeValueSet( )appendXMLDocument(doc);
}
return doc;
}
Because this XML replaces the normal XML generation for an Attribute Value Set, the Attribute Value Set “getter” method is excluded when generating the XML in the example code block below:
public void registerMethodsToExcludeFromXML( )
{
this.excludeMethodFromXML(“getAttributeValueSet”);
}
The following code block illustrates saving an Attribute Value Set for a patient.
Attribute isDiabeticAttr = (Attribute)session.load(Attribute.class,
idAttributeIsDiabetic);
Attribute smokingHistringAttr = (Attribute)session.load(Attribute.class,
idAttributeSmokingHistory);
Patient patient = new Patient( );
Patient.setMRN(mrn);
AttributeValueSet avs = new AttributeValueSet( );
avs.setCreateDateTime(new java.util.Date(System.currentTimeMillis( )));
patient.setAttributeValueSet(avs);
sess.save(patient);
sess.flush( );
AttributeValue av = new AttributeValueExtendedBoolean( );
av.setAttribute(isDiabeticAttribute);
av.setValueExtendedBoolean(AttributeValueExtendedBoolean.TRUE);
av.setIdAttributeValueSet(avs.getIdAttributeValueSet( ));
sess.save(av);
sess.flush( );
av = new AttributeValueChoice( );
av.setAttribute(smokingHistoryAttribute);
AttributeChoice theChoice = null;
for (Iterator i1 =
smokingHistoryAttribute.getAttributeChoices( ).iterator( ); i1.hasNext( );)
{
AttributeChoice choice = (AttributeChoice) i1.next( );
if (choice.getChoice( ).equals(“Never Smoked”))
{
theChoice = choice;
break;
}
}
av.setValueAttributeChoice(theChoice);
av.setIdAttributeValueSet(avs.getIdAttributeValueSet( ));
sess.save(av);
sess.flush( );
The following code block illustrates reading the Attributes for an Attribute Configuration:
String queryString=“select attr from Attribute as attr”+“WHERE attr.configurableContent.codeAttributeContext=‘PAT’”;
List patientAttributes=sess.createQuery(queryString).list( );
The Attribute Value class may be Hibernate mapped so that making the values persist is a straightforward exercise. However, access to each attribute value should be qualified by the name (or identifier) of the Attribute. For example, a query in Hibernate query language (HQL) syntax when the flag isSmoker is represented in a traditional object oriented/relational (O/R) model is shown below.
SELECT pat
FROM Patient as pat
WHERE pat.isSmoker=‘Y’
The HQL syntax is in contrast to the query when isSmoker is represented as an Attribute Value as shown below.
SELECT pat
FROM Patient as pat
JOIN pat.attributeValueSet as avs
JOIN avs.attributeValues as av WITH av.attribute.attributeName=‘isSmoker’ WHERE av.valueString=‘Y’
The attribute name qualification may be defined using JOIN criteria and a value comparison may be achieved using a WHERE clause for two reasons. First, in cases where the isSmoker value is returned, it is important that rows not be eliminated from the result set for those patients that do not have an isSmoker attribute value. This may be accomplished by using a LEFT JOIN and applying the attribute name qualification using the join criteria. Use of the WHERE clause to perform the attribute name qualification may eliminate rows Second, for complex selection criteria involving ANDs and ORs, it is important that the parentheses reflect the order of evaluation for the value comparisons not the attribute name qualifications. By isolating the attribute name comparisons in the JOIN criteria, the parentheses can be applied correctly to communicate the proper order of evaluation.
An example query is shown below for multiple selection criteria.
SELECT pat
FROM Patient as pat
JOIN pat.attributeValueSet as avs
JOIN avs.attributeValues as avSmoker WITH avSmoker.attribute.attributeName=‘isSmoker’
JOIN avs.attributeValues as avDiabetic WITH avDiabetic.attribute.attributeName=‘isDiabetic’ WHERE avSmoker.valueString=‘Y’ AND avDiabetic.valueString=‘N’
The attribute value's data type is identified in the query. For example, when querying a date, a Hibernate property valueDate may be queried as shown in the example below.
SELECT pat
FROM Patient as pat
JOIN pat.attributeValueSet as avs WITH av.attribute.attributeName=‘symptomOnsetDate’
JOIN avs.attributeValues as av WHERE av.valueDate>‘12/31/2004’
The following list identifies the Hibernate property to query and the corresponding database table column:
Hibernate Property
(Java data member)
Database Table Column
valueString
valueString
valueBoolean
valueExtendedBoolean
valueDate
valueDateTime
valueDateTime
valueInteger
valueInteger
valueNumeric
valueNumeric
valueAttributeChoice
valueIdAttributeChoice
(to join to table
AttributeChoice)
valueIdDictionary
valueIdAttributeDictionary
(to join to table
AttributeDictionary)
valueLongText
valueIdLongText (to join
to table LongText)
The AttributeValueChoice and AttributeValueDictionary provide a mapping to a selection list. For example, to find all Patients with allergy=‘Pollen’ (an Attribute Choice), the HQL query may be formed as:
SELECT pat
FROM Patient as pat
JOIN pat.aftributeValueSet as avs
JOIN avs.attributeValues as av WITH av.attribute.attributeName=‘allergy’ AND av.valueAttributeChoice.choice=‘Pollen’
If the id of the ‘Pollen’ Attribute Choice is known, the query may be formed as:
SELECT pat
FROM Patient as pat
JOIN pat.attributeValueSet as avs
JOIN avs.attributeValues as av WITH av.attribute.attributeName=‘allergy’ AND av.valueAttributeChoice.idAttributeChoice=521
When querying Attribute Values from a standard vocabulary (AttributeValueDictionary), the query has a similar form though the value is represented by a different Hibernate property.
SELECT pat
FROM Patient as pat
JOIN at.attributeValueSet as avs
JOIN avs.attributeValues as av WITH av.attribute.attributeName=‘deathSource’ AND av.valueIdAttributeDictionary=1621
When querying attributes belonging to different Attribute Value Sets, each attribute value set may be joined separately. For example, if the user is searching for patients with particular surgery medical events attribute values and “Followup” medical event attribute values, two different Attribute Configurations are queried. If the search involves looking for patients with a recoveryTimeinMinutes greater than an hour and a medicalComplication=‘Pulmonary’, the search uses two different Attribute Value Sets. As a result, the query joins each Attribute Value Set to avoid returning an empty set in which no medical event has both recoveryTimeinMinutes and medicalComplication as an attribute. The following query illustrates a search across two different Attribute Value Sets:
SELECT pat
FROM Patient as pat
JOIN pat.medicalEvents as mesurg WITH meSurg.eventType.eventType=‘Surgery’
JOIN meSurg.attributeValueSet as avsSurg
JOIN avsSurg.attributeValues as avSurg WITH avSurg.attribute.attributeName=‘recoveryTimeInMinutes’
JOIN pat.medicalEvents as meFollow WITH meFollow.eventType.eventType=‘Follow Up’
JOIN meFollow.attributeValueSet as avsFollow
JOIN avsFollow.attributeValues as avFollow WITH avFollow.attribute.attributeName=‘medicalComplication’ WHERE avsurg.valueInteger>60 AND avFollow.valueIdAttributeChoice>121
To evaluate an attribute name qualification with its value comparison an OR logical operator with selection criteria on attribute values can be used. Normally, parentheses are used in a query to establish an order of operation. For example, to find all patients where isSmoker “Y” OR is Diabetic “Y”, the query may have the following form:
SELECT pat
FROM Patient as pat
LEFT JOIN pat.attributeValueSet as avs
LEFT JOIN avs.attributeValues as avSmoker WITH avSmoker.attribute.attributeName=‘isSmoker’
LEFT JOIN avs.attributeValues as avDiabetic WITH avDiabetic.attribute.attributeName=‘isDiabetic’ WHERE avSmoker.valueString=‘Y’ OR avDiabetic.valueString=‘Y’
When Attribute Values organized under a Group Attribute are queried, it may be necessary to restrict the query to meet the criteria of the attributes within a particular Group Attribute “row”. For example, to find all patients with a drain that was placed and removed in the first week of September, the query may match the attribute values for one Drain Info “row”. This is accomplished by adding the additional criteria which restricts attribute comparison to the same groupAttributeRowId as shown below.
SELECT pat
FROM Patient as pat
JOIN pat.medicalEvents as meSurg WITH meSurg.eventType.eventType=‘Surgery’
JOIN meSurg.attributeValueSet as avsSurg
JOIN avsSurg.attributeValues as avDrainIn WITH avDrainIn.attribute.attributeName=‘drainInDate’
JOIN avsSurg.attributeValues as avDrainOut WITH avDrainOut.attribute.attributeName=‘drainOutDate’
WHERE avDrainIn.valueInteger between (‘9/1/2005’ and ‘9/8/2005’) AND avDrainOut.valueInteger between (‘9/1/2005’ and ‘9/8/2005’) AND avDrainIn.groupAttributeRowId=avDrainOut.groupAttributeRowId
Medical research application 116 and/or BST application 118 may utilize a Java aspect components framework for basic client-server interactions, but the atomic control of what and how a report is displayed may be controlled using a project specific XML configuration file and report specific classes local to the project and global to the environment. Reports may be described in an XML file (i.e., report.xml) for each project. The XML file may define the following report attributes: a. a report's name, description, processing class, output file name; b. a query for the data in the report; c. owners of a report; d. permissions required to run/view a report; e. columns displayed on the report including their display order and column header names; f. parameters collected for the report's query, including the parameter captions and display order for the report query form, data-type information, and specific dictionary query information if referencing dictionary data.
An example Report.xml file holding a single report description is shown below:
<?xml version==“1.0” encoding=“UTF-8”?>
<Reports winstl=“default” hdgfontstl=“LISTSTHEADINGh”d gcol=“B7D3A4”
rowcol2=“EEEEEO” selectcol=“FFFFCC” ctrlcapfonbtl=“al_LABEL” ctrlfontstl =“al.-STD”>
<report name=“CustomTest2” title=“Custom Report2” description=“”
className=“ReportPANPatients.ccr”>
<query type=“sqlWs ql=“select one,two,three from MyTable where this=‘_paramI-
’that=‘_param2-’ other=‘garam3’” hql=“”/>
<owners>
<Owner name=“SARCm description=”Sarcoma Groupu/>
</owners>
<permissions>
<permission name=“canViewReport” description=“User can view reports”/>
<permission name=“canViewIdentity” description=“User can view identified dataf’/>
</permissions>
<columns>
<column narne=“oneM caption=“One” displayOrder=“I”/>
<column name=“two” caption=“Two” displayOrder=“2”/>
<column name=“threen caption=‘Three” displayOrder=“4”/>
</columns>
<params>
<param caption=“One” name=“oneC type=”stringU querySubst=“-paramI-”
displayOrder=“I”/>
<param caption=“TwoV name=”twoMt ype=“dateS querySubst=”,~..pararn2-.d”
isplayOrder=”T/>
<param caption=7hreeU name=“threen type=”select“ querysubst=”-paramy
displayOrder=Y>
<options>
<option value=“I” display=“One”/>
<option value=“Zn display=“Two”/>
<option value=“3” display=“Three”/>
</options>
</param>
</params>
</report>
</Reports>
With continuing reference to
Report generation window 3300 provides a means for extracting information from medical research application 116 and/or BST application 118 by building, running, and reusing custom queries. In general, the user formulates a query by selecting report columns and applying filters or selection criteria for defining the data to be reported. Report generation window 3300 may include a query selection section 3302 and a query definition section 3304. Query selection section 3302 may include a tree view 3306, which may include a personal query folder 3308 and a shared query folder 3310. Personal query folder 3308 includes one or more query files 3312. Similarly, shared query folder 3310 may include one or more shared query file (not shown). The list of reports presented using personal query folder 3308 and shared query folder 3310 may be read from a cached list or processed from an XML file if there have been changes to the XML configuration. The class receives an action parameter from a request telling it to return the report list. The report list displayed may be controlled based on ownership and permission criteria defined by the project and based on the current user. The user may add/remove queries (reports) using add/remove buttons 3309.
Query definition section 3304 may include a query name text box 3316, a share query selector 3318, a query description text box 3320, a report column tab 3322, a filter tab 3324, a query path text box 3326, a query owner text box 3328, a run button 3344, and a save button 3346. The user defines a name for identifying the query using query name text box 3316. The name identifies the query in the one or more query files 3312. Selection of share query selector 3318 adds the query to shared query folder 3310. De-selection of share query selector 3318 adds the query to personal query folder 3308. The user can describe the query in more detail using the query description text box 3320.
Report column tab 3322 may include add/remove buttons 3330, a move up button 3332, a move down button 3333, a consolidate selector 3334, a “tally and consolidate” selector 3336, and a report column grid 3338. The user may add/remove columns to a report using the add/remove buttons 3330. The user may define an order for presentation of the columns in the report using move up button 3332 and move down button 3333. Selection of move up button 3332 shifts the report column to the left and selection of move down button 3333 shifts the report column to the right. Selection of consolidate selector 3334 consolidates identical information into a single row of information in the query so that a list of unique records or values is displayed. Similarly, selection of “tally and consolidate” selector 3336 consolidates identical information into a single row of information in the report. Additionally, however, selection of “tally and consolidate” selector 3336 causes an additional column to be added to the report showing the number of records that match the information displayed in that row. Thus, the report includes a list of unique values with a count of how many times each unique value appears among the records included in the query. Report column grid 3338 may include a data path identifier column 3340 and a column name column 3342. Data path identifier column 3340 defines the data path for the data item to be evaluated in the column of the report. Column name column 3342 defines the header for the column in the report generated.
The user executes the defined queries for each column to generate a report using run button 3344. Selection of run button 3344 invokes a request to AdhocRunQuery.java which passes in the query definition defined in report column tab 3322 and in filter tab 3324. The request is processed, checking the ownership and permission criteria. The identified parameters are loaded into the requested report object and the resulting success page is set based on the format passed in the request. When the query is executed, the results are returned in a grid. The user saves the defined queries for each column using save button 3346 for later execution or modification. An existing query can be copied and modified to define a new query definition. The defined queries associated with a report generation are included in personal query folder 3308 or shared query folder 3310 depending on the status of share query selector 3318.
Selection of a query folder from personal query folder 3308 or shared query folder 3310 causes presentation of the current query information in query definition section 3304. For example, selection of a query folder 3314 from the one or more query files 3312 causes presentation of a first query definition section 3400 shown with reference to
With reference to
User selection of an add button of the add/remove buttons 3309 may cause presentation of an add report column window 3500 shown with reference to
User selection of an add button of the add/remove buttons 3414 may cause presentation of an add filter window 3600 shown with reference to
The exemplary embodiments may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof to control a computer to implement the disclosed embodiments. The term “computer readable medium” can include, but is not limited to, magnetic storage devices (e.g., hard disk, floppy disk, magnetic strips, . . . ), optical disks (e.g., compact disk (CD), digital versatile disk (DVD), . . . ), smart cards, flash memory devices, etc. Additionally, it should be appreciated that a carrier wave can be employed to carry computer-readable media such as those used in transmitting and receiving electronic mail or in accessing a network such as the Internet or a local area network (LAN).
The foregoing description of exemplary embodiments of the invention have been presented for purposes of illustration and of description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and modifications and variations are possible in light of the above teachings or may be acquired from practice of the invention. The functionality described may be implemented in a single executable or application or may be distributed among modules that differ in number and distribution of functionality from those described herein. Additionally, the order of execution of the functions may be changed depending on the embodiment. The embodiments were chosen and described in order to explain the principles of the invention and as practical applications of the invention to enable one skilled in the art to utilize the invention in various embodiments and with various modifications as suited to the particular use contemplated. It is intended that the scope of the invention be defined by the claims appended hereto and their equivalents.
Courdy, Samir, Spigle, Cynthia, Ross, Carolyn, Di Sera, Tonya, Haroldsen, Cody, Holmberg, Jason
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
5524238, | Mar 23 1994 | BREAKOUT I O CORPORATION | User specific intelligent interface which intercepts and either replaces or passes commands to a data identity and the field accessed |
5772585, | Aug 30 1996 | EMC, Inc | System and method for managing patient medical records |
5838973, | May 03 1996 | Accenture Global Services Limited | System and method for interactively transforming a system or process into a visual representation |
6065002, | Oct 31 1996 | ELLUCIAN COMPANY L P | Simplified interface for relational database access using open database connectivity |
6322502, | Dec 29 1997 | I M D SOFT LTD | Medical information system |
7213208, | Sep 12 2002 | SAP SE | Data container for interaction between a client process and software applications |
20030110464, | |||
20060004725, | |||
20060047760, | |||
20060080083, | |||
20060147891, | |||
20060229928, | |||
20070127597, | |||
20080021739, | |||
20080198856, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
May 14 2007 | The University of Utah Research Foundation | (assignment on the face of the patent) | / | |||
May 16 2007 | COURDY, SAMIR | The University of Utah | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 024528 | /0517 | |
May 16 2007 | SPIGLE, CYNTHIA | The University of Utah | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 024528 | /0517 | |
May 16 2007 | ROSS, CAROLYN | The University of Utah | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 024528 | /0517 | |
May 16 2007 | HAROLDSEN, CODY | The University of Utah | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 024528 | /0517 | |
May 16 2007 | HOLMBERG, JASON | The University of Utah | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 024528 | /0517 | |
May 21 2007 | DI SERA, TONYA | The University of Utah | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 024528 | /0517 | |
Jul 20 2007 | The University of Utah | The University of Utah Research Foundation | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 024528 | /0584 |
Date | Maintenance Fee Events |
Aug 19 2019 | REM: Maintenance Fee Reminder Mailed. |
Feb 03 2020 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Dec 29 2018 | 4 years fee payment window open |
Jun 29 2019 | 6 months grace period start (w surcharge) |
Dec 29 2019 | patent expiry (for year 4) |
Dec 29 2021 | 2 years to revive unintentionally abandoned end. (for year 4) |
Dec 29 2022 | 8 years fee payment window open |
Jun 29 2023 | 6 months grace period start (w surcharge) |
Dec 29 2023 | patent expiry (for year 8) |
Dec 29 2025 | 2 years to revive unintentionally abandoned end. (for year 8) |
Dec 29 2026 | 12 years fee payment window open |
Jun 29 2027 | 6 months grace period start (w surcharge) |
Dec 29 2027 | patent expiry (for year 12) |
Dec 29 2029 | 2 years to revive unintentionally abandoned end. (for year 12) |