System and method for caching biometric image data
Automated preprocessing and caching of biometric image data in compressed formats address the challenge of large file sizes in digital pathology systems, enabling faster and more accurate analysis.
Patent Information
- Application Number
- JP2025166264
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2018-09-07
- Filing Date
- 2025-10-02
- Publication Date
- 2026-01-14
AI Technical Summary
The existing digital pathology systems face challenges in visualizing large biometric image data in real time due to the volume and size of image files, leading to delayed user analysis and inefficient use of server resources.
Implementing automated preprocessing of biometric image data on a server, converting large files to compressed formats, and delivering preprocessed image tiles to a client cache for local retrieval, reducing network transmission and server load.
Facilitates faster and more robust image data review, enhancing user experience and accuracy in digital pathology analysis by reducing server burden and improving response times.
Smart Images

Figure 2026004470000001 
Figure 2026004470000002 
Figure 2026004470000003
Abstract
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional Patent Application No. 62 / 728,573, filed September 7, 2018, which is incorporated herein by reference in its entirety for all purposes. [Background technology]
[0002] Digital pathology refers to the management and interpretation of pathology information in a digital environment. A scanning device is used to image slides of biological specimens, which may be stained, resulting in a digital slide, e.g., an entire slide image. Using digital pathology software, the digital slide can be stored in a computer's memory device, displayed on a computer monitor, and the pathology information analyzed. Summary of the Invention
[0003] The present disclosure relates, inter alia, to client-server systems including client user interfaces (GUIs) with improved response times. Generally, the interface for visualization and analysis of image data runs on either (i) a client system (e.g., a viewer application running locally on the client system) or (ii) a remote server where the client system accesses an instance of the viewer application on the remote server via a browser, such as a web browser. Image data, e.g., scanned images of biological samples stained with hematoxylin and eosin or stained for the presence of one or more biomarkers, can be delivered to the viewer application or browser from a remote server, e.g., a storage system communicatively coupled to the remote server. In some embodiments, the image data is in the form of image tiles (as defined herein) that can be delivered to the viewer application or browser. Typically, due to the volume of image tiles typically transferred from a remote server (in addition to the size of the files transmitted), the image data may not be visualized in real time within the viewer application or browser after user input is received by the viewer application. This can prevent a user from performing real-time analysis of the image data.
[0004] To facilitate easier image visualization, the present disclosure, in some embodiments, provides for automated preprocessing of bioimage data (e.g., histopathology image data or cytopathology image data) on a server and delivery of the preprocessed image data to a client system, such as a digital pathology analysis system. In some embodiments, preprocessing of the image data includes converting the scanned image data from an input format (e.g., DICOM, BIF, or another uncompressed image file format) to a destination format (e.g., a compressed image file format such as JPEG). The image data contained in the input format may be large, e.g., greater than 2000 megabytes per image file, and converting the input file format to the destination file format (which may compress the data) enables rapid delivery of the image data to the client system. In some embodiments, preprocessing of the image data includes splitting the scanned image data file into multiple files (e.g., multiple image tile files, which may be in either the input file format or the destination file format), which also facilitates faster delivery of the image data from the server to the client system. The server is believed to have finite processing power and may be heavily burdened if multiple requests for image data (e.g., from one or more client systems) are received in real time. By pre-processing image data on the server before requesting it from the client system, the burden on server resources such as processing resources is reduced, and the client system For example, instead of generating image tiles in real time in response to a user request or a prefetch operation, biometric image data may be preprocessed so that the image tiles are ready to be sent.
[0005] The present disclosure also provides, in some embodiments, for automated delivery of biometric image data, including preprocessed image data in a destination file format, from a server to a client cache communicatively coupled to a client system, such as via a cache agent. In this manner, image data requested from a client system can be retrieved from a local client cache pre-populated with image data, such as preprocessed image data, without having to be transmitted over a network, which can be slow given the associated file sizes. Overall, the systems and methods described herein provide for more robust and accurate review of image data, ultimately providing improved patient care. Furthermore, the systems and methods described herein provide a better user experience, enabling users (e.g., pathologists) to perform their jobs more quickly and accurately.
[0006] One aspect of the present disclosure is a method for preprocessing bioimage data on a server to facilitate transmission of the bioimage data to a digital pathology analysis system, the method including: receiving bioimage data having a first image file format, the bioimage data being obtained from scanning a microscope slide having one or more biological specimens disposed thereon, the biological specimens being stained with hematoxylin and eosin or stained to identify the presence of one or more biomarkers; preprocessing the received bioimage data to generate one or more preprocessed image files, each of the generated one or more preprocessed image files being obtained from the received bioimage data in the first file format, and each of the generated one or more preprocessed image files being provided in a second file format; and storing the generated one or more preprocessed image files provided in the second file format in one or more memories communicatively coupled to the server.
[0007] In some embodiments, the first image file format and the second image file format are the same. In some embodiments, the pre-processing step generates a plurality of pre-processed image files. In some embodiments, the plurality of pre-processed image files are a plurality of image tile files, and each of the stored plurality of image tile files includes a filename including coordinates corresponding to the location of the individual tile file within the received biometric image data in the first image file format. In some embodiments, the pre-processing step generates a plurality of sets of pre-processed image files, and each pre-processed image file of the plurality of sets of pre-processed image files includes a plurality of image tile files corresponding to a single magnification level. In some embodiments, the first and second file formats are compressed image file formats. In some embodiments, the compressed image file format is selected from the group consisting of JPEG file interchange format, Portable Network Graphics file format, and derivatives thereof.
[0008] In some embodiments, the first image file format and the second image file format are different. In some embodiments, the first image file format is one of a RAW image file format or an uncompressed image file format, and the second image file format is a compressed image file format. In some embodiments, the pre-processing step includes converting the received biometric image data to the RAW or uncompressed image file format and generating one or more pre-processed image files in the compressed image file format. In some embodiments, the pre-processing step generates a single pre-processed image file in the compressed image file format. In some embodiments, the pre-processing step generates multiple pre-processed image files in the compressed image file format. In some embodiments, the pre-processing step generates multiple sets of pre-processed image files. a plurality of sets of pre-processed image files, each set of pre-processed image files including a plurality of image tile files in a compressed image file format corresponding to a single magnification level; in some embodiments, the plurality of pre-processed image files are a plurality of image tile files, and the stored plurality of image tile files each include a filename including coordinates corresponding to a location of the individual tile file within the received biometric image data in the first image file format; in some embodiments, a file size of the received biometric image data having the first image file format is greater than the total file size of all of the generated plurality of pre-processed image files in the compressed image file format; in some embodiments, the compressed image file format is a destination file format; in some embodiments, the destination file format is a browser-compatible file format.
[0009] In some embodiments, the method further includes receiving a request from the digital pathology analysis system for the stored one or more preprocessed image files. In some embodiments, the method further includes automatically transferring the stored one or more preprocessed image files to a caching agent running on the digital pathology analysis system. In some embodiments, the one or more memories include both volatile and non-volatile memory. In some embodiments, the one or more memories are non-volatile memory. In some embodiments, the stored one or more preprocessed image files are maintained in the one or more non-volatile memories for a predetermined period of time. In some embodiments, the predetermined period of time is in a range of about 5 days to about 15 days.
[0010] Another aspect of the present disclosure is a method for managing biometric image data in a client cache in a digital pathology analysis system, comprising: performing user authentication with a remote server, the authentication verifying that a cache agent is running on the digital pathology analysis system; receiving a plurality of new biometric image tiles from the remote server, the new biometric image tiles obtained from scanning a microscope slide having one or more biological specimens disposed thereon, the biological specimens stained with hematoxylin and eosin or stained to identify the presence of one or more biomarkers; removing at least a first portion of existing biometric image tiles from a client cache communicatively coupled to the digital pathology system based on predetermined criteria; and storing the received new biometric image tiles in the client cache.
[0011] In some embodiments, the predetermined criteria include a storage allocation limit, a cache image expiration date, a slide display period expiration date, and a case reassignment. In some embodiments, a collection size of the first portion of the removed existing biometric image tiles is approximately the same as a total size of the received new biometric image tiles. In some embodiments, a collection size of the first portion of the removed existing biometric image tiles is greater than a size of the received new biometric image tiles. In some embodiments, the received plurality of new biometric image tiles are preprocessed biometric image tiles having a compressed file format. In some embodiments, the compressed file format is JPEG.
[0012] In some embodiments, the method further includes maintaining the client cache by removing a first portion of the stored new biometric image tiles based on predetermined criteria. In some embodiments, the predetermined criteria include storage quota limits, cached image expiration dates, slide display period expiration dates, and case reassignments. In some embodiments, the method further includes removing a second portion of the stored new biometric image tiles that have been reviewed by a pathologist.
[0013] Another aspect of the present disclosure is to provide a method for detecting a biological sample in a client cache in a digital pathology analysis system. A method for managing image data, comprising: maintaining a client cache communicatively coupled to a digital pathology analysis system, the client cache including biometric image data of one or more patient cases, the client cache being maintained by removing a first portion of existing biometric image data based on predetermined criteria; performing authentication with a remote server; receiving a first request from the remote server to add new biometric image data to the client cache; and storing the received new biometric image data in the client cache, wherein the existing biometric image data and the stored new biometric image data are obtained from scanning a microscope slide having one or more biological specimens disposed thereon, the biological specimens being stained with hematoxylin and eosin or stained to identify the presence of one or more biomarkers.
[0014] In some embodiments, the predetermined criteria include a storage allocation limit, a cached image expiration date, a slide display period expiration date, and a case reassignment. In some embodiments, the client cache is further maintained by removing a second portion of existing biometric image data for the one or more patient cases that has been reviewed by a pathologist assigned to the one or more patient cases.
[0015] In some embodiments, the client cache is pre-allocated on a storage subsystem communicatively coupled to the digital pathology analysis system, hi some embodiments, the authentication includes verifying that the caching agent is running on the digital pathology analysis system.
[0016] In some embodiments, the method further includes receiving a second request from a viewer application or browser running on the digital pathology analysis system to retrieve at least a portion of the stored new biometric image data from the client cache. In some embodiments, the retrieved and stored new biometric image data is transferred to the viewer application or browser and displayed on a display screen of the digital pathology analysis system. In some embodiments, the stored new biometric image data includes a plurality of pre-processed image tiles in a compressed image file format. In some embodiments, the plurality of image tiles includes a first series of image tiles corresponding to the biometric image data scanned at a first magnification level and a second series of image tiles corresponding to the biometric image data scanned at a second magnification level.
[0017] Another aspect of the present disclosure is a method of maintaining cached biometric image data in a client cache communicatively coupled to a digital pathology analysis system, the method comprising: accessing the biometric image data, the biometric image data being obtained from scanning a microscope slide having one or more biological specimens disposed thereon, the biological specimens being stained with hematoxylin and eosin or stained to identify the presence of one or more biomarkers; receiving confirmation that a cache agent is running on the digital pathology analysis system; delivering at least a portion of the accessed biometric image data to at least partially fill a portion of available storage space in the client cache; and storing one or more URLs associated with at least a portion of the accessed biometric image data delivered to the digital pathology analysis system. Includes:
[0018] In some embodiments, at least a portion of the accessed biometric image data is delivered to completely fill available storage space on the client server. In some embodiments, at least a portion of the accessed biometric image data delivered to the client cache includes multiple pre-processed image tiles in a compressed image file format. In some embodiments, the plurality of preprocessed image tiles includes a first series of preprocessed image tiles at a first magnification level and a second series of preprocessed image tiles at a second magnification level. In some embodiments, the method further includes receiving an indication that sufficient available storage space exists in the client cache before delivering at least a portion of the accessed biometric image data. In some embodiments, the method further includes receiving an indication of an amount of available storage space in the client cache. In some embodiments, delivering at least a portion of the accessed biometric image data includes (i) determining a size of the accessed biometric image data and (ii) selecting at least a portion of the accessed biometric image data based on the available storage space in the client cache. In some embodiments, selecting the portion of the accessed biometric image data is based on predetermined selection criteria. In some embodiments, the predetermined selection criteria is scanning dates of individual images in the accessed biometric image data. In some embodiments, the accessed biometric image data is assigned to a first pathologist on the digital pathology analysis system. In some embodiments, the step of authenticating further includes verifying identification credentials of the first pathologist. In some embodiments, the step of the server maintaining a connection to the cache agent and receiving confirmation that the cache agent is running on the client system includes confirming that the connection has been established.
[0019] Another aspect of the present disclosure is a method for displaying biometric image data in an interface application on a digital pathology analysis system, the method including: receiving a first user input related to a first patient case; contacting a remote server for one or more stored biometric image tiles corresponding to the received first user input, the stored biometric image tiles being obtained from scanning a microscope slide having one or more biological specimens disposed thereon, the biological specimens being stained with hematoxylin and eosin or stained to identify the presence of one or more biomarkers; receiving location information of the one or more stored biometric image tiles corresponding to the first user input; retrieving the one or more stored biometric image tiles associated with the first user input based on the received location information; and visualizing the retrieved one or more biometric image tiles associated with the first user input.
[0020] In some embodiments, the method further includes determining whether the one or more stored biometric image tiles are present in a client cache communicatively coupled to the digital pathology analysis system. In some embodiments, if the biometric image data is maintained in the client cache, the stored one or more biometric image tiles are retrieved from the client cache. In some embodiments, if the images are deleted from the client cache, the stored one or more biometric image tiles are retrieved from a remote server. In some embodiments, the stored one or more biometric image tiles retrieved from the remote server are downloaded to the client cache. In some embodiments, the visualized one or more biometric image tiles are retrieved from the client cache. In some embodiments, if the stored one or more biometric image tiles are not maintained in the client cache, the interface is redirected to a storage location on the remote server. In some embodiments, the stored one or more biometric image tiles associated with the first user input are retrieved from the remote server, and the method further includes receiving a second user input associated with the first patient case, wherein the one or more stored image tiles associated with the second user input are retrieved from the client cache. In some embodiments, the stored one or more biometric image tiles are preprocessed image tiles in uncompressed format. In some embodiments, the method further includes managing the client cache by deleting pre-populated biometric image data that meets predetermined criteria. In some embodiments, the location information includes one or more URLs.
[0021] For a general understanding of the features of the present disclosure, reference is made to the drawings, wherein like reference numerals are used throughout to identify identical elements.
[0022] The patent or application file contains at least one drawing executed in color. Copies of this patent or patent application publication with color drawing(s) will be provided to the Office upon request and payment of the necessary fee. [Brief explanation of the drawings]
[0023] [Figure 1A] 1 illustrates a client-server system including a server 160 communicatively coupled to a client system 170, such as via a network, according to some embodiments.
[0024] [Figure 1B] 1 illustrates a client-server system including a server 160 communicatively coupled to a client system 170, where the client system 170 includes a viewer application and a caching agent, according to some embodiments.
[0025] [Figure 1C] 1 illustrates a client-server system including a server 160 communicatively coupled to a client system 170, where the client system 170 includes a browser and a caching agent, according to some embodiments.
[0026] [Figure 1D] 1 illustrates a client-server system including a server 160 communicatively coupled to a client system 170, where the client system 170 includes a browser and a caching agent, according to some embodiments.
[0027] [Figure 2A] 1 illustrates a server communicatively coupled to a scanning device, according to some embodiments.
[0028] [Figure 2B]1 illustrates a client system including a processing subsystem, a storage subsystem, an output device, and an input device, each of which is communicatively coupled via a bus, network, or other wired or wireless interconnection, according to some embodiments. The system may include a viewer application that executes locally on the client system and may access content (e.g., image data) from either a local client cache in the storage subsystem or a remote server, according to some embodiments.
[0029] [Figure 2C] 1 illustrates a client system including a processing subsystem, a storage subsystem, an output device, and an input device, each of which is communicatively coupled via a bus, network, or other wired or wireless interconnection, according to some embodiments. The system may include a browser that executes locally on the client system and may access content (e.g., image data) from either a local client cache in the storage subsystem or a remote server, according to some embodiments.
[0030] [Figure 3] 1 shows a flowchart providing general steps for creating a patient case and associating the created patient case with scanned image data and a pathologist user identification, according to some embodiments.
[0031] [Figure 4A] 1 illustrates a flowchart providing general steps for delivering content (e.g., image data or portions thereof) to a client cache managed by a caching agent executing on the client system, according to some embodiments.
[0032] [Figure 4B]1 shows a flowchart providing general steps for performing authentication between a client system, including a client system running a cache agent, and a remote server, according to some embodiments.
[0033] [Figure 5] 1 shows a flowchart illustrating the general steps of maintaining a client cache, as facilitated by a caching agent running on the client system, according to some embodiments.
[0034] [Figure 6] 1 shows a flowchart illustrating the general steps of receiving image data from a remote server, such as data pushed from the remote server to a client cache managed by a caching agent, according to some embodiments.
[0035] [Figure 7] 1 shows a flowchart providing steps for visualizing image data corresponding to received user input, such as input received by a user interacting with a viewer application directly or indirectly via a browser, according to some embodiments.
[0036] [Figure 8] 1 illustrates a flowchart providing steps for visualizing image data corresponding to received user input, such as input received by a user interacting with a browser, according to some embodiments.
[0037] [Figure 9] 1 shows a flowchart providing steps for installing a client cache agent on a client system, according to some embodiments.
[0038] [Figure 10]1 illustrates a flowchart providing steps for pre-processing image data on a server, such as pre-processing image data received in an input file format into a destination file format, according to some embodiments. DETAILED DESCRIPTION OF THE INVENTION
[0039] It is also to be understood that, unless expressly stated to the contrary, in any method claimed herein including multiple steps or acts, the order of the method steps or acts is not necessarily limited to the order in which the method steps or acts are described.
[0040] As used herein, the singular forms "a," "an," and "the" include plural referents unless the context clearly dictates otherwise. Similarly, the word "or" is intended to include "and" unless the context clearly dictates otherwise. The term "comprising" is defined inclusively, such that "including A or B" means including A, B, or A and B.
[0041] As used in this specification and the claims, "or" should be understood to have the same meaning as "and / or" as defined above. For example, when separating items in a list, "or" or "and / or" shall be interpreted as inclusive, i.e., including at least one of a number or list of elements, but including a plurality, and optionally additional unlisted items. Only terms clearly indicated to the contrary, such as "only one of" or "exactly one of," or, when used in the claims, "consisting of," refer to the inclusion of exactly one element of a number or list of elements. Generally, the term "or" as used herein refers to exclusive alternatives (i.e., "either," "one of," "only one of," or "exactly one of,") only when preceded by terms of exclusivity, such as "either," "one of," "only one of," or "exactly one of." "Consisting essentially of," when used in the claims, shall have its ordinary meaning as used in the field of patent law.
[0042] As used herein, terms such as "comprises," "includes," and "having" are used interchangeably and have the same meaning. Similarly, terms such as "comprises," "includes," and "having" are used interchangeably and have the same meaning. Specifically, each term is defined consistent with the general U.S. patent law definition of "comprises," and therefore is to be interpreted as an open term meaning "at least the following" and not excluding additional features, limitations, aspects, etc. Thus, for example, "an apparatus having components a, b, and c" means that the apparatus includes at least components a, b, and c. Similarly, the phrase "a method including steps a, b, and c" means that the method includes at least steps a, b, and c. Furthermore, although steps and processes may be outlined in a particular order herein, those skilled in the art will recognize that the ordering of steps and processes may vary.
[0043] As used in the specification and claims herein, the phrase "at least one" in connection with a list of one or more elements should be understood to mean at least one element selected from any one or more elements of the list of elements, but not necessarily including at least one of each and every element specifically listed in the list of elements, and not excluding any combination of elements in the list of elements. This definition also allows for elements other than those specifically identified in the list of elements to which the phrase "at least one" refers, whether related to those elements specifically identified or not, may optionally be present. Thus, as a non-limiting example, "at least one of A and B" (or, equivalently, "at least one of A or B," or, equivalently, "at least one of A and / or B") can refer in one embodiment to at least one, optionally including two or more A, and no B (and optionally including elements other than B); in another embodiment to at least one, optionally including two or more B, and no A (and optionally including elements other than A); in yet another embodiment to at least one, optionally including two or more A, and at least one, optionally including two or more B (and optionally including other elements); and so forth.
[0044] As used herein, the terms "biological sample," "tissue sample," "specimen," and the like refer to any sample containing biomolecules (such as proteins, peptides, nucleic acids, lipids, carbohydrates, or combinations thereof) obtained from any organism, including viruses. Other examples of organisms include mammals (such as humans, veterinary animals such as cats, dogs, horses, cows, and pigs, and laboratory animals such as mice, rats, and primates), insects, annelids, arachnids, marsupials, reptiles, amphibians, bacteria, and fungi. Biological samples include tissue samples (such as tissue sections or needle biopsies of tissue), cell samples (such as cytological smears, such as Pap smears or blood smears, or samples of cells obtained by microdissection), or cell fractions, fragments, or organelles (obtained by lysing cells and separating their components, such as by centrifugation). Other examples of biological samples include blood, serum, urine, semen, feces, cerebrospinal fluid, interstitial fluid, mucous membranes, tears, sweat, pus, biopsy tissue (e.g., obtained by surgical or needle biopsy), nipple aspirate, earwax, milk, vaginal fluid, saliva, swabs (such as cheek swabs), or any material containing biomolecules derived from a first biological sample. In certain embodiments, the term "biological sample," as used herein, refers to a sample prepared from a tumor or portion thereof obtained from a subject (such as a homogenized or liquefied sample).
[0045] As used herein, the term "cytopathology" refers to the analysis of free cells or tissue fragments. This refers to the study of diseases at the cellular level, such as in vivo.
[0046] As used herein, the term "DICOM" refers to a standard for handling, storing, printing, and transmitting information in medical images. It includes file format definitions and a network communication protocol. The network communication protocol is an application protocol that communicates between systems using TCP / IP. One of the goals of this standard is to uniformly transfer medical images and information between display and scanning sources so that users of different imaging software and hardware can share information. DICOM files can be exchanged between any two entities capable of receiving image and patient data in DICOM format. DICOM allows scanners, servers, workstations, printers, and network hardware from multiple manufacturers to be integrated into picture archiving and communication systems (PACS) for storing and downloading digital images. Various devices ship with DICOM conformance statements that clearly indicate the DICOM classes they support. DICOM has been widely adopted in hospitals and is gaining popularity among small dental practices and clinics. DICOM files typically contain images; therefore, they are often referred to as DICOM images. However, it is understood that DICOM files do not necessarily have to contain images. Rather, such files can contain measurements or report data. Thus, a DICOM file may contain media data, such as video or audio data, or may contain no media data at all. In that case, the DICOM file may contain only metadata identifying the original modality, the operator, or the patient examined. Modality, as used herein, refers to the image-producing device in medical imaging, and includes the use of a scanner to produce images of histopathology or cytopathology slides, such as those stained with hematoxylin and eosin and the presence of one or more biomarkers.
[0047] As used herein, the term "histopathology" refers to the microscopic examination of tissue (e.g., biopsy specimen, surgical specimen) to study symptoms of disease.
[0048] As used herein, the term "image data" encompasses raw image data acquired from a biological tissue sample, such as by an optical sensor or sensor array, or preprocessed image data. In particular, image data can include a pixel matrix. In some embodiments, image data is stored in blocks of image tiles (e.g., portions of an entire slide image having a size of about 500 pixels by about 500 pixels). In some embodiments, image data is obtained from scanning a biological specimen (e.g., a microscope slide) disposed on a substrate, and the scanned image of the biological specimen can include multiple images of the same slide at different magnification levels (e.g., 20x, 40x, etc.). In some embodiments, image data is captured at a first low level of magnification (e.g., suitable for thumbnail images), a second intermediate magnification level, and a third high magnification level. In some embodiments, image data can be acquired for multiple magnification levels, and one or more image data files can be generated for each of the multiple magnification levels. In some embodiments, the number of image tiles increases with magnification level or zoom level; i.e., image tiles can be available for each of a predetermined number of available magnification levels, with higher magnification levels having more image tiles than lower magnification levels. In some embodiments, the number of tiles at each zoom level increases, e.g., linearly, quadratically, exponentially, or otherwise. For example, image data at the lowest magnification (corresponding to the first magnification level above) may include 100 tiles, while image data at a medium magnification may include 400 tiles.
[0049] As used herein, the term "slide" refers to any substrate (e.g., made entirely or partially of glass, quartz, The term "slide" refers to a substrate (such as a substrate made of plastic, silicon, etc.), more specifically a "microscope slide" such as a standard 3" x 1" microscope slide or a standard 75mm x 25mm microscope slide. Examples of biological specimens that can be placed on a slide include, but are not limited to, cytological smears, thin tissue sections (such as from a biopsy), and arrays of biological specimens, e.g., tissue arrays, cell arrays, DNA arrays, RNA arrays, protein arrays, or any combination thereof. Thus, in one embodiment, tissue sections, DNA samples, RNA samples, and / or proteins are placed at specific locations on the slide. In some embodiments, the term slide can refer to SELDI and MALDI chips, as well as silicon wafers.
[0050] As used herein, the terms "staining," "staining," and the like generally refer to any treatment of a biological specimen to detect and / or differentiate the presence, location, and / or amount (e.g., concentration) of a specific molecule (e.g., lipid, protein, or nucleic acid) or a specific structure (e.g., normal or malignant cells, cytosol, nucleus, Golgi apparatus, or cytoskeleton) in the biological specimen. For example, staining can provide contrast between a specific molecule or specific cellular structure and the surrounding area of the biological specimen, and the intensity of the staining can provide a measure of the amount of a specific molecule in the specimen. Staining can be used to aid in the observation of molecules, cellular structures, and organisms using not only brightfield microscopes but also other observation tools such as phase-contrast microscopes, electron microscopes, and fluorescence microscopes. Some staining performed by the system can be used to visualize cell contours. Other staining performed by the system may depend on the specific cellular component (e.g., molecule or structure) being stained, with no or relatively little staining of other cellular components. Examples of types of staining methods performed by the system include, but are not limited to, histochemical methods, immunohistochemical methods, and other methods based on reactions between molecules (including non-covalent interactions), such as hybridization reactions between nucleic acid molecules. Specific staining methods include, but are not limited to, primary staining methods (e.g., H&E staining, Pap staining, etc.), enzyme-linked immunohistochemical methods, and in situ RNA and DNA hybridization methods, such as fluorescent in situ hybridization (FISH).
[0051] As used herein, the term "user interface" refers to an interface that allows a user, e.g., an end user such as a histologist and / or pathologist, to input commands and data and receive results, such as a graphical user interface (GUI). The terms "user interface" and "graphical user interface" are used interchangeably herein. overview
[0052] Pathology images are typically very large, e.g., 1000 megabytes or more, 2000 megabytes or more each. For example, a high-resolution slide image may have a resolution of 100,000 x 80,000 pixels. Such large images are often too large to efficiently transmit over a network, particularly over a network and an Internet service provider. To mitigate the effects of network latency when visualizing image data in a viewer application, image data, such as in the form of image tiles (including preprocessed image tiles described herein), is prefetched and transferred from a remote server to the viewer application 120 based on user input. Decomposing larger blocks of image data using tiles is believed to significantly improve the efficiency of image data transfer over a network compared to transmitting entire slide images, since only tiles or portions of tiles corresponding to a particular selected magnification need to be transferred.
[0053] Prefetching refers to requesting image data from a remote storage system or database, such as a remote server, before a particular user requests the image data. This allows image data to be collected and buffered on the device until a particular user requests it. In this way, prefetching attempts to collect image data in the background before the image data is actually called upon to construct the visualization on the display, thereby reducing (and even eliminating) the need for the client system to request image data only after a user request. Prefetched image data is automatically identified, requested, and stored in pre-allocated memory of the viewer application or browser for later use in constructing the visual display. In some embodiments, the prefetched data includes image tiles, such as multiple image tiles at a particular magnification level.
[0054] In some embodiments, prefetching is based on prediction of user input, e.g., using the user's past actions, selections, and inputs to predict further actions, selections, and inputs; i.e., when user input is received through the user interface, image data for the next few levels of possible user input is also prefetched. A viewer application or browser may routinely prefetch image data including multiple image tiles based on user input and / or anticipated user input. As a user interacts with a visualization displayed within a viewer application or browser, the user may pan to visualize other image data near the initially visualized image data. Thus, the viewer application or browser uses a system to prefetch and store a sufficient amount of image data (e.g., image tiles) to provide the requested visualization and enable efficient user interaction with the visualization while buffering additional image data within the viewer application's or browser's memory. As an example, if the viewer application or browser determines that a user is panning an image in a particular direction, image tile data may be prefetched along the general path of the path the user is panning. Additional methods for visualizing and prefetching tiles of an image are described in US Pat. Nos. 9,569,463 and 8,970,618, the disclosures of which are incorporated herein by reference in their entireties.
[0055] As described above, data prefetching is limited to the available memory resources allocated to an interface application, such as the viewer application 120 or the browser 195 executing on the client system 170. Such memory allocation may be insufficient to provide real-time visualization and analysis of image data based on user input. In some embodiments, a client cache and / or a server cache (each of which may contain preprocessed image data) may be used to extend the memory available to the viewer application 120 or the browser 195. As described herein, a relatively larger number of image tiles may be stored in the client cache than can be stored in the memory allocated to the viewer application 120 or the browser 195. Indeed, a patient case record, an entire patient case record, or entire images within multiple patient case records (each having multiple images and associated image tiles at one or more magnification levels) may be stored in a client cache (such as one managed by the cache agent 140) for retrieval by the viewer application 120 or the browser 195. Such a cache of maintained image data allows for more rapid retrieval or prefetching of image data compared to obtaining prefetched image data from a remote server over the network 130.
[0056] To facilitate provisioning of image data and speed visualization of such image data, in some embodiments, a client cache is provided that stores image data in a storage subsystem communicatively coupled to a client system (e.g., a cache coupled to a digital pathology analysis system). In some embodiments, the client cache stores image data based on, for example, pre-established and / or user-configurable criteria. Based on the received and stored image data, the cache agent determines, for example, whether to retain or discard these received and stored sets of image data from the cache. In some embodiments, this image data is automatically pushed from the server to the client system (e.g., via a “cache agent” application running on the client system). In this manner, a client cache coupled to the client system is pre-populated with image data, such as newly scanned image data, as it is received by the server or after it has first pre-processed it. In some embodiments, the client cache enables improved visualization and analysis of requested and / or presented image data because the image data can be quickly pre-fetched or retrieved from the client cache coupled to the client system rather than from a remote server (i.e., the image data is retrieved locally from the pre-populated client cache rather than over a network). This results in improved latency (see examples herein). It is also believed that this may free up server resources, since the server does not need to fetch and transmit the data or the same amount of data. Furthermore, using such a client cache, users are not limited by available network or internet service provider bandwidth, enabling faster and more efficient visualization and analysis of image data.
[0057] Another modality for improving the transmission of image data for visualization and analysis is through the implementation of server-side preprocessing routines, whereby received scanned image data, such as an input file format (e.g., DICOM, BIF, or another uncompressed image file format), is converted to a destination file format before storing it in the server cache or transmitting it to the client system. In some embodiments, the destination file format is readable by a standard web browser running on the client system, i.e., a format recognizable by the web browser without further conversion or the use of an additional image reading application. In some embodiments, the input image data may also be split into smaller files, which may be stored in the server cache (and the preprocessed image data may be pre-fetched as needed), transmitted to the client system in real time upon user request, or pre-transmitted to the client cache. Using such image data preprocessing on the server allows for more efficient use of server resources (e.g., preprocessing received image data rather than receiving it in real time upon request) and allows for more rapid transmission of such data to the client system (e.g., using a compressed image file format or multiple image files, each in a compressed image file format).
[0058] The systems and methods provided herein can be applied to the visualization and analysis of images of any type of biological specimen, including histopathology and / or cytopathology specimens. In some embodiments, the tissue sample is stained with hematoxylin and eosin or stained for the presence of one or more biomarkers. For example, the biological specimen can be stained by application of one or more stains, and the resulting image or image data includes signals corresponding to each of the one or more stains. In some embodiments, the input image is a simple image with only a single stain (e.g., stained with 3,3'-diaminobenzidine (DAB)). In some embodiments, the biological specimen can be stained with multiplex assays for two or more stains (thus providing a multiplexed image). In some embodiments, the biological specimen is stained for at least two biomarkers. In some embodiments, the biological specimen is stained for the presence of at least two biomarkers and is also stained with a primary stain (e.g., hematoxylin). In some embodiments, the biological specimen is stained for at least one protein biomarker and at least two nucleic acid biomarkers (e.g., DNA, RNA). The cells are stained for the presence of RNAs (e.g., microRNAs).
[0059] In some embodiments, the biological sample is stained for the presence of one or more protein biomarkers in an immunohistochemistry assay. For example, the biological sample may be stained for the presence of human epidermal growth factor receptor 2 protein (HER2 protein) (e.g., HerceptTest® (DAKO, Glostrup Denmark) and HER2 / neu (4B5) rabbit monoclonal primary antibody (Ventana, Tucson, Arizona).
[0060] In some embodiments, the biological sample is stained for the presence of estrogen receptor (ER), progesterone receptor (PR), or Ki-67. In some embodiments, the biological sample is stained for the presence of EGFR or HER3. Other examples of protein biomarkers are described by Zamay et al., "Current and Prospective Biomarkers of Long Cancer," Cancers (Basel), November 2018;9(11), the disclosure of which is incorporated herein by reference in its entirety. Examples of protein biomarkers described by Zamay include CEACAM, CYFRA21-1, PKLK, VEGF, BRAF, and SCC.
[0061] In some embodiments, biological samples are stained for the presence of one or more nucleic acids, including mRNA, in an in situ hybridization (ISH) assay. U.S. Patent No. 7,087,379 (the disclosure of which is incorporated herein by reference in its entirety) describes a method for staining a sample with an ISH probe so that individual spots (or dots) representing single gene copies can be observed and detected. In some embodiments, several target genes are analyzed simultaneously by exposing a cell or tissue sample to multiple nucleic acid probes labeled with multiple different nucleic acid tags.
[0062] In some embodiments, a system of the present disclosure is configured to facilitate visualization, analysis, and reporting of bioimage data obtained from a subject (e.g., biopsy tissue obtained from a human patient). An exemplary client-server system 150 is shown in FIGS. 1A-1D and includes a server 160 and a client system 170 (e.g., a digital pathology analysis system) coupled together via a network 130, which may be, for example, the Internet or an intranet. The server 160 includes a processor 161 coupled to a memory subsystem 162, a user interface 163, a mass storage device 164, and a network interface 165. In some embodiments, the mass storage device 164 includes a pre-allocated amount of storage space for image data, such as pre-processed image data. In some embodiments, the network interface 165 may be directly coupled to the network 130 or may be coupled to the network 130 through an Internet Service Provider (ISP) 180 or other entity. In some embodiments, the server 160 may include additional modules, such as an image management module 188 (see FIG. 1D). In some embodiments, image management module 188 may include logic or software for loading, reading, and converting files containing image data. In some embodiments, image management module 188 may include a converter configured to take incoming scanned image data and automatically convert it for delivery to and display within an interface, such as a web browser.
[0063] Similarly, client system 170 includes a processing subsystem 102 coupled to a memory subsystem 172, a user interface 171, a storage subsystem 104, and a network interface 112. In some embodiments, storage subsystem 104 is used to store image data, such as pre-processed image data received from server 160. The client 170 may include pre-allocated space for client-side and / or patient-side input. The client 170 may be directly coupled to the network 130 or may be coupled to the network 130 via the ISP 185 or other entity. The client system's user interface 171 may include a display 108, a keyboard and mouse, and / or other graphical input device 106. Additionally or alternatively, the user interface 171 may be, for example, a touchscreen. In some embodiments, the user interface 171 is rendered by the processing subsystem 102 and provided on the display 108 to (i) facilitate visualization and analysis of image data and / or patient data, and / or (ii) retrieve image data, patient information, or other clinical information from a database or mass storage device 164, such as one available over the network 130, based on received user input.
[0064] In some embodiments, both server 160 and client system 170 include a cache, i.e., allocated storage space within mass storage device 164 or storage subsystem 104, respectively. In some embodiments, the cache within mass storage device 164 or storage subsystem 104 is configured to store image data, such as pre-processed image data obtained from an entire slide scan of a biological specimen placed on a microscope slide.
[0065] In some embodiments, software such as viewer application 120 and cache agent 140 executes on client system 170, and a client interface or client portal (not shown) on server 160 is used to facilitate communication between client system 170 and server 160 (see FIG. 1B). In some embodiments, viewer application 120 executes remotely on server 160, and an instance of viewer application 120 executes within browser 195 on client system 170 (see FIG. 7C). In this manner, a user (e.g., a pathologist) may interact with elements (e.g., configurable elements) of the system (e.g., a histologist or pathologist may select user-configurable parameters such as menu bar tools and / or viewer panels) so that image data may be analyzed and / or interpreted.
[0066] In some embodiments, the locally running viewer application 120 or browser 195 sends a request to an application running on the remote server 160 for the location of an image data file. In some embodiments, the information data file location is stored in one or more URLs. The location of the image data file may be on a remote server, such as a cache on the remote server, or in a local cache communicatively coupled to the client system. In either case, the transmitted location information, e.g., a URL, provides the location of the appropriate image data file or image tile file to retrieve. In some embodiments, the URL provides additional parameters, such as sharpness, contrast, saturation, and color. An example URL including parameters is: https: / / localhost / restapp / slide / imageFetcher / 1012 / 116?quality=2&roff=3072,0&rsiz=1536,1536&imgtype=jpg&brightness=0&contrast=0&saturation=0&sharpness=0&hue=0&color=0,0,0&transformType=SRGB
[0067] 2A illustrates a server 160 (computer or computing device) communicatively coupled to the scanning device 110. In some embodiments, the system 160 runs the scanning device 110 to perform specific operations using specific user-configurable parameters and transmits the resulting acquired sequence data to a processing subsystem 161 or mass storage device 164. The scanning device 110 may include software for instructing the scanning device 110. In some embodiments, the scanning device 110 may be communicatively coupled to a server 160, whereby scanned slides may be transmitted to the server 160 over the network 130 and stored on mass storage device 164 for later retrieval; for example, either whole-slide images or pre-processed image tiles derived from the whole-slide images may be stored on the server. For example, image data may be acquired using the scanning device 110, the scanned image data stored in files located on the mass storage device 164 or other networked server, and the files (including associated metadata, patient case identifiers, and user identification) may be later retrieved (e.g., from a client 170) for visualization and analysis. In some embodiments, the server 160 and the scanning device 110 may be maintained separately, e.g., by different organizations, and slides may be scanned by one actor and transmitted to the server 160 under the control of another actor.
[0068] 2B and 2C illustrate block diagrams of a client system 170 according to one embodiment of the present disclosure. Client system 170 may be implemented using any type of user-operable computing device, including a desktop computer, a laptop computer, a tablet computer, a handheld device (e.g., a smartphone, a media player), etc. As mentioned above, client system 170 may include several interconnected components, such as a processing subsystem 102, a storage subsystem 104, a user input device 106, a display 108, and a network interface 112 that communicate via a bus 114, as discussed in more detail below.
[0069] The processing subsystem 102 can include a single processor, which can have one or more cores, or multiple processors, each having one or more cores. In some embodiments, the processing subsystem 102 can include one or more general-purpose processors (e.g., CPUs), special-purpose processors such as graphics processors (GPUs), digital signal processors, or any combination of these and other types of processors. In some embodiments, some or all of the processors in the processing subsystem can be implemented using customized circuitry, such as application-specific integrated circuits (ASICs) or field-programmable gate arrays (FPGAs). In some embodiments, such integrated circuits execute instructions stored on the circuitry itself. By way of example only, the processing subsystem 102 can receive and process image data stored in a local or networked storage system and execute instructions to display the image data (e.g., displaying an entire slide scan image or a magnified portion of an entire slide scan image).
[0070] The storage subsystem 104 and / or memory subsystem 172 (and their counterparts on the server 160) may include various memory units, such as system memory, read-only memory (ROM), and permanent storage. ROM may store static data and instructions needed by processing subsystem 102 and other modules of the client system 170. The permanent storage may be a read-and-write memory device. This permanent storage may be a non-volatile memory unit that stores instructions and data even when the client system 170 is powered off. In some embodiments, a mass storage device (such as a magnetic or optical disk or flash memory) may be used as the permanent storage. Other embodiments may use a removable storage device (e.g., a flash drive) as the permanent storage. The system memory may be a read-and-write memory device or a volatile read-and-write memory, such as a dynamic random access memory. The system memory may include some or all of the instructions and data needed by the processor during execution. can remember everything.
[0071] The storage subsystem 104 and / or memory subsystem 172 may include any combination of non-transitory computer-readable storage media, including various types of semiconductor memory chips (DRAM, SRAM, SDRAM, flash memory, programmable read-only memory), etc. Magnetic and / or optical disks may also be used. In some embodiments, the storage subsystem 104 may include removable storage media, which may be readable and / or writable. Examples of such media include compact discs (CDs), read-only digital versatile discs (DVD-ROMs, dual-layer DVD-ROMs, etc.), read-only and recordable Blu-ray discs, ultra-high density optical discs, flash memory cards (SD cards, mini SD cards, micro SD cards, etc.), etc. In some embodiments, image data and / or patient data may be stored in one or more remote locations, e.g., cloud storage, and may be synchronized with other components of the client system 170. When the terms “memory” or “a memory” are used herein, they may refer to one or more memories, such as multiple memories.
[0072] In some embodiments, the storage subsystem 104 can store one or more software programs executed by the processing subsystem 102, such as the viewer application 120 or the caching agent 140. "Software" generally refers to a set of instructions that, when executed by the processing subsystem 102, cause the client system 170 to perform various operations and thus define one or more specific machine implementations that perform and execute the operations of the software programs. Thus, "software" may also include firmware or embedded applications, or any other type of instructions readable and executable by the processing subsystem 102. Software can be implemented as a single program or as a collection of individual programs or program modules that interact as needed. In some embodiments, programs and / or data may be stored in non-volatile storage and copied in whole or in part to volatile working memory during program execution. From the storage subsystem 104, the processing subsystem 102 can retrieve program instructions to execute and data to process to perform various operations, including those described below.
[0073] The user interface 171 can be provided on the display device 108 and / or one or more other user output devices (not shown). The user interface 171 can include, for example, visualizations and other representations, which can include images obtained from scanning a stained biological sample (e.g., a sample stained for the presence of one or more biomarkers or stained with hematoxylin and eosin), menu bars, drop-down menus, and / or panels. The input device 106 can include any device by which a user can provide signals to the client system 170, which can interpret the signals as indicating particular user requests or information. In some embodiments, the input device 106 can include any or all of a keyboard touchpad, a touchscreen (e.g., a touch-sensitive overlay on the display surface of the display 108), a mouse or other pointing device, a scroll wheel, a click wheel, a dial, buttons, switches, a keypad, a microphone, etc.
[0074] The display 108 may display visual representations generated by the client system 170 (e.g., image data, viewer panels for providing information to a user, or context menus providing user-selectable configuration options, etc.), and may display various The display 108 may include various image generating technologies, such as cathode ray tubes (CRTs), liquid crystal displays (LCDs), light emitting diodes (LEDs) including organic light emitting diodes (OLEDs), projection systems, etc., and supporting electronics (digital-to-analog or analog-to-digital converters, signal processors, etc.). Some embodiments may include devices such as touchscreens that function as both input and output devices. In some embodiments, other user output devices may be provided in addition to or instead of the display 108.
[0075] In some embodiments, the user interface may provide a graphical user interface (e.g., via a browser on the client system 170 or in a viewer application) in which visible image elements within a particular region of the display 108 are defined as active, interactive, or control elements that the user selects using the user input device 106. For example, the user may manipulate the user input device 106 to position an on-screen cursor or pointer over a control element and "click" a button to indicate a selection, which sends a signal to perform a specified action or routine. For example, the user may manipulate the user input device 106 to select an icon within the user interface (e.g., an icon in a viewer panel, menu bar, or drop-down menu) that results in the initiation of an operation or the selection of a tool. In some embodiments, the user may manipulate the user input device 106 to select a particular image within a patient case, zoom in on an image, pan (i.e., change the field of view) the displayed image, tilt an image, rotate an image, etc. In some embodiments, the user may manipulate the user input device 106 to interact with a drop-down menu and select one or more panels, including interactive panels.
[0076] Additionally or alternatively, a user can touch (e.g., with a finger or stylus) a control element on a touchscreen device. In some embodiments, the user can speak one or more words associated with the control element (the words can be, for example, a label on the element or a function associated with the element). In some embodiments, user gestures on the touch-sensitive device can be recognized and interpreted as input commands. These gestures can be, but need not be, associated with a particular area on the display 108. Other user interfaces can also be implemented.
[0077] Network interface 112 may provide data communication capabilities for client system 170. In some embodiments, network interface 112 may include a radio frequency (RF) transceiver component for accessing wireless voice and / or data networks (e.g., using cellular technology, advanced data network technology such as 3G, 4G, or EDGE, 5G, WiFi (IEEE 802.11 family standard), or other mobile communication technology, or any combination thereof, a GPS receiver component, and / or other components). In some embodiments, network interface 112 may provide a wired network connection (e.g., Ethernet) in addition to or instead of a wireless interface. Network interface 112 may be implemented using a combination of hardware (e.g., antennas, modulators / demodulators, encoders / decoders, and other analog and / or digital signal processing circuitry) and software components.
[0078] The bus 114 may include various system, peripheral, and chipset buses that communicatively couple the various components of the client system 170. For example, the bus 114 may communicatively couple the processing subsystem 102 with the storage subsystem 104. The bus 114 may also connect to the input device 106 and the display 108. The bus 114 may also couple the processing subsystem 102 to a network via the network interface 112. In this manner, the client system 170 may be connected to a network 130 of multiple computer systems (e.g., a local area network (LAN), a wide area network (WAN), an intranet, or a network of networks such as the Internet). Those skilled in the art will appreciate that additional components, such as a scanning device, a tissue processing system, etc., may be connected to the bus 114.
[0079] Some embodiments include electronic components such as a microprocessor, storage devices, and memories that store computer program instructions on a computer-readable storage medium. Many of the functions described herein may be implemented as a process specified as a set of program instructions encoded on a computer-readable storage medium. When these program instructions are executed by one or more processing units, they cause the processing units to perform various operations indicated in the program instructions. Examples of program instructions or computer code include machine code, such as produced by a compiler, and files containing high-level code executed by a computer, electronic component, or microprocessor using an interpreter.
[0080] Through appropriate programming, the processing subsystem 102 can provide various functions to the client system 170. For example, the processing subsystem 102 can execute a browser that communicates with the remote server 160 and facilitates review and interpretation of scanned images of biological specimens. The browser can be configured to execute an instance of a remote application, such as a viewer application, that can provide various functions, such as the ability to select user-configurable options or user-selectable panels, or the ability to control navigation and annotate images (see FIG. 2C). As another example, the processing subsystem 102 can execute a viewer application 120 (i.e., one that runs locally, as in FIG. 2B) that has a user interface that facilitates review and interpretation of scanned images of biological specimens. The viewer application 120 can provide various functions, such as the ability to select user-configurable options or user-selectable panels, or the ability to control navigation and annotate images.
[0081] In some embodiments, viewer application 120 incorporates various interoperable modules (e.g., blocks of code) that, when executed by one or more processors in processing subsystem 102, implement aspects of the interface operations. For example, viewer application 120 may include a content fetcher 122 (e.g., adapted to retrieve URLs or image data from server 160 over network 130), a content renderer 124 (e.g., for interpreting received image data or patient data), a GUI renderer 126 (e.g., for continuously generating representations and visualizations based on user selections and commands and based on image data received by content fetcher 122), and a UI interpreter 128 (e.g., for interpreting user selections and commands, such as pan commands, zoom commands, and select commands).
[0082] 2B, in some embodiments, viewer application 120 is configured to communicate with server 160, e.g., to send requests for image location information, such as URLs, to server 160 and to receive such image location information from server 160. In some embodiments, viewer application 120 may communicate with cache agent 140 to access image data in a client cache based on the received location information, such as one or more URLs. In an embodiment, if the client cache no longer contains the requested image data in its cache (e.g., the image data may have been automatically removed from the cache based on criteria set by the user), the viewer application 120 (or cache agent 140) may be redirected to the server (or reverse proxy) to obtain the image data.
[0083] 2C , in some embodiments, viewer application 120 instead executes on server 160 (e.g., via network 130) and browser 195 executes on client system 170, whereby browser 195 may remotely execute an instance of the viewer application or the browser may communicate with a viewer application or other software executing on remote server 160. In either case, the browser is configured to send a request for the location of image data, such as a URL, to server 160. Based on the received file location information, in some embodiments, browser 195 may communicate with cache agent 140 to access image data in a client cache based on the received image location information. In some embodiments, if the client cache no longer contains the requested image data (e.g., image data) in its cache (e.g., it may have been automatically removed from the cache based on user-set criteria), browser 195 (or cache agent 140) may be redirected to the server (or reverse proxy) to obtain the image data.
[0084] In some embodiments, cache agent 140 may be communicatively coupled to viewer application 120 or browser 195 of client system 170, and may also be communicatively coupled to server 160. In some embodiments, cache agent 140 is separate from locally running viewer application 120 or browser 195, and in some embodiments is always running, i.e., running even after viewer application 120 or browser 195 is closed. In some embodiments, cache agent 140 communicates directly with server 160, such as via the HTTP protocol, and may itself be viewed as an HTTP server running on client system 170.
[0085] In some embodiments, caching agent 140 is a client-side cache management application configured to manage image data (e.g., portions of scanned images, such as image tiles described herein) and manage the caching of image data or image tiles according to various events or pre-established user criteria. In some embodiments, caching agent 140 may receive requests at runtime from viewer application 120 or browser 195, such as a request to receive image data, including pre-processed image data, based on location information received from server 160. As an example, server 160 may be configured to automatically send newly received or scanned image data to client system 170 (e.g., after pre-processing the scanned image data), and caching agent 140 may manage communication with server 160 and also manage the receipt of the image data. In some embodiments, caching agent 140 is configured to manage the client cache itself, e.g., to determine which image datasets to retain and which to delete, based on pre-established user criteria (described further herein). In some embodiments, caching agent 140 is configured to determine whether to retain or delete image datasets that have been previously visualized and / or analyzed. In some embodiments, the client cache is a pre-allocated amount of storage space within the storage subsystem 104 of the client system 170 .
[0086] In some embodiments, caching agent 140 may optionally send data to the server indicating that a particular set of image data (or an entire patient case) has been reviewed by the user and / or that previously deleted image data has been or will be deleted from the cache (e.g., on a date set according to user-configured cache expiration criteria). In some embodiments, caching agent 140 does not provide the data to server 160.
[0087] In some embodiments, caching agent 140 may be configured to facilitate delivery of image data to browser 195 or viewer application 120. For example, viewer application 120 may request the location of needed image data based on user input and may request this information from server 160 (e.g., may request a URL to the image data), and caching agent 140 may function to retrieve the image data from a client cache if such image data is maintained by caching agent 140. Populating the client cache with image data
[0088] 3 shows a flowchart illustrating the acquisition of image data from a stained biological specimen. In a first step (300), a pathologist creates and enters a pathology work order. In some embodiments, the pathologist has an assigned user identification. Therefore, work orders created by the pathologist can be traced back to the pathologist's user ID.
[0089] The stained slide (e.g., prepared by a histopathologist) is then scanned (step 310). In some embodiments, the image data is captured by a scanning device (e.g., Ventana The image data may be acquired from a scanner (such as a VENTANA DP 200 scanner available from Medical Systems, Inc., Tucson, AZ) and stored in a database, such as a networked database, or on mass storage device 164 for later visualization and analysis.
[0090] In some embodiments, the scanning device generates high-resolution images of each slide for subsequent viewing and display. In some embodiments, the scanning device generates high-resolution images of each slide at multiple magnification levels, e.g., 20x or 40x. In some embodiments, image data of all slides associated with the specimen and clinical details of the specimen may be stored in a database along with metadata about the virtual slide. Scanned slides are associated with patient case identification information (and pathologist user identification) including metadata. In some embodiments, the scanned image data is stored in a first file format, such as an uncompressed image file format. In some embodiments, the scanned image data, e.g., a scan of the entire slide image, is stored as a DICOM file, a BIF file, or a TIFF file. In some embodiments, the DICOM file or BIF file may contain RAW image data or other uncompressed image data at multiple magnification levels.
[0091] The image data and associated patient case identification information from scanning device 110 is then transmitted to server 160 for storage (e.g., transmitted to server 160 and stored in mass storage device 164) (step 320 of FIG. 3 , step 1000 of FIG. 10 ). In some embodiments, the scanned image data is stored as individual files, i.e., a single file is stored on server 160, the single file representing the scan of the entire slide image in a first file format. In some embodiments, image tiles are generated and transmitted to the client system in response to a user request.
[0092] In some embodiments, the scanned image data is received from the scanning device 110. , are automatically pre-processed on server 160 using image management module 188 or the like (see FIG. 10 , step 1010). In some embodiments, image management module 188 includes logic or software for loading the received image data, reading the received data, converting the received image data from a first format to a second format, and / or performing other image processing operations, such as extracting portions of the received image data and outputting the extracted portions to another file.
[0093] In some embodiments, the scanned image data is preprocessed to convert a single image file in a first format (e.g., an input file format) into a single image file having a second format, whereby the first image format and the second image format are different. For example, an entire slide image in the first format may be converted into an entire slide image in the second format. In some embodiments, the second image file format is a destination file format. In some embodiments, the destination file format is one preselected for use with the client system 170 or compatible with a browser application (such as a standard web browser application running on a personal computer). In some embodiments, the second image file format is a compressed file format, including, but not limited to, JPEG, JPEG2000, and PAGN. As an example, a single DICOM, BIF, or TIFF image file may be converted into a single compressed image file, e.g., a single JPEG file.
[0094] Additionally or alternatively, if a single DICOM or BIF image file contains image data associated with multiple scan magnification levels, a single compressed image file may be generated for each magnification level. For example, if a BIF image contains the entire slide image data at a 20x magnification level and the entire slide image data at a 40x magnification level, two compressed image files (e.g., JPEG files) may be generated, one at 20x and the other at 40x, both of which are the entire slide image. In some embodiments, these compressed image files may be transmitted to a user upon request (e.g., upon request, a compressed image file at a particular magnification may be split into individual tiles and transmitted to a user in real time).
[0095] In some embodiments, the scanned image data is preprocessed (step 1010 of FIG. 10 ) such that a single image file in a first format is divided into multiple preprocessed image files, where the multiple preprocessed image files may be either the same or a different file format compared to the first file format. For example, a single image file in a first file format, e.g., a TIFF file format, may be divided into multiple preprocessed image files, e.g., 500 or more preprocessed image files, each having a TIFF file format or a different file format. As another example, a TIFF image file may be divided into multiple preprocessed image files having a TIFF format, e.g., a single TIFF file may be divided into 500 or more preprocessed image files in a TIFF format.
[0096] Additionally or alternatively, and in accordance with the above examples, a TIFF image file may be split into multiple preprocessed image files having different file formats, such as compressed image file formats including JPEG, JPEG2000, and PAGN. In these embodiments, the TIFF image file may first be converted to a second file format (e.g., JPEG) and then split into multiple preprocessed JPEG image files, or the TIFF image file may first be split into multiple preprocessed image files having a TIFF file format and then each individually converted to a JPEG file. In either case, the result is multiple preprocessed image files having different file formats, such as a destination file format, including a format compatible with web browsers.
[0097] In some embodiments, preprocessing may generate multiple sets of preprocessed image files, and each set of preprocessed image files may include multiple image tile files. For example, and as described above, an entire slide scan in DICOM or BIF format may include image data corresponding to several magnification levels, e.g., 1x, 20x, and 40x. In some embodiments, multiple image tile files may be generated for each magnification level within the original entire slide scan. For example, a first set of generated preprocessed image files may include multiple image tile files associated with 20x magnification, while a second set of generated preprocessed image files may include multiple image tile files associated with 40x magnification.
[0098] In some embodiments, after the preprocessed image files are generated, they are stored in one or more memories (step 1020), including, but not limited to, volatile and non-volatile memory. In some embodiments, the preprocessed image files are stored in pre-allocated storage space in mass storage device 164 communicatively coupled to server 160. In some embodiments, the preprocessed image files each include a unique filename. In some embodiments, the unique filename includes coordinates of the tile image's location derived from the entire slide image. In this way, if a user requests tiles at coordinates (1, y1), (x2, y1), and (x3, y1), the preprocessed tile image files corresponding to each of these locations can be easily retrieved based on the unique filenames belonging to each image tile file.
[0099] Next, in some embodiments, the preprocessed image file may be transmitted to client system 170. In some embodiments, the preprocessed image file may be transmitted to client system 170 upon receiving user input requiring the fetching of specific image data (e.g., see step 710 of FIG. 710), e.g., in real time upon user input requiring a specific image tile. In some embodiments, the preprocessed image file may be pushed to client system 170 after image preprocessing is complete (e.g., after completion of steps 1000-1020). For example, the preprocessed image file may be delivered to cache agent 140 running on client system 170, so that the image data may be retrieved locally from the client system's storage subsystem upon receiving user input requiring a specific image tile as described herein (see step 330 of FIG. 3; see also FIGS. 4A and 7). In some embodiments, the data is pushed to a client system assigned a specific patient case identification and to a system utilized by a pathologist with a specific user identification. Stated another way, in some embodiments, the image data is pushed to the computer of the specific pathologist to whom the patient case is assigned.
[0100] The steps for populating the client cache on client system 170 with newly received (i.e., newly generated image data) are shown in Figure 4A. In some embodiments, server 160 accesses the newly generated image data associated with a particular user identification (step 400) if the data has not already been accessed from scanning device 110 of a computer system coupled to the scanning device. In some embodiments, the accessed scanned image data (e.g., in an input file format) may be pre-processed before being pushed to caching agent 140 as described above.
[0101] The server 160 then performs authentication with the client system 170 (step 410) to ensure that the client system 170 is running the cache agent 140 (so that the managed client cache can be populated) and that the correct information is available to the correct computer and the correct user (i.e., the correct information for visualization and analysis). In some embodiments, server 160 sends an authentication request to client system 170 (see step 411 of FIG. 4B). Following the authentication request, in some embodiments, client system 170 sends its Internet Protocol (IP) address to server 160 (step 412 of FIG. 4B), which server 160 verifies belongs to the correct client system 170. Server 160 then requests, and client system 170 sends, user identification data (step 413 of FIG. 4B). In some embodiments, once both the correct system and user are identified, authentication is complete. Of course, other identification data can be used for authentication purposes.
[0102] In some embodiments, authentication is performed only once, for example, after installing cache agent 140 on client system 170 (see, e.g., FIG. 9). In these embodiments, authentication is still performed, but rather than verifying user-identifying credentials and / or the IP address of client system 170, authentication simply verifies that a cache agent is still running on the system.
[0103] Following authentication, in some embodiments, server 160 sends all available image data to client system 170. In these embodiments, caching agent 140 is tasked with clearing space in the client cache coupled to client system 170 to store all newly received image data. For example, if 10 GB of preprocessed image tile files are transferred from server 160 to client system 170, but only 5 GB of space is available in the client cache, caching agent 140 deletes 5 GB of existing image data in the client cache to make room for all image data received by the server. Maintaining available cache space may be determined based on pre-established criteria, such as those described herein.
[0104] In some embodiments, only a portion of all available image data is pushed to client system 170. For example, in some embodiments, server 160 sends a portion of accessed image data based on whether the user has already reviewed the data. For example, if particular image data was previously delivered but not reviewed by the user before the cache expiration date of that previously delivered image data (as described herein), that image data (or a portion thereof) may be delivered to the client cache again.
[0105] In some embodiments, server 160 transmits those portions of image data based on predetermined selection criteria. In some embodiments, server 160 transmits some of the oldest image data. For example, if there are image scans from a first scan date and image scans from a second scan date within 10 GB of image data that may be pushed to client system 170, and the first scan date precedes the second scan date, the older image scan from the first scan date may be the one selected for transmission to the client cache. In some embodiments, server 160 transmits portions of image data flagged with indicators, such as those that require review to begin out of order, those with a high priority, images belonging to cases already under review (e.g., delivering new scans of new images for cases already under review), etc.
[0106] In some embodiments, server 160 may perform a determination of the amount of storage space available in a client cache coupled to client system 170 (step 420). In some embodiments, cache agent 140 running on client system 170 may determine the amount of client cache space available at the time of a request by server 160. In some embodiments, the server 160 uses the value transmitted from the cache agent 140 (i.e., the value representing the amount of storage space available in the client cache) to determine how much of the available scanned image data received by the server 160 can be transmitted to the client cache. In some embodiments, the server 160 selects a portion of the image data to deliver to the client cache based on the available space in the client cache (step 430).
[0107] For example, if the image data available for delivery on the server contains 10 GB of information and only 5 GB of storage space is available in the client cache, the server 160 may determine which portion of the image data to send—i.e., patient cases, images, preprocessed images or portions thereof, image tiles, etc.—to the client system 170 based on the available space in the client cache. In some embodiments, the portion of image data selected for delivery may be from a single patient case or from multiple patient cases. For example, a series of preprocessed image tiles may be delivered in association with a first patient case, and another series of preprocessed image files may be delivered from a second patient case. In some embodiments, the portion of image data selected for delivery may be preprocessed image tiles obtained from a particular magnification within a scanned image file (e.g., delivering only a 40x magnification preprocessed image tile rather than three different sets of preprocessed images at various magnifications given space constraints in the client cache). In some embodiments, the entire available free space in the client cache is populated with available image data from the server 160.
[0108] After at least a portion of the available image data residing on the server is delivered to the client cache, one or more URLs providing the location of the stored image data are generated and stored on server 160 (these URLs may later be retrieved, such as by a viewer application running on the server or by an instance of a viewer application loaded in a browser on a client system). In some embodiments, the URL includes various image parameters including brightness, sharpness, contrast, color, etc. An example of a suitable URL is: https: / / localhost / restapp / slide / imageFetcher / 1012 / 116?quality=2&roff=3072,0&rsiz=1536,1536&imgtype=jpg&brightness=0&contrast=0&saturation=0&sharpness=0&hue=0&color=0,0,0&transformType=SRGB. In some embodiments, if the image is to be fetched from the client cache, part of the URL may comprise the client agent URL. In some embodiments, the URL may be retrieved by a client system 170, such as a viewer application 120, and / or a cache agent 140 running on the client system 170, so that image data, such as image data present in the client cache, may be retrieved for visualization and / or analysis.
[0109] In some embodiments, the caching agent 140 manages image data stored in a client cache on the storage subsystem 104 of the client system 170 (see 610 in FIG. 6). In some embodiments, the caching agent 140 periodically maintains the client cache, for example, at regular intervals or for a set period of time. In some embodiments, the caching agent 140 maintains the client cache as needed. In some embodiments, the caching agent 140 removes cached image datasets from the client cache that have already been reviewed by a user (see step 510 in FIG. 5). For example, the cache The agent 140 may delete cached image data associated with a particular set of slides that have already been reviewed. As another example, the caching agent 140 may be configured to remove entire patient cases that have already been reviewed by a user.
[0110] In some embodiments, the caching agent 140 may be configured to delete cached image data based on criteria established by existing users (see step 520). For example, if a user has not reviewed the cached image data within a pre-established period, the cached image data may be deleted. As another example, the cached data itself may have an expiration date (e.g., a set period of three days, one week, or one month) regardless of whether the image data has been reviewed by the user. As yet another example, if a patient case is reassigned from one user to another, the cached data may be deleted by the caching agent 140. As yet another example, cached data may be deleted when a certain storage space threshold is reached; for example, if only a certain amount of space is available in a pre-allocated client cache, old cached data may be deleted and new data may be retained in anticipation of receiving new image data from the server 160.
[0111] In some embodiments, the caching agent 140 running on the client system 170 is configured to receive new image data periodically, such as at a specific time each day. In some embodiments, the caching agent 140 is configured to receive new image data as soon as it becomes available on the server 160 (i.e., as soon as newly scanned images and / or patient cases are received by the server and ready for transmission). Referring to FIG. 6, a request may be received from the remote server 160 (step 620), which may check whether the caching agent 140 is installed and / or running on the client system 170. In some embodiments, authentication is performed (step 630) (see also FIG. 4B). Following establishment of an authenticated session between the caching agent 140 and the client system 170, the stored image data may be received by the caching agent 140 for storage in a pre-allocated client cache (step 640).
[0112] The image data in the client cache may then be accessed by client system 170 for visualization after a request for the image data is received from a user (see FIGS. 7 and 8). Referring to FIG. 7, in a first step, viewer application 120 receives a first user input related to a selection of image data, e.g., user input if additional tiles are needed to complete a panning operation (step 710). In some embodiments, viewer application 120 executes on client system 170. In some embodiments, viewer application 120 executes on remote server 160, but an instance of the viewer application is accessed through a browser 195 on client system 170. When the viewer application is accessed through a browser, the browser receives the user input, which may be transmitted remotely.
[0113] A request for the image data is then sent from viewer application 120 to remote server 160. In some embodiments, authentication is performed between client system 170 and remote server 160 (step 720), and client system 170 may send a signal to remote server 160 that cache agent 140 is running on client system 170. Then, in some embodiments, remote server 160 sends one or more URLs to viewer application 120, each of which includes location information regarding where the requested image data is stored. In some embodiments, a determination is made by viewer application 120 as to whether the requested image data is present in the client cache (step 740). In some embodiments, viewer application 120 may retrieve the image data directly from the client cache (step 750), assuming the image data is stored there, based on the provided URL. In some embodiments, cache agent 140 retrieves the image data from the client cache based on instructions received from viewer application 120. In some embodiments, based on the provided URL, viewer application 120 is redirected to a remote server (or a reverse proxy running on the remote server) for the requested image data (step 750) (in which case the image data will not be found in the cache if it was deleted by cache agent 140 during client cache maintenance). Once the image data is received by viewer application 120, it is visualized (step 760). This process is repeated as new user input is received, such as a second, third, or fourth user input. This process is also repeated for each patient case viewed by the user.
[0114] Referring to FIG. 8 , in some embodiments, a viewer application runs remotely on server 160, and an instance of the viewer application is loaded into a browser running locally on client system 170. In this manner, a user uses the viewer application as if it were running locally on client system 170. In this regard, user input made within the viewer loaded in the browser causes the viewer application to retrieve the requested image data, after performing authentication and checking whether cache agent 140 is running on client system 170. The remotely running viewer application then sends one or more URLs to the browser, which attempts to fetch those URLs from within the client cache of the client system (and via cache agent 140 running on client system 170). If the image data is present in the local client cache, the browser retrieves the image from that cache. Otherwise, the browser is redirected to a remote server (e.g., a reverse proxy), where the image data is retrieved. In either case, the retrieved image data is loaded and visualized.
[0115] In some embodiments, authentication is performed between the client system and the remote server, and the client system may send a signal to the remote server that a cache agent is running on the client system. In some embodiments, the remote server may send one or more URLs to a browser running on the client system, each of which provides location information regarding where the requested image data is stored. In some embodiments, a determination is made by the browser as to whether the requested image data is present in the client cache. In some embodiments, the browser may retrieve the image data directly from the client cache (e.g., via a cache agent running on the client system) based on the provided URL, assuming that the image data is stored in the client cache. In some embodiments, based on the provided URL, the browser is redirected to the remote server (or a reverse proxy running on the remote server) for the requested image data (in which case the image data will not be found in the cache if it was deleted by the cache agent during client cache maintenance). Once the image data is received by the browser, it is visualized. This process is repeated as new user input, such as a second, third, or fourth user input, is received. This process is also repeated for each patient case viewed by the user. Additional Embodiments
[0116] Embodiments of the subject matter and operations described herein can be implemented in digital electronic circuitry, or computer software, firmware, or hardware, including the structures disclosed herein and their structural equivalents, or one or more combinations thereof. Embodiments of the subject matter described herein can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions encoded on a computer storage medium for execution by or to control the operation of a data processing apparatus. Any of the modules described herein may include logic executed by a processor. As used herein, "logic" refers to any information in the form of instruction signals and / or data that can be applied to affect the operation of a processor. Software is an example of logic.
[0117] A computer storage medium can be or be included in a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or one or more combinations thereof. Furthermore, a computer storage medium is not a propagating signal, although a computer storage medium can be a source or destination of computer program instructions encoded in an artificially generated propagated signal. A computer storage medium can also be or be included in one or more separate physical components or media (e.g., multiple CDs, disks, or other storage devices). The operations described herein can be implemented as operations performed by a data processing device on data stored in one or more computer-readable storage devices or received from other sources.
[0118] The term "programmed processor" encompasses all types of devices, apparatus, and machines for processing data, including, by way of example, a programmable microprocessor, a computer, a system on a chip, or a combination of the foregoing. An apparatus may include special-purpose logic circuitry such as an FPGA (field-programmable gate array) or an ASIC (application-specific integrated circuit). In addition to hardware, an apparatus may also include code that creates an execution environment for the computer program in question, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or one or more combinations thereof. The apparatus and execution environment may implement a variety of different computing model infrastructures, such as web services, distributed computing, or grid computing infrastructures.
[0119] A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted, declarative, or procedural, and can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program can be stored as part of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files storing one or more modules, subprograms, or portions of code). A computer program can be located on a single computer or at a single site. The present invention can be deployed to run on multiple computers, either centrally located or distributed across multiple sites and interconnected by a communication network.
[0120] The processes and logic flows described herein may be performed by one or more programmable processors executing one or more computer programs to perform actions by manipulating input data and generating output. The processes and logic flows may also be performed by, and apparatus may be implemented as, special purpose logic circuitry, such as, for example, an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
[0121] Processors suitable for executing a computer program include, by way of example, both general-purpose and special-purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor receives instructions and data from a read-only memory or a random-access memory, or both. The essential elements of a computer are a processor for performing actions in accordance with the instructions and one or more memory devices for storing instructions and data. Typically, a computer also includes one or more mass storage devices, such as magnetic, magneto-optical, or optical disks, for storing data, or is operatively coupled to receive or transfer data, or both. However, a computer need not have such devices. Furthermore, a computer can be embedded in another device, such as a mobile phone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a global positioning system (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name just a few. Devices suitable for storing computer program instructions and data include, by way of example, all forms of non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices, magnetic disks such as internal or removable hard disks, magneto-optical disks, and CD-ROM and DVD-ROM disks. The processor and memory can be supplemented by, or incorporated in, special purpose logic circuitry.
[0122] To provide for user interaction, embodiments of the subject matter described herein can be implemented on a computer having a display device, such as, for example, an LCD (liquid crystal display), LED (light emitting diode) display, or OLED (organic light emitting diode) display, to display information to the user, and a keyboard and pointing device, such as, for example, a mouse or trackball, through which the user can provide input to the computer. In some implementations, a touchscreen can be used to display information and receive input from the user. Other types of devices can be used to provide user interaction as well; for example, feedback provided to the user can be any form of sensory feedback, such as, for example, visual feedback, auditory feedback, or tactile feedback, and input from the user can be received in any format, including acoustic, speech, or tactile input. Additionally, a computer can interact with a user by sending documents to and receiving documents from devices used by the user, such as, for example, by sending web pages to a web browser on the user's client device in response to a request received from the web browser.
[0123] Embodiments of the subject matter described herein may include back-end components, such as, for example, a data server, or may include middleware components, such as, for example, an application server, or may include a client with, for example, a graphical user interface or web browser through which a user can interact with an implementation of the subject matter described herein. The system may be implemented in a computing system that includes a front-end component, such as a client computer, or a combination of one or more such back-end, middleware, or front-end components. The components of the system may be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include local area networks (“LANs”) and wide area networks (“WANs”), inter-networks (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks). For example, network 20 of FIG. 1 may include one or more local area networks.
[0124] A computing system may include any number of clients and servers. Clients and servers are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In some embodiments, a server sends data (e.g., HTML pages) to a client device (e.g., for the purpose of displaying the data and receiving user input from a user interacting with the client device). Data generated at the client device (e.g., results of user interaction) can be received from the client device at the server.
[0125] All U.S. patents, U.S. patent application publications, U.S. patent applications, foreign patents, foreign patent applications, and non-patent publications referred to herein and / or listed in the Application Data Sheet are incorporated herein by reference in their entirety. Aspects of the embodiments can be modified, if necessary, to use concepts from the various patents, applications, and publications to provide further embodiments.
[0126] While the present disclosure has been described with reference to certain exemplary embodiments, it should be understood that numerous other modifications and embodiments can be devised by those skilled in the art that would fall within the spirit and scope of the principles of the present disclosure. More particularly, reasonable variations and modifications are possible in the components and / or arrangements of the combined configuration of the subject matter within the scope of the foregoing disclosure, the drawings, and the appended claims without departing from the spirit of the present disclosure. In addition to variations and modifications of the components and / or arrangements, alternative uses will also be apparent to those skilled in the art.
Claims
1. 1. A method for managing biometric image data in a client cache in a digital pathology analysis system, the method comprising: (a) performing user authentication with a remote server, the authentication including verifying that a caching agent is running on the digital pathology analysis system; (b) receiving a plurality of new biological image tiles from the remote server, the new biological image tiles resulting from scanning a microscope slide having one or more biological specimens disposed thereon, the biological specimens stained with hematoxylin and eosin or stained to identify the presence of one or more biomarkers; (c) removing at least a first portion of existing biometric image tiles from a client cache communicatively coupled to the digital pathology system based on predetermined criteria; (d) storing the received new biometric image tiles in the client cache; A method comprising:
2. The method of claim 1 , wherein the predetermined criteria include storage allocation limits, cached image expiration times, slide display period expiration times, and case reassignment.
3. The method of claim 1 , wherein a collective size of the first portion of removed existing biometric image tiles is approximately the same as a total size of the received new biometric image tiles.
4. The method of claim 1 , wherein a collection size of the first portion of removed existing biometric image tiles is greater than a size of the received new biometric image tiles.
5. The method of claim 1 , wherein the received plurality of new biometric image tiles are pre-processed biometric image tiles having a compressed file format.
6. The method of claim 5 , wherein the compressed file format is JPEG.
7. The method of claim 1 , further comprising maintaining the client cache by removing a first portion of the stored new biometric image tiles based on predetermined criteria.
8. The method of claim 7 , wherein the predetermined criteria include storage allocation limits, cached image expiration times, slide display period expiration times, and case reassignment.
9. The method of claim 7 , further comprising removing a second portion of the stored new biometric image tile that has been reviewed by a pathologist.
10. 1. A method for managing biometric image data in a client cache in a digital pathology analysis system, the method comprising: (a) maintaining a client cache communicatively coupled to the digital pathology analysis system, the client cache including biometric image data for one or more patient cases, the client cache being maintained by removing a first portion of existing biometric image data based on predetermined criteria; (b) performing authentication on a remote server; and (c) receiving a first request from the remote server to add new biometric image data to the client cache; (d) storing the new biometric image data in the client cache; Including, The method, wherein the existing biological image data and the stored new biological image data are obtained from scanning a microscope slide having one or more biological samples placed thereon, the biological samples being stained with hematoxylin and eosin or stained to identify the presence of one or more biomarkers.
11. The method of claim 10 , wherein the predetermined criteria include storage allocation limits, cached image expiration times, slide display period expiration times, and case reassignment.
12. 11. The method of claim 10, wherein the client cache is further maintained by removing a second portion of the existing biometric image data for the one or more patient cases that has been reviewed by a pathologist assigned to the one or more patient cases.
13. 11. The method of claim 10, wherein the client cache is pre-allocated on a storage subsystem communicatively coupled to the digital pathology analysis system.
14. 11. The method of claim 10, wherein the authentication includes verifying that a caching agent is running on the digital pathology analysis system.
15. 11. The method of claim 10, further comprising receiving a second request from a viewer application or browser running on the digital pathology analysis system to retrieve at least a portion of the stored new biometric image data from the client cache.
16. 16. The method of claim 15, wherein the stored new bioimage data is transferred to the viewer application or the browser and displayed on a display screen of the digital pathology analysis system.
17. The method of claim 10 , wherein the stored new biometric image data comprises a plurality of pre-processed image tiles in a compressed image file format.
18. 18. The method of claim 17, wherein the plurality of image tiles comprises a first series of image tiles corresponding to biometric image data scanned at a first magnification level and a second series of image tiles corresponding to biometric image data scanned at a second magnification level.
19. 1. A method for maintaining cached biometric image data in a client cache communicatively coupled to a digital pathology analysis system, comprising: (a) accessing the bioimage data, the bioimage data being obtained from scanning a microscope slide having one or more biological specimens disposed thereon, the biological specimens being stained with hematoxylin and eosin or stained to identify the presence of one or more biomarkers; (b) receiving confirmation that a cache agent is running on the digital pathology analysis system; and (c) delivering at least a portion of the accessed biometric image data to at least partially fill a portion of the available storage space in the client cache; and (d) storing one or more URLs associated with at least the portion of the accessed biometric image data delivered to the digital pathology analysis system; and A method comprising:
20. 20. The method of claim 19, wherein the at least a portion of the accessed biometric image data is distributed to completely fill the available storage space on the client cache.
21. 21. The method of claim 20, wherein the at least a portion of the accessed biometric image data delivered to the client cache comprises a plurality of pre-processed image tiles in a compressed image file format.
22. 22. The method of claim 21, wherein the plurality of preprocessed image tiles comprises a first series of preprocessed image tiles at a first magnification level and a second series of preprocessed image tiles at a second magnification level.
23. 20. The method of claim 19, further comprising receiving an indication that there is sufficient storage space available in the client cache prior to delivering the at least a portion of the accessed biometric image data.
24. 20. The method of claim 19, further comprising receiving an indication of an amount of available storage space in the client cache.
25. 25. The method of claim 24, wherein the delivering of the at least a portion of the accessed biometric image data comprises: (i) determining the size of the accessed biometric image data; and (ii) selecting the at least a portion of the accessed biometric image data based on the available storage space in the client cache.
26. 26. The method of claim 25, wherein the selection of the at least some of the accessed biometric image data is based on predetermined selection criteria.
27. 27. The method of claim 26, wherein the predetermined selection criteria is scanning the dates of individual images within the accessed biometric image data.
28. 20. The method of claim 19, wherein the accessed bioimage data is assigned to a first pathologist on the digital pathology analysis system.
29. 30. The method of claim 28, wherein the step of authenticating further comprises verifying the identification credentials of the first pathologist.
30. 20. The method of claim 19, wherein the step of receiving confirmation that a server maintains a connection to the caching agent and that a caching agent is running on the digital pathology analysis system includes confirming that the connection has been established.
31. 1. A method for displaying biometric image data in an interface application on a digital pathology analysis system, comprising: (a) receiving a first user input related to a first patient case; (b) contacting a remote server for one or more stored biological image tiles corresponding to the received first user input, the stored biological image tiles being obtained from scanning a microscope slide having one or more biological specimens disposed thereon, the biological specimens being stained with hematoxylin and eosin or stained to identify the presence of one or more biomarkers; (c) receiving location information of the one or more stored biometric image tiles corresponding to the first user input; and (d) retrieving the one or more stored biometric image tiles associated with the first user input based on the received location information; and (e) visualizing the acquired one or more biometric image tiles associated with the first user input; A method comprising:
32. 32. The method of claim 31 , further comprising determining whether the stored one or more biometric image tiles are present in a client cache communicatively coupled to the digital pathology analysis system.
33. 33. The method of claim 32, wherein if the biometric image data is maintained in the client cache, the stored one or more biometric image tiles are retrieved from the client cache.
34. 33. The method of claim 32, wherein the stored one or more biometric image tiles are retrieved from the remote server if the image is deleted from the client cache.
35. 35. The method of claim 34, wherein the one or more stored biometric image tiles obtained from the remote server are downloaded to the client cache.
36. The method of claim 35 , wherein the visualized one or more biometric image tiles are retrieved from the client cache.
37. 33. The method of claim 32, wherein if the stored one or more biometric image tiles are not maintained in the client cache, the interface is redirected to a storage location on the remote server.
38. 32. The method of claim 31 , wherein the one or more stored biometric image tiles associated with the first user input are retrieved from the remote server, further comprising receiving a second user input associated with the first patient case, wherein the one or more stored image tiles associated with the second user input are retrieved from a client cache.
39. 32. The method of claim 31, wherein the stored one or more biometric image tiles are preprocessed image tiles in an uncompressed format.
40. 32. The method of claim 31, further comprising managing the client cache by removing pre-populated biometric image data that meets predetermined criteria.
41. 32. The method of claim 31 , wherein the location information comprises one or more URLs.