Difference between revisions of "User:Shawndouglas/sandbox/sublevel13"

From LIMSWiki
Jump to navigationJump to search
(Finished adding rest of content.)
 
(37 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Infobox journal article
<div class="nonumtoc">__TOC__</div>
|name        =
{{ombox
|image        =
| type     = notice
|alt          = <!-- Alternative text for images -->
| style    = width: 960px;
|caption     =  
| text     = This is sublevel13 of my sandbox, where I play with features and test MediaWiki code. If you wish to leave a comment for me, please see [[User_talk:Shawndouglas|my discussion page]] instead.<p></p>
|title_full  = DataCare: Big data analytics solution for intelligent healthcare management
|journal     = ''International Journal of Interactive Multimedia and Artificial Intelligence''
|authors      = Baldominos, Alejandro; de Rada, Fernando; Saez, Yago
|affiliations =  Universidad Carlos III de Madrid, Camilo José Cela University
|contact      = Email: abaldomi at inf dot uc3m dot es
|editors      =
|pub_year    = 2018
|vol_iss      = '''4'''(7)
|pages        = 13–20
|doi          = [http://10.9781/ijimai.2017.03.002 10.9781/ijimai.2017.03.002]
|issn        = 1989-1660
|license      = [https://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported]
|website      = [http://www.ijimai.org/journal/node/1621 http://www.ijimai.org/journal/node/1621]
|download    = [http://www.ijimai.org/journal/sites/default/files/files/2017/03/ijimai_4_7_2_pdf_16566.pdf http://www.ijimai.org/journal/sites/default/files/files/2017/03/ijimai_4_7_2_pdf_16566.pdf] (PDF)
}}
}}
{{ombox
| type      = content
| style    = width: 500px;
| text      = This article should not be considered complete until this message box has been removed. This is a work in progress.
}}
==Abstract==
This paper presents DataCare, a solution for intelligent healthcare management. This product is able not only to retrieve and aggregate data from different key performance indicators in healthcare centers, but also to estimate future values for these key performance indicators and, as a result, fire early alerts when undesirable values are about to occur or provide recommendations to improve the quality of service. DataCare’s core processes are built over a free and open-source cross-platform document-oriented database (MongoDB), and Apache Spark, an open-source cluster computing framework. This architecture ensures high scalability capable of processing very high data volumes coming at rapid speeds from a large set of sources. This article describes the architecture designed for this project and the results obtained after conducting a pilot in a healthcare center. Useful conclusions have been drawn regarding how key performance indicators change based on different situations, and how they affect patients’ satisfaction.
'''Keywords''': Architecture, artificial intelligence, big data, healthcare, management
==Introduction==
When managing a healthcare center, there are many key performance indicators (KPIs) that can be measured, such as the number of events, the waiting time, the number of planned tours, etc. Often, keeping these KPIs within the expected limits is vital to achieving high user satisfaction.
In this paper we present DataCare, a solution for intelligent healthcare management. DataCare provides a complete architecture to retrieve data from sensors installed in the healthcare center, process and analyze it, and finally obtain relevant information, which is displayed in a user-friendly dashboard.
The advantages of DataCare are twofold: first, it is intelligent. Besides retrieving and aggregating data, the system is able to predict future behavior based on past events. This means that the system can fire early alerts when a KPI is expected to have a future value that falls outside the expected boundaries, and it can provide recommendations for improving the behavior and the metrics, or prevent future problems with attending events.
Second, the core system module is built on top of a big data platform. Processing and analysis are run over Apache Spark, and data are stored in MongoDB, thus enabling a highly scalable system that can process large volumes of data coming in at very high speeds.
This article will discuss many aspects of DataCare. The next section will present context for this research by analyzing the state of the art and related work. After that an overview of DataCare’s architecture will be presented, including the three main modules responsible for retrieving data, processing and analyzing it, and displaying the resulting valuable information.
After the architecture has been explained, the subsequent three sections will describe the preprocessing, processing, and analytics engines in further detail. The design of these systems is crucial to providing a scalable solution with an intelligent behavior. After discussing those engines in detail, the article will then describe the visual analytics engine and the different dashboards that are presented to users.
Finally, the penultimate section will describe how the solution has been validated, and the last section will provide some conclusive remarks, along with potential future work.
==State of the art==
Because healthcare services are very complex and life-critical, many works have tackled the design of healthcare management systems, aimed at monitoring metrics in order to detect undesirable behaviors that decrease their satisfaction or even threaten their safety.


Discussion on the design and implementation of the healthcare management system is not new. In the 2000s, Curtright ''et al.''<ref name="CurtrightStat00">{{cite journal |title=Strategic performance management: Development of a performance measurement system at the Mayo Clinic |journal=Journal of Healthcare Management |author=Curtwright, J.W.; Stolp-Smith, S.C.; Edell, E.S. |volume=45 |issue=1 |pages=58–68 |year=2000 |pmid=11066953}}</ref> described a system to monitor KPIs, summarizing them in a dashboard report, with a real-world application in the Mayo Clinic. Also, Griffith and King<ref name="GriffithChampion00">{{cite journal |title=Championship management for healthcare organizations |journal=Journal of Healthcare Management |author=Griffith, J.R. |volume=45 |issue=1 |pages=17–30 |year=2000 |pmid=11066948}}</ref> proposed to establish a “championship” where those healthcare systems with consistently good metrics would help improve decision making processes.
==Sandbox begins below==
<div class="nonumtoc">__TOC__</div>


Some of these works explore the sensing technology that enable proposals. For instance, Ngai ''et al.''<ref name="NgaiDesign09">{{cite journal |title=Design of an RFID-based Healthcare Management System using an Information System Design Theory |journal=Information Systems Frontiers |author=Ngai. E.W.T.; Poon, J.K.L.; Suk, F.F.C.; Ng, C.C. |volume=11 |issue=4 |pages=405–417 |year=2009 |doi=10.1007/s10796-009-9154-3}}</ref> focus on how RFID technology can be applied for building a healthcare management system, yet it is only implemented in a quasi real-world setting. Ting ''et al.''<ref name="TingCritical11">{{cite journal |title=Critical elements and lessons learnt from the implementation of an RFID-enabled healthcare management system in a medical organization |journal=Journal of Medical Systems |author=Ting, S.L.; Kwok, S.K.; Tsang, A.H.; Lee, W.B. |volume=35 |issue=4 |pages=657–69 |year=2011 |doi=10.1007/s10916-009-9403-5}}</ref> also focus on the application of RFID technology to such a project, from the perspective of its preparation, implementation, and maintenance.
<!--{{LIMS Selection Guide for Manufacturing Quality Control/Taking the next step/Conduct initial research into a specification document tailored to your lab's needs}}//-->
==5. Taking the next step==
[[File:Specification leading to Design Documents.jpg|right|500px]]In section 3.4 of this guide, we briefly discussed how a user requirements specification (URS) fits into the process of purchasing [[laboratory informatics]] solutions for your manufacturing-focused [[laboratory]]. The URS has been viewed as a means for the purchaser to ensure their needs are satisfied by the functionality of the software. Traditionally, this has turned into a "wish list" for the purchaser, which while somewhat practical still lacks in its finesse. One common problem with this wishlist approach is the risk of "requirements creep," where more functionality than is truly necessary is desired, inevitably leading to a state where no vendor can meet all the wishlisted requirements. This makes selecting a solution even more difficult, particularly without significant prioritization skills.<ref name="AasemAnalysis10">{{cite journal |title=Analysis and optimization of software requirements prioritization techniques |author=Aasem, M.; Ramzan, M.; Jaffar, A. |journal=Proceedings from the 2010 International Conference on Information and Emerging Technologies |pages=1–6 |year=2010 |doi=10.1109/ICIET.2010.5625687}}</ref><ref name="Hirsch10Steps13">{{cite web |url=https://www.phase2technology.com/blog/successful-requirements-gathering |title=10 Steps To Successful Requirements Gathering |author=Hirsch, J. |publisher=Phase2 Technology, LLC |date=22 November 2013 |accessdate=07 December 2022}}</ref><ref name="BurrissSoftware07">{{cite web |url=http://sce2.umkc.edu/BIT/burrise/pl/requirements/ |archiveurl=https://web.archive.org/web/20190925003040/http://sce2.umkc.edu/BIT/burrise/pl/requirements/ |title=Requirements Specification |work=CS451R, University of Missouri–Kansas City |author=Burris, E. |publisher=University of Missouri–Kansas City |date=2007 |archivedate=25 September 2019 |accessdate=07 December 2022}}</ref>


Some previous works have also tackled the design of intelligent healthcare management systems. Recently Jalal ''et al.''<ref name="JalalADepth17">{{cite journal |title=A Depth Video-based Human Detection and Activity Recognition using Multi-features and Embedded Hidden Markov Models for Health Care Monitoring Systems |journal=International Journal of Interactive Multimedia and Artificial Intelligence |author=Jalal, A.; Kamal, S.; Kim, D. |volume=4 |issue=4 |pages=54–62 |year=2017 |doi=10.9781/ijimai.2017.447}}</ref> have proposed an intelligent, depth video-based human activity recognition system to track elderly patients that could be used as part of a healthcare management and monitoring system. However, the paper does not explore this integration. Also, Ghamdi ''et al.''<ref name="GhamdiAnOnt16">{{cite journal |title=An ontology-based system to predict hospital readmission within 30 days |journal=International Journal of Healthcare Management |author=Ghamdi, H.A.; Alshammari, R.; Razzak, M.I. |volume=9 |issue=4 |pages=236–244 |year=2016 |doi=10.1080/20479700.2016.1139768}}</ref> have proposed an ontology-based system for prediction of patients’ readmission within 30 days so that those readmissions can be prevented.
Noting the potential problems with this wishlist approach, [[LII:LIMSpec 2022 R2|LIMSpec]]—a specification document for laboratory informatics solutions—took a new approach and turned to standards and regulations that drive laboratories of all types, as well as the data they manage. LIMSpec was rebuilt based on [[ASTM E1578|ASTM E1578-18]] ''Standard Guide for Laboratory Informatics'', as well as dozens of other standards and regulations, while still leaving room for a software buyer to add their own custom requirements for their industry or lab.  


Regarding the impact of data in a healthcare management system, the importance of data-driven approaches has been addressed by Bossen ''et al.''.<ref name="BossenChallenges16">{{cite journal |title=Challenges of Data-driven Healthcare Management: New Skills and Work |journal=19th ACM Conference on Computer-Supported Cooperative Work and Social Computing |author=Bossen, C.; Danholt, P.; Ubbesen, M.B. et al. |pages=5 |year=2016 |url=http://pure.au.dk/portal/da/publications/challenges-of-datadriven-healthcare-management-new-skills-and-work(fd56833b-db7b-44ed-b4fd-15882b382271).html}}</ref> Roberts ''et al.''<ref name="RobertsADesign16">{{cite journal |title=A design thinking framework for healthcare management and innovation |journal=Healthcare |author=Roberts, J.P.; Fisher, T.R.; Trowbridge, M.J.; Bent, C. |volume=4 |issue=1 |pages=11–14 |year=2016 |doi=10.1016/j.hjdsi.2015.12.002 |pmid=27001093}}</ref> have explored how to design healthcare management systems using a design thinking framework. Basole ''et al.''<ref name="BasoleHealthcare13">{{cite journal |title=Healthcare management through organizational simulation |journal=Decision Support Systems |author=Basole, R.C.; Bodner, D.A.; Rouse, W.B. |volume=55 |issue=2 |pages=552–563 |year=2013 |doi=10.1016/j.dss.2012.10.012}}</ref> propose a web-based game using organizational simulation for healthcare management. Zeng ''et al.''<ref name="ZengVIKOR13">{{cite journal |title=VIKOR method with enhanced accuracy for multiple criteria decision making in healthcare management |journal=Journal of Medical Systems |author=Zeng, Q.L.; Li, D.D.; Yang, Y.B. |volume=37 |issue=2 |pages=9908 |year=2013 |doi=10.1007/s10916-012-9908-1 |pmid=23377778}}</ref> have proposed an enhanced VIKOR method that can be used as a decision support tool in healthcare management contexts. A relevant work from Mohapatra<ref name="MohapatraUsing15">{{cite journal |title=Using integrated information system for patient benefits: A case study in India |journal=International Journal of Healthcare Management |author=Mohapatra, S. |volume=8 |issue=4 |pages=262–71 |year=2015 |doi=10.1179/2047971915Y.0000000007}}</ref> explores how a [[hospital information system]] is used for healthcare management, improving the KPIs; and a pilot has been conducted in Kalinga hospital (India), turning out to be beneficial for all stakeholders.
The rest of this chapter examines the research, documentation, and acquisition process that manufacturing labs needing laboratory informatics solutions will want to go through, with an emphasis on the utility of a sound requirements specification. While LIMSpec is offered as a solid starting point, you don't strictly need to use LIMSpec to conduct this process; the information in this chapter can largely be applied with or without LIMSpec itself.


Some works have also explored how to increase patients’ satisfaction. For example, Fortenberry and McGoldrick<ref name="FortenberryInternal15">{{cite journal |title=Internal marketing: A pathway for healthcare facilities to improve the patient experience |journal=International Journal of Healthcare Management |author=Fortenberry Jr., J.L. |volume=9 |issue=1 |pages=28–33 |year=2015 |doi=10.1179/2047971915Y.0000000014}}</ref> suggest improving the patient experience via internal marketing efforts, while Minniti ''et al.''<ref name="MinnitiPatient16">{{cite book |chapter=Patient-Interactive Healthcare Management, a Model for Achieving Patient Experience Excellence |title=Healthcare Information Management Systems |author=Minniti, M.J.; Blue, T.R.; Freed, D.; Ballen, S. |publisher=Springer |pages=257–281 |year=2016 |isbn=9783319207650 |doi=10.1007/978-3-319-20765-0_16}}</ref> propose a model in which patient feedback is processed in real time, driving rapid cycle improvement.


To place this work into its context, what we have developed is a data-driven intelligent healthcare management system. Because of the volume and velocity of big data, we have used a big data architecture based on the one proposed by Baldominos ''et al.''<ref name="BaldominosAScal14">{{cite journal |title=A scalable machine learning online service for big data real-time analysis |journal=2014 IEEE Symposium on Computational Intelligence in Big Data |author=Baldominos, A.; Albacete, E.; Saez, Y.; Isasi, P. |year=2014 |doi=10.1109/CIBD.2014.7011537}}</ref>, but updating the tools to use Apache Spark for the sake of efficiency. Also, a pilot has been conducted to evaluate the performance of the proposed system.
===5.1 Conduct initial research into a specification document tailored to your lab's needs===
A specification is "a detailed precise presentation of something or of a plan or proposal for something."<ref name="MWSpec">{{cite web |url=https://www.merriam-webster.com/dictionary/specification |title=specification |work=Merriam-Webster |publisher=Merriam-Webster, Inc |accessdate=07 December 2022}}</ref> This concept of a specification as a presentation is critical to the laboratory seeking to find laboratory informatics software that fulfills their needs; they "present" their use case with the help of a requirements specification, and the vendor "presents" their ability (or inability) to comply through documentation and demonstration (more on that later). However, even the most seasoned of presenters at conferences and the like still require quality preparation before the presentation. This is where initial specification research comes into play for the lab.


==Overview of the architecture==
Your lab's requirements specification document will eventually be a critical component for effectively selecting a laboratory informatics solution. There are numerous ways to approach the overall development of such a document. But why re-invent the wheel when others have already gone down that road? Sure, you could search for examples of such documents on the internet and customize them to your needs, or you and your team could brainstorm how a laboratory informatics solution should help your lab accomplish its goals. LIMSpec makes for one of the more thorough starting points to use, though you could also use other structured documents that have been developed by others. For the purposes of this guide, we'll look at LIMSpec.
DataCare’s architecture comprises three main modules: the first oversees retrieving and aggregating the information generated in the health center or [[hospital]], the second processes and analyzes the data, and the third displays the valuable information in a dashboard, allowing the [[System integration|integration]] with external information systems.


Figure 1 depicts a broad overview of this architecture, while the following describes each of the modules in further detail.
The version of LIMSpec included in Appendix 1 of this guide is a slightly tweaked version of the original [[Book:LIMSpec 2022 R2|LIMSpec 2022]] document, omitting a few of the specialty laboratory functions that aren't applicable to manufacturing laboratories. You'll note that it's divided into five distinct sections, with numerous subsections in each:


[[File:Fig1 BaldominosIntJOfIMAI2018 4-7.png|800px]]
* Primary Laboratory Workflow
{{clear}}
** 1. Sample and experiment registration
{|
** 2. Sample management
| STYLE="vertical-align:top;"|
** 3. Core laboratory testing and experiments
{| border="0" cellpadding="5" cellspacing="0" width="800px"
** 4. Results review and verification
|-
** 5. Sample, experiment, and study approval and verification
  | style="background-color:white; padding-left:10px; padding-right:10px;"| <blockquote>'''Figure 1.''' DataCare’s architecture. The first column lists the data sources, which are retrieved and aggregated by AdvantCare software (second column). The last column shows the big data platform, which contains engines for the data processing and analytics module (yellow) and the data visualization module (purple).</blockquote>
** 6. Reporting
|-
* Maintaining Laboratory Workflow and Operations
|}
** 7. Document and records management
|}
** 8. Resource management
** 9. Compliance management
** 10. Instrument and equipment management
** 11. Batch and lot management
** 12. Scheduled event management
** 13. Instrument data capture and control
** 14. Standard and reagent management
** 15. Inventory management
** 16. Investigation and quality management
* Specialty Laboratory Functions (minus non-relevant industries)
** 17. Production management
** 18. Statistical trending and control charts
** 19. Agriculture and food data management
** 24. Scientific data management
* Technology and Performance Improvements
** 26. Instrument data systems functions
** 27. Systems integration
** 28. Laboratory scheduling and capacity planning
** 29. Lean laboratory and continuous improvement
** 30. Artificial intelligence and smart systems
* Security and Integrity of Systems and Operations
** 31. Data integrity
** 32. Configuration management
** 33. System validation and commission
** 34. System administration
** 35. Cybersecurity
** 36. Information privacy


===Data retrieval and aggregation module===
These sections and subsections should be able to address most any requirement you have for your system. Of course, if something isn't covered by LIMSpec, you can always add additional requirements.  
Data retrieval is carried out by AdvantCare software, developed by Itas Solutions S.L. AdvantCare is a set of hardware and software tools designed to manage communications between patients and healthcare staff. Its core comprises three main systems: 1) Buslogic manages and aggregates the information of actions carried out by nondoctor personnel (nurses and nursing assistants), 2) AdvantControl monitors and controls the infrastructure, and 3) EasyConf manages voice communication.


In hospital rooms, different data acquisition systems are placed, which often consist of hardware devices connected to an IP network and include one of the following elements:
During the initial research towards your URS, you won't have to include every requirement for when you approach potential vendors. Most vendors appreciate a more inviting approach that doesn't overwhelm, at least initially. You will want to go with a limited yet practical set of requirements carefully chosen because they matter to you and your laboratory the most. In fact, you'll want to wait until after participating in several software demonstrations before even considering your URS to be complete. (More on that in 5.3.1.) This naturally leads us to a discussion about the RFI process.


* sensors such as thermometers or noise or light sensors measuring some current value or status either in a continuous or periodic fashion and sending it to Buslogic or AdvantControl servers;
* assistance devices such as buttons or pull handlers that are actioned by the patients and transmit the assistance call to the Buslogic server;
* voice and video communication systems that send and receive information from other devices or from Jitsi (SIP Communicator), which are handled by EasyConf; or
* data acquisition systems operated by means of graphical user interfaces in devices such as tablets, e.g., surveys or other information systems.


In general terms, the information retrieved by AdvantCare belongs to one of the following:
<!--{{LIMS Selection Guide for Manufacturing Quality Control/Taking the next step/Issue some of the specification as part of a request for information (RFI)}}//-->
===5.2 Issue some of the specification as part of a request for information (RFI)===
In some cases—particularly if your organization is of significant size—it may make sense to issue a formal RFI or request for proposal (RFP) and have laboratory informatics vendors approach your lab with how they can meet its needs. The RFI and RFP are traditional means towards soliciting bidding interest in an organization's project, containing the organization's specific requirements and vital questions that the bidder should be able to effectively answer. However, even if your organization chooses to skip the RFI or RFP process and do most of the investigative work of researching and approaching informatics vendors, turning to a key set of questions typically found in an RFI is extremely valuable towards your fact finding.


* Planned tours: Healthcare personnel will periodically visit certain rooms or patients as a part of a pre-established plan. Data about how shifts are carried out is essential to evaluate assistance quality and the efficiency of nurses and nursing assistants.  
An RFI is an ideal means for learning more about a potential solution and how it can solve your problems, or for when you're not even sure how to solve your problem yet. However, the RFI should not be unduly long and tedious to complete for prospective vendors; it should be concise, direct, and honest. This means not only presenting a clear and humble vision of your own organization and its goals, but also asking just the right amount of questions to allow potential vendors to demonstrate their expertise and provide a clearer picture of who they are. Some take a technical approach to an RFI, using dense language and complicated spreadsheets for fact finding. However, as previously noted, you will want to limit the specified requirements in your RFI to those carefully chosen because they matter to you and your lab the most.<ref name="HolmesItsAMatch">{{cite web |url=https://allcloud.io/blog/its-a-match-how-to-run-a-good-rfi-rfp-or-rfq-and-find-the-right-partner/ |title=It's a Match: How to Run a Good RFI, RFP, or RFQ and Find the Right Partner |author=Holmes, T. |work=AllCloud Blog |accessdate=07 December 2022}}</ref>
* Assistance tasks: Nurses and nursing assistants must perform certain tasks as a response to an assistance call. It would be great to know in advance these tasks, so they can be monitored properly.  
* Patient satisfaction: The most important service quality subjective metric is the patient's satisfaction, which is obtained by mean of surveys.


As said before, AdvantCare software comprises three systems, as well as communication/integration interfaces.
Remember, an RFI is not meant to answer all of your questions. The RFI is meant as a means to help narrow down your search to a few quality candidates while learning more about each other.<ref name="HolmesItsAMatch" /> Once the pool of potential software vendors is narrowed down, and you then participate in their demonstrations, you then can broadly add more requirements to the original collection of critical requirements from the RFI to ensure those providers meet all or most of your needs. That said, be cognizant that there may be no vendor that can meet each and every need of your lab. Your lab will have to make important decisions about which requirements are non-negotiable and which are more flexible. The vendors you engage with may be able to provide realistic advice in this regard, based upon your lab's requirements and their past experience with labs. As such, those vendors with real-world experience meeting the needs of manufacturing laboratories may have a strong leg up on other vendors.


====Buslogic====
Again, Appendix 1 of this guide includes a comprehensive specifications document called LIMSpec, from which you can draw the requirements that are most critical to be addressed in an RFI. If you have zero experience developing an RFI, you may want to first seek out various example RFIs on the internet, as well as some basic advice articles on the topic. Some websites may provide templates to examine for further details. Broadly speaking, if you're conducting a full RFI or RFP, you're going to lead with the standard components of an RFI or RFP, including:
This software oversees communication with the assistance call systems. It also handles GestCare and MediaCare, which are the systems used for tasks planning, personnel work schedules, patient information, satisfaction surveys, and entertainment. Buslogic retrieves core business information about the assistance process, including alerts, waiting times to assist patients, and achieved assistance objectives.


====AdvantControl====
* a table of contents;
This software controls and monitors the infrastructure and automation functionalities, including the status of lights, doors, or the DataCare infrastructure itself. It provides real-time alerts about possible quality of service issues.
* an honest introduction and overview of your organization, its goals and problems, and the services sought to solve them;
* details on how the RFI or RFP evaluation process will be conducted;
* basis for award (if an RFP);
* the calendar schedule (including times) for related events;
* how to submit the document and any related questions about it, including response format; and
* your organization's background, business requirements, and current technical environment.


====EasyConf====
Being honest about your organization, its informatics requirements, and its current technical environment upfront in the RFI or RFP will also ensure that the time spent on the process is optimized for all involved parties. Before submitting any RFI, your lab will want to conduct thorough internal research ensuring everyone understands what the current technology and processes are, and how you all want to shape that with the introduction or updating of laboratory informatics systems. (If your lab has limited to no experience with adding automation and informatics elements to a laboratory, you may want to read through laboratory informatics veteran Joe Liscouski's [[LII:The Application of Informatics to Scientific Work: Laboratory Informatics for Newbies|''The Application of Informatics to Scientific Work: Laboratory Informatics for Newbies'']] for further insight.) You'll also want to answer critical questions such as "who will be responsible for maintaining the solution and its security?" and "how will our processes and procedures change with the introduction or updating of informatics systems?". These and other questions make up your business considerations, which should also address the:
This software manages SIP Communicator and provides data about calls such as the origin, the destination, and the total call duration.


====Communication/Integration APIs====
* acquisition and long-term maintenance budget;
Data can be retrieved from AdvantCare servers by means of SOAP web services, which get used in those requests that require high processing capacity, and are stateless. Also, the information can be accessed via a REST [[application programming interface]] (API), where the calls are performed through HTTP requests, and data is exchanged in JSON-serialized format. REST servers are placed in the software servers themselves (either Buslogic, AdvantControl or EasyConf), thus allowing real-time queries, as well as parameter modifications. Finally, a TELNET channel will allow asynchronous communication to broadcast events from the servers to the connected clients.
* diversity of laboratory services offered now and into the future;
* level of in-house knowledge and experience with informatics systems and automation;
* level of in-house, executive buy-in of informatics adoption; and
* need for additional vendor pre-planning.


===Data processing and analysis module===
One other note: make it clear in any issued RFI that it's strictly a request for information and not a guarantee to issue a contract with any respondent.
The Data Processing and Analysis module is part of a big data platform based on Apache Spark<ref name="ZahariaSpark10">{{cite journal |title=Spark: Cluster computing with working sets |journal=Proceedings of the 2nd USENIX Conference on Hot Topics in Cloud Computing |author=Zaharia, M.; Chowdhury, M.; Franklin, M.J. et al. |page=10 |year=2010}}</ref>, which allows an integrated environment for the development and exploitation of real time massive data analysis, outperforming other solutions such as Hadoop MapReduce or Storm, scaling out up to 10,000 nodes, providing fault tolerance<ref name="ZahariaResilient12">{{cite journal |title=Resilient distributed datasets: A fault-tolerant abstraction for in-memory cluster computing |journal=Proceedings of the 9th USENIX Conference on Networked Systems Design and Implementation |author=Zaharia, M.; Chowdhury, M.; Das, T. et al. |page=2 |year=2012}}</ref> and allowing queries using a [[SQL]]-like language.


As shown in Figure 1, this module comprises four different systems: Preprocessing Engine, Processing Engine, Big Data and Historic Data Warehouses, and Analytics Engine.


====Preprocessing Engine====
<!--{{LIMS Selection Guide for Manufacturing Quality Control/Taking the next step/Respond to or open dialogue with vendors}}//-->
This system performs the ETL (extract-transform-load) processes for the AdvantCare data. It first communicates with AdvantCare using the available APIs to retrieve the data, which later is transformed into a suitable format to be introduced to the Processing Engine. Because of the metadata provided by AdvantCare, the information can be classified to ease its analysis. Normalized and consolidated data gets stored in MongoDB, the leading free and open-source document-oriented database, where collections store both data for real time analysis as well as historic data to support batch analysis to compute the evolution of different metrics in time.
===5.3 Respond to or open dialogue with vendors===
If you went the route of the RFI, you hopefully received more than a few well-crafted responses. Your RFI presumably included a small but critical set of requirements that needed to be addressed, and the vendors who responded dutifully addressed those critical requirements. Even if you didn't send out an RFI, you at least did your own research about some of the big players in the laboratory informatics space, and you may have even opened an initial dialogue with a few of them. If all has gone well, you're now at the point where you've narrowed down the pool of vendors but still have a basket of them to continue dialogue with. (If you're not comfortably at this point after an RFI or engagements with multiple vendors, you may need to either reconsider the effectiveness of your RFI or engagements or enlist help from a knowledgeable and experienced consultant to help steer you back on-course.)


====Processing Engine====
As dialogue continues with vendors, you'll have several points to address:
This system runs over the Spark computing cluster and oversees data consolidation processes for periodically aggregating data, also supporting the alert and recommendation subsystems.


====Data Warehouses====
1. What do I want their [[laboratory information management system]] (LIMS) to do for me?
Data filtered by the Preprocessing Engine and enriched by the Processing Engine gets stored in the Big Data Warehouse, responsible for storing real-time information. Additionally, the Historic Data Warehouse stores aggregated historic data, which gets used by the Analytics Engine to identify new trends or trend shifts for the different quality metrics.


====Analytics Engine====
2. How does their solution fit into our previously discussed budget?
This system runs the batch processes that will apply the statistical analysis methods, as well as machine learning algorithms over real-time big data. Along with the historic data, time series and ARIMA (autoregressive integrated moving average) techniques provide diagnosis of the temporal behavior of the model. This engine also implements a Bayes-based early alerts system (EAS) able to detect and predict a decrease in the service quality or efficiency metrics under a preset threshold, sending alerts in the form of push or email notifications.


===Data visualization module===
Regarding question one, you've already laid some of the groundwork for that with the help of your handful of critical requirements (and the associated research that went into developing them). Outside of those critical requirements, a laboratory informatics solution should also provide clearly definable benefits to how you operate your manufacturing laboratory. These expected benefits should tie in with your overall business mission and goals. Using a LIMS as an example, here are a few of the benefits a well-developed LIMS can provide to practically any laboratory. Whenever you go through the discovery process with a vendor, you'll be asking how their system provides these and other benefits through its functionality. A quality LIMS can provide<ref name="McLelland98">{{cite web |url=http://www.rsc.org/pdf/andiv/tech.pdf |archiveurl=https://web.archive.org/web/20131004232754/http://www.rsc.org/pdf/andiv/tech.pdf |format=PDF |title=What is a LIMS - a laboratory toy, or a critical IT component? |author=McLelland, A. |publisher=Royal Society of Chemistry |page=1 |date=1998 |archivedate=04 October 2013 |accessdate=07 December 2022}}</ref><ref name="SciCompRisksBens">{{cite journal |title=Industry Insights: Examining the Risks, Benefits and Trade-offs of Today’s LIMS |journal=Scientific Computing |author=Joyce, J.R. |issue=January/February 2010 |pages=15–23 |year=2010}}</ref>:
This module provides a reporting dashboard that receives information from the big data platform in real time and displays two panels. The first panel shows the main quality and efficiency metrics in real time, along with its evolution over time and the quality thresholds. The second panel provides the diagnoses computed by the Analytics Engine, as well as intelligent recommendations to prevent reaching undesired situations, such as metrics falling below acceptable thresholds.


The dashboard is implemented using the D3.js library, providing nice and intuitive visualizations.
* increased accuracy: the minimization or elimination of transcription and other errors;
* streamlined processes: ensuring each process step in a protocol/method is completed in the proper order, with all requirements met, updating sample statuses automatically;
* automation: integration with instruments, allowing for automatic uploading of samples and returning of results;
* regulatory and standards compliance: functionality that aids with compliance, including reporting results to state and local authorities;
* data security: role-based, configurable, secure access to data, processes, reporting, etc.;
* flexible reporting: reporting tools that allows for the design and generation of certificates of authority and other reports to lab- and regulation-based specs;
* instant data retrieval: query tools for finding data instantly according to any criteria (date range, test, product type, etc.); and
* configurability and cost-effectiveness: a user-configurable system (as opposed to hard-coded, requiring development for any modifications) that is flexible enough to adapt to rapid changes in test volume and type over time, without breaking the bank.


==Preprocessing Engine==
As for the second question, budgeting is always a tricky topic, both internally and when discussing it with vendors. We already mentioned in the previous section that addressing the acquisition and long-term maintenance budget of your solution(s) must be addressed as part of your lab's business considerations. (And we already mentioned some cost considerations in 3.1.6; this discussion will add a few more points.) The fact that laboratory informatics systems like the LIMS come in all kinds of price ranges makes it difficult to judge if a given system, as priced, is appropriate for your lab and its budget. There are some basic cost realities associated with LIMS acquisition<ref name="CSolsHowMuch17">{{cite web |url=https://www.slideshare.net/CSolsInc/how-much-does-a-lims-cost-licensing-and-beyond-pittcon-2017-tech-talk |title=How Much Does a LIMS Cost? Licensing and Beyond |author=Rosenberg, H.J. |work=SlideShare |date=28 March 2017 |accessdate=07 December 2022}}</ref><ref name="CSolsSaving18">{{cite web |url=https://www.csolsinc.com/blog/saving-costs-with-lims/ |title=Saving Costs with LIMS |publisher=CSols, Inc |date=25 October 2018 |accessdate=07 December 2022}}</ref>, which will help you understand where the vendor price comes from, and how it figures into your lab's budget (though some of these concepts may also apply to other informatics systems).
The Preprocessing Engine performs the ETL process over the data, and this section describes how different data are extracted from the various sources, transformed and loaded as a part of this process.


===Extraction===
:1. Vendor pricing is generally based on how many will be using the system. This can be measured in concurrent users (how many will be using the system at any one time) or named users (the number of total users who will ever use the system, by name). Additionally, laboratory informatics vendors increasingly offer the option of a [[Cloud computing|cloud-hosted]] subscription, which of course has the advantage of not requiring your own IT department, and allowing labs to defray cost over time, with little or no actual license fee. Think about your usage strategy and choose the pricing format that makes the most sense for you.  
This engine extracts the assistance call data by polling the AdvantCare module every five minutes, retrieving all data generated by all the rooms. Data from planned tours are retrieved daily also by polling the REST API, while patients’ satisfaction surveys are loaded as CSV files.


===Transformation===
:2. Most costs are related to the work involved with installing, configuring, and migrating data to the system. Try to choose a solution that has what you need out of the box, as much as possible. The more customized or unique options you ask for up-front, the more it tends to cost, as extra items are a function of the time it takes developers to add them.
The Preprocessing Engine performs several transformation tasks so that data is in a suitable format to be handled by the Processing Engine and the Analytics Engine.


====Assistance task events====
:3. "User-configurable" beats "vendor-configurable" on cost-effectiveness. Some vendors offer a free or low-cost option, but don't be fooled. They are in business to make money, and they are counting on the fact that you'll need to pay them to make things work, add necessary functionality, and provide support and training. If you can find a vendor who offers a genuinely user-configurable system, and whose manuals and other support materials are clearly helpful and available so that you can adjust things the way you want, when you want, then that will go a long way toward budget efficiency and longevity.
Assistance task events get transformed into MongoDB documents, where each event is stored in a different document, and all of them belong to the events collection. When one event
status changes (e.g., from “activated” to “notified”), the document is updated to reflect these changes.


Figure 2 shows a sample document representing an event.
:4. Additional interfaces and reporting requirements cost money. If necessary, consider phasing in any additional instrument and software interfaces over time, as revenue eases cash flow. You can go live with your system operations more quickly, entering results manually until you can afford to interface your instruments one-by-one. This goes for reports as well; a simple reporting module that meets regulatory requirements will do. You can make your reports and other exportable documents more attractive later.


<pre>{
Ideally, your budget has room for roughly $40- to $80,000 minimum (including setup, training, interfaces, etc.) for a quality, full-featured professional LIMS or LIS, with $300 to $900 per month (depending on number of users) for ongoing subscriptions. At around five concurrent users, the economics start to favor purchasing perpetual licenses rather than paying for a subscription. Purchased licenses will also entail ongoing annual or monthly costs as well (e.g., maintenance, support, warranty for updates etc.) Subscriptions (if available) are generally aimed at smaller labs. If you will be growing and scaling up, it may be a great way to get started, but make sure you have the option to switch to perpetual licenses later.
“_id”: ObjectId(“565c234f152aee26874d7a18”),
“full_event”: true,
“presence”: {
      “ev”: “EV PRES”,
      “ts”: ISODate(“2015-10-02T01:35:36.384Z”)
},
“area”: “Madrid”,
“notification” : {
      “ev”: “EV NOTIF”,
      “ts”: ISODate(“2015-10-02T01:32:21.984Z”)
},
“room_number”: “126”,
“location”: “PERA”,
“activation” : {
      “week”: 40,
      “weekday”: 5,
      “user”: “Anonimo”,
      “hour”: 1,
      “minute”: 31,
      “year”: 2015,
      “month”: 10,
      “day”: 2,
      “ev”: “EV PERA”,
      “ts”: ISODate(“2015-10-02T01:31:45.696Z”)
},
“room_letter”: “-”,
“center”: “Aravaca”,
“day_properties”: {
      “holiday_or_sunday”: true,
      “social_events”: true,
      “rain”: true,
      “extreme_heat”: true,
      “summer_vacation”: true,
      “holiday”: true,
      “weekend”: true,
      “friday_or_eve”: true
},
“floor”: “1”,
“times”: {
      “cancellation_notification”: 195,
      “used”: 194,
      “idle”: 36,
      “cancellation_activation”: 231,
      “total”: 230,
      “cancellation_presence”: 1
},
“hour_properties”: {
      “shift_change”: true,
      “shift”: “TARDE”,
      “sleeptime”: true,
      “nurse_count”: “8”,
      “dinnertime”: true,
      “lunchtime”: true
},
“cancellation”: {
      “ev”: “EV CPRES”,
      “remote”: true,
      “ts”: ISODate(“2015-10-02T01:35:37.248Z”)
}
}</pre>
{|
| STYLE="vertical-align:top;"|
{| border="0" cellpadding="5" cellspacing="0" width="400px"
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"| <blockquote>'''Figure 2.''' Sample JSON document representing an assistance task event in the
MongoDB events collection</blockquote>
|-
|}
|}


====Planned tours====
With much of this information in hand, you're likely ready to move on to finalizing the requirements specification and choosing a vendor, but not before you've sat through a few highly useful demonstrations.
Data from planned tours are retrieved daily from AdvantCare using the REST API and are transformed to a MongoDB document in the ''shifts'' collection. A sample document is shown in Figure 3.  


<pre>{
====5.3.1 The value of demonstrations====
      “_id”: ObjectId(“569e50b1aa40450a027eb4ec”),
[[File:ForUM demo (2659615090).jpg|left|360px]]A demonstration of laboratory informatics solution is an integral part of making your final decisions. The demo offers a unique and valuable opportunity to see in-person how data and information is added, edited, deleted, tracked, and protected within the context of the application; you can ask about how a function works and see it right then and there. Equally, it is an excellent time to compare notes with the vendor, particularly in regard to the critical requirement that were addressed in your RFI (or through direct communication with the vendor). You can ask the vendor in real-time to answer questions about how a specific task is achieved, and the vendor can ask you about your lab's system and workflow requirements and how you best envision them being implemented in the system (e.g., does this interface seem intuitive?).
      “floor”: 3,
      “room”: 326,
      “date”: “1/10/15”,
      “hour”: “9:00:45”,
      “center_name”: “Aravaca”,
      “ts”: ISODate(“2015-10-01T09:00:45.000Z”),
      “shift_type”: “MAÑANA”
}
</pre>
{|
| STYLE="vertical-align:top;"|
{| border="0" cellpadding="5" cellspacing="0" width="400px"
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"| <blockquote>'''Figure 3.''' Sample JSON document representing a shift in the MongoDB ''shifts''
collection</blockquote>
|-
|}
|}


====Satisfaction surveys====
A demonstration is typically performed online, which is useful for a couple of reasons, COVID-19 notwithstanding. First, it means you can schedule and reschedule at your convenience, with little in the way of logistics to arrange. Second, the demonstration session is likely to be recorded (verify this), so everyone is clear on what was promised and what wasn't, how processes were shown to work, etc. Additionally, you can later review parts you may have missed, forgotten, or not quite understood, and you can share it with others, who then also get a look at the proposed system in action.
As stated before, satisfaction data are loaded as CSV files. The Preprocessing Engine transforms it into a MongoDB document, which gets stored into the surveys collection. Figure 4 shows the structure of a sample document representing a satisfaction survey.


<pre>
Be careful about falling for the temptation of presenting a full URS or other specification document to the vendor during the demonstration. You'll want to wait until after participating in several software demonstrations to consider presenting your full specification document to the vendor, and that's assuming that you've grown enamored with their solution. By waiting to finalize your lab's requirements specification until after the demos, a common error is avoided: too often labs think the first thing they must do is create a requirements list, then sit back and let the informatics vendors tell them how they meet it. Remember that even though most labs thoroughly understand their processes, they likely don't have as strong a grasp on the informatics portion of their processes and workflows. Participating in a demo before finalizing your list of specified requirements—or having only a minimal yet flexible requirements list during the demo—is a great way to later crosscheck the software features you have seen demonstrated to your lab's processes and any initial requirements specification you've made.<ref name="HammerHowTo19">{{cite web |url=https://www.striven.com/blog/erp-software-demo |title=How to Get the Most Value from an ERP Software Demo |author=Hammer, S. |work=The Takeoff |date=27 June 2019 |accessdate=07 December 2022}}</ref> After all, how can you effectively require specific manufacturing-related functions of your laboratory informatics software if you don't fully know what such an industry-specific system is capable of? After the demonstrations, you may end up adding several requirements to your final specifications document, which you later pass on to your potential vendors of choice for final confirmation.
      “_id” : ObjectId(“569e483daa404509a9796754”),
      “care_punctuation”: 2,
      “center”: “Aravaca”,
      “area”: “Madrid”,
      “floor”: 2,
      “night_punctuation”: 5,
      “morning_punctuation”: 4,
      “speed_punctuation”: 2,
      “price_quality_punctuation”: 2,
      “afternoon_punctuation”: 4,
      “year”: 2015,
      “month”: 11,
      “day”: 27,
      “date”: ISODate(“2015-11-27T00:00:00.000Z”),
      “global_punctuation”: 2,
      “id”: “Anonimo”,
      “room”: 221
}
</pre>
{|  
| STYLE="vertical-align:top;"|
{| border="0" cellpadding="5" cellspacing="0" width="400px"
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"| <blockquote>'''Figure 4.''' Sample JSON document representing a satisfaction survey in the
MongoDB ''surveys'' collection</blockquote>
|-
|}
|}


===Load===
Once data is transformed into MongoDB documents (BSON format), they are loaded into the corresponding MongoDB collection.


==Processing Engine==
<!--{{LIMS Selection Guide for Manufacturing Quality Control/Taking the next step/Finalize the requirements specification and choose a vendor}}//-->
The Processing Engine runs batch processes to consolidate data previously transformed by the Preprocessing Engine. This consolidation aggregates data to be handled by the Analytics Engine.
===5.4 Finalize the requirements specification and choose a vendor===
Now that the demonstrations have been conducted and more questions asked, you should be close to finalizing your requirement specifications with one ore more vendors. In fact, you may have taken LIMSpec, chosen a few critical requirements from it, added them to a few unique requirements of your own, and included them as part of an RFI or question and answer session with vendors. You then likely took those responses and added them to your wider overall specification (e.g., LIMSpec), along with your own notes and observations from interacting with the vendor. This may have been repeated for several vendors and their offerings.  


===Periodic data consolidation===
At this point, you're likely ready to either have those vendors complete the rest of the responses for their corresponding URS, or you may even be ready to narrow down your vendor selection. This all likely depends on what the initial fact finding revealed. How well did the vendors respond to your laboratory's unique set of needs? Were there critical areas that one vendor could address with their off-the-shelf solution but another vendor would have to address with custom coding? Did any of the vendors meet your budget expectations? Have you followed up on any references and customer experiences the vendors provided to you?
As the Processing Engine consolidates data periodically, two new collections are created, namely ''hourly'' and ''daily'', depending on the periodicity of the aggregated data. A sample document in the ''hourly'' collection is shown in Figure 5.


<pre>{
It may be that several vendors are appealing at this point, meaning it's time to have them respond to the rest of the URS. This makes not only for good due diligence, to better ensure most requirements can be met, but also a reviewable option for any "tie-breaker" you have between vendors. In reality, this tie-breaker scenario would rarely come up; more often, some other aspect of the software, company, or pricing will be a stronger limiter. However, you still want to get all those vendor responses, even if you've early on filtered your options down to one vendor.
“_id”: ObjectId(“5665a51f0b1d4cf6f9728ae4”),
“center”: “Aravaca”,
“date”: {
      “week”: 40,
      “weekday”: 4,
      “hour”: 4,
      “ts”: ISODate(“2015-10-01T04:00:00.000Z”),
      “year”: 2015,
      “month”: 10,
      “day”: 1
},
“idle_time”: 67,
“wait_time”: {
  “floors”: {
      “1”: 0.6363636363636364,
      “2”: 29.5,
      “3”: 120,
      “4”: 0.5
  },
  “shifts”: {
      “NOCHE”: 23.72222222222222
  },
  “total”: 427,
  “types”: {
      “EV HABA”: 4,
      “EV PERA”: 359
  }
},
“used_time”: 344,
“activity”: {
  “floors”: {
      “1”: 11,
      “2”: 2,
      “3”: 3,
      “4”: 2
  },
  “shifts”: {
      “NOCHE”: 18
  },
  “total”: 18,
  “types”: {
      “EV HABA”: 17,
      “EV PERA”: 1
  }
}
}
</pre>
{|
| STYLE="vertical-align:top;"|
{| border="0" cellpadding="5" cellspacing="0" width="400px"
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"| <blockquote>'''Figure 5.''' Sample JSON document representing consolidated data in the ''hourly''
collection</blockquote>
|-
|}
|}


This aggregation enables fast visualization of aggregated data, and it is key for the Analytics Engine to detect strange behaviors, fire alerts, or make recommendations. Both the ''hourly'' and ''daily'' collections are indexed by timestamp to enable fast filtering on consolidated data based on temporal queries.
Ultimately, your specification document may look similar to the LIMSpec, or it may have a slightly different format. Many prospective buyers will develop a requirement specification in Microsoft Excel, but that has a few minor disadvantages. Regardless of format, you'll want to give plenty of space for vendors to submit a response to each requirement. For your convenience, a Microsoft Word version of Appendix 1's LIMSpec for manufacturing labs is also included as part of this guide (see A8. LIMSpec in Microsoft Word format). That document is editable, giving end users and vendors the flexibility to remove information and enlarge columns.  


===Real-time data processing===
Additionally, remember that often is the case that after the URS is completed and final questions asked, no single vendor can meet all your needs. Be ready for this possibility, whether it be a functionality requirement or a budget issue. Know ahead of time where your laboratory is willing to be flexible, and how much flex you have. After all of your lab's preparation, and with a little luck, you've found a vendor that fits the bill, even if a few minor compromises had to be made along the way.
To support the real-time dashboard, a process takes the data from the ''hourly'' collection and computes the average value for each KPI for different time periods: last day, last week, last month, and since the beginning. This allows comparison of the current value for a KPI with the average of past periods of time. A small fragment of a sample document in the ''realtime'' collection showing the aggregated data for the “activity” (number of events) KPI is shown in Figure 6.
 
<pre>{
      “_id” : ObjectId(“56850cb00b1d4cf6f9b4f2da”),
      “center”: “Aravaca”, “activity”: {
      “total”: [
      {“type”: “yesterday”, “hour”: 0, “value”: 106},
      {“type”: “lastweek”, “hour”: 0, “value”: 58},
      {“type”: “lastmonth”, “hour”: 0, “value”: 52},
      {“type”: “alltime”, “hour”: 0, “value”: 51.1489},
      {“type”: “yesterday”, “hour”: 1, “value”: 20},
      {“type”: “lastweek”, “hour”: 1, “value”: 33.571},
      ...
}
</pre>
{|
| STYLE="vertical-align:top;"|
{| border="0" cellpadding="5" cellspacing="0" width="400px"
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"| <blockquote>'''Figure 6.''' Sample JSON document representing a fragment of the real-time
information for the KPI “activity” in the ''realtime'' collection</blockquote>
|-
|}
|}
 
==Analytics Engine==
The Analytics Engine is responsible for performing an intelligent analysis of the data to compute daily prediction, firing alerts when an undesired condition is detected (e.g., a certain metric falls under a specified threshold) and suggesting recommendations. This section describes these processes.
 
===Prediction system===
The prediction system takes the data contained in the events collection along with contextual data (weather, holidays, or labor dates, etc.) and predicts the estimated value for each KPI for every hour in the next day. This batch process is executed daily. The predicted values are stored in a document per each KPI, in the ''predictions'' collection in MongoDB. A sample document is shown in Figure 7.
 
<pre>{
      “_id”: ObjectId(“5683f978e4b0d671e427e1db”),
      “center”: “Aravaca”,
      “name”: “wait_time.total”,
      “date”: “1/10/15”,
      “predictions”: {
      “0”: 5637,
      “1”: 28557,
      “2”: 15711,
      “3”: 4133,
      ...
}
</pre>
{|
| STYLE="vertical-align:top;"|
{| border="0" cellpadding="5" cellspacing="0" width="400px"
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"| <blockquote>'''Figure 7.''' Sample JSON document representing a fragment of the predictions for
the “wait time” KPI in the ''predictions'' collection</blockquote>
|-
|}
|}
 
The prediction algorithm analyzes behavioral patterns in the events data and applies these patterns to simulate future behavior. The algorithm proceeds as follows for each KPI:
 
Given ''N'' clusters, the algorithm computes a matrix ''M'' where each row is a cluster and each column is an hour, thus resulting in an ''Nx''24 matrix. The value in the position ''M<sub>i,j</sub>'' contains the average value of the KPI for events happening in the cluster ''i'' and in the ''j''<sup>th</sup> hour of the day:
 
[[File:Math1 BaldominosIntJOfIMAI2018 4-7.png|230px]]
 
Also, vector ''DA'' will contain the hourly averages from the previous day:
 
''DA'' = (''DA''<sub>0</sub>, ''DA''<sub>1</sub>, ... ''DA''<sub>23</sub>)
 
Then a vector of weights ''w'' = (''w''<sub>1</sub>, ... ''w''<sub>N</sub>) is computed, where each element is obtained as given in (1):
 
[[File:Math2 BaldominosIntJOfIMAI2018 4-7.png|276px]] (1)
 
Every day at 12 a.m. the vector containing the estimation for the following day (''DE'') is computed as in (2):
 
[[File:Math3 BaldominosIntJOfIMAI2018 4-7.png|332px]] (2)
 
As the day goes by, we will be discovering information of the current day's vector (''DP''):
 
''DP'' = (''DP''<sub>0</sub>, ''DP''<sub>1</sub>, ... )
 
At 8 a.m. and 4 p.m., we will re-estimate the DE vector as in (3):
 
[[File:Math4 BaldominosIntJOfIMAI2018 4-7.png|304px]] (3)
 
In the previous equation, ''A'' will be 0 at 8 a.m. and 8 at 4 p.m., while ''B'' will be 7 at 8 a.m. and 15 at 4 p.m.
 
The ''N'' clusters are determined based on contextual information, such as whether the day was a weekday, it was rainy, it was extremely hot (over 35 ºC), or it was an important day because of some other reason.
 
===Alert system===
The Analytics Engine is able to provide two kinds of alerts: real-time or early alerts. The former alerts are thrown as the data is stored in real time. To check whether an alert is to be fired, a KPI's average value over the last hour is compared with its average historic value. An anomaly is considered when the current average value falls above or below a threshold determined by the historic average plus/minus its historic standard deviation, and if the anomaly occurs, then the alert is fired. The four metrics or KPIs considered for real-time alerts are the average number of events, the average waiting time, the average time required by the healthcare personnel, and the average time required by other processes (neither waiting time or time required by healthcare personnel).
 
The latter kind of alerts are computed hourly over the forecast provided by the prediction system, and these are thrown when the predictions estimate that certain KPIs will fall above or below the specified thresholds with high probability.
 
Once an alert is fired, a document (see Figure 8) is stored in the alerts collection so that the alert information can be shown in the dashboard.
 
<pre>{
      “_id”: ObjectId(“5697b55d0b1d4cf6f9b59a63”),
      “center_name”: “Vistalegre”,
      “date”: ISODate(“2016-01-14T15:00:00.000Z”),
      “type”: “activity.types.EV HABA”,
      “status”: “unseen”,
      “group”: “anticipated”,
      “description”: “WARNING: It has been detected
        a decrease in the activity of the type EV HABA
        between 15:00 and 16:00 (14/01/16), falling below
        the acceptable threshold.”,
      “shift”: “noon”,
      “subject”: “Early alert: activity of type EV HABA”
}
</pre>
{|
| STYLE="vertical-align:top;"|
{| border="0" cellpadding="5" cellspacing="0" width="400px"
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"| <blockquote>'''Figure 8.''' Sample JSON document representing an alert in the ''alerts'' collection</blockquote>
|-
|}
|}
 
===Recommendations system===
The recommendation system consists of a set of rules closely related to the alerts, whose purpose is to optimize the service when some KPI can be improved. Some of these KPIs are the number of events, the waiting time, the satisfaction levels, etc.
 
The recommendation process runs weekly, as we have identified that it is the least amount of time required to find evidence of metrics that can be improved.
 
The rule database comprises 52 rules which have been designed by experts based on their domain knowledge. Besides the metrics themselves, some rules can also be based on contextual information such as weather. Also, if the system keeps firing the same alarm over time, the recommendation can be stated in more serious terms.
 
An example of a rule stated in natural language is as follows:
 
<blockquote>If the current number of events is higher than the average number of events of the previous month plus half the standard deviation, and this excess has happened more than three times in the last month, then the recommendation is: “The activity is much higher than expected. At this moment, the center does not have enough healthcare personnel to attend all these events. It is urgent that the cause of the activity rise be identified or new personnel should be hired.”</blockquote>
 
When a recommendation is created, it gets stored in the ''recommendations'' collection, in a document formatted as shown in Figure 9. These documents will be processed and displayed by the dashboard.
 
<pre>{
“_id”: ObjectId(“56962a560b1d4cf6f9b5911e”),
“center_name”: “Aravaca”,
“date”: ISODate(“2016-01-14T00:00:00.000Z”),
“status”: “unseen”,
“group”: “anticipated”,
“text”: “The activity is within the expected limits.
      No modification of the service is required.”,
“status”: “unseen”,
“subject”: “Recommendation about activity”
}
</pre>
{|
| STYLE="vertical-align:top;"|
{| border="0" cellpadding="5" cellspacing="0" width="400px"
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"| <blockquote>'''Figure 9.''' Sample JSON document representing a recommendation in the
''recommendations'' collection</blockquote>
|-
|}
|}
 
==Visual Analytics==
The Visual Analytics engine allows visualization to easily see and understand the data gathered, processed and analyzed by the system. This engine provides six different dashboards, which are described in this section.
 
===Home===
The home dashboard displays tables with some basic information about the current status compared with historic values. For instance, we can see the value of each KPI today, compared with its value the previous day and the historic average.
 
===Real-time===
The real-time dashboard plots the evolution of the chosen KPI along the day, as shown in Figure 10 (in this case, the chosen KPI was “waiting time”).
 
 
[[File:Fig10 BaldominosIntJOfIMAI2018 4-7.png|900px]]
{{clear}}
{|
| STYLE="vertical-align:top;"|
{| border="0" cellpadding="5" cellspacing="0" width="900px"
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"| <blockquote>'''Figure 10.''' Real-time dashboard displaying the average waiting times. The orange time series over the light blue background shows the predicted value for the rest of the day. Blue dots show real-time alerts, while red dots show early alerts. Different time series are shown so that current and historic values can be compared.</blockquote>
|-
|}
|}
 
The orange line is the value for today, while other colors refer to historic values (green: yesterday, purple: last week, yellow: last month and blue: historic average). The light-blue section refers to the part of the day that belongs to the future, and thus the orange line in there is the forecast provided by the prediction system. Two dashed gray lines show the computed thresholds which determine the expected values for the KPI, and values outside that threshold are either shown with blue dots (real-time alerts) or big red dots (early alerts).
 
In this dashboard, not only the KPI can be chosen but also different filters can be applied: center, shift, type of event, etc.
 
===Alerts===
The alerts dashboard lists the alerts provided by the system, both real-time and early alerts. Also, information about the alerts can be obtained by clicking in the dots in the real-time dashboard.
 
===History===
The history dashboard shows the historic time series for the chosen KPI. Unlike the real-time dashboard, the history dashboard shows the evolution of the time series within a specified range of time. This dashboard is shown in Figure 11, which shows the evolution of the number of events during two months in the past.
 
[[File:Fig11 BaldominosIntJOfIMAI2018 4-7.png|900px]]
{{clear}}
{|
| STYLE="vertical-align:top;"|
{| border="0" cellpadding="5" cellspacing="0" width="900px"
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"| <blockquote>'''Figure 11.'''  History dashboard showing the evolution in the activity (number of events) during two months in the past</blockquote>
|-
|}
|}
 
===Recommendations===
Similar to the alerts dashboard, the recommendations panel lists the recommendations provided by the system, and the user can click on one of them to read further information about it.
 
===Surveys===
If the center has gathered information from satisfaction surveys, a summary of the results of these surveys is shown in this dashboard. It also shows the trend (whether positive or negative) using a color code so that users can easily identified whether patient perception has improved regarding a certain KPI.
 
==Evaluation==
The system has been evaluated at the residential center of Aravaca (Madrid, Spain), gathering a total of 7,473 events. The KPIs that have been identified as essential are the number of hourly events (avg.: 15.37), the average waiting time (351.15 secs), the average time required by the healthcare personnel (35.47 secs), the average time required by other processes (315.68 secs), the daily number of remote cancellations (avg.: 46.36), and the average number of available nurses (6.79).
 
During the pilot, we observed that the average waiting time during the night was much smaller (184.54 secs) than in other shifts, and most of the events took place in the evening shift (16.14 vs. 7.76 in the morning and 8.19 at night). Also, we conclude that there is a positive correlation between the number of events and the waiting time.
 
Regarding the floor number, we have seen that lower floors have more events and higher waiting times; further, the trend shows that as the floor number grows (from 1 to 4), the activity decreases.
 
The time frame between 8 p.m. and 1 a.m. is the busiest, showing that more personnel is required to attend the center's demand.
 
Additionally, we have considered satisfaction surveys as an additional validation mechanism. To ensure that the quality metrics match the surveys’ results, we have computed the Pearson R2 correlation between the satisfaction levels and the number of events and waiting times (see Table 1). As we expected, in almost every case, there is a strong inverse correlation, showing that more activity higher waiting times lead to less satisfied patients.
 
{|
| STYLE="vertical-align:top;"|
{| class="wikitable" border="1" cellpadding="5" cellspacing="0" width="70%"
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;" colspan="4"|'''Table 1.''' Pearson R<sup>2</sup> correlation coefficient over waiting time or activity with patients' satisfaction, grouped by shift and floor
|-
  ! style="background-color:#dddddd; padding-left:10px; padding-right:10px;"|Shift
  ! style="background-color:#dddddd; padding-left:10px; padding-right:10px;"|Floor
  ! style="background-color:#dddddd; padding-left:10px; padding-right:10px;"|R<sup>2</sup> (Waiting Time)
  ! style="background-color:#dddddd; padding-left:10px; padding-right:10px;"|R<sup>2</sup> (Activity)
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;" rowspan="4"|Morning
  | style="background-color:white; padding-left:10px; padding-right:10px;"|1
  | style="background-color:white; padding-left:10px; padding-right:10px;"|-0.791
  | style="background-color:white; padding-left:10px; padding-right:10px;"|-0.320
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"|2
  | style="background-color:white; padding-left:10px; padding-right:10px;"|-0.574
  | style="background-color:white; padding-left:10px; padding-right:10px;"|0.176
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"|3
  | style="background-color:white; padding-left:10px; padding-right:10px;"|0.058
  | style="background-color:white; padding-left:10px; padding-right:10px;"|-0.767
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"|4
  | style="background-color:white; padding-left:10px; padding-right:10px;"|-0.456
  | style="background-color:white; padding-left:10px; padding-right:10px;"|0.147
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;" rowspan="4"|Evening
  | style="background-color:white; padding-left:10px; padding-right:10px;"|1
  | style="background-color:white; padding-left:10px; padding-right:10px;"|-0.631
  | style="background-color:white; padding-left:10px; padding-right:10px;"|-0.174
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"|2
  | style="background-color:white; padding-left:10px; padding-right:10px;"|-0.611
  | style="background-color:white; padding-left:10px; padding-right:10px;"|-0.754
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"|3
  | style="background-color:white; padding-left:10px; padding-right:10px;"|-0.720
  | style="background-color:white; padding-left:10px; padding-right:10px;"|0.070
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"|4
  | style="background-color:white; padding-left:10px; padding-right:10px;"|-0.928
  | style="background-color:white; padding-left:10px; padding-right:10px;"|-0.404
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;" rowspan="4"|Night
  | style="background-color:white; padding-left:10px; padding-right:10px;"|1
  | style="background-color:white; padding-left:10px; padding-right:10px;"|-0.733
  | style="background-color:white; padding-left:10px; padding-right:10px;"|-0.524
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"|2
  | style="background-color:white; padding-left:10px; padding-right:10px;"|-0.910
  | style="background-color:white; padding-left:10px; padding-right:10px;"|-0.163
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"|3
  | style="background-color:white; padding-left:10px; padding-right:10px;"|-0.841
  | style="background-color:white; padding-left:10px; padding-right:10px;"|-0.266
|-
  | style="background-color:white; padding-left:10px; padding-right:10px;"|4
  | style="background-color:white; padding-left:10px; padding-right:10px;"|0.032
  | style="background-color:white; padding-left:10px; padding-right:10px;"|-0.539
|-
|}
|}
 
==Conclusions and future work==
In this paper we have presented DataCare, an intelligent and scalable healthcare management system. DataCare is able to retrieve data from AdvantCare through sensors which are installed in healthcare center rooms and from contextual information.
 
The Data Processing and Analysis modules are able to preprocess, process, and analyze data in a scalable fashion. The system processes are implemented over Apache Spark, and as such they are able to work with big data, and all data (including historic, real-time, and consolidated and aggregated values) are stored in MongoDB.
 
The Analytics Engine, which is part of the aforementioned module, implements a three-fold intelligent behavior. First, it provides a prediction system which is able to estimate the values of the KPIs for the rest of the day. This system runs as a daily batch process, and the forecast is updated twice, at 8 a.m. and at 4 p.m., to provide more accurate results. Second, it can provide both real-time alerts and early alerts, with the latter ones being fired when some future prediction of a KPI falls outside the expected boundaries. Third, a recommendation system is able to provide weekly recommendations to improve the overall center performance and metrics, thus impacting in a positive manner patient satisfaction. Recommendations are based on alerts and a pre-defined rules set consisting of 52 rules, which has been designed by experts.
 
For the users to be able to see and understand the valuable information provided by DataCare, the Visual Analytics module provides six different dashboards which displays a summary of the current status, real-time KPIs along with predictions and expected thresholds, historic values, alerts, recommendations, and patients’ surveys results.
 
DataCare has been implemented and tested in a real pilot in the residential center of Aravaca (Madrid, Spain). To validate the software, patients’ satisfaction and KPI correlation were explored, obtaining the expected results. The software also led to some interesting conclusions regarding how KPIs vary depending on the context, such as the shift or the floor.
 
After the pilot, we worked to identify some improvements, which are left for future work. First, healthcare personnel attending patients are not identified by the system, even though the sensors used allow this identification with the use of RFID tags. By identifying personnel, the center could trace the efficiency of each employee individually. Also, information about planned tours is very limited as it only observes the visited rooms and the visit times, but no other metrics.
 
So far, DataCare polls the AdvantCare API REST to retrieve data, but in the near future we will update the platform so that the communication is asynchronous.
 
To evaluate the prediction system, we also propose to develop a self-monitoring system which evaluates the deviation between the predicted and the real series, firing an alert if this deviation goes above a threshold, as it would mean that the prediction system is failing to accurately forecast the KPI.
 
==Acknowledgements==
Special acknowledgements to WildBit Studios for the development and pilots of DataCare. This project is partially funded by the Spanish Ministry of Industry, Energy and Tourism in the “Economy and Digital Society Strategic Action” program, under reference number TSI100105-2014-62.


==References==
==References==
{{Reflist|colwidth=30em}}
{{Reflist|colwidth=30em}}
==Notes==
This presentation is faithful to the original, with only a few minor changes to presentation. Grammar has been updated for clarity. In some cases important information was missing from the references, and that information was added. The original article lists references alphabetically, but this version — by design — lists them in order of appearance.
<!--Place all category tags here-->
[[Category:LIMSwiki journal articles (added in 2018)‎]]
[[Category:LIMSwiki journal articles (all)‎]]
[[Category:LIMSwiki journal articles on big data‎‎]]
[[Category:LIMSwiki journal articles on health informatics‎‎]]

Latest revision as of 18:50, 22 March 2023

Sandbox begins below

5. Taking the next step

Specification leading to Design Documents.jpg

In section 3.4 of this guide, we briefly discussed how a user requirements specification (URS) fits into the process of purchasing laboratory informatics solutions for your manufacturing-focused laboratory. The URS has been viewed as a means for the purchaser to ensure their needs are satisfied by the functionality of the software. Traditionally, this has turned into a "wish list" for the purchaser, which while somewhat practical still lacks in its finesse. One common problem with this wishlist approach is the risk of "requirements creep," where more functionality than is truly necessary is desired, inevitably leading to a state where no vendor can meet all the wishlisted requirements. This makes selecting a solution even more difficult, particularly without significant prioritization skills.[1][2][3]

Noting the potential problems with this wishlist approach, LIMSpec—a specification document for laboratory informatics solutions—took a new approach and turned to standards and regulations that drive laboratories of all types, as well as the data they manage. LIMSpec was rebuilt based on ASTM E1578-18 Standard Guide for Laboratory Informatics, as well as dozens of other standards and regulations, while still leaving room for a software buyer to add their own custom requirements for their industry or lab.

The rest of this chapter examines the research, documentation, and acquisition process that manufacturing labs needing laboratory informatics solutions will want to go through, with an emphasis on the utility of a sound requirements specification. While LIMSpec is offered as a solid starting point, you don't strictly need to use LIMSpec to conduct this process; the information in this chapter can largely be applied with or without LIMSpec itself.


5.1 Conduct initial research into a specification document tailored to your lab's needs

A specification is "a detailed precise presentation of something or of a plan or proposal for something."[4] This concept of a specification as a presentation is critical to the laboratory seeking to find laboratory informatics software that fulfills their needs; they "present" their use case with the help of a requirements specification, and the vendor "presents" their ability (or inability) to comply through documentation and demonstration (more on that later). However, even the most seasoned of presenters at conferences and the like still require quality preparation before the presentation. This is where initial specification research comes into play for the lab.

Your lab's requirements specification document will eventually be a critical component for effectively selecting a laboratory informatics solution. There are numerous ways to approach the overall development of such a document. But why re-invent the wheel when others have already gone down that road? Sure, you could search for examples of such documents on the internet and customize them to your needs, or you and your team could brainstorm how a laboratory informatics solution should help your lab accomplish its goals. LIMSpec makes for one of the more thorough starting points to use, though you could also use other structured documents that have been developed by others. For the purposes of this guide, we'll look at LIMSpec.

The version of LIMSpec included in Appendix 1 of this guide is a slightly tweaked version of the original LIMSpec 2022 document, omitting a few of the specialty laboratory functions that aren't applicable to manufacturing laboratories. You'll note that it's divided into five distinct sections, with numerous subsections in each:

  • Primary Laboratory Workflow
    • 1. Sample and experiment registration
    • 2. Sample management
    • 3. Core laboratory testing and experiments
    • 4. Results review and verification
    • 5. Sample, experiment, and study approval and verification
    • 6. Reporting
  • Maintaining Laboratory Workflow and Operations
    • 7. Document and records management
    • 8. Resource management
    • 9. Compliance management
    • 10. Instrument and equipment management
    • 11. Batch and lot management
    • 12. Scheduled event management
    • 13. Instrument data capture and control
    • 14. Standard and reagent management
    • 15. Inventory management
    • 16. Investigation and quality management
  • Specialty Laboratory Functions (minus non-relevant industries)
    • 17. Production management
    • 18. Statistical trending and control charts
    • 19. Agriculture and food data management
    • 24. Scientific data management
  • Technology and Performance Improvements
    • 26. Instrument data systems functions
    • 27. Systems integration
    • 28. Laboratory scheduling and capacity planning
    • 29. Lean laboratory and continuous improvement
    • 30. Artificial intelligence and smart systems
  • Security and Integrity of Systems and Operations
    • 31. Data integrity
    • 32. Configuration management
    • 33. System validation and commission
    • 34. System administration
    • 35. Cybersecurity
    • 36. Information privacy

These sections and subsections should be able to address most any requirement you have for your system. Of course, if something isn't covered by LIMSpec, you can always add additional requirements.

During the initial research towards your URS, you won't have to include every requirement for when you approach potential vendors. Most vendors appreciate a more inviting approach that doesn't overwhelm, at least initially. You will want to go with a limited yet practical set of requirements carefully chosen because they matter to you and your laboratory the most. In fact, you'll want to wait until after participating in several software demonstrations before even considering your URS to be complete. (More on that in 5.3.1.) This naturally leads us to a discussion about the RFI process.


5.2 Issue some of the specification as part of a request for information (RFI)

In some cases—particularly if your organization is of significant size—it may make sense to issue a formal RFI or request for proposal (RFP) and have laboratory informatics vendors approach your lab with how they can meet its needs. The RFI and RFP are traditional means towards soliciting bidding interest in an organization's project, containing the organization's specific requirements and vital questions that the bidder should be able to effectively answer. However, even if your organization chooses to skip the RFI or RFP process and do most of the investigative work of researching and approaching informatics vendors, turning to a key set of questions typically found in an RFI is extremely valuable towards your fact finding.

An RFI is an ideal means for learning more about a potential solution and how it can solve your problems, or for when you're not even sure how to solve your problem yet. However, the RFI should not be unduly long and tedious to complete for prospective vendors; it should be concise, direct, and honest. This means not only presenting a clear and humble vision of your own organization and its goals, but also asking just the right amount of questions to allow potential vendors to demonstrate their expertise and provide a clearer picture of who they are. Some take a technical approach to an RFI, using dense language and complicated spreadsheets for fact finding. However, as previously noted, you will want to limit the specified requirements in your RFI to those carefully chosen because they matter to you and your lab the most.[5]

Remember, an RFI is not meant to answer all of your questions. The RFI is meant as a means to help narrow down your search to a few quality candidates while learning more about each other.[5] Once the pool of potential software vendors is narrowed down, and you then participate in their demonstrations, you then can broadly add more requirements to the original collection of critical requirements from the RFI to ensure those providers meet all or most of your needs. That said, be cognizant that there may be no vendor that can meet each and every need of your lab. Your lab will have to make important decisions about which requirements are non-negotiable and which are more flexible. The vendors you engage with may be able to provide realistic advice in this regard, based upon your lab's requirements and their past experience with labs. As such, those vendors with real-world experience meeting the needs of manufacturing laboratories may have a strong leg up on other vendors.

Again, Appendix 1 of this guide includes a comprehensive specifications document called LIMSpec, from which you can draw the requirements that are most critical to be addressed in an RFI. If you have zero experience developing an RFI, you may want to first seek out various example RFIs on the internet, as well as some basic advice articles on the topic. Some websites may provide templates to examine for further details. Broadly speaking, if you're conducting a full RFI or RFP, you're going to lead with the standard components of an RFI or RFP, including:

  • a table of contents;
  • an honest introduction and overview of your organization, its goals and problems, and the services sought to solve them;
  • details on how the RFI or RFP evaluation process will be conducted;
  • basis for award (if an RFP);
  • the calendar schedule (including times) for related events;
  • how to submit the document and any related questions about it, including response format; and
  • your organization's background, business requirements, and current technical environment.

Being honest about your organization, its informatics requirements, and its current technical environment upfront in the RFI or RFP will also ensure that the time spent on the process is optimized for all involved parties. Before submitting any RFI, your lab will want to conduct thorough internal research ensuring everyone understands what the current technology and processes are, and how you all want to shape that with the introduction or updating of laboratory informatics systems. (If your lab has limited to no experience with adding automation and informatics elements to a laboratory, you may want to read through laboratory informatics veteran Joe Liscouski's The Application of Informatics to Scientific Work: Laboratory Informatics for Newbies for further insight.) You'll also want to answer critical questions such as "who will be responsible for maintaining the solution and its security?" and "how will our processes and procedures change with the introduction or updating of informatics systems?". These and other questions make up your business considerations, which should also address the:

  • acquisition and long-term maintenance budget;
  • diversity of laboratory services offered now and into the future;
  • level of in-house knowledge and experience with informatics systems and automation;
  • level of in-house, executive buy-in of informatics adoption; and
  • need for additional vendor pre-planning.

One other note: make it clear in any issued RFI that it's strictly a request for information and not a guarantee to issue a contract with any respondent.


5.3 Respond to or open dialogue with vendors

If you went the route of the RFI, you hopefully received more than a few well-crafted responses. Your RFI presumably included a small but critical set of requirements that needed to be addressed, and the vendors who responded dutifully addressed those critical requirements. Even if you didn't send out an RFI, you at least did your own research about some of the big players in the laboratory informatics space, and you may have even opened an initial dialogue with a few of them. If all has gone well, you're now at the point where you've narrowed down the pool of vendors but still have a basket of them to continue dialogue with. (If you're not comfortably at this point after an RFI or engagements with multiple vendors, you may need to either reconsider the effectiveness of your RFI or engagements or enlist help from a knowledgeable and experienced consultant to help steer you back on-course.)

As dialogue continues with vendors, you'll have several points to address:

1. What do I want their laboratory information management system (LIMS) to do for me?

2. How does their solution fit into our previously discussed budget?

Regarding question one, you've already laid some of the groundwork for that with the help of your handful of critical requirements (and the associated research that went into developing them). Outside of those critical requirements, a laboratory informatics solution should also provide clearly definable benefits to how you operate your manufacturing laboratory. These expected benefits should tie in with your overall business mission and goals. Using a LIMS as an example, here are a few of the benefits a well-developed LIMS can provide to practically any laboratory. Whenever you go through the discovery process with a vendor, you'll be asking how their system provides these and other benefits through its functionality. A quality LIMS can provide[6][7]:

  • increased accuracy: the minimization or elimination of transcription and other errors;
  • streamlined processes: ensuring each process step in a protocol/method is completed in the proper order, with all requirements met, updating sample statuses automatically;
  • automation: integration with instruments, allowing for automatic uploading of samples and returning of results;
  • regulatory and standards compliance: functionality that aids with compliance, including reporting results to state and local authorities;
  • data security: role-based, configurable, secure access to data, processes, reporting, etc.;
  • flexible reporting: reporting tools that allows for the design and generation of certificates of authority and other reports to lab- and regulation-based specs;
  • instant data retrieval: query tools for finding data instantly according to any criteria (date range, test, product type, etc.); and
  • configurability and cost-effectiveness: a user-configurable system (as opposed to hard-coded, requiring development for any modifications) that is flexible enough to adapt to rapid changes in test volume and type over time, without breaking the bank.

As for the second question, budgeting is always a tricky topic, both internally and when discussing it with vendors. We already mentioned in the previous section that addressing the acquisition and long-term maintenance budget of your solution(s) must be addressed as part of your lab's business considerations. (And we already mentioned some cost considerations in 3.1.6; this discussion will add a few more points.) The fact that laboratory informatics systems like the LIMS come in all kinds of price ranges makes it difficult to judge if a given system, as priced, is appropriate for your lab and its budget. There are some basic cost realities associated with LIMS acquisition[8][9], which will help you understand where the vendor price comes from, and how it figures into your lab's budget (though some of these concepts may also apply to other informatics systems).

1. Vendor pricing is generally based on how many will be using the system. This can be measured in concurrent users (how many will be using the system at any one time) or named users (the number of total users who will ever use the system, by name). Additionally, laboratory informatics vendors increasingly offer the option of a cloud-hosted subscription, which of course has the advantage of not requiring your own IT department, and allowing labs to defray cost over time, with little or no actual license fee. Think about your usage strategy and choose the pricing format that makes the most sense for you.
2. Most costs are related to the work involved with installing, configuring, and migrating data to the system. Try to choose a solution that has what you need out of the box, as much as possible. The more customized or unique options you ask for up-front, the more it tends to cost, as extra items are a function of the time it takes developers to add them.
3. "User-configurable" beats "vendor-configurable" on cost-effectiveness. Some vendors offer a free or low-cost option, but don't be fooled. They are in business to make money, and they are counting on the fact that you'll need to pay them to make things work, add necessary functionality, and provide support and training. If you can find a vendor who offers a genuinely user-configurable system, and whose manuals and other support materials are clearly helpful and available so that you can adjust things the way you want, when you want, then that will go a long way toward budget efficiency and longevity.
4. Additional interfaces and reporting requirements cost money. If necessary, consider phasing in any additional instrument and software interfaces over time, as revenue eases cash flow. You can go live with your system operations more quickly, entering results manually until you can afford to interface your instruments one-by-one. This goes for reports as well; a simple reporting module that meets regulatory requirements will do. You can make your reports and other exportable documents more attractive later.

Ideally, your budget has room for roughly $40- to $80,000 minimum (including setup, training, interfaces, etc.) for a quality, full-featured professional LIMS or LIS, with $300 to $900 per month (depending on number of users) for ongoing subscriptions. At around five concurrent users, the economics start to favor purchasing perpetual licenses rather than paying for a subscription. Purchased licenses will also entail ongoing annual or monthly costs as well (e.g., maintenance, support, warranty for updates etc.) Subscriptions (if available) are generally aimed at smaller labs. If you will be growing and scaling up, it may be a great way to get started, but make sure you have the option to switch to perpetual licenses later.

With much of this information in hand, you're likely ready to move on to finalizing the requirements specification and choosing a vendor, but not before you've sat through a few highly useful demonstrations.

5.3.1 The value of demonstrations

ForUM demo (2659615090).jpg

A demonstration of laboratory informatics solution is an integral part of making your final decisions. The demo offers a unique and valuable opportunity to see in-person how data and information is added, edited, deleted, tracked, and protected within the context of the application; you can ask about how a function works and see it right then and there. Equally, it is an excellent time to compare notes with the vendor, particularly in regard to the critical requirement that were addressed in your RFI (or through direct communication with the vendor). You can ask the vendor in real-time to answer questions about how a specific task is achieved, and the vendor can ask you about your lab's system and workflow requirements and how you best envision them being implemented in the system (e.g., does this interface seem intuitive?).

A demonstration is typically performed online, which is useful for a couple of reasons, COVID-19 notwithstanding. First, it means you can schedule and reschedule at your convenience, with little in the way of logistics to arrange. Second, the demonstration session is likely to be recorded (verify this), so everyone is clear on what was promised and what wasn't, how processes were shown to work, etc. Additionally, you can later review parts you may have missed, forgotten, or not quite understood, and you can share it with others, who then also get a look at the proposed system in action.

Be careful about falling for the temptation of presenting a full URS or other specification document to the vendor during the demonstration. You'll want to wait until after participating in several software demonstrations to consider presenting your full specification document to the vendor, and that's assuming that you've grown enamored with their solution. By waiting to finalize your lab's requirements specification until after the demos, a common error is avoided: too often labs think the first thing they must do is create a requirements list, then sit back and let the informatics vendors tell them how they meet it. Remember that even though most labs thoroughly understand their processes, they likely don't have as strong a grasp on the informatics portion of their processes and workflows. Participating in a demo before finalizing your list of specified requirements—or having only a minimal yet flexible requirements list during the demo—is a great way to later crosscheck the software features you have seen demonstrated to your lab's processes and any initial requirements specification you've made.[10] After all, how can you effectively require specific manufacturing-related functions of your laboratory informatics software if you don't fully know what such an industry-specific system is capable of? After the demonstrations, you may end up adding several requirements to your final specifications document, which you later pass on to your potential vendors of choice for final confirmation.


5.4 Finalize the requirements specification and choose a vendor

Now that the demonstrations have been conducted and more questions asked, you should be close to finalizing your requirement specifications with one ore more vendors. In fact, you may have taken LIMSpec, chosen a few critical requirements from it, added them to a few unique requirements of your own, and included them as part of an RFI or question and answer session with vendors. You then likely took those responses and added them to your wider overall specification (e.g., LIMSpec), along with your own notes and observations from interacting with the vendor. This may have been repeated for several vendors and their offerings.

At this point, you're likely ready to either have those vendors complete the rest of the responses for their corresponding URS, or you may even be ready to narrow down your vendor selection. This all likely depends on what the initial fact finding revealed. How well did the vendors respond to your laboratory's unique set of needs? Were there critical areas that one vendor could address with their off-the-shelf solution but another vendor would have to address with custom coding? Did any of the vendors meet your budget expectations? Have you followed up on any references and customer experiences the vendors provided to you?

It may be that several vendors are appealing at this point, meaning it's time to have them respond to the rest of the URS. This makes not only for good due diligence, to better ensure most requirements can be met, but also a reviewable option for any "tie-breaker" you have between vendors. In reality, this tie-breaker scenario would rarely come up; more often, some other aspect of the software, company, or pricing will be a stronger limiter. However, you still want to get all those vendor responses, even if you've early on filtered your options down to one vendor.

Ultimately, your specification document may look similar to the LIMSpec, or it may have a slightly different format. Many prospective buyers will develop a requirement specification in Microsoft Excel, but that has a few minor disadvantages. Regardless of format, you'll want to give plenty of space for vendors to submit a response to each requirement. For your convenience, a Microsoft Word version of Appendix 1's LIMSpec for manufacturing labs is also included as part of this guide (see A8. LIMSpec in Microsoft Word format). That document is editable, giving end users and vendors the flexibility to remove information and enlarge columns.

Additionally, remember that often is the case that after the URS is completed and final questions asked, no single vendor can meet all your needs. Be ready for this possibility, whether it be a functionality requirement or a budget issue. Know ahead of time where your laboratory is willing to be flexible, and how much flex you have. After all of your lab's preparation, and with a little luck, you've found a vendor that fits the bill, even if a few minor compromises had to be made along the way.

References

  1. Aasem, M.; Ramzan, M.; Jaffar, A. (2010). "Analysis and optimization of software requirements prioritization techniques". Proceedings from the 2010 International Conference on Information and Emerging Technologies: 1–6. doi:10.1109/ICIET.2010.5625687. 
  2. Hirsch, J. (22 November 2013). "10 Steps To Successful Requirements Gathering". Phase2 Technology, LLC. https://www.phase2technology.com/blog/successful-requirements-gathering. Retrieved 07 December 2022. 
  3. Burris, E. (2007). "Requirements Specification". CS451R, University of Missouri–Kansas City. University of Missouri–Kansas City. Archived from the original on 25 September 2019. https://web.archive.org/web/20190925003040/http://sce2.umkc.edu/BIT/burrise/pl/requirements/. Retrieved 07 December 2022. 
  4. "specification". Merriam-Webster. Merriam-Webster, Inc. https://www.merriam-webster.com/dictionary/specification. Retrieved 07 December 2022. 
  5. 5.0 5.1 Holmes, T.. "It's a Match: How to Run a Good RFI, RFP, or RFQ and Find the Right Partner". AllCloud Blog. https://allcloud.io/blog/its-a-match-how-to-run-a-good-rfi-rfp-or-rfq-and-find-the-right-partner/. Retrieved 07 December 2022. 
  6. McLelland, A. (1998). "What is a LIMS - a laboratory toy, or a critical IT component?" (PDF). Royal Society of Chemistry. p. 1. Archived from the original on 04 October 2013. https://web.archive.org/web/20131004232754/http://www.rsc.org/pdf/andiv/tech.pdf. Retrieved 07 December 2022. 
  7. Joyce, J.R. (2010). "Industry Insights: Examining the Risks, Benefits and Trade-offs of Today’s LIMS". Scientific Computing (January/February 2010): 15–23. 
  8. Rosenberg, H.J. (28 March 2017). "How Much Does a LIMS Cost? Licensing and Beyond". SlideShare. https://www.slideshare.net/CSolsInc/how-much-does-a-lims-cost-licensing-and-beyond-pittcon-2017-tech-talk. Retrieved 07 December 2022. 
  9. "Saving Costs with LIMS". CSols, Inc. 25 October 2018. https://www.csolsinc.com/blog/saving-costs-with-lims/. Retrieved 07 December 2022. 
  10. Hammer, S. (27 June 2019). "How to Get the Most Value from an ERP Software Demo". The Takeoff. https://www.striven.com/blog/erp-software-demo. Retrieved 07 December 2022.