US11416492B2 - System and methods for caching and querying objects stored in multiple databases - Google Patents

System and methods for caching and querying objects stored in multiple databases Download PDF

Info

Publication number
US11416492B2
US11416492B2 US16/518,496 US201916518496A US11416492B2 US 11416492 B2 US11416492 B2 US 11416492B2 US 201916518496 A US201916518496 A US 201916518496A US 11416492 B2 US11416492 B2 US 11416492B2
Authority
US
United States
Prior art keywords
databases
dicom
objects
attributes
search query
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active, expires
Application number
US16/518,496
Other versions
US20190347262A1 (en
Inventor
Razvan Atanasiu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hyland Switzerland SARL
Original Assignee
Hyland Switzerland SARL
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hyland Switzerland SARL filed Critical Hyland Switzerland SARL
Priority to US16/518,496 priority Critical patent/US11416492B2/en
Publication of US20190347262A1 publication Critical patent/US20190347262A1/en
Application granted granted Critical
Publication of US11416492B2 publication Critical patent/US11416492B2/en
Assigned to GOLUB CAPITAL MARKETS LLC, AS COLLATERAL AGENT reassignment GOLUB CAPITAL MARKETS LLC, AS COLLATERAL AGENT SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HYLAND SWITZERLAND SARL
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H30/00ICT specially adapted for the handling or processing of medical images
    • G16H30/20ICT specially adapted for the handling or processing of medical images for handling medical images, e.g. DICOM, HL7 or PACS

Definitions

  • the present disclosure relates generally to systems and methods for caching and querying objects in multiple databases and more particularly, caching and querying Digital Imaging and Communications in Medicine (DICOM) objects.
  • DICOM Digital Imaging and Communications in Medicine
  • caching is one of the most important factors that could improve performance. Caching stores data into a memory in a way that future requests for those data may be served faster. However, with multiple databases that contain hundreds or thousands of entries, caching and the subsequent retrieval of entries may take a considerable amount of time.
  • Parallel query allows a system to break up a given query so that its parts can run simultaneously on different processors to search for an object from a plurality of databases.
  • Parallel query can improve performance on a multiple-database system but it still has drawbacks such as a longer processing time and scalability problems during higher concurrency situations.
  • a method for caching objects stored in a plurality of databases includes querying the plurality of databases, creating a memory structure based on the database entries, and assigning a memory value for a particular level in the databases.
  • the memory value is used to search for an object when a query for a DICOM object is received from a client.
  • a method for organizing and searching objects from a plurality of databases includes retrieving, by a server, entries from the plurality of databases by querying an attribute of each entry stored in the plurality of databases.
  • the method further includes assigning, by the server, a memory value for each of the attributes retrieved from each of the entries stored in the plurality of databases.
  • the memory values may be stored for each of the attributes in a cache and at a client device, a search query may be received.
  • the search query may be a query for a first entry stored in one of the plurality of databases.
  • a determining may be performed if the search query contains an attribute of the first entry to be searched. Upon positive determination, performing a search at the cache using the attribute contained in the search query; and upon negative determination, performing a search for the first entry at the plurality of debases.
  • FIG. 1 is an example system for accessing DICOM objects using a client device from one or more remote databases connected through a network.
  • FIG. 2 is an example method of caching DICOM objects.
  • FIG. 3 is an example method of performing a query and retrieve DICOM operation.
  • example embodiments of the disclosure include both hardware and electronic components or modules that, for purposes of discussion, may be illustrated and described as if the majority of the components were implemented solely in hardware.
  • each block of the diagrams, and combinations of blocks in the diagrams, respectively, may be implemented by computer program instructions. These computer program instructions may be loaded onto a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions which execute on the computer or other programmable data processing apparatus may create means by implementing the functionality of each block or combinations of blocks in the diagrams discussed in detail in the description below.
  • These computer program instructions may also be stored in a non-transitory computer-readable medium that may direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium may produce an article of manufacture, including an instruction means that implements the function specified in the block or blocks.
  • the computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions that execute on the computer or other programmable apparatus implement the functions specified in the block or blocks.
  • blocks of the diagrams support combinations of means for performing the specified functions, combinations of steps for performing the specified functions and program instruction means for performing the specified functions. It will also be understood that each block of the diagrams and combinations of blocks in the diagrams, can be implemented by special purpose hardware-based computer systems that perform the specified functions or steps, or combinations of special purpose hardware and computer instructions.
  • a method queries a plurality of databases, creates a memory structure based on the entries on the database, and assigns a memory value for each entry of a particular level in the database.
  • the level is associated to an object that is retrieved from a database by referencing the memory structure, as will be discussed in greater detail herein.
  • the object may refer to files such as, for example, documents, image files, audio files, among others.
  • Object may refer to paper based records converted into digital files to be used by a computing device.
  • Object may also refer to information that provides value for an end-user or object consumer in one or more specific contexts.
  • Object may be shared via one or more media such as, for example, computing devices in a network.
  • object may refer to computerized medical records, or electronic medical records (EMR), created in a health organization, or any organization that delivers patient care such as, for example, a physician's office, a hospital, or ambulatory environments.
  • EMR electronic medical records
  • EMR may include orders for drug prescriptions, orders for tests, patient admission information, imaging rest results, laboratory results, and clinical progress information, among others.
  • Object may also refer to an electronic health record (EHR) which may be a digital object capable of being distributed, accessed or managed across various health care settings.
  • EHRs may include various types of information such as, for example, medical history, demographics, immunization status, radiology images, medical allergies, personal states (e.g. age, weight), vital signs and billing information, among others.
  • EHR and EMR may also be referred to as electronic patient record (EPR).
  • EHR, EPR, EMR, document, object, object and assets may be used interchangeably for illustrative purposes throughout the present disclosure.
  • object may also refer to DICOM objects.
  • DICOM is a standard or specification for transmitting, storing, printing and handling information in medical imaging.
  • Medical imaging as will be known in the art, may refer to a process and/or technique used to generate images of the human body, or parts or functions thereof, for medical and/or clinical purposes such as, for example, to diagnose, reveal or examine a disease.
  • the standard set by DICOM may facilitate interoperability of various medical imaging equipment across a domain of health enterprises by specifying and/or defining data structures workflow, data dictionary, compression and workflow, among other things, for use to generate, transmit and access the images and related information stored on the images.
  • DICOM object may refer to medical images following the file format definition and network transmission protocol as defined by DICOM.
  • DICOM object may include a range of biological imaging results and may include images generated through radiology and other radiological sciences, nuclear medicine, thermography, microscopy, microscopy and medical photography, among many others.
  • DICOM object may be referred to hereinafter as images following the DICOM standard, and non-DICOM object for other forms and types of object, as will be known in the art.
  • the DICOM object may be generated and maintained within an institution such as, for example, an integrated delivery network, hospital physician's office or clinic, to provide patients and health care providers, insurers or payers access to records of a patient across a number of facilities. Sharing of an object may be performed using network-connected enterprise-wide information systems, and other similar information exchanges or networks, as will be known in the art.
  • FIG. 1 shows an example system for accessing DICOM objects using a client device and one or more remote databases connected through a network.
  • the system includes an example client 105 , a network 110 , a plurality of databases 115 , and a server 220 .
  • Client 105 may be a computing device that allows a user to search and access DICOM objects from the plurality of databases 115 .
  • Client 105 may be used by a user of a web page or a web application (not shown) to request for a DICOM object by submitting a query for the DICOM object and receiving one or more results corresponding to the query.
  • client 105 may be a medical information system that is used by one or more users to retrieve DICOM objects, as will be known.
  • Network 110 may be any network, communications network or network/communications network system such as, but not limited to, a peer-to-peer network, a hybrid peer-to-peer network, a Local Area Network (LAN), a Wide Area Network (WAN), a public network, such as the Internet, a private network, a cellular network, a combination of different network types, or other wireless, wired, and/or a wireless and wired combination network capable of allowing communication between two or more computing systems, as discussed herein, and/or available or known at the time of filing, and/or as developed after the time of filing.
  • a peer-to-peer network such as, but not limited to, a peer-to-peer network, a hybrid peer-to-peer network, a Local Area Network (LAN), a Wide Area Network (WAN), a public network, such as the Internet, a private network, a cellular network, a combination of different network types, or other wireless, wired, and/or a wireless and wired combination network capable of
  • Metadata associated with the DICOM objects may be stored in databases 115 .
  • Databases 115 may be Medical Object Manager (MCM) or a picture archiving and communication system (PACS) systems.
  • DICOM metadata may be stored in databases 115 for specified periods of time.
  • client 105 requests for a DICOM object, it connects to at least one of the databases 115 through network 110 and fetches the stored metadata associated with the object to locate and retrieve the object.
  • client 105 To connect to databases, client 105 must be familiar with the specific protocol for communicating with the database.
  • Server 220 may be a Web Access to DICOM Persistent Objects (WADO) server that connects the client with databases 115 using network 110 .
  • the WADO server 220 simplifies the communication between client 105 and any DICOM database by providing protocols and mechanisms for accessing DICOM objects through HTTP/HTPPS, and using a DICOM Unique Identifier (UID).
  • UID DICOM Unique Identifier
  • any web client is able to query for DICOM objects such as, medical images, reports and other object formats, from the databases 115 .
  • FIG. 2 shows an example method 200 of caching DICOM objects such that a query for a DICOM object may be made faster and more efficient.
  • a DICOM query is typically performed using a parallel query on the plurality of databases to retrieve a DICOM object from databases 115 .
  • Example method 200 caches the objects beforehand in order to allow a DICOM query to check the cache first to easily locate an object, before going the more typical route of parallel querying.
  • Method 200 may be performed by a web service in client 105 when querying and retrieving objects through network 110 to and from at least one database of databases 115 .
  • the web service may be configured to expose a web service endpoint and a RESTful endpoint.
  • Method 200 may be performed with WADO requests.
  • WADO requests are performed at the DICOM instance level, wherein each request requires three key values: StudyInstanceUID, SeriesInstanceUID and SOPInstanceUID.
  • a cache memory structure based on the database entries is created (at block 210 ) by assigning a memory value for each entry having a level in the databases (at block 215 ).
  • Creating the memory structure and assigning a memory value for each database entry of a specfic level such as, for example, the StudyInstanceUID, in databases 115 aggregates the plurality of databases and allows client 105 to run one query on the cache to find a DICOM object, before resorting to the slower process of parallel query.
  • method 200 that caches the StudyInstanceUID and DICOM database pairs uses a single service or process that would serve all application servers 120 , therefore making the system more scalable.
  • other items may also be cached such as the Study GUIDs.
  • a timestamp of the run time of caching the entries may be kept and a dynamic query may be performed to check which entries are recently added. If a StudyInstanceUID value is found in more than one database, either the last entry visited is cached or all entries found are being stored in a list.
  • Polling operations that cache new entries may be performed similarly by querying the database for new entries and adding the new entries in the memory structure by assigning a corresponding memory value for each new entry.
  • options for caching the entries may be configured. Configurable options include the databases that may be queried for storing entries in the cache and the polling intervals (e.g., 5 minutes, 10 minutes, etc.).
  • FIG. 3 is an example method 300 of performing a query and retrieve DICOM operation. Method 300 may also be performed with WADO requests. As aforementioned, WADO requests sue performed at the DICOM instance level, wherein each request requires three key values: StudyInstanceUID, SeriesInstanceUID and SOPInstanceUID.
  • a search query may be received from client 105 .
  • the search query may be a Query/Retrieve (QR) DICOM query that contains a search term that users of client 105 wishes to access a DICOM object with. If the search query received is a WADO query, StudyInstanceUID is guaranteed to be part of the request and is then used to perform search on cache at block 315 . However, for other DICOM queries, the received Q/R dataset may be first determined if it contains a StudyInstanceUID value (at block 310 ).
  • a search is performed on the cache to determine if a StudyInstanceUID and a DICOM object is present on the cache that will allow the system to identify the database associated with the StudyInstanceUID (at block 315 ), thereby performing only one query.
  • the cache returns a positive result (i.e., a result greater than one) which indicates that a StudyInstanceUID associated with the query is found on the cache
  • the DICOM object associated with the StudyInstanceUID is then retrieved from the database that is specified in the cache.
  • the retrieved DICOM object is then returned to client 105 (at block 325 ).
  • the more traditional method of locating DICOM objects through parallel query may be performed (at block 330 ).
  • a parallel query may be performed on the databases to retrieve the DICOM object associated with the query (at block 330 ), and the results returned to client 105 (at block 325 ).

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • Fuzzy Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Epidemiology (AREA)
  • Public Health (AREA)
  • Radiology & Medical Imaging (AREA)
  • Primary Health Care (AREA)
  • Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A method for organizing and searching objects from a plurality of databases includes querying an attribute of each entry stored in the plurality of databases; assigning a memory value for each of the attributes retrieved from each of the objects stored in the plurality of databases and storing the memory values for each of the attributes in a cache. At a client device, a search query is received and it is determined if the search query contains an attribute of the entry to be searched. Upon positive determination, a search is performed at the cache using the attribute contained in the search query; and upon negative determination, a search for the entry is performed at the plurality of databases.

Description

CROSS REFERENCES TO RELATED APPLICATIONS
This application is a continuation of U.S. application Ser. No. 14/502,895, published as U.S. 2015/0095364, titled, “System and Methods for Caching and Querying Objects Stored in Multiple Databases,” filed on Sep. 30, 2014, which, in turn, claimed the benefit of the earlier filing date of Provisional Application Ser. No. 61/884,961, filed Sep. 30, 2013, entitled “System and Methods for Caching Objects Stored in Multiple Databases,” the content of each of these prior applications are hereby incorporated by reference in their entirety.
BACKGROUND 1. Technical Field
The present disclosure relates generally to systems and methods for caching and querying objects in multiple databases and more particularly, caching and querying Digital Imaging and Communications in Medicine (DICOM) objects.
2. Description of the Related Art
For an application that uses multiple databases, caching is one of the most important factors that could improve performance. Caching stores data into a memory in a way that future requests for those data may be served faster. However, with multiple databases that contain hundreds or thousands of entries, caching and the subsequent retrieval of entries may take a considerable amount of time.
Typically, searching for an object from a plurality of databases is performed using parallel query. Parallel query allows a system to break up a given query so that its parts can run simultaneously on different processors to search for an object from a plurality of databases. Parallel query can improve performance on a multiple-database system but it still has drawbacks such as a longer processing time and scalability problems during higher concurrency situations.
Accordingly, there is a need for a method of caching and querying for objects stored in a database faster and more efficiently. There is a need for a method that can be used to search for objects prior to reading to parallel query.
SUMMARY
A method for caching objects stored in a plurality of databases is disclosed. The method includes querying the plurality of databases, creating a memory structure based on the database entries, and assigning a memory value for a particular level in the databases. The memory value is used to search for an object when a query for a DICOM object is received from a client.
In another aspect of the present disclosure, a method for organizing and searching objects from a plurality of databases is disclosed. The method includes retrieving, by a server, entries from the plurality of databases by querying an attribute of each entry stored in the plurality of databases. The method further includes assigning, by the server, a memory value for each of the attributes retrieved from each of the entries stored in the plurality of databases.
The memory values may be stored for each of the attributes in a cache and at a client device, a search query may be received. The search query may be a query for a first entry stored in one of the plurality of databases. At the client device, a determining may be performed if the search query contains an attribute of the first entry to be searched. Upon positive determination, performing a search at the cache using the attribute contained in the search query; and upon negative determination, performing a search for the first entry at the plurality of debases.
From the foregoing disclosure and the following detailed description of various example embodiments, it will be apparent to those skilled in the art that the present disclosure provides a significant advance in the art of methods for enabling net work-based processes in a device during a network downtime condition. Additional features and advantages of various example embodiments will be better understood in view of the detailed description provided below.
BRIEF DESCRIPTION OF THE DRAWINGS
The above-mentioned and other features and advantages of the present disclosure, and the manner of attaining them, will become more apparent and will be better understood by reference to the following description of example embodiments taken in conjunction with the accompanying drawings. Like reference numerals are used to indicate the same element throughout the specification.
FIG. 1 is an example system for accessing DICOM objects using a client device from one or more remote databases connected through a network.
FIG. 2 is an example method of caching DICOM objects.
FIG. 3 is an example method of performing a query and retrieve DICOM operation.
DETAILED DESCRIPTION Of THE DRAWINGS
It is to be understood that the disclosure is not limited to the details of construction and the arrangement of components set forth in the following description or illustrated in the drawings. The disclosure is capable of other example embodiments and of being practiced or of being carried out in various ways. For example, other example embodiments may incorporate structural, chronological, process, and other changes. Examples merely typify possible variations. Individual components and functions are optional unless explicitly required, and the sequence of operations may vary. Portions and features of some example embodiments may be included in or substituted for those of others. The scope of the disclosure encompasses the appended claims and all available equivalents. The following description is, therefore, not to be taken in a limited sense, and the scope of the present disclosure is defined by the appended claims.
Also, it is to be understood that the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use herein of “including,” “comprising,” or “having” and variations thereof is meant to encompass the items listed thereafter and equivalents thereof as well as additional items. Further, the use of the terms “a” and “an” herein do not denote a limitation of quantity but rather denote the presence of at least one of the referenced item.
In addition, it should be understood that example embodiments of the disclosure include both hardware and electronic components or modules that, for purposes of discussion, may be illustrated and described as if the majority of the components were implemented solely in hardware.
It will be further understood that each block of the diagrams, and combinations of blocks in the diagrams, respectively, may be implemented by computer program instructions. These computer program instructions may be loaded onto a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions which execute on the computer or other programmable data processing apparatus may create means by implementing the functionality of each block or combinations of blocks in the diagrams discussed in detail in the description below.
These computer program instructions may also be stored in a non-transitory computer-readable medium that may direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium may produce an article of manufacture, including an instruction means that implements the function specified in the block or blocks. The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions that execute on the computer or other programmable apparatus implement the functions specified in the block or blocks.
Accordingly, blocks of the diagrams support combinations of means for performing the specified functions, combinations of steps for performing the specified functions and program instruction means for performing the specified functions. It will also be understood that each block of the diagrams and combinations of blocks in the diagrams, can be implemented by special purpose hardware-based computer systems that perform the specified functions or steps, or combinations of special purpose hardware and computer instructions.
Disclosed are a system and methods for caching entries in a database. A method is disclosed that queries a plurality of databases, creates a memory structure based on the entries on the database, and assigns a memory value for each entry of a particular level in the database. The level is associated to an object that is retrieved from a database by referencing the memory structure, as will be discussed in greater detail herein.
For purposes of the present disclosure, it will be appreciated that the object may refer to files such as, for example, documents, image files, audio files, among others. Object may refer to paper based records converted into digital files to be used by a computing device. Object may also refer to information that provides value for an end-user or object consumer in one or more specific contexts. Object may be shared via one or more media such as, for example, computing devices in a network.
In an example embodiment, object may refer to computerized medical records, or electronic medical records (EMR), created in a health organization, or any organization that delivers patient care such as, for example, a physician's office, a hospital, or ambulatory environments. EMR may include orders for drug prescriptions, orders for tests, patient admission information, imaging rest results, laboratory results, and clinical progress information, among others.
Object may also refer to an electronic health record (EHR) which may be a digital object capable of being distributed, accessed or managed across various health care settings. EHRs may include various types of information such as, for example, medical history, demographics, immunization status, radiology images, medical allergies, personal states (e.g. age, weight), vital signs and billing information, among others. EHR and EMR may also be referred to as electronic patient record (EPR). The terms EHR, EPR, EMR, document, object, object and assets may be used interchangeably for illustrative purposes throughout the present disclosure.
In another example embodiment, object may also refer to DICOM objects. DICOM is a standard or specification for transmitting, storing, printing and handling information in medical imaging. Medical imaging, as will be known in the art, may refer to a process and/or technique used to generate images of the human body, or parts or functions thereof, for medical and/or clinical purposes such as, for example, to diagnose, reveal or examine a disease. The standard set by DICOM may facilitate interoperability of various medical imaging equipment across a domain of health enterprises by specifying and/or defining data structures workflow, data dictionary, compression and workflow, among other things, for use to generate, transmit and access the images and related information stored on the images. DICOM object may refer to medical images following the file format definition and network transmission protocol as defined by DICOM. DICOM object may include a range of biological imaging results and may include images generated through radiology and other radiological sciences, nuclear medicine, thermography, microscopy, microscopy and medical photography, among many others. DICOM object may be referred to hereinafter as images following the DICOM standard, and non-DICOM object for other forms and types of object, as will be known in the art.
The DICOM object may be generated and maintained within an institution such as, for example, an integrated delivery network, hospital physician's office or clinic, to provide patients and health care providers, insurers or payers access to records of a patient across a number of facilities. Sharing of an object may be performed using network-connected enterprise-wide information systems, and other similar information exchanges or networks, as will be known in the art.
FIG. 1 shows an example system for accessing DICOM objects using a client device and one or more remote databases connected through a network. The system includes an example client 105, a network 110, a plurality of databases 115, and a server 220.
Client 105 may be a computing device that allows a user to search and access DICOM objects from the plurality of databases 115. Client 105 may be used by a user of a web page or a web application (not shown) to request for a DICOM object by submitting a query for the DICOM object and receiving one or more results corresponding to the query. In an example embodiment, client 105 may be a medical information system that is used by one or more users to retrieve DICOM objects, as will be known.
Network 110 may be any network, communications network or network/communications network system such as, but not limited to, a peer-to-peer network, a hybrid peer-to-peer network, a Local Area Network (LAN), a Wide Area Network (WAN), a public network, such as the Internet, a private network, a cellular network, a combination of different network types, or other wireless, wired, and/or a wireless and wired combination network capable of allowing communication between two or more computing systems, as discussed herein, and/or available or known at the time of filing, and/or as developed after the time of filing.
Metadata associated with the DICOM objects may be stored in databases 115. Databases 115 may be Medical Object Manager (MCM) or a picture archiving and communication system (PACS) systems. DICOM metadata may be stored in databases 115 for specified periods of time. When client 105 requests for a DICOM object, it connects to at least one of the databases 115 through network 110 and fetches the stored metadata associated with the object to locate and retrieve the object. To connect to databases, client 105 must be familiar with the specific protocol for communicating with the database.
Server 220 may be a Web Access to DICOM Persistent Objects (WADO) server that connects the client with databases 115 using network 110. The WADO server 220 simplifies the communication between client 105 and any DICOM database by providing protocols and mechanisms for accessing DICOM objects through HTTP/HTPPS, and using a DICOM Unique Identifier (UID). With WADO, any web client is able to query for DICOM objects such as, medical images, reports and other object formats, from the databases 115.
FIG. 2 shows an example method 200 of caching DICOM objects such that a query for a DICOM object may be made faster and more efficient. In FIG. 1, which illustrates an example system having a plurality of databases 115, a DICOM query is typically performed using a parallel query on the plurality of databases to retrieve a DICOM object from databases 115. Example method 200 caches the objects beforehand in order to allow a DICOM query to check the cache first to easily locate an object, before going the more typical route of parallel querying.
Method 200 may be performed by a web service in client 105 when querying and retrieving objects through network 110 to and from at least one database of databases 115. The web service may be configured to expose a web service endpoint and a RESTful endpoint. Method 200 may be performed with WADO requests. WADO requests are performed at the DICOM instance level, wherein each request requires three key values: StudyInstanceUID, SeriesInstanceUID and SOPInstanceUID.
At block 205, all of the databases 115 that are connected to client 105 are queried and a cache memory structure based on the database entries is created (at block 210) by assigning a memory value for each entry having a level in the databases (at block 215). Creating the memory structure and assigning a memory value for each database entry of a specfic level such as, for example, the StudyInstanceUID, in databases 115 aggregates the plurality of databases and allows client 105 to run one query on the cache to find a DICOM object, before resorting to the slower process of parallel query. Using method 200 that caches the StudyInstanceUID and DICOM database pairs uses a single service or process that would serve all application servers 120, therefore making the system more scalable.
In an example embodiment, other items may also be cached such as the Study GUIDs. In an alternative example embodiment, a timestamp of the run time of caching the entries may be kept and a dynamic query may be performed to check which entries are recently added. If a StudyInstanceUID value is found in more than one database, either the last entry visited is cached or all entries found are being stored in a list.
Polling operations that cache new entries may be performed similarly by querying the database for new entries and adding the new entries in the memory structure by assigning a corresponding memory value for each new entry. In an alternative example embodiment, options for caching the entries may be configured. Configurable options include the databases that may be queried for storing entries in the cache and the polling intervals (e.g., 5 minutes, 10 minutes, etc.).
FIG. 3 is an example method 300 of performing a query and retrieve DICOM operation. Method 300 may also be performed with WADO requests. As aforementioned, WADO requests sue performed at the DICOM instance level, wherein each request requires three key values: StudyInstanceUID, SeriesInstanceUID and SOPInstanceUID.
At block 305, a search query may be received from client 105. The search query may be a Query/Retrieve (QR) DICOM query that contains a search term that users of client 105 wishes to access a DICOM object with. If the search query received is a WADO query, StudyInstanceUID is guaranteed to be part of the request and is then used to perform search on cache at block 315. However, for other DICOM queries, the received Q/R dataset may be first determined if it contains a StudyInstanceUID value (at block 310). If the received dataset contains a StudyInstanceUID value, a search is performed on the cache to determine if a StudyInstanceUID and a DICOM object is present on the cache that will allow the system to identify the database associated with the StudyInstanceUID (at block 315), thereby performing only one query.
At block 320, if the cache returns a positive result (i.e., a result greater than one) which indicates that a StudyInstanceUID associated with the query is found on the cache, the DICOM object associated with the StudyInstanceUID is then retrieved from the database that is specified in the cache. The retrieved DICOM object is then returned to client 105 (at block 325).
However, if at block 320, if is determined that the StudyInstanceUID has not been previously cached, and the cache returns a negative value, the more traditional method of locating DICOM objects through parallel query may be performed (at block 330).
In continued reference to block 310, if the query does not contain a StudyInstanceUID value, a parallel query may be performed on the databases to retrieve the DICOM object associated with the query (at block 330), and the results returned to client 105 (at block 325).
It will be understood that the example applications described herein are illustrative and should not be considered limiting. It will be appreciated that the actions described and shown in the example flowcharts may be carried out or performed in any suitable order. It will also be appreciated that not all of the actions described in FIGS. 2 and 3 need to be performed in accordance with the example embodiments of the disclosure and/or additional actions may be performed in accordance with other example embodiments of the disclosure.
Many modifications and other example embodiments of the disclosure set forth herein will come to mind to one skilled in the art to which these disclosure pertain having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the disclosure is not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.

Claims (20)

What is claimed is:
1. A method performed by a server, the method comprising:
retrieving entries stored in a plurality of databases;
selecting attributes for each of the entries that are stored within the entries, wherein each attribute in the attributes shares a type;
assigning memory values to the attributes for the entries, wherein each of the memory values is associated with a corresponding location in one of the plurality of databases;
storing the memory values in a cache, wherein subsequently a client device receives a search query for a first entry stored in one of the plurality of databases, wherein the client device determines whether the search query includes a corresponding attribute of the type;
upon receiving an indication of positive determination that the search query includes the corresponding attribute by the client device, and in response to the search query comprising a Web Access to Digital Imaging and Communications in Medicine (DICOM) Persistent Objects (WADO) query and a StudyInstanceUID, performing a search at the cache using the StudyInstanceUID and the corresponding attribute included in the search query in order to retrieve the first entry from one of the plurality of databases;
upon receiving an indication of negative determination that the search query does not include the corresponding attribute by the client device and the StudyInstanceUID, performing a parallel query across the plurality of databases in order to retrieve the first entry from one of the plurality of databases; and
transmitting the first entry to the client device, wherein the client device presents the first entry on a display.
2. The method of claim 1, wherein the entries are Digital Imaging and Communications in Medicine (DICOM) entries, wherein the attributes are DICOM level attributes.
3. The method of claim 1, wherein the attributes comprise timestamps corresponding to times at which the entries were cached.
4. The method of claim 1, wherein retrieving the entries, selecting the attributes, and assigning the memory values are performed at predefined intervals.
5. The method of claim 1, wherein the attributes are unique identifiers for the entries.
6. The method of claim 1, wherein the search query includes:
the StudyInstanceUID;
a SeriesInstanceUID; and
a SOPInstance UID.
7. A server comprising:
a processor; and
memory storing instructions that, when executed by the processor, cause the processor to perform acts comprising:
retrieving objects stored in a plurality of databases;
selecting attributes for each of the objects that are stored within the objects, wherein each attribute in the attributes shares a type;
assigning memory values to the attributes for the objects, wherein each of the memory values is associated with a corresponding location in one of the plurality of databases;
storing the memory values in a cache, wherein subsequently a client device receives a search query for a first object stored in one of the plurality of databases, wherein the client device determines whether the search query includes a corresponding attribute of the type;
upon receiving an indication of positive determination that the search query includes the corresponding attribute by the client device, and in response to the search query comprising a Web Access to Digital Imaging and Communications in Medicine (DICOM) Persistent Objects (WADO) query and a StudyInstanceUID, performing a search at the cache using the StudyInstanceUID and the corresponding attribute included in the search query in order to retrieve the first object from one of the plurality of databases;
upon receiving an indication of negative determination that the search query does not include the corresponding attribute by the client device and the StudyInstanceUID, performing a parallel query across the plurality of databases in order to retrieve the first object from one of the plurality of databases; and
transmitting the first object to the client device, wherein the client device presents the first object on a display.
8. The server of claim 7, wherein the objects are Digital Imaging and Communications in Medicine (DICOM) objects, wherein the attributes are DICOM level attributes.
9. The server of claim 7, wherein the StudyInstanceUID corresponds to at least one of the objects, and wherein the parallel query is performed in response to further determining that the StudyInstanceUID is not previously cached.
10. The server of claim 7, wherein the plurality of databases are organized according to a plurality of levels.
11. The server of claim 7, wherein the attributes comprise timestamps corresponding to times at which the objects were cached.
12. The server of claim 7, wherein retrieving the objects, selecting the attributes, and assigning the memory values are performed at predefined intervals.
13. A method performed by a server, the method comprising:
retrieving Digital Imaging and Communications in Medicine (DICOM) objects stored in a plurality of databases;
selecting attributes for each of the DICOM objects that are stored within the DICOM objects, wherein each attribute in the attributes shares a type;
assigning memory values to the attributes for the DICOM objects, wherein each of the memory values is associated with a corresponding location in one of the plurality of databases;
storing the memory values in a cache, wherein subsequently a client device receives a search query for a first DICOM object stored in one of the plurality of databases, wherein the client device determines whether the search query includes a corresponding attribute of the type;
upon receiving an indication of positive determination that the search query includes the corresponding attribute by the client device, and in response to the search query comprising a Web Access to Digital Imaging and Communications in Medicine (DICOM) Persistent Objects (WADO) query and a StudyInstanceUID, performing a search at the cache using the StudyInstanceUID and the corresponding attribute included in the search query in order to retrieve the first DICOM object from one of the plurality of databases;
upon receiving an indication of negative determination that the search query does not include the corresponding attribute by the client device and after determining that the StudyInstanceUID is not previously cached, performing a parallel query across the plurality of databases in order to retrieve the first DICOM object from one of the plurality of databases; and
transmitting the first DICOM object to the client device, wherein the client device presents the first DICOM object on a display.
14. The method of claim 13, wherein the corresponding attribute included in the search query is one or more of:
the StudyInstanceUID corresponding to the first DICOM object;
a SeriesInstanceUID corresponding to the first DICOM object; and
a SOPInstanceUID corresponding to the first DICOM object.
15. The method of claim 13, wherein the attributes comprise timestamps corresponding to times at which the DICOM objects were cached.
16. The method of claim 13, wherein the first DICOM object includes radiological images.
17. The method of claim 13, wherein the attributes are unique identifiers for the DICOM objects.
18. The method of claim 13, wherein the attributes are level attributes of the DICOM object.
19. The method of claim 1, further comprising:
updating the cache by querying each of the plurality of databases for newly-added objects; and
assigning a corresponding memory value to the newly-added objects, wherein the newly-added objects do not have a corresponding memory value assigned prior to the search querying.
20. The method of claim 13, further comprising:
updating the cache by querying each of the plurality of databases for newly-added DICOM objects; and
assigning a corresponding memory value to the newly-added objects after the search querying.
US16/518,496 2013-09-30 2019-07-22 System and methods for caching and querying objects stored in multiple databases Active 2035-01-19 US11416492B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/518,496 US11416492B2 (en) 2013-09-30 2019-07-22 System and methods for caching and querying objects stored in multiple databases

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361884961P 2013-09-30 2013-09-30
US14/502,895 US10360218B2 (en) 2013-09-30 2014-09-30 System and methods for caching and querying objects stored in multiple databases
US16/518,496 US11416492B2 (en) 2013-09-30 2019-07-22 System and methods for caching and querying objects stored in multiple databases

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US14/502,895 Continuation US10360218B2 (en) 2013-09-30 2014-09-30 System and methods for caching and querying objects stored in multiple databases

Publications (2)

Publication Number Publication Date
US20190347262A1 US20190347262A1 (en) 2019-11-14
US11416492B2 true US11416492B2 (en) 2022-08-16

Family

ID=52741176

Family Applications (2)

Application Number Title Priority Date Filing Date
US14/502,895 Active 2035-10-16 US10360218B2 (en) 2013-09-30 2014-09-30 System and methods for caching and querying objects stored in multiple databases
US16/518,496 Active 2035-01-19 US11416492B2 (en) 2013-09-30 2019-07-22 System and methods for caching and querying objects stored in multiple databases

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US14/502,895 Active 2035-10-16 US10360218B2 (en) 2013-09-30 2014-09-30 System and methods for caching and querying objects stored in multiple databases

Country Status (1)

Country Link
US (2) US10360218B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10360218B2 (en) 2013-09-30 2019-07-23 Hyland Switzerland Sàrl System and methods for caching and querying objects stored in multiple databases
CN107357898A (en) * 2017-07-13 2017-11-17 上海联影医疗科技有限公司 The method, apparatus and electric terminal of a kind of information search
CN110909022A (en) * 2018-09-14 2020-03-24 北京京东尚科信息技术有限公司 Data query method and device
CN111180051A (en) * 2019-12-31 2020-05-19 健康蓝图(北京)科技有限公司 Medical image data processing method and device
CN111522798B (en) * 2020-06-18 2020-10-23 腾讯科技(深圳)有限公司 Data synchronization method, device, equipment and readable storage medium

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6014671A (en) * 1998-04-14 2000-01-11 International Business Machines Corporation Interactive retrieval and caching of multi-dimensional data using view elements
US20060282447A1 (en) * 2003-06-04 2006-12-14 The Trustees Of The University Of Pennsylvania Ndma db schema, dicom to relational schema translation, and xml to sql query transformation
US20090164247A1 (en) * 2007-12-21 2009-06-25 Siemens Aktiengesellschaft Data and Display Protocols
US20100138446A1 (en) * 2008-10-24 2010-06-03 Datcard Systems, Inc. System and methods for metadata management in content addressable storage
US20100235323A1 (en) * 2006-12-27 2010-09-16 Axon Medical Technologies Corp. Cooperative Grid Based Picture Archiving and Communication System
US20110153351A1 (en) * 2009-12-17 2011-06-23 Gregory Vesper Collaborative medical imaging web application
US20110213774A1 (en) * 2008-11-14 2011-09-01 Koninklijke Philips Electronics N.V. Search engine for medical data
US20110225266A1 (en) * 2009-12-07 2011-09-15 Symantec Corporation Storage systems and methods
US20120303896A1 (en) * 2011-05-24 2012-11-29 International Business Machines Corporation Intelligent caching
US20140379837A1 (en) * 2013-06-21 2014-12-25 Lexmark International, Inc. System and Methods of Pre-Fetching Content in one or more Repositories
US20150006574A1 (en) * 2012-01-27 2015-01-01 Koninklijke Philips N.V. Medical selection system
US10360218B2 (en) 2013-09-30 2019-07-23 Hyland Switzerland Sàrl System and methods for caching and querying objects stored in multiple databases

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6014671A (en) * 1998-04-14 2000-01-11 International Business Machines Corporation Interactive retrieval and caching of multi-dimensional data using view elements
US20060282447A1 (en) * 2003-06-04 2006-12-14 The Trustees Of The University Of Pennsylvania Ndma db schema, dicom to relational schema translation, and xml to sql query transformation
US20100235323A1 (en) * 2006-12-27 2010-09-16 Axon Medical Technologies Corp. Cooperative Grid Based Picture Archiving and Communication System
US20090164247A1 (en) * 2007-12-21 2009-06-25 Siemens Aktiengesellschaft Data and Display Protocols
US20100138446A1 (en) * 2008-10-24 2010-06-03 Datcard Systems, Inc. System and methods for metadata management in content addressable storage
US20110213774A1 (en) * 2008-11-14 2011-09-01 Koninklijke Philips Electronics N.V. Search engine for medical data
US20110225266A1 (en) * 2009-12-07 2011-09-15 Symantec Corporation Storage systems and methods
US20110153351A1 (en) * 2009-12-17 2011-06-23 Gregory Vesper Collaborative medical imaging web application
US20120303896A1 (en) * 2011-05-24 2012-11-29 International Business Machines Corporation Intelligent caching
US20150006574A1 (en) * 2012-01-27 2015-01-01 Koninklijke Philips N.V. Medical selection system
US20140379837A1 (en) * 2013-06-21 2014-12-25 Lexmark International, Inc. System and Methods of Pre-Fetching Content in one or more Repositories
US10360218B2 (en) 2013-09-30 2019-07-23 Hyland Switzerland Sàrl System and methods for caching and querying objects stored in multiple databases

Non-Patent Citations (9)

* Cited by examiner, † Cited by third party
Title
May, Robert F., "Final Office Action for U.S. Appl. No. 14/502,895", dated Jul. 13, 2017, 27 pages.
May, Robert F., "Final Office Action for U.S. Appl. No. 14/502,895", dated Oct. 18, 2018, 24 pages.
May, Robert F., "Non-Final Office Action for U.S. Appl. No. 14/502,895", dated Dec. 1, 2016, 18 pages.
May, Robert F., "Non-Final Office Action for U.S. Appl. No. 14/502,895", dated Mar. 16, 2018, 28 pages.
May, Robert F., "Notice of Allowance and Fees Due for U.S. Appl. No. 14/502,895", dated Mar. 7, 2019, 11 pages.
Oracle, "Oracle7 Tuning, Release 7.3.3: Parallel Query Concepts", Mar. 1, 2012, Retrieved At: <https://web.archive.org/web/20120301121235/http://docs.oracle.com/cd/A57673_01/DOC/server/doc/A48506/pqoconce.htm>>, 7 pages.
Oracle, "Oracle7 Tuning, release 7.3.3: Parallel Query Concepts", Mar. 1, 2012,<https://web.archive.org/web/20120301121235/http://docs.oracle.com/cd/A57673_01/DOC/server/doc/A48506/pqoconce.htm> (Year: 2012). *
Roni Zaharia, "DICOM is Easy", Dec. 1, 2011, Blogger <http://dicomiseasy.blogspot.com/2011/12/chapter-4-dicom-objects-in-chapter-3.html> (Year: 2011). *
Zaharia, Roni, "DICOM is Easy", Dec. 1, 2011, Retrieved At: <<http://dicomiseasy.blogspot.com/2011/12/chapter-4-dicom-objects-in-chapter-3.html>>, 19 pages.

Also Published As

Publication number Publication date
US10360218B2 (en) 2019-07-23
US20190347262A1 (en) 2019-11-14
US20150095364A1 (en) 2015-04-02

Similar Documents

Publication Publication Date Title
US11416492B2 (en) System and methods for caching and querying objects stored in multiple databases
US9961158B2 (en) System and methods of managing content in one or more networked repositories during a network downtime condition
US10733370B2 (en) Method, apparatus, and computer program product for generating a preview of an electronic document
WO2020043610A1 (en) De-identification of protected information
US11515016B2 (en) Rule-based low-latency delivery of healthcare data
US10373712B2 (en) Aggregation, partitioning, and management of healthcare data for efficient storage and processing
US9826054B2 (en) System and methods of pre-fetching content in one or more repositories
US10650478B2 (en) Real-time aggregation and processing of healthcare records
US20140380012A1 (en) System and Methods of Data Migration Between Storage Devices
US20150302007A1 (en) System and Methods for Migrating Data
US20160378917A1 (en) Imaging Study Queries Across Multiple Facilities And Repositories
US20150032961A1 (en) System and Methods of Data Migration Between Storage Devices
US20120323601A1 (en) Distributed sharing of electronic medical records
US11901075B2 (en) Method and apparatus for generating medical information of object
US11243974B2 (en) System and methods for dynamically converting non-DICOM content to DICOM content
US11508467B2 (en) Aggregation, partitioning, and management of healthcare data for efficient storage and processing
KR101524181B1 (en) A system for exchanging clinical information based on lazy response model and the method thereof
US20140379646A1 (en) Replication of Updates to DICOM Content
US20140379640A1 (en) Metadata Replication for Non-Dicom Content
US20140379651A1 (en) Multiple Subscriber Support for Metadata Replication
EP3011488B1 (en) System and methods of managing content in one or more repositories
US20200074101A1 (en) De-identification of protected information in multiple modalities
Yu Integrated Retrieval System Based on Medical Big Data
Patil et al. A Medical Image Archive Solution in the Cloud

Legal Events

Date Code Title Description
FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STPP Information on status: patent application and granting procedure in general

Free format text: APPLICATION DISPATCHED FROM PREEXAM, NOT YET DOCKETED

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: ADVISORY ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS

STPP Information on status: patent application and granting procedure in general

Free format text: AWAITING TC RESP., ISSUE FEE NOT PAID

STPP Information on status: patent application and granting procedure in general

Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS

STPP Information on status: patent application and granting procedure in general

Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: GOLUB CAPITAL MARKETS LLC, AS COLLATERAL AGENT, ILLINOIS

Free format text: SECURITY INTEREST;ASSIGNOR:HYLAND SWITZERLAND SARL;REEL/FRAME:066339/0304

Effective date: 20240116