The present disclosure relates generally to report generation, and more specifically, to automatic, prescriptive report generation based on metadata tags associated with received data.
Business intelligence reports are critical tools of an organization's reporting because they may provide critical context for operations and administration of the organization's functions. Business intelligence reports can be used to increase efficiency by identifying and understanding root causes of mistakes, delays, and misappropriation of resources in a supply chain or other business operation. Business intelligence reporting can be even more critical in certain industries, such as the pharmaceutical industry, where delays in distribution of strictly-regulated products with exacting expiration times can lead to significant financial losses.
In spite of the potential for large losses, business intelligence tools, which are used to identify and explain inefficiencies, currently lack a means for automatic, contextual reporting. Many facets of operations may be tracked and reported using accurate data trackers, but this data requires painstaking review and contextualization by human operators, notwithstanding that some of these data gathering and analysis processes could be automated. Accordingly, systems and methods for prescriptive reporting based on metadata triggers is needed.
The background description provided herein is for the purpose of generally presenting the context of the disclosure. Unless otherwise indicated herein, the materials described in this section are not prior art to the claims in this application and are not admitted to be prior art, or suggestions of the prior art, by inclusion in this section.
In one embodiment, a computing system comprises: a processor configured for executing one or more processes based on machine-readable instructions; and a memory storing one or more machine readable instructions, including a rules engine, that when executed by the processor cause the computing system to: receive incoming data related to one or more quality assurance business processes; analyze the incoming data to determine data meeting flagging criteria for flagging the incoming data as flagged data, wherein the data meeting flagging criteria indicates that additional context is necessary with respect to the flagged data the incoming data includes a number of quality assurance reports generated within a given period and the flagging criteria includes a threshold number of quality assurance reports generated within the given period such that the incoming data is flagged if the number of reports generated within the given period exceeds the threshold; and automatically generate a context report based on the flagged data, wherein the context report includes, at least, the flagged data and context data that indicates specific flagging criteria of the flagged data.
In another embodiment, a method of receiving descriptive data that describes raw report generation data based on information about the raw report generation data includes generating descriptive data related to one or more products or business processes related to patient information, patient treatment, pharmaceutical business processes, or pharmaceutical products; storing the descriptive data in one or more databases as raw report generation data for the generation of one or more reports related to patient information, patient treatment, pharmaceutical business processes, or pharmaceutical products; migrating the raw report generation data to a products database for inclusion in a current report related to patient information, patient treatment, pharmaceutical business processes, or pharmaceutical products; generating one or more flag criteria for flagging raw report generation data; flagging raw report generation data that meets one or more of the flag criteria as flagged report generation data; requesting descriptive information from the one or more databases based on the flagged report generation data; and receiving descriptive information related to the flagged report generation data.
In yet another embodiment, a method of automatically generating one or more business intelligence reports includes migrating raw report generation data from one or more databases storing descriptive data to a products database for inclusion in a current report related to patient information, patient treatment, pharmaceutical business processes, or pharmaceutical products; generating one or more flag criteria for flagging raw report generation data; flagging raw report generation data that meets one or more of the flag criteria as flagged report generation data; requesting descriptive information from the one or more databases based on the flagged report generation data; receiving descriptive information related to the flagged report generation data; and compiling the received descriptive information related to the flagged report generation data into a report for presentation to a user in a form of a prescriptive report.
To the accomplishment of the foregoing and related ends, certain illustrative aspects are described herein in connection with the following description and the appended drawings. These aspects are indicative, however, of but a few of the various ways in which the principles of the claimed subject matter may be employed and the claimed subject matter is intended to include all such aspects and their equivalents. Other advantages and novel features may become apparent from the following detailed description when considered in conjunction with the drawings.
Embodiments of the disclosure will now be described, by way of example only, with reference to the accompanying drawings in which:
Automation of report generation or of aspects of reports could save an organization man hours, increasing organizational efficiency. However, generation of reports requires significant contextual understanding about how an organization functions. For example, a pharmaceutical company with multiple manufacturers generating scores of products in dozens of different countries may experience great difficulty reporting on all logistical delays and other production inefficiencies as differences in reporting criteria, workflow, reporting chains, and other business structures may result in significant confusion. However, companies may keep one or more central repositories of data associated with all logistical operations, providing access to all or nearly all operations data. With such global access, enlightening reports could be automatically drafted given the proper connections, or rules, connecting the information with the reporting thereof. Accordingly, systems and methods for prescriptive reporting based on metadata triggers may be required.
Referring to
The network 102 may be used to transmit data from the various data processing devices to the server (e.g., a computer of any appropriate configuration) in an appropriate manner. For instance, the data processing device(s) and the server may communicate over a local area computer network (LAN) or a public computer network (e.g., the Internet). In some embodiments, the network 102 may be a private LAN and may be separated from the public Internet by, for example, a firewall. The information associated with a context-based search may be transmitted from the server to one or more of the nodes in any appropriate manner. For instance, the server and a node (e.g., a personal computer; a desktop computer; a laptop computer; a “dumb” terminal) at any location connected to the network may communicate over a computer network, such as a public computer network (e.g., the Internet). A web application may be used to view search results as well.
The one or more processors 110 may communicatively couple with the one or more memory devices to perform one or more of the computer-based methods described herein. The DMS 108 may enable users to manage one or more types of files such as, for example, text-based files, charts, presentations, images, videos, sounds, and other types of files. In some embodiments, the files may include one or more portions of one or more Annual Product Quality Reviews (APQR). An APQR may be a document that fulfills an annual, regulatory requirement for pharmaceutical and life sciences companies. The regulatory requirement may be assigned by one or more external organizations, such as, for example, the United States Food and Drug Administration (FDA) or other organizations. It may be a regulatory requirement for some companies to submit APQRs for a given product line, for a business sector, for the business as a whole, and/or for one or more other purposes. The APQR may store information which may assist a pharmaceutical and/or life sciences company to revalidate its various processes, products, and other facets of its operation. The APQR of one year may be built on previous APQRs and tracking APQRs and their contents over multiple generations may help a company assess operational and administrative changes required in product specifications, manufacturing instructions, control procedures, and with other products and processes.
Referring to
Referring to
The QMS module 302 may be configured to connect to one or more nodes in the network to receive one or more reports or other data from the connected node and may allow users to access data from any of the other various nodes depending on permissions of the user. In some embodiments, the QMS module 302 may populate products data (e.g., data from the logistical operation 200) to the products database 304. In some embodiments, the relevant systems and/or databases for providing data may be automatically selected. The automatically selected databases may be selected based on one or more rules in the BI tool 306 and/or the rules engine 310. The QMS module 302 may include one or more caches or containers for storing corporate documents and other content. In embodiments, a content type may define how the content is stored in the QMS module 302 (e.g., with what metadata the content is stored). For example, business logic and methods, database structure, definitions (e.g., schema, field, table, etc.) and associated content of different content types may be stored in different manners. Business logic and the methods of the module may be configured to act based on particular content items having been stored in the database (e.g., in the case of a particular metadata). For example, content with a characterization of “corporate” or characterized as belonging to a particular department (e.g., quality review, testing, sales, corporate, etc.) may relate to users from the respective department and may be configured to apply rules to data based on a user's profile as being a member of a respective department.
The business intelligence tool 306 may be used to access the products databases 304 and may provide an interface for developers and others to generate reports, manage, and mine the data stored in the products database 304. For example, the products database 304 may be queriable using the business intelligence tool 306.
The products database 304 may store data tuned for expected access patterns based on access of the one or more users. The information on the products database 304 may be indexed, pre-aggregated, restricted access, allow ad-hoc reporting, etc. The products database 304 may be managed using a database management system (DMS) (not shown).
The business intelligence tool 306 may include one or more subtools or components used to analyze data and present information to business users (e.g., the users 104, the users 116, etc.) include a suite of technologies that can be built into a BI architecture—for example, ad hoc query, data mining and online analytical processing, or OLAP, software. In addition, the growing adoption of self-service BI tools enables business analysts and managers to run queries themselves instead of relying on the members of a BI team to do that for them. The BI software may also include data visualization tools that can be used to create graphical representations of data, in the form of charts, graphs and other types of visualizations designed to illustrate trends, patterns and outlier elements in data sets. The BI tool 306 may provide direct access to the products database to customers so that the customer can run their own custom analytics/reporting using the BI tool 306.
The rules engine 310 may administrate one or more report generation rules as described in greater detail herein. For example, the rules engine 310 may generate one or more reports regarding quality events. Quality events may include failures of a process and/or a product to meet specifications, protocols, timelines, customer expectations, or requirements. A quality event could include, for example, the expiration of one or more batches of a particular product, which expired before they were classified as “ready to ship” from a manufacturing or storage location. The prescriptive reporting may provide additional context regarding the cause of the quality event in order to better understand the quality event and/or its root causes. In some embodiments, the rules engine 310 may generate reports, report shells, charts, graphs, and other informational outputs based on inputs from the business intelligence tool 306 and the reports library 308. The rules engine 310 may store one or more rules for generating information outputs from the business intelligence tool inputs 306 in a rules database 312, which may be communicatively coupled to the rules engine 310. Portions of the rules database 312 may be stored locally and/or remotely with the other components of the system (e.g., in a cloud network, etc.)
The reports library 308 may be a collection of reports generated using the system 300 by, for example, the users of the system 300 or by the system itself through automatic report generation. The reports library 308 may store one or more report templates, report sections, report charts, graphs, and other information (e.g., figures, icons, etc.) for use in the creation of one or more subsequent reports or portions there. In some embodiments, the reports library may include one or more classified, private, or selectively accessible folders for containing classified or selectively-accessible information. Such selectively-accessible information may be accessible based on a user's permissions and access within the system. In some embodiments, portions of a report may include one or more links to other portions of a report that may link to one or more documents stored in the reports library 308. The reports library 308 may include metadata which may include information such as a list of authors and/or editors, a report description, data source, creation and/or edit date(s), indication of whether a report is complete, published, accessible, etc. and other metadata associated with a report. The reports library 308 or portions thereof may be made available along with a released product such that users can access the relevant portions of a report when they purchase or otherwise have access to a released product. Generated reports may automatically populate the reports library 308 and these reports can be configured to run on-demand or scheduled with their own set of parameters.
The report 314 may include one or more sections which are auto generated based on output of the rules engine 310 from the inputs of the BI tool 306 and the reports library 308. The report may be viewable in multiple formats (e.g., .doc, .pdf, .csv, .xcl, etc.) The report 314 may be viewable on multiple devices simultaneously and accessible depending on a user's access and identity (as determined by, for example, an identity and access module). The report 314 may be associated with one or more publish and/or export capabilities which may allow a user to publish and/or export a report to an external organization. Once a report 314 is generated it may be reviewed by an approver, for example, and may be saved along with metadata indicating it is an approved report, for example, in the reports library 308 for use as a shell or template or future reports.
Any suitable system infrastructure may be put into place to allow for the assessment of models monitoring devices.
The general discussion of this disclosure provides a brief, general description of a suitable computing environment in which the present disclosure may be implemented. In one embodiment, any of the disclosed systems, methods, and/or graphical user interfaces may be executed by or implemented by a computing system consistent with or similar to that depicted and/or explained in this disclosure. Although not required, aspects of the present disclosure are described in the context of computer-executable instructions, such as routines executed by a data processing device, e.g., a server computer, wireless device, and/or personal computer. Those skilled in the relevant art will appreciate that aspects of the present disclosure can be practiced with other communications, data processing, or computer system configurations, including: Internet appliances, hand-held devices (including personal digital assistants (“PDAs”)), wearable computers, all manner of cellular or mobile phones (including Voice over IP (“VoIP”) phones), dumb terminals, media players, gaming devices, virtual reality devices, multi-processor systems, microprocessor-based or programmable consumer electronics, set-top boxes, network PCs, mini-computers, mainframe computers, and the like. Indeed, the terms “computer,” “server,” and the like, are generally used interchangeably herein, and refer to any of the above devices and systems, as well as any data processor.
Aspects of the present disclosure may be embodied in a special purpose computer and/or data processor that is specifically programmed, configured, and/or constructed to perform one or more of the computer-executable instructions explained in detail herein. While aspects of the present disclosure, such as certain functions, are described as being performed exclusively on a single device, the present disclosure also may be practiced in distributed environments where functions or modules are shared among disparate processing devices, which are linked through a communications network, such as a Local Area Network (“LAN”), Wide Area Network (“WAN”), and/or the Internet. Similarly, techniques presented herein as involving multiple devices may be implemented in a single device. In a distributed computing environment, program modules may be located in both local and/or remote memory storage devices.
Aspects of the present disclosure may be stored and/or distributed on non-transitory computer-readable media, including magnetically or optically readable computer discs, hard-wired or preprogrammed chips (e.g., EEPROM semiconductor chips), nanotechnology memory, biological memory, or other data storage media. Alternatively, computer implemented instructions, data structures, screen displays, and other data under aspects of the present disclosure may be distributed over the Internet and/or over other networks (including wireless networks), on a propagated signal on a propagation medium (e.g., an electromagnetic wave(s), a sound wave, etc.) over a period of time, and/or they may be provided on any analog or digital network (packet switched, circuit switched, or other scheme).
Program aspects of the technology may be thought of as “products” or “articles of manufacture” typically in the form of executable code and/or associated data that is carried on or embodied in a type of machine-readable medium. “Storage” type media include any or all of the tangible memory of the computers, processors or the like, or associated modules thereof, such as various semiconductor memories, tape drives, disk drives and the like, which may provide non-transitory storage at any time for the software programming. All or portions of the software may at times be communicated through the Internet or various other telecommunication networks. Such communications, for example, may enable loading of the software from one computer or processor into another, for example, from a management server or host computer of the mobile communication network into the computer platform of a server and/or from a server to the mobile device. Thus, another type of media that may bear the software elements includes optical, electrical and electromagnetic waves, such as used across physical interfaces between local devices, through wired and optical landline networks and over various air-links. The physical elements that carry such waves, such as wired or wireless links, optical links, or the like, also may be considered as media bearing the software. As used herein, unless restricted to non-transitory, tangible “storage” media, terms such as computer or machine “readable medium” refer to any medium that participates in providing instructions to a processor for execution.
At step 702, a database may be populated with product-related data from an organization's operations. For example, a database may be populated with data from the logistics operation depicted in
At step 704, the product-related data may be provided to a business intelligence tool to generate product-related business intelligence (“BI”). The product-related BI may provide context regarding the circumstances surrounding the production and carrying to market (i.e., eventually reaching an end user) for the product. The BI tool may be integrated with the infrastructure of the logistics operation, for example, and may automatically connect with one or more data sources (e.g., data warehouses and databases (e.g., snowflake, Amazon Redship, Google BigQuery, etc.) and one or more data source managers to provide well organized and well presented data. The BI tool may receive the product-related data directly from the products database and my format the product-related data for presentation and/or provision to a rules engine for further processing. The BI tool(s) may be application software that may collect, collate, process, and distribute amounts of data (structured and/or unstructured) from both external and internal systems. The systems can include, for example, warehouse management systems, production line data, shipping data, health records, prescriptions, journals, images, files including documents, email, video, and other logistics and business-related sources. The BI tools may prepare and process data in expectation of analysis including report generation, for dashboards, and to be included in one or more data visualizations. The BI tool(s) may be used to increase operational efficiency, identify and understand KPIs, pinpoint new revenue potentials, and to identify other opportunities. The BI tool(s) may be used for querying and reporting of business data and can combine a broad set of analytical applications (e.g., ad hoc analysis and querying, enterprise reporting, online analytical processing (OLAP), mobile BI, real-time BI, operational BI, cloud and software as a service BI, open-source BI, collaborative BI, and location intelligence). The BI tool(s) may be configured to provide one or more visualizations via data visualization software (e.g., charts, BI dashboards, performance scorecards, etc.) displaying metrics, KPIs, and other data to increase efficiency.
At step 706, the rules engine may receive product-related BI from the BI tool which product-related BI may meet one or more flagging criteria based on previous reports stored in the reports library. For example, with reference to
At step 708, the system may query whether or not the expiration date qualifies as flagged data based on the flagging criteria. Flagged data can be flagged based on, for example, a classification of the flagged data, which classification may be related to one or more of risk assessments, quality measurements, employee training, compliance management, complaints, corrective action/preventive action (CAPA), change controls, response times, effectiveness, etc. In the current example, the flagging criteria would be met if the expiration date is before the current date and the state of the particular drug is still on the shelf in a warehouse or otherwise not distributed. For example, the status of the drug as “ready to ship” would indicate that no value has been obtained to the organization for that particular drug (e.g., it has not been sold to another organization as it is merely “ready to ship” vice “shipped”) and the expiration date having lapsed would indicate that value is unlikely to be obtained for this particular batch of product. Accordingly, the result of the query at step 708 would be that, indeed the flagging criteria is met and accordingly, the process would move on to step 710.
At step 710, a report is automatically generated which provides context to the reason behind the flagging criteria being met by the particular products in the system. The report may be provided in a predefined report format and the context may provide a reason or at least enable a user of the system to better understand the reason behind the flagged data. For example, with respect to the example shown in
If there is no flagging criteria met by the various products, for example the painkiller 1 and the immunosuppressive 1 of
At step 802, descriptive data related to one or more products or business process may be generated. The descriptive data can come from, for example, a warehouse operation, a pharmaceutical production facility, etc. The descriptive data can be generated, for example, from customer feedback, from one or more warehouse processes, from one or more shipping operations, etc. With reference to
At step 804, the descriptive data may be stored in one or more databases as raw report generation data for the generation of one or more reports related to patient information, patient treatment, pharmaceutical business processes, or pharmaceutical products. The descriptive data may be managed, for example, by one or more quality management systems (QMS). The QMS may provide quality management solutions to one or more regulated industries, such as the pharmaceutical industry. The QMS may be implemented as a SaaS platform, for example, and may implement one or more artificial intelligence (AI) or IoT tools to carry out one or more of its processes.
At step 806, the raw report generation data may be migrated to a products database for inclusion in a current report related to patient information, patient treatment, pharmaceutical business processes, or pharmaceutical products. The products database may be a queriable module that may interface with a business intelligence tool and may be queriable using the business intelligence tools. The data in the products database may be tuned for, for example, expected access patterns based on access of the one or more users of the database. The data in the products database may be organized for accuracy, relevancy, completeness, timeliness, and consistency. For example, the data may be profiled based on data format and data patterns, data consistency of each record, data value distributions and abnormalities, and completeness of the data. The data profiling steps may be automated in some examples. The incoming data may be checked for duplicity with other systems and duplicative data may be discarded to maintain minimal amounts of unnecessary data.
At step 808, the system may generate one or more flag criteria for flagging raw report generation data. The flag criteria can be based on data which indicates a reduction in quality of a product or a process. For example, flagging criteria could be based on a total number of quality reviews or bad ratings of a particular product having been generated such that further information can be investigated based on a relatively high number of quality reviews (e.g., above a threshold value) or a number of bad ratings of a product. In some instances, flagging criteria can be generated based on a deviation from a mean or expected value. For instance, if a date of a product shipment is expected to be within a certain number of days of a current date or a report generation date and the shipment does not occur within the expected time frame or is after the expected time frame, this might meet flagging criteria. In some embodiments, the flagging criteria is stored in a rules database. In some embodiments, the flagging criteria may be auto-generated based on data stored in a reports library, for example using machine learning and/or artificial intelligence on the reports library data. In some embodiments, the system may tag one or more metadata tags to a piece of data.
At step 810, raw report generation data that meets one or more of the flag criteria may be flagged as flagged report generation data. The raw report generation data may be flagged by the rules engine, for instance. The rules engine may automatically flag data that meets one of the flagging criteria and may generate the report automatically as described herein. In some embodiments, the raw report generation data is generated with systems connected to a QMS and stored in the reports library until it is provided to the rules engine for inclusion in an automatically generated report. As one example of raw report generation data being flagged, a drug that has expired on the shelves of a warehouse without being shipped may be sufficient to flag the generation of a report. For instance, with brief reference to
At step 812, the system may request descriptive information from the one or more databases based on the flagged report generation data. The descriptive information could come from, for example, the QMS and various connected information services and applications. With brief reference to
It should now be understood that the automation of report generation or of aspects of reports could save an organization man hours, increasing organizational efficiency. Automatic report generation may be particularly useful in, for example, a pharmaceutical context with multiple manufacturers generating scores of products in dozens of different countries because such organizations may experience great difficulty reporting on all logistical delays and other production inefficiencies. Automatically generated reports based on data contained in one or more centrally-accessible data repositories may resolve differences in reporting criteria, workflow, reporting chains, and improve the efficiencies of business structures.
It is to be appreciated that ‘one or more’ includes a function being performed by one element, a function being performed by more than one element, e.g., in a distributed fashion, several functions being performed by one element, several functions being performed by several elements, or any combination of the above.
Moreover, it will also be understood that, although the terms first, second, etc. are, in some instances, used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first contact could be termed a second contact, and, similarly, a second contact could be termed a first contact, without departing from the scope of the various described embodiments. The first contact and the second contact are both contacts, but they are not the same contact.
The terminology used in the description of the various described embodiments herein is for the purpose of describing particular embodiments only and is not intended to be limiting. As used in the description of the various described embodiments and the appended claims, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the term “and/or” as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms “includes,” “including,” “comprises,” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
As used herein, the term “if” is, optionally, construed to mean “when” or “upon” or “in response to determining” or “in response to detecting,” depending on the context. Similarly, the phrase “if it is determined” or “if [a stated condition or event] is detected” is, optionally, construed to mean “upon determining” or “in response to determining” or “upon detecting [the stated condition or event]” or “in response to detecting [the stated condition or event],” depending on the context.
The systems, apparatuses, devices, and methods disclosed herein are described in detail by way of examples and with reference to the figures. The examples discussed herein are examples only and are provided to assist in the explanation of the apparatuses, devices, systems, and methods described herein. None of the features or components shown in the drawings or discussed below should be taken as mandatory for any specific implementation of any of these the apparatuses, devices, systems or methods unless specifically designated as mandatory. For ease of reading and clarity, certain components, modules, or methods may be described solely in connection with a specific figure. In this disclosure, any identification of specific techniques, arrangements, etc. are either related to a specific example presented or are merely a general description of such a technique, arrangement, etc. Identifications of specific details or examples are not intended to be, and should not be, construed as mandatory or limiting unless specifically designated as such. Any failure to specifically describe a combination or sub-combination of components should not be understood as an indication that any combination or sub-combination is not possible. It will be appreciated that modifications to disclosed and described examples, arrangements, configurations, components, elements, apparatuses, devices, systems, methods, etc. can be made and may be desired for a specific application. Also, for any methods described, regardless of whether the method is described in conjunction with a flow diagram, it should be understood that unless otherwise specified or required by context, any explicit or implicit ordering of steps performed in the execution of a method does not imply that those steps must be performed in the order presented but instead may be performed in a different order or in parallel.
Throughout this disclosure, references to components or modules generally refer to items that logically can be grouped together to perform a function or group of related functions. Like reference numerals are generally intended to refer to the same or similar components. Components and modules can be implemented in software, hardware, or a combination of software and hardware. The term “software” is used expansively to include not only executable code, for example machine-executable or machine-interpretable instructions, but also data structures, data stores and computing instructions stored in any suitable electronic format, including firmware, and embedded software. The terms “information” and “data” are used expansively and includes a wide variety of electronic information, including executable code; content such as text, video data, and audio data, among others; and various codes or flags. The terms “information,” “data,” and “content” are sometimes used interchangeably when permitted by context.
The hardware used to implement the various illustrative logics, logical blocks, modules, and circuits described in connection with the aspects disclosed herein can include a general purpose processor, a digital signal processor (DSP), a special-purpose processor such as an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA), a programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor can be a microprocessor, but, in the alternative, the processor can be any processor, controller, microcontroller, or state machine. A processor can also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. Alternatively, or in addition, some steps or methods can be performed by circuitry that is specific to a given function.
In one or more example embodiments, the functions described herein can be implemented by special-purpose hardware or a combination of hardware programmed by firmware or other software. In implementations relying on firmware or other software, the functions can be performed as a result of execution of one or more instructions stored on one or more non-transitory computer-readable media and/or one or more non-transitory processor-readable media. These instructions can be embodied by one or more processor-executable software modules that reside on the one or more non-transitory computer-readable or processor-readable storage media. Non-transitory computer-readable or processor-readable storage media can in this regard comprise any storage media that can be accessed by a computer or a processor. By way of example but not limitation, such non-transitory computer-readable or processor-readable media can include random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), FLASH memory, disk storage, magnetic storage devices, or the like. Disk storage, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and Blu-ray disc™, or other storage devices that store data magnetically or optically with lasers. Combinations of the above types of media are also included within the scope of the terms non-transitory computer-readable and processor-readable media. Additionally, any combination of instructions stored on the one or more non-transitory processor-readable or computer-readable media can be referred to herein as a computer program product.
Many modifications and other embodiments of the inventions set forth herein will come to mind to one skilled in the art to which these inventions pertain having the benefit of teachings presented in the foregoing descriptions and the associated drawings. Although the figures only show certain components of the apparatus and systems described herein, it is understood that various other components can be used in conjunction with the supply management system. Therefore, it is to be understood that the inventions are not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Moreover, the steps in the method described above can not necessarily occur in the order depicted in the accompanying diagrams, and in some cases one or more of the steps depicted can occur substantially simultaneously, or additional steps can be involved. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.
It is intended that the specification and examples be considered as exemplary only, with a true scope and spirit of the disclosure being indicated by the following claims.