WO2015187480A1 - Plugin system for integration of third party real-time medical lab information - Google Patents

Plugin system for integration of third party real-time medical lab information Download PDF

Info

Publication number
WO2015187480A1
WO2015187480A1 PCT/US2015/033126 US2015033126W WO2015187480A1 WO 2015187480 A1 WO2015187480 A1 WO 2015187480A1 US 2015033126 W US2015033126 W US 2015033126W WO 2015187480 A1 WO2015187480 A1 WO 2015187480A1
Authority
WO
WIPO (PCT)
Prior art keywords
external
integration
display
displaying
instrument
Prior art date
Application number
PCT/US2015/033126
Other languages
French (fr)
Inventor
Shon FERGUSON
Felipe CROCHIK
Michael Heydlauf
Original Assignee
Siemens Healthcare Diagnostics Inc.
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 Siemens Healthcare Diagnostics Inc. filed Critical Siemens Healthcare Diagnostics Inc.
Publication of WO2015187480A1 publication Critical patent/WO2015187480A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • 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
    • G16H40/00ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices
    • G16H40/60ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the operation of medical equipment or devices
    • G16H40/63ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the operation of medical equipment or devices for local operation
    • 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
    • G16H40/00ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices
    • G16H40/60ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the operation of medical equipment or devices
    • G16H40/67ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the operation of medical equipment or devices for remote operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • 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
    • G16H10/00ICT specially adapted for the handling or processing of patient-related medical or healthcare data
    • G16H10/40ICT specially adapted for the handling or processing of patient-related medical or healthcare data for data related to laboratory analysis, e.g. patient specimen analysis

Definitions

  • Various embodiments relate generally to computer software integration systems, methods, devices and computer programs and, more specifically, relate to integration of plugin applications for third party real-time medical lab information.
  • an embodiment provides a computer-implemented method for presenting integrated medical lab information by a computer device.
  • the computer device includes a processor, a memory and a display device.
  • the method includes storing, by the processor, an external program code in the memory.
  • the processor implements an application that is operative to integrate the external program code.
  • a display environment on the display device is rendered by the processor.
  • the method also includes rendering, by the processor, a display control element in accordance with the external program code under control of the application such that the display control element is rendered on the display device within the display environment with a size and location determined by the application.
  • the processor receives external data and presents the external data in the display control element in accordance with the external program code.
  • an embodiment provides a method for presenting integrated medical lab information.
  • the method includes displaying a display environment (such as a dashboard) on a display device.
  • the display environment shows a display element that is associated with an external lab instrument (such as a tile).
  • the method includes receiving a message from an external source (such as an alert or data update).
  • the message is associated with the external lab instrument and includes external data.
  • the message is processed in accordance with an integration to determine the external data.
  • the integration describes a mapping between the external lab instrument and a virtual lab instrument display defined within the display environment.
  • the method also includes displaying a representation of the external data in the display element in accordance with the integration.
  • an embodiment provides an apparatus (such as a server) having a processor and a memory storing computer program code.
  • the memory and the computer program code are configured to, with the processor, cause the apparatus to perform any of the methods above.
  • an embodiment provides a computer readable medium tangibly encoded with a computer program executable by a processor to perform any of the methods above.
  • FIG. 1 shows a simplified graphic user interface (GUI) that is suitable for practicing various embodiments.
  • GUI graphic user interface
  • Figures 2-8 illustrate various widget displays for providing numeric data.
  • Figure 9 shows another GUI that is suitable for practicing various embodiments.
  • Figure 10 shows the GUI of Figure 9 in another display mode.
  • Figure 1 1 is a close-up view of a selection menu tile.
  • Figure 12 is a close-up view of a 3D view tile.
  • Figure 13 is a close-up view of an alternative display for the 3D view tile.
  • Figure 14 shows a GUI providing alert details.
  • Figure 15 is a view of a display of a successful data fetch process.
  • Figure 16 is a view of a data fetch failure alert.
  • Figure 17 shows a simplified block diagram of a server-to-server communication flow.
  • Figure 18 is a close-up view of an integrations tile.
  • Figure 19 is a close-up view of an integrations tile showing an unconnected integration.
  • Figure 20 shows a GUI for assigning instruments to integration mappings.
  • Figure 21 shows a GUI indicating instruments assigned integration mappings.
  • Figure 22 shows a simplified block diagram of a GUI navigation process.
  • Figure 23 shows a simplified block diagram of devices that are suitable for practicing various embodiments.
  • Figure 24 is a logic flow diagram that illustrates the operation of a method, and a result of execution of computer program instructions embodied on a computer readable memory, in accordance with various embodiments.
  • GUI graphic user interface
  • Another non-limiting embodiment provides a system for integration of 3rd party information with information provided by various applications/instruments all on one rich screen.
  • This screen provides a GUI display such as a dashboard image. This allows important information from multiple sources to be monitored simultaneously from within the same application interface (e.g., the GUI dashboard), so users can see everything they need at one time. It also allows the user to customize the way that they would like to see the information displayed, and allows numerical information to be presented in a variety of visual forms.
  • GUI GUI
  • the compatibility of the GUI with the various devices means that the display can show information from each device which is formatted as a dashboard tile. The device is then able to send notifications/alerts and participate in alert workflow, allowing alerts/notifications to be marked as resolved.
  • the user can also invoke the dashboard to navigate to a compatible application. For example, the display can open a web browser with a particular link, launch a local application with particular command-line parameters, and/or invoke a command causing an already running local application to navigate to a particular place.
  • the display may be separated into various tiles with each tile being associated with a particular application and/or instrument. Multiple tiles may be associated with the same application or instrument, for example, to provide a quick reference tile and a more detailed tile; to provide tiles regarding separate aspects of an application or instrument; or to provide a larger viewing area using a mosaic of tiles such as a combination of two or more individual tiles. Each tile may be the same size or the tiles may be sized based on user and/or vendor preferences.
  • the display may be configured to process data for the tile from the application or instrument in a multiple of supported data formats, such as HTML, XAML and/or numeric data points (with multiple presentation options).
  • the display is customizable in order to provide a favorites or quick access section.
  • the user is able to pin tiles to this section so that they will always be visible, regardless of where the user navigates in the application.
  • the tiles may be 'normal sized', extra-large (combination of two 'normal sized tiles), small (half a normal sized tile), or extra-small (one eighth a normal sized-tile).
  • the 'normal sized' tile definition may be standard across all sections of the display/dashboard or it may be based on which section the tile is presented. For example, a 'normal sized' tile in an active area may be larger than a 'normal sized' tile in a quick access area.
  • FIG. 1 shows a simplified graphic user interface (GUI) that is suitable for practicing various embodiments.
  • the dashboard 100 of Figure 1 includes several zones, for example, active zone 1 10 and favorites bar 120.
  • the active zone 110 displays several sections, such as an alert tile section 130, plugin tile section 140, etc.
  • the active zone 110 may change views, for example, to navigate to an application or instrument associated with one of the tiles.
  • the favorites bar 120 may be visible regardless of the active zone 110. Accordingly, the dashboard would still display the 3D view tile 122, the alert summary tile 124 and the additional tiles 125 (such as the pulse tile 126). [0039] The number of tiles on the favorites bar 120 may exceed the number able to be shown on the dashboard 100 at one time. In such situations, the favorites bar 120 may also include scroll icons 128 in order to change which tiles are shown, for example, by removing tiles and adding new tiles to the favorites bar 120. Thus, while the favorites bar 120 may be visible at all times, the specific tiles on the favorites bar 120 may be changed.
  • certain tiles on the favorites bar 120 may be 'locked' in place so as not to be removed when using the scroll icons 128.
  • the 3D view tile 122 and alert summary tile 124 may be configured to always be displayed while the additional tiles 125 are allowed to be removed in order to make room for new tiles. Accordingly, the pulse tile 126 may or may not be displayed on the favorites bar 120 based on how the scroll icons 128 are used.
  • various tiles in the favorites bar 120 correspond to tiles in the active zone 1 10, for example, 3D view tile 132 and 3D view tile 122; alert summary tile 124 and alert summary tile 134; and pulse tile 146 and pulse tile 126.
  • the corresponding tiles may be similarly configured, such as where alert summary tile 124 and alert summary tile 134 are similarly sized, or the corresponding tiles may be individually configured, such as where 3D view tile 132 is extra-large sized and 3D view tile 122 is normal sized.
  • Digit widgets provide different ways to graphically visualize numeric data points in a tile.
  • the data points may be received from any application or instrument, such as a third party instrument.
  • the data may come in the form of a simple number.
  • the various widgets can then interpret the number differently, and transform it into a visualization such as a gauge, graph, or traffic signal.
  • Figures 2-8 illustrate various widget displays for providing a visual representation for numeric data.
  • Figure 2 demonstrates a traffic light indicator 200.
  • the various lights and/or colors may indicate an associated status for the numeric data.
  • a yellow light status 210 is displayed for a numerical value 220 of '62'.
  • Various thresholds may be assigned to the possible light statuses.
  • more than one range of values may be associated with a specific light status, for example, the yellow light status 210 may be displayed for numeric data between a range of 60-75 and for a range of 25-40, a green light status may be displayed for numeric data between a range of 40-60 and a red light status may be displayed for numeric data between a range of 75-100 and for a range of 0-25.
  • Additional indicators/gauges may be selected for example, the dial gauge 300 of Figure 3, bar gauge 400 of Figure 4, graph 500 of Figure 5, arch gauge 600 of Figure 6, pulse 700 of Figure 7 (also as shown in the pulse tiles 126, 146 of Figure 1) or line gauge 800 of Figure 8.
  • the specific visual representation may be configured by the user and/or the application or instrument settings.
  • Applications and instruments can integrate with the dashboard program in a variety of ways.
  • the maker of application/instrument such as a third party manufacturer
  • DLL data-provider dynamic-link library
  • Such an interface may support custom parameters and can initiate data pushes and/or answer to polls.
  • the data-provider can also trigger notifications/alerts within the dashboard program.
  • the maker may then place the DLL in a centralized location on a server so that it may be "discovered” by a lab process manager (LPM) server.
  • LPM lab process manager
  • the LPM server may operate the dashboard program and/or provide support for dashboard programs.
  • the client side can use a generic widget (for example, an HTML defined display, widget displays such as shown in Figure 2-8, etc.) or a third party provided custom control (e.g., using Windows Presentation Foundation (WPF) defined elements).
  • WPF Windows Presentation Foundation
  • a lab instrument manager may agree to integrate their instrument with the dashboard program.
  • the LIM then provides a DLL that specifies HTML content for the dashboard.
  • the HTML content can contain hyperlinks for launching a LIM application.
  • the LPM uses a built-in HTML dashboard widget to render the LIM dashboard tile.
  • the data-provider gets content from an existing LIM server (such as a plug- in) and informatics validates the LIM plug-in against the LPM dashboard (e.g., validating the plug-in for the specific release of the dashboard program to be used).
  • the LPM service can then deploy the LIM plug-in by copying the data-provider DLL to the LPM server. Once the plug-in has been "signed" (or certified), the plug-in may be loaded by the LPM and run in order to provide the interface for the instrument in the dashboard tile.
  • the dashboard allows users to customize a display of heads-up information that can be visible no matter where they are in the client application. Individual groups of information are visualized as tiles that the user can choose from to add to their personal dashboard, e.g., favorites bar 120 of Figure 1.
  • the dashboard also contains a zone selector which allows the user to change the active zone.
  • the dashboard enables the user to view high-level summary information that is most relevant to their personal work flow.
  • the user can customize the dashboard, for example, by adding or removing tiles from their dashboard.
  • the user is also able to change the size of tiles on their dashboard, which may also change the level of detail of the information that they display. Adjusting the arrangement of the tiles on their dashboard may be done by reordering the tiles within a standardized grid layout.
  • the user can also collapse the dashboard if they don't want to use it, or temporarily need more work space for the rest of the application. Users can also change the active zone using a zone selector.
  • the dashboard includes a group of UI components such as a zone selector, a tile grid, and a button strip. Saving, restoring, and synchronizing the user's tile settings may be handled on the server.
  • the user may double-click on a dashboard tile to navigate to the tile's corresponding screen.
  • the user may activate the tile in order cause the appropriate navigation using any one of a variety of inputs, such as a right-click, a keyboard command, etc.
  • Figure 9 shows another GUI that is suitable for practicing various embodiments.
  • the display includes a zone selector 910, a 3D view tile 912 (showing an alternative display) and an active alert tile 914.
  • a configuration (or edit) button 916 At the bottom of bar are two buttons: a configuration (or edit) button 916 and a collapse/expand button 917.
  • the dashboard 900 also displays a 3D view in the active zone 920.
  • Figure 10 shows the GUI of Figure 9 in another display mode.
  • the dashboard display of 900 transitions to the second dashboard display 1000.
  • the favorites bar is collapsed and the active zone 920 is expanded accordingly.
  • the collapsed favorites bar shows only the collapsed zone selector 1010 and the collapse/expand button 917. Selecting the collapse/expand button 917 again may return the GUI to the display mode of Figure 9.
  • Figure 1 1 is a close-up view of the zone selection menu tile 910.
  • the user has selected or otherwise activated the zone selector 910.
  • a list 11 10 of possible zones is displayed. Selecting one of these zones may then change the display accordingly, for example, to show a new 3D view and/or new active alerts relevant to the selected zone.
  • Figure 12 is a close-up view of a 3D view tile.
  • the 3D view tile provides a view 1200 of the selected zone.
  • Figure 13 is a close-up view of an alternative display for the 3D view tile.
  • a view 1300 shows a clock icon.
  • the view 1300 may be used in situations where the active zone shows an expanded 3D view such as shown in Figure 9. In other situations, the view 1200 may be used. This ensures the 3D view tile in the favorites bar does not display redundant information.
  • any tile in the favorites bar may be used to show a clock when an associated application is presented in the active zone 920.
  • the user may click the "edit" button 916 on the dashboard display 900 to enter an edit mode. In the edit mode, the user may rearrange/resize and/or add/remove dashboard tiles.
  • Users have several options to configure their dashboard tile layout. These options may be set by default by the LPM and/or by an LIM. Some options may be set as fixed configuration options by the LPM and/or by an LIM so that the user may not change them, for example, having a zone selector 910 at the top of the favorites bar may be set by the system and may not be overridden by the user.
  • the user can click and drag the tiles to change their order.
  • Tiles of different sizes may automatically fill in the space in such a way that the order is preserved and space is used efficiently.
  • the new arrangement may then be saved, for example, by clicking the Done button.
  • Add/Remove tile button that may be displayed on the dashboard when in edit mode. Clicking this button displays a menu of all available tiles and clicking a tile in the menu toggles its inclusion in the dashboard.
  • the user may also add tiles from other parts of the application. For example, right- clicking a Remote Control monitor may display the option to add a tile for that monitor directly.
  • the user can also remove a tile from the dashboard directly, for example, by right- clicking the tile and selecting an option from the pop-up menu to remove the tile.
  • Each dashboard tile may have an associated navigation destination.
  • the program will navigate to a screen which shows detailed information about what was on the tile, or to a third party application which the tile draws its data from.
  • a tile grid is used to display tiles that the user has selected in a grid layout. Tiles can be set to a few predefined sizes which will fit together by occupying different numbers of spaces in this grid in such a way that it is possible to pack them together tightly. If too many tiles have been added to fit into the grid, scroll indicator buttons can be displayed, and the user can scroll up and down through the tiles by clicking the indicator buttons or by clicking and dragging with the mouse.
  • a user profile system (such as one located on the server) may be used to save, restore, and synchronize user dashboard layout settings. Whenever the user adds, removes, resizes, or rearranges and then saves the layout of tiles, enough information to restore that layout can be saved to the user's profile (e.g., via communication with the server). This information may then be stored in the database, and the change can be broadcast to other clients. In this way, if the user is logged in to multiple clients, the tile configuration can stay in sync. This also means that the tile configuration is a per-user setting, and one user changing their tiles does not affect other users.
  • the active alerts dashboard tile 124, 914 displays unresolved alert counts in the currently selected zone by severity. If there are any of the unresolved alerts of a given severity, the systems can alert the user, such as by waving the flag, flashing a part of the screen, playing an alert sound, etc. Similarly, if any of the alerts in a given severity are new or escalated, the system can demark such alerts, for example, displaying an asterisk (new) or exclamation icon (escalated) on top of the flag.
  • the flag can be deemphasized, such as by being turned gray in color. If there is a positive count for the severity the flag may be shown in a color associated with the severity (e.g., red for critical alerts, yellow for warnings, etc.). This increases the at-a-glance absorption of alert counts for the zone. Whenever an alert within the zone is resolved, the corresponding count for that alert's severity is decremented and the flag updated accordingly.
  • FIG 14 shows a dashboard screen 1400 providing alert details which can be reached by selecting an active alerts dashboard tile 124, 914.
  • the active alerts dashboard tile 1420 On the right side of the screen 1400 is the active alerts dashboard tile 1420.
  • the critical alerts indicator 1422 reveals that there are twelve critical alerts.
  • the warning alerts indicator 1424 there is one warning and the user-defined alerts indicator 1426 indicates there are no user-defined alerts.
  • the active zone 1430 shows a 3D map of the selected zone with critical alert flags 1432 and a warning alert flag 1434 for instruments with an alert/warning.
  • each type of alert is represented by a flag, for example, the instrument with the warning alert flag 1434 also includes two critical alert flags 1432 with different images (a lightning bolt on one and a sine wave on the other). Selecting any flag 1432, 1434 on an instrument, opens an alert message box 1410 detailing the alerts for the instrument.
  • the integration allows the user to see alerts within the LPM.
  • the user can also navigate from an alert that is displayed in the LPM desktop application to the appropriate screen for the alerting test in the desktop application (e.g., a unity real time (URT) desktop application).
  • the system can also fetch the latest peer-review data for the test that an alert is related to from a cloud service.
  • a tile may be shown that allows the user to see the connection status of the integration. That way they know if communication has been interrupted. A loss in connection status may also cause an alert to be shown. Such an alert may be conditioned on the length of time of the loss in communication exceeding a predetermined threshold.
  • a server-to-server integration between the LPM server and third party server components is used for communication of alert and instrument data.
  • third party server components e.g., Bio-Rad URT server components
  • Generic external alert system usage allows alerts to be sent by various integration partners.
  • a client-to-client integration between desktop applications allow the LPM to launch third party applications and navigate to a specific screen.
  • the third software integration point is a server-to-cloud integration. This integration between the LPM server and a cloud-based web service allows fetching of real-time peer data for tests.
  • the integration is setup and configured by first enabling the integration on the LPM server.
  • the third party server component is then configured with instrument mapping information so that it can communicate with the LPM server.
  • instrument mapping information so that it can communicate with the LPM server.
  • a mapping from a unique third party instrument ID to a LPM unique instrument ID is selected so that alerts from the third party can be attached to the correct instrument in the LPM system.
  • FIG. 17 shows a simplified block diagram of a server-to-server communication flow 1700.
  • Server-to-server communication of new alerts and instrument lists is shown between sLPM Server 1710 and BioRad Alert Server 1730.
  • a protocol, such as Windows Communication Foundation (WCF) protocol 1770 can be used for this communication. This part of the integration is handled by an external alert system.
  • WCF Windows Communication Foundation
  • a server-to-cloud integration for requesting peer data is shown between sLPM Server 1710 and Unity Central Web Service 1740. Such requests and response may use a protocol such as Simple Object Access Protocol (SOAP) 1780.
  • SOAP Simple Object Access Protocol
  • the client-to-client integration for navigating the unity real time (URT) Client 1750 to specific alerts is shown between sLPM Client 1720 and URT Client 1750.
  • This integration can use an HTTP socket 1790 and/or a custom protocol (such as an XML-based protocol).
  • the BioRad Alert Server 1730 and the URT Client 1750 may also communicate with a URT database (DB) 1760 which may store data associated with the alerts and instrument lists and/or the peer data.
  • DB URT database
  • the dashboard may include integration tiles. These tiles may be added automatically to the home screen for any zone where the instrument is setup. The tile can be updated to display the status of the connection between the LPM and the associated third party servers.
  • Figure 18 is a close-up view of an integrations tile 1800 which indicates the connection is currently active/setup.
  • Figure 19 is a close-up view of an integrations tile 1900 showing an unconnected integration. Tile 1900 de-emphasizes the features shown on tile 1800 and overlays an image indicating the lack of connection.
  • Figure 20 shows a GUI 2000 for assigning instruments to integration mappings.
  • the Active window 2020 includes a list of instrument or application manufacturers 2010. Selecting one of them (e.g., BioRad) displays a list of unmapped instruments from that manufacturer on the left side. One item on this list is "Advia 1800 (2)" 2022. On the right side, a list of instrument mappings for the manufacturers are shown, including "Advia 1800" 2032.
  • Figure 21 shows a GUI 2100 indicating instruments assigned integration mappings, for example, by clicking and dragging an instrument icon to a specific mapping.
  • the "Advia 1800 (2)" 2022 has been associated with the "Advia 1800" mapping 2032. This is shown by having the instrument item 2022 interlocked with the mapping item 2032.
  • Figure 22 shows a simplified block diagram 2200 of a GUI navigation process.
  • the user moves from an application workspace 2210 by clicking on a navigation button.
  • the GUI then displays an administration screen 2220 which includes instrument tiles 2224 and other tiles 2222 (such as alert summary tile 124 and 3D view tile 122).
  • Selecting one of the instrument tiles 2224 causes the GUI to show an instrument administration screen 2230.
  • This instrument administration screen 2230 includes a desired instrument row 2232 and other instrument rows 2234.
  • the desired instrument row 2232 includes external alert mapping configurations 2233. From the instrument administration screen 2230 the user can also assign mappings such as shown in Figures 20-21.
  • instrument mappings allows alerts from the third party instruments and applications to be handled by a generic external alert system. Using a generic external alert system to handle such alerts allows them to be displayed and managed in a manner consistent with other alerts in the system. [0086] Another benefit of the instrument mappings is that a client-to-client integration may be used which allows users to navigate from third party related alerts that are displayed in the LPM client to a screen in the appropriate desktop client application corresponding to the same alert.
  • This navigation is handled by using the operating system to check whether the third party application is running. If it is not, the LPM client will look up its location in a pre-defined registry key and launch it. Once the URT client is confirmed to be running, the LPM client sends it a message. This message instructs the client to bring itself to the front and navigate itself to a screen related to the requested alert, if possible.
  • the LPM client may use HTTP to communicate with the URT client.
  • the LPM client makes an HTTP 'GET' request to the URT client which is listening for HTTP requests on a particular port (e.g., port 8083).
  • the HTTP request contains data (e.g., XML data) in the request header that specifies what action the LPM client is requesting from the URT client and what data the LPM client would like the URT client to act upon.
  • the data in the HTTP request may be a serialized custom object that is de-serialized by the URT client when the data is received.
  • the URT client After the URT client receives the HTTP 'GET' request from the LPM client, it responds back to the LPM client via an HTTP response.
  • the response header indicates whether or not the HTTP request that triggered the response was received with an error. It also indicates whether the request was accepted or rejected. Additionally, in the response body, if the data within the HTTP request was processed by the URT client, then XML data can be present that indicates the status of the URT client's processing of the request.
  • the client-to-cloud integration allows users to request peer data for an alert from the Unity Central cloud service.
  • This service may reside on the public internet, so a pass-through mechanism for the LPM client may be used so that only the LPM server needs to be connected to the internet for this feature to work.
  • a new button for Unity Central can initiate a request for alert details.
  • the LPM server upon receiving this request, looks up information from the alert and uses it to make a call to the Unity Central server. Once a result is returned, the LPM server forwards it on to the LPM client for display.
  • the UI for displaying peer data also includes the option to allow the user to select data from the current month or the previous month.
  • Figure 15 is a view of a message box 1500 of a successful data fetch process.
  • Message box 1500 provides details of peer data for the previous month which were successfully received and parsed. However, if there is a problem with the data fetch, an alert message box 1600 informs the user of the failure as shown in Figure 16.
  • the external alert system allows external software products to inject alerts into the LPM server. These alerts can be displayed alongside standard LPM alerts, and may offer additional integration-specific features.
  • Alerts may be associated with a particular instrument, so the LPM server can maintain a mapping between the third party's instrument identifier and LPM's instrument identifier.
  • the third party can provide a list of available instruments, which is used within the LPM for mapping the third party instrument to one or more instruments defined within the LPM.
  • the LPM server When a new alert message is received, the LPM server attempts to create a new alert based on its parameters. If the LPM server is not able to create an alert from the message, the error will be logged and the message will be discarded. This will create an opportunity to debug the problem, as well as letting users know that an alert did not come through due to errors.
  • mappings between LPM's instrument and the third party instrument are defined. These mappings are stored in a database table for instrument mappings which also stores both IDs, establishing a relationship. When a potential ID is sent from the client, it is placed in the same table, but the field for the LPM instrument identifier is left null. These mappings can be configured via a user interface in the LPM client.
  • alerts that are accepted are added to the LPM alert system and marked as coming from a specific integration. This allows special functionally to be implemented for this type of alert in both the client and the server, such as controlling how the alert is handled, displayed, etc. Aside from the special functionality, though, alerts will appear identical to any other alert within the LPM. They will also be manually resolvable so that the user can dismiss alerts that have been dealt with.
  • FIG. 23 shows a block diagram of a system 2300 that is suitable for use in practicing various embodiments.
  • the server 2310 includes a controller, such as a data processor (DP) 2312 and a computer-readable medium embodied as a memory (MEM) 2314 that stores computer instructions, such as a program (PROG) 2315.
  • Server 2310 may communicate with a client 2320, for example, via the internet 2330.
  • Client 2320 includes a controller, such as a data processor (DP) 2322 and a computer- readable medium embodied as a memory (MEM) 2324 that stores computer instructions, such as a program (PROG) 2325.
  • a controller such as a data processor (DP) 2322 and a computer- readable medium embodied as a memory (MEM) 2324 that stores computer instructions, such as a program (PROG) 2325.
  • DP data processor
  • MEM memory
  • PROG program
  • Server 2310 and/or client 2320 may also include a dedicated processor, for example an integration handling processor 2313, 2323. Both server 2310 and/or client 2320 may communicate with an instrument 2348, for example, via the internet 2330 (as shown), and/or via direct communications channels (such as a wireless connection or a physical connection).
  • Databases 2342, 2344, 2346 may be connected directly to the server 2310, the client 2320 or the internet 2330. As shown, database 2342 stores integration mapping information 2350; however, this data may be stored in any of the databases 2342, 2344, 2346.
  • the programs 2315, 2325 may include program instructions that, when executed by the DP 2312, 2322, enable the server 2310 and/or client 2320 to operate in accordance with an embodiment. That is, various embodiments may be carried out at least in part by computer software executable by the DP 2312 of the server 2310, the DP 2322 of the client 2320, by hardware, or by a combination of software and hardware.
  • server 2310 and/or client 2320 may include tablets and computers, as well as other devices that incorporate combinations of such functions.
  • the MEM 2314, 2324 and databases 2342, 2344, 2346 may be of any type suitable to the local technical environment and may be implemented using any suitable data storage technology, such as magnetic memory devices, semiconductor based memory devices, flash memory, optical memory devices, fixed memory and removable memory.
  • the DP 2312, 2322 may be of any type suitable to the local technical environment, and may include general purpose computers, special purpose computers, microprocessors and multicore processors, as non- limiting examples.
  • various embodiments provide a method, apparatus and computer program(s) to setup integrations of plugin applications for third party real-time medical lab information.
  • FIG. 24 is a logic flow diagram that illustrates a method, and a result of execution of computer program instructions, in accordance with various embodiments.
  • a method performs, at Block 2410, a step of displaying a display environment on a display device.
  • the display environment includes a display element that is associated with an external lab instrument.
  • the method performs a step of receiving a message from an external source.
  • the message is associated with the external lab instrument and the message includes external data.
  • a step of processing the message in accordance with an integration in order to determine the external data is performed at Block 2430.
  • the integration describes a mapping between the external lab instrument and a virtual lab instrument display defined within the display environment.
  • the method also performs, at Block 2440, a step of displaying a representation of the external data in the display element in accordance with the integration.
  • An embodiment provides a computer-implemented method for presenting integrated medical lab information by a computer device.
  • the computer device includes a processor, a memory and a display device.
  • the method includes storing, by the processor, an external program code in the memory.
  • the processor implements an application that is operative to integrate the external program code.
  • a display environment on the display device is rendered by the processor.
  • the method also includes rendering, by the processor, a display control element in accordance with the external program code under control of the application such that the display control element is rendered on the display device within the display environment with a size and location determined by the application.
  • the processor receives external data and presents the external data in the display control element in accordance with the external program code.
  • the method also includes providing a display specification and/or a data reference for the display control.
  • the data reference may be used to locate the external data.
  • the data reference may specify a network address and/or a call to an external application via an application programming interface.
  • the display specification may be used to present the external data on the display device.
  • the method also includes receiving and presenting the external data on the display device in real-time.
  • the method also includes receiving a user input to the application and altering the size and/or location of the display control in accordance with the user input.
  • the method also includes receiving the external data as a user input to the display control at the computer device.
  • the method may also include providing data related to the user input to an external destination in response to receiving the external data.
  • rendering the display control comprises rendering the display control using HTML, XML and/or XAML.
  • the method also includes detecting an event to prompt retrieval of external data accessible by the external program code.
  • the external program code is in the form of a data link library.
  • the method also includes certifying the external program code prior to loading the external program code into memory.
  • the method also includes receiving an input from the client computer via the communication interface to prompt retrieval of external data.
  • Receiving the input from the client computer may include receiving an input from the display control to retrieve the external data.
  • the method also includes receiving a prompt from a source of the external data.
  • the method also includes receiving a data reference to locate the external data.
  • the method also includes retrieving external data and transmitting the external data in real-time.
  • a further embodiment provides a method for presenting integrated medical lab information.
  • the method includes displaying a display environment (such as a dashboard) on a display device.
  • the display environment shows a display element that is associated with an external lab instrument (such as a tile).
  • the method includes receiving a message from an external source (such as an alert or data update).
  • the message is associated with the external lab instrument and includes external data.
  • the message is processed in accordance with an integration to determine the external data.
  • the integration describes a mapping between the external lab instrument and a virtual lab instrument display defined within the display environment.
  • the method also includes displaying a representation of the external data in the display element in accordance with the integration (such as by showing a graph, traffic light, etc.).
  • the display element is a rectangular tile (e.g., a square tile, a long rectangular tile, etc.).
  • the method also includes, in response to receiving a user selection of the display element, navigating to an application program based on the integration.
  • the message from the external source is an alert from the external lab instrument.
  • displaying the representation of the external data includes displaying a graph, a dial, a pulse meter or other digit widget.
  • displaying the representation of the external data includes displaying one icon from a plurality of icons.
  • the icon displayed is selected based on at least one threshold value, for example, the plurality of icons may include traffic lights showing a red light, a yellow light and a green light.
  • the integration includes a display specification and/or a data reference for the display element.
  • receiving the message from the external source includes sending a request for data from the external source and receiving the message from the external source in response to the request.
  • displaying the representation of the external data in the display element includes updating the representation in real-time based on a plurality of messages from an external source.
  • the method includes displaying a first list of external lab instruments connected to the display environment.
  • the first list includes the external lab instrument.
  • a second list of integrations available to the display environment is displayed.
  • the second list includes the integration.
  • the method also includes receiving a selection of the external lab instrument and the integration, and assigning the integration to the external lab instrument.
  • the method may also include receiving at least one integration available to the display environment from an external database. Displaying the first list and the second list may include, for each external lab instrument in the first list that has been assigned an integration from the second list, displaying a representation that the external lab instrument is assigned to the integration.
  • a further embodiment provides an apparatus having a processor and a memory storing computer program code.
  • the memory and the computer program code are configured to, with the processor, cause the apparatus to perform any one of the methods above.
  • the apparatus is embodied in a server.
  • the apparatus is embodied in an integrated circuit.
  • Another embodiment provides a computer readable medium tangibly encoded with a computer program executable by a processor to perform any one of the methods above.
  • the computer readable medium is a storage medium.
  • the computer readable medium is a non-transitory computer readable medium (e.g., CD-ROM, RAM, flash memory, etc.).
  • any of the operations described that form part of the presently disclosed embodiments may be useful machine operations.
  • Various embodiments also relate to a device or an apparatus for performing these operations.
  • the apparatus can be specially constructed for the required purpose, or the apparatus can be a general-purpose computer selectively activated or configured by a computer program stored in the computer.
  • various general-purpose machines employing one or more processors coupled to one or more computer readable medium, described below, can be used with computer programs written in accordance with the teachings herein, or it may be more convenient to construct a more specialized apparatus to perform the required operations.

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Medical Informatics (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Epidemiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Public Health (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

A method for presenting integrated medical lab information is described. The method includes displaying a dashboard. The dashboard shows a tile which is associated with an external lab instrument. The method includes receiving a message from an external source. The message is associated with the external lab instrument and includes external data. The message is processed in accordance with an integration in order to determine the external data. The integration describes a mapping between the external lab instrument and a virtual lab instrument display defined within the display environment. The method also includes displaying a representation of the external data in the tile in accordance with the integration. Apparatus and computer readable media are also described.

Description

TITLE
PLUGIN SYSTEM FOR INTEGRATION OF THIRD PARTY REAL-TIME MEDICAL LAB INFORMATION
STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR
DEVELOPMENT
(Not Applicable)
BACKGROUND
[0001] Various embodiments relate generally to computer software integration systems, methods, devices and computer programs and, more specifically, relate to integration of plugin applications for third party real-time medical lab information.
[0002] This section is intended to provide a background or context. The description may include concepts that may be pursued, but have not necessarily been previously conceived or pursued. Unless indicated otherwise, what is described in this section is not deemed prior art to the description and claims and is not admitted to be prior art by inclusion in this section.
[0003] Normally, when medical lab personnel need access to multiple vital pieces of information about the status of their lab, they must check several different applications provided by several different vendors. This can be time consuming and lead to missing a vital change that must be acted upon.
[0004] What is needed is a way to present information regarding the different applications in a single, easy to view manner. Such a technique should be able to handle applications from various vendors.
BRIEF SUMMARY
[0005] The below summary is merely representative and non-limiting.
[0006] The above problems are overcome, and other advantages may be realized, by the use of the embodiments.
[0007] In a first aspect, an embodiment provides a computer-implemented method for presenting integrated medical lab information by a computer device. The computer device includes a processor, a memory and a display device. The method includes storing, by the processor, an external program code in the memory. The processor implements an application that is operative to integrate the external program code. A display environment on the display device is rendered by the processor. The method also includes rendering, by the processor, a display control element in accordance with the external program code under control of the application such that the display control element is rendered on the display device within the display environment with a size and location determined by the application. The processor receives external data and presents the external data in the display control element in accordance with the external program code.
[0008] In another aspect, an embodiment provides a method for presenting integrated medical lab information. The method includes displaying a display environment (such as a dashboard) on a display device. The display environment shows a display element that is associated with an external lab instrument (such as a tile). The method includes receiving a message from an external source (such as an alert or data update). The message is associated with the external lab instrument and includes external data. The message is processed in accordance with an integration to determine the external data. The integration describes a mapping between the external lab instrument and a virtual lab instrument display defined within the display environment. The method also includes displaying a representation of the external data in the display element in accordance with the integration.
[0009] In a further aspect, an embodiment provides an apparatus (such as a server) having a processor and a memory storing computer program code. The memory and the computer program code are configured to, with the processor, cause the apparatus to perform any of the methods above.
[0010] In another aspect, an embodiment provides a computer readable medium tangibly encoded with a computer program executable by a processor to perform any of the methods above.
BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
[0011] Aspects of the described embodiments are more evident in the following description, when read in conjunction with the attached Figures.
[0012] Figure 1 shows a simplified graphic user interface (GUI) that is suitable for practicing various embodiments.
[0013] Figures 2-8 illustrate various widget displays for providing numeric data.
[0014] Figure 9 shows another GUI that is suitable for practicing various embodiments.
[0015] Figure 10 shows the GUI of Figure 9 in another display mode.
[0016] Figure 1 1 is a close-up view of a selection menu tile.
[0017] Figure 12 is a close-up view of a 3D view tile.
[0018] Figure 13 is a close-up view of an alternative display for the 3D view tile. [0019] Figure 14 shows a GUI providing alert details.
[0020] Figure 15 is a view of a display of a successful data fetch process.
[0021] Figure 16 is a view of a data fetch failure alert.
[0022] Figure 17 shows a simplified block diagram of a server-to-server communication flow.
[0023] Figure 18 is a close-up view of an integrations tile.
[0024] Figure 19 is a close-up view of an integrations tile showing an unconnected integration.
[0025] Figure 20 shows a GUI for assigning instruments to integration mappings.
[0026] Figure 21 shows a GUI indicating instruments assigned integration mappings.
[0027] Figure 22 shows a simplified block diagram of a GUI navigation process.
[0028] Figure 23 shows a simplified block diagram of devices that are suitable for practicing various embodiments.
[0029] Figure 24 is a logic flow diagram that illustrates the operation of a method, and a result of execution of computer program instructions embodied on a computer readable memory, in accordance with various embodiments.
DETAILED DESCRIPTION
[0030] This patent application claims priority from US Provisional Patent Application No. 62/006,453, filed June 02, 2014, the disclosure of which is incorporated by reference herein in its entirety.
[0031] Various embodiments allow critical real-time information from third-party applications to be displayed within proprietary software in a user-customizable dashboard containing real-time statistics selected by the user. Such embodiments may be used for medical laboratory management. As one non-limiting embodiment, the dashboard is one element of a graphic user interface (GUI). The dashboard can consolidate information from various medical instruments into an easily understood display.
[0032] Another non-limiting embodiment provides a system for integration of 3rd party information with information provided by various applications/instruments all on one rich screen. This screen provides a GUI display such as a dashboard image. This allows important information from multiple sources to be monitored simultaneously from within the same application interface (e.g., the GUI dashboard), so users can see everything they need at one time. It also allows the user to customize the way that they would like to see the information displayed, and allows numerical information to be presented in a variety of visual forms.
[0033] Integration of information from various sources ensures the user is able to view the desired information without concern for the specific communication protocols of the various devices. The compatibility of the GUI with the various devices means that the display can show information from each device which is formatted as a dashboard tile. The device is then able to send notifications/alerts and participate in alert workflow, allowing alerts/notifications to be marked as resolved. The user can also invoke the dashboard to navigate to a compatible application. For example, the display can open a web browser with a particular link, launch a local application with particular command-line parameters, and/or invoke a command causing an already running local application to navigate to a particular place.
[0034] The display may be separated into various tiles with each tile being associated with a particular application and/or instrument. Multiple tiles may be associated with the same application or instrument, for example, to provide a quick reference tile and a more detailed tile; to provide tiles regarding separate aspects of an application or instrument; or to provide a larger viewing area using a mosaic of tiles such as a combination of two or more individual tiles. Each tile may be the same size or the tiles may be sized based on user and/or vendor preferences. The display may be configured to process data for the tile from the application or instrument in a multiple of supported data formats, such as HTML, XAML and/or numeric data points (with multiple presentation options).
[0035] In one non-limiting embodiment, the display is customizable in order to provide a favorites or quick access section. The user is able to pin tiles to this section so that they will always be visible, regardless of where the user navigates in the application.
[0036] In a further non-limiting embodiment, the tiles may be 'normal sized', extra-large (combination of two 'normal sized tiles), small (half a normal sized tile), or extra-small (one eighth a normal sized-tile). The 'normal sized' tile definition may be standard across all sections of the display/dashboard or it may be based on which section the tile is presented. For example, a 'normal sized' tile in an active area may be larger than a 'normal sized' tile in a quick access area.
[0037] Figure 1 shows a simplified graphic user interface (GUI) that is suitable for practicing various embodiments. The dashboard 100 of Figure 1 includes several zones, for example, active zone 1 10 and favorites bar 120. In this view, the active zone 110 displays several sections, such as an alert tile section 130, plugin tile section 140, etc. The active zone 110 may change views, for example, to navigate to an application or instrument associated with one of the tiles.
[0038] As discussed above, the favorites bar 120 may be visible regardless of the active zone 110. Accordingly, the dashboard would still display the 3D view tile 122, the alert summary tile 124 and the additional tiles 125 (such as the pulse tile 126). [0039] The number of tiles on the favorites bar 120 may exceed the number able to be shown on the dashboard 100 at one time. In such situations, the favorites bar 120 may also include scroll icons 128 in order to change which tiles are shown, for example, by removing tiles and adding new tiles to the favorites bar 120. Thus, while the favorites bar 120 may be visible at all times, the specific tiles on the favorites bar 120 may be changed.
[0040] In a further embodiment, certain tiles on the favorites bar 120 may be 'locked' in place so as not to be removed when using the scroll icons 128. As one non-limiting example, the 3D view tile 122 and alert summary tile 124 may be configured to always be displayed while the additional tiles 125 are allowed to be removed in order to make room for new tiles. Accordingly, the pulse tile 126 may or may not be displayed on the favorites bar 120 based on how the scroll icons 128 are used.
[0041] In the dashboard 100 shown, various tiles in the favorites bar 120 correspond to tiles in the active zone 1 10, for example, 3D view tile 132 and 3D view tile 122; alert summary tile 124 and alert summary tile 134; and pulse tile 146 and pulse tile 126. The corresponding tiles may be similarly configured, such as where alert summary tile 124 and alert summary tile 134 are similarly sized, or the corresponding tiles may be individually configured, such as where 3D view tile 132 is extra-large sized and 3D view tile 122 is normal sized.
[0042] Digit widgets provide different ways to graphically visualize numeric data points in a tile. The data points may be received from any application or instrument, such as a third party instrument. The data may come in the form of a simple number. The various widgets can then interpret the number differently, and transform it into a visualization such as a gauge, graph, or traffic signal.
[0043] Figures 2-8 illustrate various widget displays for providing a visual representation for numeric data. Figure 2 demonstrates a traffic light indicator 200. The various lights and/or colors may indicate an associated status for the numeric data. As shown, a yellow light status 210 is displayed for a numerical value 220 of '62'. Various thresholds may be assigned to the possible light statuses. Additionally, more than one range of values may be associated with a specific light status, for example, the yellow light status 210 may be displayed for numeric data between a range of 60-75 and for a range of 25-40, a green light status may be displayed for numeric data between a range of 40-60 and a red light status may be displayed for numeric data between a range of 75-100 and for a range of 0-25.
[0044] Additional indicators/gauges may be selected for example, the dial gauge 300 of Figure 3, bar gauge 400 of Figure 4, graph 500 of Figure 5, arch gauge 600 of Figure 6, pulse 700 of Figure 7 (also as shown in the pulse tiles 126, 146 of Figure 1) or line gauge 800 of Figure 8. The specific visual representation may be configured by the user and/or the application or instrument settings.
[0045] Applications and instruments can integrate with the dashboard program in a variety of ways. In accordance with one non-limiting technique, the maker of application/instrument (such as a third party manufacturer) may create a data-provider dynamic-link library (DLL) implementing a very simple interface. Such an interface may support custom parameters and can initiate data pushes and/or answer to polls. The data-provider can also trigger notifications/alerts within the dashboard program.
[0046] The maker may then place the DLL in a centralized location on a server so that it may be "discovered" by a lab process manager (LPM) server. The LPM server may operate the dashboard program and/or provide support for dashboard programs. Based on the DLL, the client side can use a generic widget (for example, an HTML defined display, widget displays such as shown in Figure 2-8, etc.) or a third party provided custom control (e.g., using Windows Presentation Foundation (WPF) defined elements).
[0047] In accordance with a non-limiting embodiment, a lab instrument manager (LIM) may agree to integrate their instrument with the dashboard program. The LIM then provides a DLL that specifies HTML content for the dashboard. The HTML content can contain hyperlinks for launching a LIM application. The LPM uses a built-in HTML dashboard widget to render the LIM dashboard tile. The data-provider gets content from an existing LIM server (such as a plug- in) and informatics validates the LIM plug-in against the LPM dashboard (e.g., validating the plug-in for the specific release of the dashboard program to be used). The LPM service can then deploy the LIM plug-in by copying the data-provider DLL to the LPM server. Once the plug-in has been "signed" (or certified), the plug-in may be loaded by the LPM and run in order to provide the interface for the instrument in the dashboard tile.
[0048] The dashboard allows users to customize a display of heads-up information that can be visible no matter where they are in the client application. Individual groups of information are visualized as tiles that the user can choose from to add to their personal dashboard, e.g., favorites bar 120 of Figure 1. The dashboard also contains a zone selector which allows the user to change the active zone.
[0049] The dashboard enables the user to view high-level summary information that is most relevant to their personal work flow. The user can customize the dashboard, for example, by adding or removing tiles from their dashboard. The user is also able to change the size of tiles on their dashboard, which may also change the level of detail of the information that they display. Adjusting the arrangement of the tiles on their dashboard may be done by reordering the tiles within a standardized grid layout. The user can also collapse the dashboard if they don't want to use it, or temporarily need more work space for the rest of the application. Users can also change the active zone using a zone selector.
[0050] The dashboard includes a group of UI components such as a zone selector, a tile grid, and a button strip. Saving, restoring, and synchronizing the user's tile settings may be handled on the server.
[0051] In one non-limiting embodiment, the user may double-click on a dashboard tile to navigate to the tile's corresponding screen. Alternatively, the user may activate the tile in order cause the appropriate navigation using any one of a variety of inputs, such as a right-click, a keyboard command, etc.
[0052] Figure 9 shows another GUI that is suitable for practicing various embodiments. In the favorites bar of the dashboard display 900 the display includes a zone selector 910, a 3D view tile 912 (showing an alternative display) and an active alert tile 914. At the bottom of bar are two buttons: a configuration (or edit) button 916 and a collapse/expand button 917. The dashboard 900 also displays a 3D view in the active zone 920.
[0053] Figure 10 shows the GUI of Figure 9 in another display mode. By selecting the collapse/expand button 917 the dashboard display of 900 transitions to the second dashboard display 1000. The favorites bar is collapsed and the active zone 920 is expanded accordingly. In this non-limiting embodiment, the collapsed favorites bar shows only the collapsed zone selector 1010 and the collapse/expand button 917. Selecting the collapse/expand button 917 again may return the GUI to the display mode of Figure 9.
[0054] Figure 1 1 is a close-up view of the zone selection menu tile 910. In this view, the user has selected or otherwise activated the zone selector 910. In response, a list 11 10 of possible zones is displayed. Selecting one of these zones may then change the display accordingly, for example, to show a new 3D view and/or new active alerts relevant to the selected zone.
[0055] Figure 12 is a close-up view of a 3D view tile. In this view, the 3D view tile provides a view 1200 of the selected zone. Figure 13 is a close-up view of an alternative display for the 3D view tile. As shown, a view 1300 shows a clock icon. The view 1300 may be used in situations where the active zone shows an expanded 3D view such as shown in Figure 9. In other situations, the view 1200 may be used. This ensures the 3D view tile in the favorites bar does not display redundant information.
[0056] In a further exemplary embodiment, any tile in the favorites bar may be used to show a clock when an associated application is presented in the active zone 920. [0057] Returning to Figure 9, the user may click the "edit" button 916 on the dashboard display 900 to enter an edit mode. In the edit mode, the user may rearrange/resize and/or add/remove dashboard tiles.
[0058] Users have several options to configure their dashboard tile layout. These options may be set by default by the LPM and/or by an LIM. Some options may be set as fixed configuration options by the LPM and/or by an LIM so that the user may not change them, for example, having a zone selector 910 at the top of the favorites bar may be set by the system and may not be overridden by the user.
[0059] In the edit mode, the user can click and drag the tiles to change their order. Tiles of different sizes may automatically fill in the space in such a way that the order is preserved and space is used efficiently. The new arrangement may then be saved, for example, by clicking the Done button.
[0060] One way to add tiles is to use an Add/Remove tile button that may be displayed on the dashboard when in edit mode. Clicking this button displays a menu of all available tiles and clicking a tile in the menu toggles its inclusion in the dashboard.
[0061] The user may also add tiles from other parts of the application. For example, right- clicking a Remote Control monitor may display the option to add a tile for that monitor directly.
[0062] The user can also remove a tile from the dashboard directly, for example, by right- clicking the tile and selecting an option from the pop-up menu to remove the tile.
[0063] Each dashboard tile may have an associated navigation destination. When the user clicks on the tile (or otherwise selects the tile), the program will navigate to a screen which shows detailed information about what was on the tile, or to a third party application which the tile draws its data from.
[0064] A tile grid is used to display tiles that the user has selected in a grid layout. Tiles can be set to a few predefined sizes which will fit together by occupying different numbers of spaces in this grid in such a way that it is possible to pack them together tightly. If too many tiles have been added to fit into the grid, scroll indicator buttons can be displayed, and the user can scroll up and down through the tiles by clicking the indicator buttons or by clicking and dragging with the mouse.
[0065] A user profile system (such as one located on the server) may be used to save, restore, and synchronize user dashboard layout settings. Whenever the user adds, removes, resizes, or rearranges and then saves the layout of tiles, enough information to restore that layout can be saved to the user's profile (e.g., via communication with the server). This information may then be stored in the database, and the change can be broadcast to other clients. In this way, if the user is logged in to multiple clients, the tile configuration can stay in sync. This also means that the tile configuration is a per-user setting, and one user changing their tiles does not affect other users.
[0066] The active alerts dashboard tile 124, 914 displays unresolved alert counts in the currently selected zone by severity. If there are any of the unresolved alerts of a given severity, the systems can alert the user, such as by waving the flag, flashing a part of the screen, playing an alert sound, etc. Similarly, if any of the alerts in a given severity are new or escalated, the system can demark such alerts, for example, displaying an asterisk (new) or exclamation icon (escalated) on top of the flag.
[0067] If the count for a given severity is zero, the flag can be deemphasized, such as by being turned gray in color. If there is a positive count for the severity the flag may be shown in a color associated with the severity (e.g., red for critical alerts, yellow for warnings, etc.). This increases the at-a-glance absorption of alert counts for the zone. Whenever an alert within the zone is resolved, the corresponding count for that alert's severity is decremented and the flag updated accordingly.
[0068] Figure 14 shows a dashboard screen 1400 providing alert details which can be reached by selecting an active alerts dashboard tile 124, 914. On the right side of the screen 1400 is the active alerts dashboard tile 1420. As shown, the critical alerts indicator 1422 reveals that there are twelve critical alerts. According to the warning alerts indicator 1424 there is one warning and the user-defined alerts indicator 1426 indicates there are no user-defined alerts.
[0069] The active zone 1430 shows a 3D map of the selected zone with critical alert flags 1432 and a warning alert flag 1434 for instruments with an alert/warning. In this non-limiting embodiment, each type of alert is represented by a flag, for example, the instrument with the warning alert flag 1434 also includes two critical alert flags 1432 with different images (a lightning bolt on one and a sine wave on the other). Selecting any flag 1432, 1434 on an instrument, opens an alert message box 1410 detailing the alerts for the instrument.
[0070] In order for applications and instruments to function properly in the tile system described above, a proper integration is important. Integration ensures that the applications and instruments are able to share information with the LPM system (and visa-versa). This helps in improving the workflow of users that use both systems.
[0071] From the user perspective, the integration allows the user to see alerts within the LPM. The user can also navigate from an alert that is displayed in the LPM desktop application to the appropriate screen for the alerting test in the desktop application (e.g., a unity real time (URT) desktop application). The system can also fetch the latest peer-review data for the test that an alert is related to from a cloud service.
[0072] In order to ensure the user is aware of the status of the integration, a tile may be shown that allows the user to see the connection status of the integration. That way they know if communication has been interrupted. A loss in connection status may also cause an alert to be shown. Such an alert may be conditioned on the length of time of the loss in communication exceeding a predetermined threshold.
[0073] In one non-limiting embodiment, there are three software integration points used to accomplish integration. A server-to-server integration between the LPM server and third party server components (e.g., Bio-Rad URT server components) is used for communication of alert and instrument data. Generic external alert system usage allows alerts to be sent by various integration partners. A client-to-client integration between desktop applications allow the LPM to launch third party applications and navigate to a specific screen. The third software integration point is a server-to-cloud integration. This integration between the LPM server and a cloud-based web service allows fetching of real-time peer data for tests.
[0074] The integration is setup and configured by first enabling the integration on the LPM server. The third party server component is then configured with instrument mapping information so that it can communicate with the LPM server. Next a mapping from a unique third party instrument ID to a LPM unique instrument ID is selected so that alerts from the third party can be attached to the correct instrument in the LPM system.
[0075] Figure 17 shows a simplified block diagram of a server-to-server communication flow 1700. Server-to-server communication of new alerts and instrument lists is shown between sLPM Server 1710 and BioRad Alert Server 1730. A protocol, such as Windows Communication Foundation (WCF) protocol 1770 can be used for this communication. This part of the integration is handled by an external alert system.
[0076] A server-to-cloud integration for requesting peer data is shown between sLPM Server 1710 and Unity Central Web Service 1740. Such requests and response may use a protocol such as Simple Object Access Protocol (SOAP) 1780. The client-to-client integration for navigating the unity real time (URT) Client 1750 to specific alerts is shown between sLPM Client 1720 and URT Client 1750. This integration can use an HTTP socket 1790 and/or a custom protocol (such as an XML-based protocol).
[0077] The BioRad Alert Server 1730 and the URT Client 1750 may also communicate with a URT database (DB) 1760 which may store data associated with the alerts and instrument lists and/or the peer data. [0078] In order to assist in setting up instrument (or application), the dashboard may include integration tiles. These tiles may be added automatically to the home screen for any zone where the instrument is setup. The tile can be updated to display the status of the connection between the LPM and the associated third party servers.
[0079] Figure 18 is a close-up view of an integrations tile 1800 which indicates the connection is currently active/setup. In contrast, Figure 19 is a close-up view of an integrations tile 1900 showing an unconnected integration. Tile 1900 de-emphasizes the features shown on tile 1800 and overlays an image indicating the lack of connection.
[0080] Clicking on an "Integrations" tile navigates to a screen showing mapping of LPM defined instruments to instruments defined within software that integrates with LPM (e.g., third party instruments and application).
[0081] Figure 20 shows a GUI 2000 for assigning instruments to integration mappings. The Active window 2020 includes a list of instrument or application manufacturers 2010. Selecting one of them (e.g., BioRad) displays a list of unmapped instruments from that manufacturer on the left side. One item on this list is "Advia 1800 (2)" 2022. On the right side, a list of instrument mappings for the manufacturers are shown, including "Advia 1800" 2032.
[0082] Using this UI, the user may select an unmapped instrument and associate it with an instrument mapping. Figure 21 shows a GUI 2100 indicating instruments assigned integration mappings, for example, by clicking and dragging an instrument icon to a specific mapping. The "Advia 1800 (2)" 2022 has been associated with the "Advia 1800" mapping 2032. This is shown by having the instrument item 2022 interlocked with the mapping item 2032.
[0083] Figure 22 shows a simplified block diagram 2200 of a GUI navigation process. The user moves from an application workspace 2210 by clicking on a navigation button. The GUI then displays an administration screen 2220 which includes instrument tiles 2224 and other tiles 2222 (such as alert summary tile 124 and 3D view tile 122).
[0084] Selecting one of the instrument tiles 2224 causes the GUI to show an instrument administration screen 2230. This instrument administration screen 2230 includes a desired instrument row 2232 and other instrument rows 2234. The desired instrument row 2232 includes external alert mapping configurations 2233. From the instrument administration screen 2230 the user can also assign mappings such as shown in Figures 20-21.
[0085] One benefit of the instrument mappings is that it allows alerts from the third party instruments and applications to be handled by a generic external alert system. Using a generic external alert system to handle such alerts allows them to be displayed and managed in a manner consistent with other alerts in the system. [0086] Another benefit of the instrument mappings is that a client-to-client integration may be used which allows users to navigate from third party related alerts that are displayed in the LPM client to a screen in the appropriate desktop client application corresponding to the same alert.
[0087] This navigation is handled by using the operating system to check whether the third party application is running. If it is not, the LPM client will look up its location in a pre-defined registry key and launch it. Once the URT client is confirmed to be running, the LPM client sends it a message. This message instructs the client to bring itself to the front and navigate itself to a screen related to the requested alert, if possible.
[0088] In another non-limiting embodiment, the LPM client may use HTTP to communicate with the URT client. The LPM client makes an HTTP 'GET' request to the URT client which is listening for HTTP requests on a particular port (e.g., port 8083). The HTTP request contains data (e.g., XML data) in the request header that specifies what action the LPM client is requesting from the URT client and what data the LPM client would like the URT client to act upon. The data in the HTTP request may be a serialized custom object that is de-serialized by the URT client when the data is received.
[0089] After the URT client receives the HTTP 'GET' request from the LPM client, it responds back to the LPM client via an HTTP response. The response header indicates whether or not the HTTP request that triggered the response was received with an error. It also indicates whether the request was accepted or rejected. Additionally, in the response body, if the data within the HTTP request was processed by the URT client, then XML data can be present that indicates the status of the URT client's processing of the request.
[0090] The client-to-cloud integration allows users to request peer data for an alert from the Unity Central cloud service. This service may reside on the public internet, so a pass-through mechanism for the LPM client may be used so that only the LPM server needs to be connected to the internet for this feature to work.
[0091] In the UI, a new button for Unity Central can initiate a request for alert details. The LPM server, upon receiving this request, looks up information from the alert and uses it to make a call to the Unity Central server. Once a result is returned, the LPM server forwards it on to the LPM client for display. The UI for displaying peer data also includes the option to allow the user to select data from the current month or the previous month.
[0092] Figure 15 is a view of a message box 1500 of a successful data fetch process. Message box 1500 provides details of peer data for the previous month which were successfully received and parsed. However, if there is a problem with the data fetch, an alert message box 1600 informs the user of the failure as shown in Figure 16. [0093] As discussed above, the external alert system allows external software products to inject alerts into the LPM server. These alerts can be displayed alongside standard LPM alerts, and may offer additional integration-specific features.
[0094] Alerts may be associated with a particular instrument, so the LPM server can maintain a mapping between the third party's instrument identifier and LPM's instrument identifier. The third party can provide a list of available instruments, which is used within the LPM for mapping the third party instrument to one or more instruments defined within the LPM.
[0095] When a new alert message is received, the LPM server attempts to create a new alert based on its parameters. If the LPM server is not able to create an alert from the message, the error will be logged and the message will be discarded. This will create an opportunity to debug the problem, as well as letting users know that an alert did not come through due to errors.
[0096] Before an alert is accepted, mappings between LPM's instrument and the third party instrument are defined. These mappings are stored in a database table for instrument mappings which also stores both IDs, establishing a relationship. When a potential ID is sent from the client, it is placed in the same table, but the field for the LPM instrument identifier is left null. These mappings can be configured via a user interface in the LPM client.
[0097] Any alerts that are accepted are added to the LPM alert system and marked as coming from a specific integration. This allows special functionally to be implemented for this type of alert in both the client and the server, such as controlling how the alert is handled, displayed, etc. Aside from the special functionality, though, alerts will appear identical to any other alert within the LPM. They will also be manually resolvable so that the user can dismiss alerts that have been dealt with.
[0098] Figure 23 shows a block diagram of a system 2300 that is suitable for use in practicing various embodiments. In the system 2300 of Figure 23, the server 2310 includes a controller, such as a data processor (DP) 2312 and a computer-readable medium embodied as a memory (MEM) 2314 that stores computer instructions, such as a program (PROG) 2315. Server 2310 may communicate with a client 2320, for example, via the internet 2330.
[0099] Client 2320 includes a controller, such as a data processor (DP) 2322 and a computer- readable medium embodied as a memory (MEM) 2324 that stores computer instructions, such as a program (PROG) 2325.
[0100] Server 2310 and/or client 2320 may also include a dedicated processor, for example an integration handling processor 2313, 2323. Both server 2310 and/or client 2320 may communicate with an instrument 2348, for example, via the internet 2330 (as shown), and/or via direct communications channels (such as a wireless connection or a physical connection). [0101] Databases 2342, 2344, 2346 may be connected directly to the server 2310, the client 2320 or the internet 2330. As shown, database 2342 stores integration mapping information 2350; however, this data may be stored in any of the databases 2342, 2344, 2346.
[0102] The programs 2315, 2325 may include program instructions that, when executed by the DP 2312, 2322, enable the server 2310 and/or client 2320 to operate in accordance with an embodiment. That is, various embodiments may be carried out at least in part by computer software executable by the DP 2312 of the server 2310, the DP 2322 of the client 2320, by hardware, or by a combination of software and hardware.
[0103] In general, various embodiments of the server 2310 and/or client 2320 may include tablets and computers, as well as other devices that incorporate combinations of such functions.
[0104] The MEM 2314, 2324 and databases 2342, 2344, 2346 may be of any type suitable to the local technical environment and may be implemented using any suitable data storage technology, such as magnetic memory devices, semiconductor based memory devices, flash memory, optical memory devices, fixed memory and removable memory. The DP 2312, 2322 may be of any type suitable to the local technical environment, and may include general purpose computers, special purpose computers, microprocessors and multicore processors, as non- limiting examples.
[0105] As described above, various embodiments provide a method, apparatus and computer program(s) to setup integrations of plugin applications for third party real-time medical lab information.
[0106] Figure 24 is a logic flow diagram that illustrates a method, and a result of execution of computer program instructions, in accordance with various embodiments. In accordance with an embodiment a method performs, at Block 2410, a step of displaying a display environment on a display device. The display environment includes a display element that is associated with an external lab instrument. At Block 2420, the method performs a step of receiving a message from an external source. The message is associated with the external lab instrument and the message includes external data. A step of processing the message in accordance with an integration in order to determine the external data is performed at Block 2430. The integration describes a mapping between the external lab instrument and a virtual lab instrument display defined within the display environment. The method also performs, at Block 2440, a step of displaying a representation of the external data in the display element in accordance with the integration.
[0107] The various blocks shown in Figure 24 may be viewed as method steps, as operations that result from use of computer program code, and/or as one or more logic circuit elements constructed to carry out the associated function(s). [0108] An embodiment provides a computer-implemented method for presenting integrated medical lab information by a computer device. The computer device includes a processor, a memory and a display device. The method includes storing, by the processor, an external program code in the memory. The processor implements an application that is operative to integrate the external program code. A display environment on the display device is rendered by the processor. The method also includes rendering, by the processor, a display control element in accordance with the external program code under control of the application such that the display control element is rendered on the display device within the display environment with a size and location determined by the application. The processor receives external data and presents the external data in the display control element in accordance with the external program code.
[0109] In a further embodiment of the method above, the method also includes providing a display specification and/or a data reference for the display control. The data reference may be used to locate the external data. The data reference may specify a network address and/or a call to an external application via an application programming interface. The display specification may be used to present the external data on the display device.
[0110] In another embodiment of any one of the methods above, the method also includes receiving and presenting the external data on the display device in real-time.
[0111] In a further embodiment of any one of the methods above, the method also includes receiving a user input to the application and altering the size and/or location of the display control in accordance with the user input.
[0112] In another embodiment of any one of the methods above, the method also includes receiving the external data as a user input to the display control at the computer device. The method may also include providing data related to the user input to an external destination in response to receiving the external data.
[0113] In a further embodiment of any one of the methods above, rendering the display control comprises rendering the display control using HTML, XML and/or XAML.
[0114] In another embodiment of any one of the methods above, the method also includes detecting an event to prompt retrieval of external data accessible by the external program code.
[0115] In a further embodiment of any one of the methods above, the external program code is in the form of a data link library.
[0116] In another embodiment of any one of the methods above, the method also includes certifying the external program code prior to loading the external program code into memory.
[0117] In a further embodiment of any one of the methods, the method also includes receiving an input from the client computer via the communication interface to prompt retrieval of external data. Receiving the input from the client computer may include receiving an input from the display control to retrieve the external data.
[0118] In another embodiment of any one of the methods above, the method also includes receiving a prompt from a source of the external data.
[0119] In a further embodiment of any one of the methods, the method also includes receiving a data reference to locate the external data.
[0120] In another embodiment of any one of the methods above, the method also includes retrieving external data and transmitting the external data in real-time.
[0121] A further embodiment provides a method for presenting integrated medical lab information. The method includes displaying a display environment (such as a dashboard) on a display device. The display environment shows a display element that is associated with an external lab instrument (such as a tile). The method includes receiving a message from an external source (such as an alert or data update). The message is associated with the external lab instrument and includes external data. The message is processed in accordance with an integration to determine the external data. The integration describes a mapping between the external lab instrument and a virtual lab instrument display defined within the display environment. The method also includes displaying a representation of the external data in the display element in accordance with the integration (such as by showing a graph, traffic light, etc.).
[0122] In another embodiment of the method above, the display element is a rectangular tile (e.g., a square tile, a long rectangular tile, etc.).
[0123] In a further embodiment of any one of the methods above, the method also includes, in response to receiving a user selection of the display element, navigating to an application program based on the integration.
[0124] In another embodiment of any one of the methods above, the message from the external source is an alert from the external lab instrument.
[0125] In a further embodiment of any one of the methods above, displaying the representation of the external data includes displaying a graph, a dial, a pulse meter or other digit widget.
[0126] In another embodiment of any one of the methods above, displaying the representation of the external data includes displaying one icon from a plurality of icons. The icon displayed is selected based on at least one threshold value, for example, the plurality of icons may include traffic lights showing a red light, a yellow light and a green light.
[0127] In a further embodiment of any one of the methods above, the integration includes a display specification and/or a data reference for the display element. [0128] In another embodiment of any one of the methods above, receiving the message from the external source includes sending a request for data from the external source and receiving the message from the external source in response to the request.
[0129] In a further embodiment of any one of the methods above, displaying the representation of the external data in the display element includes updating the representation in real-time based on a plurality of messages from an external source.
[0130] In another embodiment of any one of the methods above, the method includes displaying a first list of external lab instruments connected to the display environment. The first list includes the external lab instrument. A second list of integrations available to the display environment is displayed. The second list includes the integration. The method also includes receiving a selection of the external lab instrument and the integration, and assigning the integration to the external lab instrument. The method may also include receiving at least one integration available to the display environment from an external database. Displaying the first list and the second list may include, for each external lab instrument in the first list that has been assigned an integration from the second list, displaying a representation that the external lab instrument is assigned to the integration.
[0131] A further embodiment provides an apparatus having a processor and a memory storing computer program code. The memory and the computer program code are configured to, with the processor, cause the apparatus to perform any one of the methods above.
[0132] In another embodiment of any one of the apparatus above, the apparatus is embodied in a server.
[0133] In a further embodiment of any one of the apparatus above, the apparatus is embodied in an integrated circuit.
[0134] Another embodiment provides a computer readable medium tangibly encoded with a computer program executable by a processor to perform any one of the methods above.
[0135] In a further embodiment of any one of the computer readable media above, the computer readable medium is a storage medium.
[0136] In another embodiment of any one of the computer readable media above, the computer readable medium is a non-transitory computer readable medium (e.g., CD-ROM, RAM, flash memory, etc.).
[0137] Various operations described are purely exemplary and imply no particular order. Further, the operations can be used in any sequence when appropriate and can be partially used. With the above embodiments in mind, it should be understood that additional embodiments can employ various computer-implemented operations involving data transferred or stored in computer systems. These operations are those requiring physical manipulation of physical quantities. Usually, though not necessarily, these quantities take the form of electrical, magnetic, or optical signals capable of being stored, transferred, combined, compared, and otherwise manipulated.
[0138] Any of the operations described that form part of the presently disclosed embodiments may be useful machine operations. Various embodiments also relate to a device or an apparatus for performing these operations. The apparatus can be specially constructed for the required purpose, or the apparatus can be a general-purpose computer selectively activated or configured by a computer program stored in the computer. In particular, various general-purpose machines employing one or more processors coupled to one or more computer readable medium, described below, can be used with computer programs written in accordance with the teachings herein, or it may be more convenient to construct a more specialized apparatus to perform the required operations.
[0139] The procedures, processes, and/or modules described herein may be implemented in hardware, software, embodied as a computer-readable medium having program instructions, firmware, or a combination thereof. For example, the functions described herein may be performed by a processor executing program instructions out of a memory or other storage device.
[0140] The foregoing description has been directed to particular embodiments. However, other variations and modifications may be made to the described embodiments, with the attainment of some or all of their advantages. It will be further appreciated by those of ordinary skill in the art that modifications to the above-described systems and methods may be made without departing from the concepts disclosed herein. Accordingly, the invention should not be viewed as limited by the disclosed embodiments. Furthermore, various features of the described embodiments may be used without the corresponding use of other features. Thus, this description should be read as merely illustrative of various principles, and not in limitation of the invention.

Claims

What is claimed is:
A method for presenting integrated medical lab information, the method comprising: displaying a display environment on a display device, the display environment comprises a display element, wherein the display element is associated with an external lab instrument; receiving a message from an external source, wherein the message is associated with the external lab instrument, and the message includes external data;
processing the message in accordance with an integration to determine the external data, wherein the integration describes a mapping between the external lab instrument and a virtual lab instrument display defined within the display environment; and
displaying a representation of the external data in the display element in accordance with the integration.
2. The method of claim 1, wherein the display element is a rectangular tile.
3. The method of any one of claims 1-2, further comprising in response to receiving a user selection of the display element, navigating to an application program based on the integration.
4. The method of any one of claims 1-3, wherein the message from the external source is an alert from the external lab instrument.
5. The method of any one of claims 1-4, wherein displaying the representation of the external data comprises displaying one of: a graph, a dial and a pulse meter.
6. The method of any one of claims 1-5, wherein displaying the representation of the external data comprises displaying an icon of a plurality of icons, wherein the icon displayed is selected based on at least one threshold value.
7. The method of any one of claims 1-6, wherein the integration comprises at least one of: a display specification and a data reference for the display element.
8. The method of any one of claims 1-7, wherein receiving the message from the external source comprises sending a request for data from the external source and receiving the message from the external source in response to the request.
9. The method of any one of claims 1-8, wherein displaying the representation of the external data in the display element further comprises updating the representation in real-time based on a plurality of messages from an external source.
10. The method of any one of claims 1-9, further comprising:
displaying a first list of external lab instruments connected to the display environment, wherein the first list comprises the external lab instrument;
displaying a second list of integrations available to the display environment, wherein the second list comprises the integration;
receiving a selection of the external lab instrument and the integration; and
assigning the integration to the external lab instrument.
1 1. The method of claim 10, further comprising receiving at least one integration available to the display environment from an external database.
12. The method of claim 10, wherein displaying the first list and the second list comprises, for each individual external lab instrument in the first list that has been assigned an individual integration from the second list, displaying a representation that the individual external lab instrument is assigned to the individual integration.
13. A computer readable medium tangibly encoded with a computer program executable by a processor to perform actions comprising:
displaying a display environment on a display device, the display environment comprises a display element, wherein the display element is associated with an external lab instrument; receiving a message from an external source, wherein the message is associated with the external lab instrument, and the message includes external data;
processing the message in accordance with an integration to determine the external data, wherein the integration describes a mapping between the external lab instrument and a virtual lab instrument display defined within the display environment; and displaying a representation of the external data in the display element in accordance with the integration.
14. The computer readable medium of claim 13, the actions further comprising, in response to receiving a user selection of the display element, navigating to an application program based on the integration.
15. The computer readable medium of any one of claims 13-14, wherein displaying the representation of the external data comprises displaying an icon of a plurality of icons, wherein the icon displayed is selected based on at least one threshold value.
16. The computer readable medium of any one of claims 13-15, the actions further comprising:
displaying a first list of external lab instruments connected to the display environment, wherein the first list comprises the external lab instrument;
displaying a second list of integrations available to the display environment, wherein the second list comprises the integration;
receiving a selection of the external lab instrument and the integration; and
assigning the integration to the external lab instrument.
17. An apparatus, comprising at least one processor and at least one memory including computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus to perform at least the following:
to display a display environment on a display device, the display environment comprises a display element, wherein the display element is associated with an external lab instrument; to receive a message from an external source, wherein the message is associated with the external lab instrument, and the message includes external data;
to process the message in accordance with an integration to determine the external data, wherein the integration describes a mapping between the external lab instrument and a virtual lab instrument display defined within the display environment; and
to display a representation of the external data in the display element in accordance with the integration.
18. The apparatus of claim 17, wherein the at least one memory and the computer program code are further configured to cause the apparatus to navigate to an application program based on the integration in response to receiving a user selection of the display element.
19. The apparatus of any one of claims 17-18, wherein, when displaying the representation of the external data, the at least one memory and the computer program code are further configured to cause the apparatus to display an icon of a plurality of icons, wherein the icon displayed is selected based on at least one threshold value.
20. The apparatus of any one of claims 17-19, wherein the at least one memory and the computer program code are further configured:
to display a first list of external lab instruments connected to the display environment, wherein the first list comprises the external lab instrument;
to display a second list of integrations available to the display environment, wherein the second list comprises the integration;
to receive a selection of the external lab instrument and the integration; and
to assign the integration to the external lab instrument.
PCT/US2015/033126 2014-06-02 2015-05-29 Plugin system for integration of third party real-time medical lab information WO2015187480A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201462006453P 2014-06-02 2014-06-02
US62/006,453 2014-06-02

Publications (1)

Publication Number Publication Date
WO2015187480A1 true WO2015187480A1 (en) 2015-12-10

Family

ID=54767213

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2015/033126 WO2015187480A1 (en) 2014-06-02 2015-05-29 Plugin system for integration of third party real-time medical lab information

Country Status (1)

Country Link
WO (1) WO2015187480A1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019050697A1 (en) * 2017-09-06 2019-03-14 Siemens Healthcare Diagnostics Inc. Alert-enabled passive application integration
US11315681B2 (en) 2015-10-07 2022-04-26 Smith & Nephew, Inc. Reduced pressure therapy device operation and authorization monitoring
US11369730B2 (en) 2016-09-29 2022-06-28 Smith & Nephew, Inc. Construction and protection of components in negative pressure wound therapy systems
US11602461B2 (en) 2016-05-13 2023-03-14 Smith & Nephew, Inc. Automatic wound coupling detection in negative pressure wound therapy systems
US11712508B2 (en) 2017-07-10 2023-08-01 Smith & Nephew, Inc. Systems and methods for directly interacting with communications module of wound therapy apparatus
US11793924B2 (en) 2018-12-19 2023-10-24 T.J.Smith And Nephew, Limited Systems and methods for delivering prescribed wound therapy
US11974903B2 (en) 2017-03-07 2024-05-07 Smith & Nephew, Inc. Reduced pressure therapy systems and methods including an antenna

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040032430A1 (en) * 2002-06-04 2004-02-19 Kai Yung System and method for generating user interfaces for different instrument types
US20100306784A1 (en) * 2005-05-02 2010-12-02 Cooney Jr George A System for automating scientific and engineering experimentation
US20120245447A1 (en) * 2011-02-28 2012-09-27 Abbott Diabetes Care Inc. Devices, Systems, and Methods Associated with Analyte Monitoring Devices and Devices Incorporating the Same

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040032430A1 (en) * 2002-06-04 2004-02-19 Kai Yung System and method for generating user interfaces for different instrument types
US20100306784A1 (en) * 2005-05-02 2010-12-02 Cooney Jr George A System for automating scientific and engineering experimentation
US20120245447A1 (en) * 2011-02-28 2012-09-27 Abbott Diabetes Care Inc. Devices, Systems, and Methods Associated with Analyte Monitoring Devices and Devices Incorporating the Same

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11315681B2 (en) 2015-10-07 2022-04-26 Smith & Nephew, Inc. Reduced pressure therapy device operation and authorization monitoring
US11783943B2 (en) 2015-10-07 2023-10-10 Smith & Nephew, Inc. Reduced pressure therapy device operation and authorization monitoring
US11602461B2 (en) 2016-05-13 2023-03-14 Smith & Nephew, Inc. Automatic wound coupling detection in negative pressure wound therapy systems
US11369730B2 (en) 2016-09-29 2022-06-28 Smith & Nephew, Inc. Construction and protection of components in negative pressure wound therapy systems
US11974903B2 (en) 2017-03-07 2024-05-07 Smith & Nephew, Inc. Reduced pressure therapy systems and methods including an antenna
US11712508B2 (en) 2017-07-10 2023-08-01 Smith & Nephew, Inc. Systems and methods for directly interacting with communications module of wound therapy apparatus
WO2019050697A1 (en) * 2017-09-06 2019-03-14 Siemens Healthcare Diagnostics Inc. Alert-enabled passive application integration
CN111066038A (en) * 2017-09-06 2020-04-24 美国西门子医学诊断股份有限公司 Alarm enabled passive application integration
US11334060B2 (en) 2017-09-06 2022-05-17 Siemens Healthcare Diagnostics Inc. Alert-enabled passive application integration
US11793924B2 (en) 2018-12-19 2023-10-24 T.J.Smith And Nephew, Limited Systems and methods for delivering prescribed wound therapy

Similar Documents

Publication Publication Date Title
WO2015187480A1 (en) Plugin system for integration of third party real-time medical lab information
US10452249B2 (en) Tooltip feedback for zoom using scroll wheel
US10931539B2 (en) Graphical user interface for displaying a network traffic route in a single-view display
US10778537B1 (en) Presenting devices from an aggregated node within a network topology
KR101666417B1 (en) Computer system security dashboard
AU2012340634B2 (en) Intelligent infrastructure management user device
US20150205498A1 (en) Automatic wallpaper image changer for a computing device
JP2009509241A (en) Connecting to different network types through a common user interface
JPWO2007086140A1 (en) Analyzer operating status display system
EP2930898A1 (en) Method for sharing file and handheld device
US20150160835A1 (en) Pluggable Layouts for Data Visualization Components
US9176727B2 (en) Infrastructure software patch reporting and analytics
AU2022204812B2 (en) System and method for 3D abstract object modelling of high entropic information security threats
JP2014032529A (en) Plc system, drawing editor device thereof, and programmable display
US20150081755A1 (en) Visualization device, visualization system, and visualization method
KR20170135670A (en) Selection control method, selection control device, and recording medium
US9059931B2 (en) System and method for visualizing an address space
US20200204456A1 (en) Graphical user interface for displaying a hierarchical network topology in a single site view
US20130060836A1 (en) Configuring a plurality of diverse devices/services from an adaptive configuration control hyper-server apparatus
CN113377318A (en) Display screen control method, device and system
JP2007011936A (en) Programmable display unit
EP2592507B1 (en) Method and apparatus for the display of multiple errors on a human-machine interface
EP3021557B1 (en) Control network system
JP5982691B2 (en) Menu display method, apparatus and device
JP6141542B2 (en) Control system

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15803018

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15803018

Country of ref document: EP

Kind code of ref document: A1