Abstract:
A system and appertaining method provide for pre-fetching records from a central data base to a local storage area in order to reduce delays associated with the data transfers. User patterns for requesting data records are analyzed and rules/strategies are generated that permit an optimal pre-fetching of the records based on the user patterns. The rules/strategies are implemented by a routine that pre-fetches the data records so that users have the records available to them when needed.

Description:
BACKGROUND  
       [0001]     In many fields, users must access and modify data located elsewhere on their own computers or workstations. In some situations, the volume of data needed by a user can be large and therefore it can be time consuming to download the needed information on demand. One example of such a situation is in the medical field where information about patients is stored in a central database. A patient typically undergoes various tests and examination procedures, such as x-ray, MRI, etc., and the results of these various procedures are stored in a common or distributed database. Medical personnel then access this information (“patient studies”) for diagnostic and evaluative purposes.  
         [0002]     Strategies have been devised by which users requiring such information can pre-fetch the patient studies prior to use so that the information is immediately available to them when needed.  
         [0003]     Existing pre-fetching strategies currently follow fixed rules. For example, a typical rule is to pre-fetch all unread studies from the current day over the night so that by morning of the next day, all the studies reside at the users&#39; workstation. The users do not have to load the studies from the previous day, because they were already pre-fetched at their workstation resulting in a loading time advantage.  
         [0004]     This has been implemented in a number of ways. For example, as taught by Rogan in Rogan&#39;s “Everything On-line” technology makes pre-fetching of digital medical images superfluous, http://www.hoise.cornlvmw/00/articles/vmw/LV-VM-04-00-27 html, Jun. 27, 2005 (herein incorporated by reference), a medical specialist presents a list of images which he wants to consult a day on beforehand in order to timely load them into the system. Overnight, the required images are then fetched in batch-mode out of a Picture Archiving and Communication System (PACS) to place them in stand-by locally. Proceeding in this manner was necessary since the available bandwidth often does not allow to directly download very large images. In most cases, local workstations have insufficient disk capacity to load a large number of large-sized image files.  
         [0005]     However, the strategy proposed by Rogan is a static pre-fetching strategy, which does not take into account dynamic changes and the individual user behavior, as well as different individual hospital environments. Also this brute-force approach does not allow for fine tuned adjustments and/or for transferring only the relevant images in contrast to transferring the whole study.  
         [0006]     Another approach is provided by BRIT Systems&#39; Roentgen Files (see BRIT Systems Roentgen Files, http://www.brit.com/RoentgenFiles.htm, Jun. 27, 2005, herein incorporated by reference). In this system, pre-fetching is based on body-region, modality type and exam date. These downloaded exams can be pre-loaded to the viewer according to table driven rules. As with Rogan, pre-fetching is table driven or, in other words, static and not self-adapting and dynamic.  
         [0007]     What is needed is an adaptive system that dynamically updates the pre-fetching strategy based on, e.g., an individual hospital environment and user behavior. Such an adaptive/dynamic system could result in a higher optimization potential than merely using static rules.  
       SUMMARY  
       [0008]     The present invention relates to a self-optimization caching strategy for image data in which every workplace is not directly connected to the image data management, but rather is connected via a proxy service. All existing proxy services store their metadata (e.g., who accesses what data, where and when) in a centralized database, (the “metadata repository”). By using this information, one can mine for regularities of the data access and, using these, devise a pre-fetching strategy.  
         [0009]     According to various embodiments of the invention, a pre-fetching cache service is provided that adapts automatically to the users&#39; behavior and environment and a self-learning pre-fetching mechanism is provided that advantageously reduces image loading time after accessing a set of similar images on a regular basis.  
         [0010]     All services, workstations and users that access/load image data from the image data management and/or other workstations can benefit from this inventive solution, which creates shorter perceived access/loading times for images, higher perceived loading performance of image viewing workstations, and self-optimizing workflow support, i.e., automated adaptation of the pre-fetching strategy to the customer/user needs and customer/user access behavior. Furthermore, the invention can help avoid peaks in network traffic and provide efficient image loading for high-volume reading, resulting in a more usable system. 
     
    
     DESCRIPTION OF THE DRAWINGS  
       [0011]     An embodiment of the invention is described below with reference to the Figures discussed below.  
         [0012]      FIG. 1  is a block diagram illustrating the primary components of the system;  
         [0013]      FIG. 2  is a block diagram showing an expanded portion of the metadata repository; and  
         [0014]      FIG. 3  is a flow chart illustrating the conversion to rules and strategies and deployment of the pre-fetch strategies. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0015]      FIG. 1  illustrates an embodiment of the invention utilizing the pre-fetching of records. The embodiment described below relates to a medical institution setting where the data records comprise image data, however, the invention can be generalized to any type of database system.  
         [0000]     Populating the Central Data Store  
         [0016]     In an initial stage, the system  10  operates according to a traditional design. Data records related to a patient are gathered by an entity that serves as a record source  12 . Such a record source  12  could be imaging devices, such as an x-ray machine, MRI, CAT scan, or other known imaging devices. In addition, the record source  12  could be any other type of computer-based system, such as a data entry terminal or the like. In  FIG. 1 , the record source  12  is reflected in image data records related to a modality of the images. According to this embodiment, patient-related data records  200  are stored in a central data store  14  after passing through a record data management function  102 . These data records  200  can include records of any type, but according to an embodiment of the invention relate to image data of various modalities, such as CT, MR, etc.  
         [0017]     Central data store  14  could be a implemented as a physically centralized database or could be constructed as a distributed data base; in either case, the central data store  14  serves as a place where patent records are aggregated. The records may contain information such as a patient ID, an identifier for the type of data represented in the record, the medical personnel associated with the record, a ward or location identifier, etc. This central data store  14  could be implemented as part of the previously mentioned PACS system in a clinical environment.  
         [0018]     Furthermore, the central data store  14  may be broken down into a short-term data store STS  14   a  and a long-term data store LTS  14   b . The STS  14   a  could be implemented by a random access memory (RAM), cache, hard drive (that could include a RAID storage system), local file system, local data base, that is easily and immediately available to provide data to a requestor. The LTS  14   b  could be implemented by any form of a data archival system and could include CD/DVD jukebox, tape archive, or any form of archival storage. The LTS  14   b  utilizes a storage that is relatively inexpensive for storing large volumes of data and is able to maintain the data for long periods of time without degradation—however, the LTS  14   b  may require user intervention, such as the loading of tapes or disks, or may be considerably slower in providing data when requested, possibly due to the use of carousels or the like in retrieving the physical media upon which the data is stored or possibly due to the inherent slowness in data transfer of the media reading mechanism. When the LTS  14   b  is utilized for storage, the prefetch/preload mechanism can be used to load data to the STS  14   b.    
         [0000]     Querying the Central Data Store and the Proxy Server/Service  
         [0019]     A user  40  wishing to access a patient&#39;s data record  200  is logged into a workstation client  30   a - 30   d  that accesses application permitting the user  40  to view or modify image data or other data records  200  obtained via a query or request  202 . The workstation clients  30   a - 30   d  may be classified according to the functionality they are capable of performing. The workstation clients may be fat clients  30   a ,  30   b , thin or thin-rich clients  30   c , or ultra-thin clients  30   d.    
         [0020]     A central processing server  32  may be used in conjunction with the workstation clients  30   c ,  30   d , depending on their capability. A processing server  32  is a server that calculates the display content from the image data from the image data management  102  and sends only the display data to one or more thin clients  30   c ,  30   d . In the case of 3D image data, the processing server  32  calculates the 3D volume and would only send the desired 2D images to the thin client  30   c ,  30   d , but not the whole 3D volume. In case when a central processing server  32  is used, the prefetch/preload mechanism is used to load data  200  to the processing server  32  and not to the physical local workplace  30   c ,  30   d  of the user  40 . The processing server  32  supports these clients  30   c ,  30   d  by performing heavy processing jobs, such as the conversion of 3-D data into 2-D display representations noted above.  
         [0021]     However, the central processing server  32  is not needed when the workstation client  30   a ,  30   b  is capable of performing its own heavy processing. The following list identifies some workstation client  30  possibilities: 
        fat client  30   a ,  30   b  processes all jobs, including graphical user interface (GUI) and advanced graphics processing without the help of the processing server  32      thin-rich client  30   c  the GUI and some basic graphic processing runs on the client  30   c , with more advanced graphics processing being run on the processing server  32      thin client  30   c  the GUI runs on the client  30   c , but the graphics processing runs on the processing server  32      ultra-thin client  30   d  the majority of processing, even the GUI, runs on the processing server  32         
 
         [0026]     When the user  40  makes a request for data records  202  from a one of the workstations  30   a - 30   d , this request may be made by the user  40  selecting a data record from a work list presented on a monitor of the workstation  30   a - 30   d . In certain situations, such as the ultra-thin client  30   d  situation, the request  202  may be sent in parallel to the proxy server  20   d  and to the record data management module  102 . Alternately, the request  202  may be sent in series, first to the proxy server  20   a - 20   c  and then to the record data management module  102 .  
         [0027]     The proxy server  20   a - 20   d  extracts the metadata  204  of the query (e.g., the requesting user ID, the location originating the request  202  the workstation  30   a - 30   d  originating the request  202 , the time of the request  202 , any query restrictions, patient name, and possibly any other information related to the request  202 , etc.) from the request  202  and stores this information (the metadata  204  of the query) in the local cache  22   a - 22   d  (note that a cache  22   d  and proxy server  20   d  may be associated with the processing server  32  as well). The requested data records  200  (e.g., images) are either retrieved from the central data store  14  by the proxy service  20   a - 20   d  or by the record data management module  102  depending whether the requested records  200  are either locally cached  22   a - 22   d  in the proxy service  20   a - 20   d , or not. The local cache, i.e., local record/data store  22   a - 22   d , can be a random access memory (RAM), cache, hard drive, local file system, local data base, etc. on either a client or another server (i.e., processing server  32 ).  
         [0028]     The requested data record  200  is copied to a local storage area cache  22   a - 22   d  of the workstation  30   a - 30   d  where the user  40  can access it for evaluation and possibly make modifications.  
         [0000]     Collecting the Metadata from the Proxy Servers  
         [0029]     In contrast to the known accessing systems, however, metadata  204  from the data record requests  202  is additionally provided by the proxy servers  20   a - 20   d , based on the request for data records  202 , to a metadata repository  50  ( FIG. 2 ) that stores the metadata in a raw metadata storage area/cache  52 , which can include the similarities of query results (e.g., the attribute ward is equal, the date is today, etc.). The metadata repository  50  collects metadata  204  from all proxy servers  20   a - 20   d  in the system and aggregates all of the metadata  204  into the raw metadata storage area  52 . The metadata can be pushed into the metadata storage area  52  by the proxy servers  20   a - 20   d , or it may be pulled into the metadata storage area  52  from the proxy servers  20   a - 20   d , and this can be implemented as an asynchronous (e.g., interrupt) or synchronous (e.g., polled) mechanism.  
         [0030]     It is also possible that the metadata repository  50  contains a cache (possibly RAM, a file system, or other known caching mechanisms) to store the requested data records  200  to relieve the burden on the central data store from providing multiple copies of the same data record  200 . This cache may alternately be associated with the record data management module  102 .  
         [0000]     Translating Aggregated Metadata into Rules and Strategies  
         [0031]     As illustrated in  FIG. 2 , the metadata repository  50  contains or has associated with it a conversion routine  150  that takes the aggregated raw metadata from the data store  52  and converts this into rules and strategies that are stored in a rules and strategies database  54 . The conversion routine  150  mines the metadata  204  and determines regularities based on information contained within the metadata.  
         [0032]      FIG. 3  illustrates the process  300  for converting the aggregated raw metadata into rules and pre-fetch strategies. Accordingly, in a first step  302 , for ever request object in the repository, a clustering of similar requests is performed. Theoretically, both density-based, hierarchical and partitioning (flat) clustering algorithms can be used to mine for regularities in the raw metadata, to find groups of requests which have strong similarities or address similar documents or datasets. Therefore each request is represented as an object in the raw metadata database  52 . In a preferred embodiment, every request object has a vector of k properties, describing the characteristics of the request, such as the requesting user  40 , its role, the workstation  30   a - 30   d  where the request was placed, the query statement itself, the time and weekday, etc. Based on this vector, the request objects can be set into relation to each other and a “distance” between two request objects can be computed for quantification of the similarity, using known vector-based mathematics.  
         [0033]     Finding similarities and regularities in a set of recorded requests is then done by grouping similar, close-by objects into clusters. Therefore, both the density based partitioning algorithms, as well as the hybrid clustering approaches (which use a combination e.g., of the above mentioned approaches) has proven to be most promising and suitable.  
         [0034]     Density based algorithms utilize growing clusters, which get extended as long as the density of objects in their neighborhood exceeds a predefined threshold. An example algorithm for the density based approach is the well-known DBSCAN-algorithm (Ester M., Kriegel H.-P., Sander J., Xu X.: A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise, Proc. 2nd int. Conf. on Knowledge Discovery and Data Mining, Portland, Oregon, 1996, AAAI Press, 1996, herein incorporated by reference).  
         [0035]     The hierarchical clustering algorithms stepwise aggregate objects into groups (agglomerative approach) or stepwise split/subdivide bigger groups into subgroups (divisive approach). Partitioning clustering methods assign the objects to a predefined number of clusters. The CHAMELEON algorithm can be mentioned as a suitable example for a hybrid clustering approach, using a combination of partitioning and hierarchical proceeding (G. Karypis, E-H Han, and V. Kumar. CHAMELEON: A hierarchical clustering algorithm using dynamic modeling. IEEE Computer, 32(8):68-75, 1999, herein incorporated by reference).  
         [0036]     A second step  304  is performed to extract the cluster properties. For each previously identified cluster, the characteristic cluster properties are extracted. Based on the set of resulting clusters, which were retrieved by the, e.g., periodically run clustering algorithm, the cluster properties are extracted. Therefore, every cluster of related requests is examined for which properties of the requests had caused the clustering and therefore had an impact on the similarity of these requests. By way of example, a set of cluster properties for a specific cluster could be that all requests address mainly x-ray images, which acquision date is equal to the date of the query/request and were requested/posted by a user named “John Smith” and mainly from a workstation labeled “WS 1264 ”.  
         [0037]     The third step  306  is to derive/generate the pre-fetch strategies from the cluster properties. Using the previous example, this would translate into the following strategy “always pre-fetch/mirror images from the x-ray ward identifying John Smith as a user and send them to workstation WS 1264 .” 
         [0038]     The fourth and final step  308  is to implement the derived/generated strategy by sending the appropriate control messages to ( 102 , 14 ,  14   a ,  14   b ) or triggering the appropriate sub-systems ( 102 , 14 ,  14   a ,  14   b ). All of the rules and strategies so developed are stored in the rules and strategies database  54 .  
         [0000]     Implementing the Pre-fetch Strategies  
         [0039]     The rules and strategies developed as described above must then be implemented. An implement pre-fetch strategies module  104  takes the strategies from the rules and strategies database  54  and begins making control requests  206  from the record data management module  102  based on these strategies  54 . These requests  206  initiate the downloading of the data records  200  just the same as if the user  40  had actually made the requests  202  from the workstation  30   a - 30   d  itself. The implement pre-fetch strategies module  104  may incorporate various constraints that are not a part of the metadata itself, but rather constitute additional system factors to be considered.  
         [0040]     For example, it may note that there is ample bandwidth available for downloading between the hours of 12am and 5am and therefore concentrate the downloading between these hours. Alternately, it may detect that the central data store  14  is experiencing an abnormal load at a particular time despite the fact that this time occurs during a time period of high available bandwidth. Therefore, it may decide to defer the requests for data records. Additional system factors could include that a particular user  40  will be on vacation for two weeks, or that one user should be substituted for another for a given period of time.  
         [0041]     Thus, with this system, it is possible, for example, to detect regularities like: “User &lt;A&gt; always accesses the image data from &lt;a certain modality&gt; during &lt;11am&gt; to &lt;1pm&gt; at workplace &lt;X&gt;, &lt;Y&gt; or &lt;Z&gt;”. By using this knowledge, the record data can be easily be pre-fetched at the corresponding proxy service. This technique results in shorter access/loading times for the image data sets.  
         [0042]     It is important that data consistency at all caches and databases has to be ensured. This can be done by using one of the many available known replication and synchronization algorithms and strategies for distributed datasets (see, e.g., Baruch Awerbuch, Ciprian Tutu, “Maintaining Database Consistency in Peer to Peer Networks” (2002), http://citeseer.ist.psu.edu/503365.html, Jun. 27, 2005, herein incorporated by reference).  
         [0000]     Exemplary Case Studies  
         [0043]     The above discussed system can be explained with reference to the following hypothetical case study.  
         [0044]     Dr. Smith always reads his CT and MR exams from 11am to 3pm at one of the three reading workstation of Radiology Department A. This trend is detected and the system automatically pre-fetches unread studies for Dr. Smith at these three reading workstations.  
         [0045]     When Dr. Smith logs in at 11am on his workstation, the images are already loaded on these three workstations and he can immediately start her image reading. In the afternoon (after 3pm) however, Dr. Smith reads at a different radiology department, Radiology Department B. The system knows this by analyzing Dr. Smith&#39;s reading behavior (based on the metadata related to past requests of Dr. Smith) and pre-fetches the afternoon studies to Radiology Department B.  
         [0046]     In contrast to Dr. Smith, Dr. Gonzales only reads at his reading workstation located in his office. Therefore, all of his studies are pre-fetched to only one workstation always.  
         [0047]     A myriad of different possibilities of pre-fetching can be employed by this system. One is not restricted to only one pre-fetching rule, nor does the rule have to be static—it can change over time based on the monitored metadata relating to requests for data records.  
         [0048]     The following table illustrates example rules  54  extracted from the metadata  52  by detecting the following trends: 
        a) Usually Dr. Meier reads CT chest images at either Workstation A or B between 2pm and 5pm;        
 
         [0050]     b) Usually Dr. Muller reads MR images at Workstation C at no fixed time during the day.  
                                                                 User A: Dr. Meier   User B: Dr. Muller                                    Workstation A   send last N unread CT chest               studies to Workstation A       Workstation B   send last N unread CT chest           studies to Workstation B       Workstation C       send last N unread MR               studies to Workstation C                  
 
       Table  
     Exemplary Strategies  
       [0051]     In order not to overload the image data management with pre-fetching, a limited pre-fetching may be implemented by applying the following exemplary threshold mechanism. A threshold limit of, e.g., N=3 may be applied to always send only the last three unread studies. In this example, only the last three unread CT chest studies are sent to Workstation A and B and only the last three unread MR studies are send to Workstation C.  
         [0052]     Dr. Meier selects the next unread CT chest study “Mrs. Schmidt” from the worklist at Workstation A. This study is already pre-fetched at the local cache of Workstation A and the study is loaded locally. Also, via a replication and synchronization mechanism such as that discussed above, Worksation B and the image data management are notified that Dr. Meier is currently reading the CT chest study from “Mrs. Schmidt”. The CT chest study from “Mrs. Schmidt” is now reserved for Dr. Meier.  
         [0053]     However, in case Dr. Meier wants to read an MR study at Workstation A, the corresponding study is not cached locally and has to be loaded from the record data management. In this case, Dr. Meier does not follow his usual pattern when reading images and hence the pre-fetching rule did not account for this behavior. In other words, when ever a user does not follow his/her regular reading pattern, the studies are not pre-fetched and have to be loaded from the image data management, which results in longer loading times. Nonetheless, repeated access from this new workstation is detected via the metadata each request generates, and the rules are adapted to accommodate new behavior by the users.  
         [0054]     Any number of criteria may be used for establishing and defining the rules and strategies that are implemented by the system. Additionally, any type of information can be pre-fetched. The system is not limited to image data or even medical data.  
         [0055]     For the purposes of promoting an understanding of the principles of the invention, reference has been made to the preferred embodiments illustrated in the drawings, and specific language has been used to describe these embodiments. However, no limitation of the scope of the invention is intended by this specific language, and the invention should be construed to encompass all embodiments that would normally occur to one of ordinary skill in the art.  
         [0056]     The present invention may be described in terms of functional block components and various processing steps. Such functional blocks may be realized by any number of hardware and/or software components configured to perform the specified functions. For example, the present invention may employ various integrated circuit components, e.g., memory elements, processing elements, logic elements, look-up tables, and the like, which may carry out a variety of functions under the control of one or more microprocessors or other control devices. Similarly, where the elements of the present invention are implemented using software programming or software elements the invention may be implemented with any programming or scripting language such as C, C++, Java, assembler, or the like, with the various algorithms being implemented with any combination of data structures, objects, processes, routines or other programming elements. Furthermore, the present invention could employ any number of conventional techniques for electronics configuration, signal processing and/or control, data processing and the like.  
         [0057]     The particular implementations shown and described herein are illustrative examples of the invention and are not intended to otherwise limit the scope of the invention in any way. For the sake of brevity, conventional electronics, control systems, software development and other functional aspects of the systems (and components of the individual operating components of the systems) may not be described in detail. Furthermore, the connecting lines, or connectors shown in the various figures presented are intended to represent exemplary functional relationships and/or physical or logical couplings between the various elements. It should be noted that many alternative or additional functional relationships, physical connections or logical connections may be present in a practical device. Moreover, no item or component is essential to the practice of the invention unless the element is specifically described as “essential” or “critical”. Numerous modifications and adaptations will be readily apparent to those skilled in this art without departing from the spirit and scope of the present invention.  
         [0000]     List of Reference Characters  
         [0000]    
       
           10  prefetch system  
           12  record source, modality of images  
           14  central data store  
           14   a  short term storage STS of the central data store  
           14   b  long term storage LTS of the central data store  
           20   a - 20   d  proxy servers  
           22   a - 22   d  local cache  
           30   a -30 d  workstation clients: fat, thin/thin-rich, and ultra thin  
           32  processing server  
           40  user  
           50  metadata repository  
           52  metadata storage area  
           54  rules and strategies database  
           102  record data management  
           150  conversion routine  
           200  data records  
           202  query/request for records  
           204  metadata  
           206  control message  
           300  process for converting raw metadata into rules &amp; strategies  
           302 - 308  method steps