Many organizations purchase or repurchase the same products, such as food, linens, janitorial supplies, medical supplies, maintenance, repair, and operating items (MRO), and the like. Organizations often order these products from a distributor or multiple distributors (e.g., ordering can be performed by individuals at facilities associated with the organization), and the distributor is typically responsible for delivering the ordered products to individual facilities via one or more distribution centers. Upon delivery, the products often need to be stored in various locations across the facility. It is often not clear exactly where each item is to be stored, especially in facilities that are relatively large and/or that use a relatively wide variety of products. This can lead to products being stored incorrectly and/or inconsistently, which can cause confusion when the item is needed. This can also lead to a person ordering products to be unaware of what is currently in inventory, which can lead to over-ordering if a sufficient amount of a product is in inventory without the person ordering products realizing it because it is in unexpected location. Additionally, this can lead to under-ordering if the person ordering believes that the amount of product in inventory is higher than it is in reality.
Accordingly, new systems, methods, and media for managing inventory associated with a facility are desirable.
In accordance with some embodiments of the disclosed subject matter, systems, methods, and media for managing inventory associated with a facility are provided.
In accordance with some embodiments of the disclosed subject matter, a method for automatically associating items in an inventory with location information corresponding to a portion of a facility is provided, the method comprising: receiving identifying information associated with a plurality of items; causing a mobile device to present at least a subset of the plurality of items in a user interface; receiving, from the mobile device, identifying information associated with a transmitting device, wherein the transmitting device is associated with a first location within the facility; determining, based on the identifying information associated with the transmitting device, a second location within the facility corresponding to a location of the mobile device; receiving, from the mobile device, an indication that one or more items of the plurality of items is being stored at the location of the mobile device; associating the one or more items with the second location; receiving, from a computing device, a request to present information about items stored at the first facility; and causing the computing device to present a user interface that includes identifying information associated with the one or more items in connection with an indication that the one or more items are located at the second location.
In some embodiments, receiving identifying information associated with the plurality of items comprises receiving an order placed with a distributor, wherein the order comprises the plurality of items to be delivered to the facility.
In some embodiments, the method further comprises: receiving, in connection with the identifying information associated with the plurality of items, a location within the facility at which at least one of the items is to be stored.
In some embodiments, causing the mobile device to present at least the subset of the plurality of items in the user interface comprises: causing the mobile device to present a location at which a first item of the plurality of items is to be stored.
In some embodiments, the method further comprises: causing the mobile device to present directions from a current location of the mobile device to the location at which the first item of the plurality of items is to be stored.
In some embodiments, the method further comprises: receiving, from the second mobile device, identifying information associated with a second transmitting device, wherein the transmitting device is associated with a third location within the facility; determining, based on the identifying information associated with the second transmitting device, a fourth location within the facility corresponding to a location of the second mobile device; receiving, from a second mobile device, an indication that an item has been added to the inventory; in response to receiving the indication that the item has been added to the inventory, updating the quantity of the item associated with the fourth location.
In some embodiments, the method further comprises: receiving, from the second mobile device, identifying information associated with a second transmitting device, wherein the transmitting device is associated with a third location within the facility; determining, based on the identifying information associated with the second transmitting device, a fourth location within the facility corresponding to a location of the second mobile device; receiving, from a second mobile device, an indication that an item has been removed from the inventory; in response to receiving the indication that the item has been removed from the inventory, updating the quantity of the item associated with the fourth location.
In some embodiments, the method further comprises: determining that a quantity of the item associated with the facility is at or below a threshold; and in response to determining that a quantity of the item associated with the facility is at or below the threshold, prompting a user to add the item to an order.
In some embodiments, the method further comprises: prompting a user associated with the facility to inspect inventory at a particular storage area associated with the facility; prompting the user associated with the facility to provide input indicative of a quantity a particular item stored in the particular storage area; determining, based on the input indicative of the quantity of the particular item, that the quantity of the particular item is at or below a threshold; and in response to determining that the quantity of the particular item is at or below the threshold, prompting the user to add the particular item to an order.
In some embodiments, the method further comprises: receiving identifying information associated with a plurality of transmitting devices installed at the facility; receiving, for each of the plurality of transmitting devices, information indicating a location within the facility at which that transmitting device is installed; and recording, for each of the plurality of transmitting devices, the identifying information associated with the transmitting device and the information indicating the location at which the transmitting device is installed.
In some embodiments, the information indicating the location comprises identifying information of the location.
In some embodiments, the transmitting device is a Bluetooth beacon and the identifying information associated with the transmitting device is a universally unique identifier (UUID), and the method further comprises: receiving, from the mobile device, data indicative of a signal strength of a signal received from the transmitting device.
In some embodiments, a system for automatically associating items in an inventory with location information corresponding to a portion of a facility is provided, the system comprising: at least one hardware processor that is programmed to: receive identifying information associated with a plurality of items; cause a mobile device to present at least a subset of the plurality of items in a user interface; receive, from the mobile device, identifying information associated with a transmitting device, wherein the transmitting device is associated with a first location within the facility; determine, based on the identifying information associated with the transmitting device, a second location within the facility corresponding to a location of the mobile device; receive, from the mobile device, an indication that one or more items of the plurality of items is being stored at the location of the mobile device; associate the one or more items with the second location; receive, from a computing device, a request to present information about items stored at the first facility; and cause the computing device to present a user interface that includes identifying information associated with the one or more items in connection with an indication that the one or more items are located at the second location.
In accordance with some embodiments of the disclosed subject matter, a non-transitory computer readable medium containing computer executable instructions that, when executed by a processor, cause the processor to perform a method for automatically associating items in an inventory with location information corresponding to a portion of a facility is provided, the method comprising: receiving identifying information associated with a plurality of items; causing a mobile device to present at least a subset of the plurality of items in a user interface; receiving, from the mobile device, identifying information associated with a transmitting device, wherein the transmitting device is associated with a first location within the facility; determining, based on the identifying information associated with the transmitting device, a second location within the facility corresponding to a location of the mobile device; receiving, from the mobile device, an indication that one or more items of the plurality of items is being stored at the location of the mobile device; associating the one or more items with the second location; receiving, from a computing device, a request to present information about items stored at the first facility; and causing the computing device to present a user interface that includes identifying information associated with the one or more items in connection with an indication that the one or more items are located at the second location.
Various objects, features, and advantages of the disclosed subject matter can be more fully appreciated with reference to the following detailed description of the disclosed subject matter when considered in connection with the following drawings, in which like reference numerals identify like elements.
In accordance with various embodiments, mechanisms (which can, for example, include systems, methods, and media) for managing inventory associated with a facility are provided.
In accordance with some embodiments, the mechanisms described herein can collect information about which items are included in an inventory associated with a particular facility and storage locations of the inventory. For example, the mechanisms described herein can receive information about order placed for items to be delivered to the facility. As another example, the mechanisms described herein can receive information about inventory as the inventory is being stored in various locations around the facility. As yet another example, the mechanisms described herein can receive information about inventory as the inventory is being recorded.
In some embodiments, the mechanisms described herein can cause a mobile device to present a user interface that can be used to record a location(s) at which inventory is being and/or has been stored. For example, when an order is delivered to a facility, an employee at the facility and/or an employee of the distributor delivering the order can use a mobile device to access a user interface that presents items associated with the delivery. In such an example, when each item is stored, input can be provided to the mobile device indicating which item(s) is being/has been stored at a current location. The mechanisms described herein can record the location at which the items have been stored. As another example, an employee at the facility can use a mobile device to access a user interface that presents items recorded as being in the inventory of the facility, and the employee can provide input indicating whether the employee was able to verify the existence of each item in the inventory. In some embodiments, the mechanisms described herein can prompt a user to store items associated with a delivery in an appropriate location and in accordance with a proper handling procedure. For example, some items may be associated with particular storage requirements, such as perishable items that may require refrigeration or may require storage in a particular environment (e.g., a cool, dark environment), sterile items that require sterile handling can be stored in a particular storage area, items (e.g., high value items, regulated items) that require point of use tracking can be stored in a particular location with extra steps to maintain an appropriate record to fulfill compliance requirements, items (e.g., pharmacy items) that require provenance and/or lot tracking with extra steps to maintain an appropriate record to fulfill compliance requirements, items that are delivered and/or intended for assembly into part of a kit/assembly can be stored together, items that are not owned by the organization may be considered consigned inventory and may be stored in a particular storage location that clarifies the status of the inventory as such. In such examples, mechanisms described herein can provide a user with instructions related to where to store the items, and/or instructions related to appropriate steps to take when handling and/or storing the items to comply with appropriate organizational policies, rules, regulations, and/or laws.
In some embodiments, the mechanisms described herein can cause a mobile device to detect one or more signals that can be used to record a location of the mobile device. For example, a mobile device can be configured to detect wireless signals that are associated with physical locations, and the mechanisms described herein can calculate a position based on identifying information associated with the signal(s) and/or a signal strength associated with the signal(s). In a more particular example, the wireless signals can be ultrahigh frequency radio waves emitted by a transmitter associated with a particular physical location. An example of a device that is configured to emit such wireless signals is a Bluetooth low energy beacon.
In some embodiments, the mechanisms described herein can cause a mobile device to present a user interface that can be used to guide a user to the location of a particular item in a facility. For example, based on a storage location that was previously associated with an item, the mechanisms described herein can provide information that a user can utilize to find a particular item(s). In such an example, a current location of the mobile device can be determined based on detected wireless signals, and the location can be used to provide real-time directions to a storage location of a particular item. Note that the terms facility and storage location as used herein are intended to be non-limiting. For example, while a facility or storage location can refer to a structure or a place, such as a single building, it can also refer to a portion of a building, a group of multiple buildings that may or may not be located near each other, a campus, a vehicle (e.g., a “food truck,” a mobile home, or the like). Additionally, facility as used herein can refer to non-places, such as a juristic entity (e.g., a corporation, a foundation, a government agency, or the like), or a natural person. Specific examples of a facility can include a healthcare facility (e.g., a hospital, an outpatient clinic, a standalone emergency facility, a standalone hospice facility, a standalone surgical center, a hospital campus, a specific building on a hospital campus, a specific room within a healthcare facility such as an operating room, a hospital cafeteria, or the like), an elder care facility (e.g., an assisted living facility, an independent living facility, a nursing home, or the like), an educational facility (e.g., a school, a university campus, a building on a university campus, a cafeteria on a university campus which may be located within a different facility such as a dorm, or the like), a corporation, a corporate campus, a government agency, a government building, a group of government buildings, a restaurant, a chain of restaurants, a particular vehicle (e.g., a cart, a truck, a car, a trailer, a service cart) used to transport, deliver and/or vend a product (e.g., prepared food, new medical equipment, non-sterile medical equipment to be sterilized), a home, a portion of a home (e.g., a home office). Another example of a facility can be anything that has an address or that is located at a particular place or places. Yet another example of a facility can be anything that is affiliated with an organization, and that independently orders products via the affiliation with the organization. As used herein, storage location can include conventional storage locations, such as warehouses, closets, storage rooms, sheds, and the like, and can also include other locations at which equipment and/or other inventory can be stored, such as a mobile storage location (e.g., a medical cart, a medical pole stand, a medical device, furniture such as a patient's bed).
In some embodiments, the mechanisms described herein can cause a mobile device to present a user interface that can be used to verify inventory at a storage location, adjust the inventory (e.g., when an item is removed), and/or add items to be ordered from a distributor and/or service provider. For example, a mobile device can be configured to detect wireless signals that are associated with physical locations, the mechanisms described herein can determine a storage location associated with the location, and retrieve inventory information about items that are stored at the location. In a more particular example, the mobile device can be used to adjust the inventory by indicating that one or more items are being removed. As another more particular example, the mobile device can be used to compare the amount of an item recorded in inventory for a particular location to the amount of the item present at the physical location. As yet another more particular example, the mobile device can be used to add items to an order (e.g., based on one or more order guides) based on the amount of items in inventory. In some embodiments, the mechanisms described herein can facilitate more efficient tracking, management, calculation of reorder points, management of shortages/stock outs, and can be used to inform reorder processes across one or more facilities of an organization. These tasks are often extremely complicated and time consuming, which is increased by orders of magnitude in certain environments (e.g., healthcare environments) which involve a very broad set of materials management tasks and a very complex collection of items, many with specific inventory management requirements.
In many cases, some goods may be available from a particular supplier in one sales channel or region, but not in another. For example, suppliers of perishable food may only offer certain foods in a geographically limited territory due to the relatively short shelf life of the product. In such an example, a distributor may have to establish relationships with different suppliers for the same items in different places, which may overlap (e.g., item one may be offered by supplier one in a first region, and an equivalent of item one may be offered by supplier two in a second region that overlaps the first region in certain areas). These regions may also overlap with the regions in which the distributor has established distribution centers. Accordingly, to ensure that customers of the distributor can order at least one item or its equivalent from another supplier, the distributor may purchase the items from both suppliers, and stock them where they are available. In such an example, some distribution centers may stock the first item, other distribution centers may stock the second item, and yet other distribution centers may stock the first item and the second item. As another example, a distributor that operates in multiple countries may be unable to stock a particular item from a first supplier in each country in which it operates (e.g., due to transportation costs, regulations, and the like), and accordingly may purchase equivalent items from multiple suppliers in various countries or regions.
A distributor establishes networks of distribution centers in order to provide products purchased from suppliers to the distributor's customers. In many cases, the customer may be an organization that operates across more than one of the regions served by the distributor. For example, a health care provider may operate a network of facilities in many different geographic regions. In a more particular example, the health care provider may establish elder care facilities in various metropolitan areas across several states.
Such organizations can establish relationships with a distributor to, among other things, reduce costs. For example, an organization can establish a relationship (e.g., the terms of which may or may not be defined by a contract) with a food distributor to supply ingredients and/or ready to eat food to all of the organization's facilities. By ordering relatively large quantities, the organization can receive a relatively low price. Additionally, the distributor can provide logistical support in coordinating delivery of food to the various different facilities. However, the organization still needs to interface with the distributor to order the food that is needed by each facility, which can be a significant administrative task that can be complicated due to different facilities having different needs, or being located in different regions such that the same items cannot be supplied by the distributor to all of the facilities.
As shown in
In some cases, a GPO can be responsible for tracking volumes ordered by members (e.g., organizations) of the GPO, and distribute rebates, earnings, and/or dividends based on the ordering volumes. For example, a GPO can receive funds from distributors and/or suppliers (e.g., in the form of fees, or rebates) on behalf of members, and can distribute the funds based on orders placed by the member organizations. Additionally, in some cases, GPOs that are classified as purchasing cooperatives can distribute funds as dividends to member organizations. For example, to accurately calculate rebates and funds distributions the GPO often must use reporting and discovery mechanisms (e.g., processes and/or systems) to determine items and quantities ordered by each organization, and when the items were ordered. Additionally, a GPO can use multiple mechanisms to obtain information about the purchasing behaviors of its member organizations to identify contracting and cost reduction opportunities. Should the GPO have visibility to items for which the GPO has not negotiated a contract with a distributor, but has sufficient qualities to be included in a contract negotiation, the GPO can negotiate a contract for that product to the potential advantage of the GPO's members that already purchase or wish to purchase that product.
Many distributors provide a platform that allows customers to track and submit orders electronically. One or more users (in some cases with the assistance of one or more automated services) associated with an organization can submit orders to a distributor for various facilities associated with the facility.
In some cases, some organizations may not encounter such a situation. For example, an organization may designate an employee at each facility (e.g., a kitchen manager at an elder care facility) to determine what is required and place orders with the distributor. In such an example, because a user at each facility is independently determining what to order and placing orders with the distributor, it is unlikely that the user will order something that is not available in that region. However, while distributing the responsibility of ordering can help avoid ordering unavailable items, it can also increase costs and produce inefficiencies.
Note that although not shown, a supplier can also be associated with its own distribution network that facilitates delivery more directly between the supplier and end users in addition to, or in lieu of, being part of a distribution network associated with a distributor. For example, a supplier can act as both a supplier and a distributor. As another example, a distributor can act as a supplier, by manufacturing (e.g., either directly or by contracting with a manufacturer) items for distribution via its own and/or other distributor's distribution networks. In some embodiments, the mechanisms described herein can be used to generate order guides that include items available from one or more distributors, and/or directly from a supplier via a distribution network associated with the supplier.
In some embodiments, a user (e.g., associated with organization A) can access the information in database 304 via an application and/or service that is configured to interact with database 304. For example, the user can access an application and/or service via a computing device.
In some embodiments, the user can request a list of products available from a distributor associated with database 304 by causing a computing device to send a request to order management system 302. Order management system 302 can determine, based on information about the organization, which items to present (e.g., all items available, only items available within regions in which a facility is located, and the like).
In some embodiments, order management system 302 can be configured to sort, search, filter, and the like, items available from the distributor to assist a user in identifying items that meet the organization's needs. Note that although
In some embodiments, server 402, and/or inventory management service 404 can receive requests for information, queries, selections of items, user input, and/or any other suitable data, over a communication network 420. In some embodiments, such information can be received from any suitable computing device, such as computing device 430. For example, computing device 430 can receive user input through an application being executed by computing device 430, such as through an input device (e.g., a keyboard, mouse, microphone, touchscreen, and the like). In such an example, computing device 430 can communicate information over communication network 420 to server 402 (or another server that can provide the information to server 402). As shown in
In some embodiments, server 402 can communicate with one or more computing devices, such as distributor database server 410, to retrieve information regarding products that are currently available, a quantity of each product that is available, pricing information about the products, and/or any other suitable information. In some embodiments, distributor database server 410 can be used (e.g., by a distributor and/or by a regional facility), to manage information about a particular distribution center or distribution centers. For example, distributor database server 410 can be used to manage a database 412 that includes information about a particular distribution center associated with a particular distributor. As shown, database 412 is associated with Distributor X and Distribution Center i (of n total distribution centers). However, this is merely an example, and distributor database server 410 can manage any suitable database or combination of databases. For example, distributor database server 410 can be used to manage a database that includes information about multiple distribution centers associated with a single distributor. In a more particular example, a particular distributor may use a single database to track products across multiple distribution centers, while a different distributor may use a different database to track products for each distribution center. In some embodiments, server 402 can communicate with one or more distributor database servers 410 to collect information about products that can be ordered via the distributor associated with the database.
In some embodiments, communication network 420 can be any suitable communication network or combination of communication networks. For example, communication network 420 can include a Wi-Fi network (which can include one or more wireless routers, one or more switches, and the like), a peer-to-peer network (e.g., a Bluetooth network), a cellular network (e.g., a 3G network, a 4G network, a 5G network, and the like, complying with any suitable standard(s), such as CDMA, GSM, LTE, LTE Advanced, WiMAX, 5G NR, and the like), a wired network, and the like. In some embodiments, communication network 420 can be a local area network, a wide area network, a public network (e.g., the Internet), a private or semi-private network (e.g., a corporate or university intranet), any other suitable type of network, or any suitable combination of networks. Communications links shown in
In some embodiments, communications transmitted over communication network 420 and/or communication links shown in
In some embodiments, one or more security techniques can be applied to any suitable portion of a communication network that interacts with computing devices. For example, security techniques can be used to implement a secure Wi-Fi network (which can include one or more wireless routers, one or more switches, and the like), a secure peer-to-peer network (e.g., a Bluetooth network), a secure cellular network (e.g., a 3G network, a 4G network, a 5G network, and the like, complying with any suitable standard(s), such as CDMA, GSM, LTE, LTE Advanced, WiMAX, 5G NR, and the like), and the like.
In some embodiments, communications systems 508 can include any suitable hardware, firmware, and/or software for communicating information over communication network 420 and/or any other suitable communication networks. For example, communications systems 508 can include one or more transceivers, one or more communication chips and/or chip sets, and the like. In a more particular example, communications systems 508 can include hardware, firmware and/or software that can be used to establish a Wi-Fi connection, a Bluetooth connection, a cellular connection, an Ethernet connection, and the like.
In some embodiments, memory 510 can include any suitable storage device or devices that can be used to store instructions, values, and the like, that can be used, for example, by processor 502 to present content using display 504, to communicate with server 402 via communications system(s) 508, and the like. Memory 510 can include any suitable volatile memory, non-volatile memory, storage, or any suitable combination thereof. For example, memory 510 can include RAM, ROM, EEPROM, one or more flash drives, one or more hard disks, one or more solid state drives, one or more optical drives, and the like. In some embodiments, memory 510 can have encoded thereon a computer program for controlling operation of computing device 430. In such embodiments, processor 502 can execute at least a portion of the computer program to present content (e.g., user interfaces, tables, graphics, and the like), receive content from server 402, transmit information to server 402, and the like.
In some embodiments, server 402 can be implemented using one or more servers 402 (e.g., functions described as being performed by service 402 can be performed by multiple servers acting in concert) that can include a processor 512, a display 514, one or more inputs 516, one or more communications systems 518, and/or memory 520. In some embodiments, processor 512 can be any suitable hardware processor or combination of processors, such as a CPU, a GPU, and the like. In some embodiments, display 514 can include any suitable display devices, such as a computer monitor, a touchscreen, a television, and the like. In some embodiments, inputs 516 can include any suitable input devices and/or sensors that can be used to receive user input, such as a keyboard, a mouse, a touchscreen, a microphone, and the like. In some embodiments, server 402 can be a mobile device.
In some embodiments, communications systems 518 can include any suitable hardware, firmware, and/or software for communicating information over communication network 420 and/or any other suitable communication networks. For example, communications systems 518 can include one or more transceivers, one or more communication chips and/or chip sets, and the like. In a more particular example, communications systems 518 can include hardware, firmware and/or software that can be used to establish a Wi-Fi connection, a Bluetooth connection, a cellular connection, an Ethernet connection, and the like.
In some embodiments, memory 520 can include any suitable storage device or devices that can be used to store instructions, values, and the like, that can be used, for example, by processor 512 to present content using display 514, to communicate with one or more computing devices 430, and the like. Memory 520 can include any suitable volatile memory, non-volatile memory, storage, or any suitable combination thereof. For example, memory 520 can include RAM, ROM, EEPROM, one or more flash drives, one or more hard disks, one or more solid state drives, one or more optical drives, and the like. In some embodiments, memory 520 can have encoded thereon a server program for controlling operation of server 402. In such embodiments, processor 512 can execute at least a portion of the server program to transmit information and/or content (e.g., results of a database query, a portion of a user interface, textual information, graphics, and the like) to one or more computing 430, receive information and/or content from one or more computing devices 430, receive instructions from one or more devices (e.g., a personal computer, a laptop computer, a tablet computer, a smartphone, and the like), and the like.
As shown in
In some embodiments, the information associated with the organization received by process 600 can include information about rebates, discounts, or other arrangements that the organization can utilize, the terms of such arrangements, identifying information of one or more other parties in the arrangement (e.g., a supplier, a distributor, a third party, and the like), and/or any other suitable information. For example, such an arrangement can be a contract that has been agreed to by two or more parties (e.g., the organization and a distributor, the organization and multiple distributors, a third party such as a GPO and a distributor, the organization and a manufacturer, or any other suitable combination of parties).
In some embodiments, the information associated with the organization received by process 600 can include information about one or more distributors that the organization may use to procure items for its facilities. For example, if process 600 is executed as part of a service provided by a third party (e.g., not the organization, a particular distributor, nor a supplier) the service may be configured to facilitate ordering with multiple distributors, potentially associated with different categories of items. In such an example, at 602, process 600 can receive information about which distributor(s) in particular the organization may order from, which can include distributors across different categories of products (e.g., food, office supplies, medical supplies, janitorial supplies, etc.). As another example, if process 600 is executed as part of a service provided by a particular distributor, the information associated with the organization received by process 600 may omit information about which distributor the organization is interested in ordering items from.
In some embodiments, the information associated with the organization received by process 600 can include information about the organization's behavior over time. For example, the information can include information about items that the organization (e.g., via various facilities) has purchased over any suitable period of time. In some embodiments, such information can be provided explicitly by a user associated with the organization (e.g., in the form of a file that includes historical information) and/or can be provided programmatically (e.g., a user can cause such information to be automatically shared with process 600 as the organization purchases products).
At 604, process 600 can receive a request to present items available from a specified distributor or distributors, and/or items available in one or more specified portions of a distribution network that includes one or more distributors. In some embodiments, the request can be received in any suitable form. For example, an application executed by a computing device associated with the organization can receive input indicating that items available from a specified distributor are to be presented, which can cause the computing device to request information that can be used to present a user interface that includes items available from the specified distributor. Such an application can be an order management application executed by the operating system of the computing device, an application accessed remotely such as via a web browser (e.g., a web application), or any other suitable type of application. In such an example, the input can be a selection of a particular user interface element associated with the specified distributor, a selection of a user interface element for initiating creation and/or editing of an order guide associated with the specified distributor, or any other suitable input.
In some embodiments, process 600 can utilize data requests that conform to one or more Electronic Data Interchange (EDI) standards to request availability and inventory (e.g., EDI 846, Inventory Inquiry/Advice). Additionally or alternatively, in some embodiments, process 600 can utilize one or more custom web services (e.g., a RESTful web service that is configured to provide interoperability between systems associated with a particular supplier and/or distributor and systems associated with process 600, such as order management system 302). In some embodiments, process 600 can utilize a custom application program interface (API) that facilitates communication between systems associated with process 600 (e.g., as order management system 302) and systems associated with one or more suppliers and/or distributors, which can be utilized to query such systems, and/or to transfer data and information. In some embodiments, communications between systems associated with process 600 can be secured using any suitable technique or combination of techniques, such as techniques described above in connection with
At 606, process 600 can cause a computing device associated with the organization to present a user interface that includes information related to items available from the distributor. In some embodiments, process 600 can make available information related to the items available from the distributor in multiple regions or other subnetworks in which a facility associated with the organization is located.
In some embodiments, the items can be presented in any suitable format. For example, the items can be presented as a list in any suitable order based on one or more properties associated with the item (e.g., alphabetical by name, alphabetical by brand, by category, by price, and the like).
As another example, the items can be presented as a frontend of a searchable database with one or more input fields for providing search terms, a field that can be used to present results, and/or any other suitable user interface elements. For example, the items can be presented using a search user interface, such as the user interface shown in and described below in connection with
In some embodiments, any suitable information can be used to identify items that are available from the distributor, such as text (e.g., a name of the item, a description of the item, specifications of the item, and the like), one or more images (e.g., images of the item, images of branding associated with the item, and the like), and/or any other suitable information. In general, information associated with an item can be referred to as item metadata, or metadata associated with the item. Such metadata can include any suitable information that can be used to identify the item, describe the item, and/or retrieve information about the item. Additional examples of metadata can include a brand associated with the item, the size of an item, a number of items included in a package, a unit of measure associated with the item, a SKU, a UPC, a price associated with the item, one or more attributes of the item, and a category associated with the item. Note this is not an exhaustive list of every type of information that can be considered item metadata.
In some embodiments, the mechanisms described herein can be used to generate an order guide that includes services and/or includes only services. In such embodiments, in addition to, or in lieu of, presenting items available from a distributor, and adding such items to an order guide that can be used to facilitate procurement, the mechanisms described herein can present one or more services that are available from service providers, and such services can be added to an order guide. For example, bottled water delivery via various providers can be added as a “product group” (although it is generally a service) to an order guide, to facilitate procurement of such a service by individual facilities.
At 608, process 600 can receive a request to create and/or modify an order guide to be associated with the organization. Such an order guide is sometimes referred to herein as a general order guide, and can be referred to using other terms, such as a generic order guide, a corporate order guide, an organization order guide, an organization-wide order guide, a master order guide, a central order guide, a product catalog, a service catalog, a shopping list, a bid, a formulary, a preferred list, a recommended list, or the like. Note that some terms may have special meanings within particular industries, and the preceding list is intended to supplement such meanings, rather than providing a limiting definition of such terms. In some embodiments, such a request can be initiated in response to any suitable action. For example, such a request can be initiated in response to selection of a user interface element associated with creation of a new general order guide (e.g., an icon labeled “create new order guide,” an element of a menu labeled “create new order guide”). As another example, such a request can be initiated in response to selection of a user interface element associated with editing an existing general order guide (e.g., an icon labeled “edit an order guide,” an element of a menu labeled “edit an order guide,” an icon associated with an existing general order guide, and the like). As still another example, such a request can be initiated in response to selection of a user interface element associated with an item (e.g., an icon labeled “save,” “add,” “add to order guide,” “authorize,” “+,” and the like; an element of a menu that is similarly labeled, and the like). In such an example, in response to selection of such a user interface element associated with a particular item, if a general order guide is not currently selected, process 600 can cause the user to be prompted to select an existing general order guide and/or create a new order guide to which the item is to be added.
At 610, process 600 can receive a request to add one or more items to the general order guide selected and/or created at 608. In some embodiments, such a request can be in any suitable format. For example, such a request can be initiated by selection of a user interface element associated with the item (e.g., an icon labeled “save,” “add,” “add to order guide,” “authorize,” “+,” and the like), and an application presenting the user interface element can cause identifying information of the item to be transmitted to a device executing process 600. As another example, such a request can be received via a command line interface (e.g., as a series of identifying information associated with one or more items to be added to the general order guide, such as a stock keeping unit (SKU) associated with the item, a Universal Purchase Code (UPC) associated with the item, a Uniform Resource Identifier (URI) associated with the item, a Uniform Resource Locator (URL) associated with the item, a Global Trade Identity Number (GTIN), and/or any other identifying information). As yet another example, such a request can be received via an application program interface (API).
At 612, process 600 can receive a request to associate a general order guide with one or more facilities. For example, a user can create multiple general order guides and assign one or more of the general order guides to each facility associated with the organization. In such an example, the user can create different general order guides that suit the needs of facilities with different needs and/or that are associated with different activities that a facility may perform, and can associate the general order guides with the particular facilities. As a more particular example, if the organization is associated with multiple different types of facilities (e.g., hospitals, outpatient clinics, hospice facilities, nursing homes, and the like), the user can assign each facility one or more order guides. As another more particular example, if a facility is associated with different services (e.g., a hotel that provides breakfast for guests, and that operates a restaurant), the user can assign that facility one or more order guides corresponding to the services provided by the facility. In some embodiments, facilities can be organized into groups and/or into a hierarchy. For example, a user can assign a facility to one or more groups of facilities. As another example, a facility can be added to a group programmatically (e.g., without any user intervention). In such an example, facilities can be added to a group based on one or more characteristics of the facility or facilities. Such characteristics can include location of the facility, the type of facility (e.g., hospitals can be added to a first group, nursing homes can be added to a second group), the name of the facility, whether facilities have been associated with the same general order guides, operating characteristics of a facility (e.g., hours, whether the facility is in a building that is owned by the organization or leased), and/or any other characteristics. As yet another example, groupings of facilities can be suggested based on one or more characteristics of the facility or facilities.
In some embodiments, a general order guide can be associated with a group and/or with an individual facility. For example, if a user associates a general order guide with a group, whether the general order guide is used when generating a facility order guide can be determined based on whether the facility is associated with the group. In such an example, if a particular facility is added to a group after a general order guide is associated with the group, the general order guide can be used when generating an order guide for the facility. Similarly, if a particular facility is included in a group when a general order guide is associated with the group, but the facility is later removed, the general order guide can be excluded from consideration when generating a facility order guide for the facility.
As another example, a single general order guide can be associated with a group, and with a facility included in the group. In such an example, the general order guide can be used when generating an order guide for the facility regardless of the current group membership status of the facility.
At 614, process 600 can receive a request to generate a facility-specific order guide that includes one or more items from one or more general order guides associated with the facility (e.g., at 612). In some embodiments, such a request can be in any suitable format. For example, such a request can be initiated after a user has associated one or more general order guides with a particular facility. As another example, such a request can be initiated when a user finishes associating one or more general order guides with a facility (e.g., by selecting a user interface element to save the associations, by navigating to another portion of the user interface, or the like). As yet another example, such a request can be initiated when a user accesses a user interface associated with a particular facility, such as to review an order guide associated with the facility, to create an order for the facility, or for any other suitable purpose.
At 616, process 600 can automatically create an order guide associated with the facility based on the one or more general order guides associated with the facility. Note that the order guide associated with the facility is sometimes referred to herein as a facility order guide, and can be referred to as a facility-specific order guide, an ordering location order guide, a local order guide, an auxiliary order guide, a secondary order guide, a peripheral order guide, a specific order guide, a local product catalog, a local service catalog, a facility bid, a facility formulary, a facility preferred list, a facility recommended list, or the like. Additionally, in some cases, the phrase order guide is used to refer to both an order guide associated with an organization (generally referred to herein as a general order guide) and order guides associated with various portions of the organization (generally referred to herein as a facility order guide) that are generated based on an order guide associated with the organization. This combination of terms was generally not used herein in the interest of clarity. In some embodiments, the order guide associated with the facility can include items from each of the general order guides associated with the facility. Additionally, in some embodiments, if multiple general order guides include the same item, process 600 can include only a single instance of the item in the facility order guide. Alternatively, in some embodiments, process 600 can include each instance of the item from the general order guides in the facility order guide. In some embodiments, duplicated items in a facility order guide can be removed during an ordering process (e.g., when the facility order guide is submitted to a procurement service or application). In some embodiments, the facility order guide can be formatted in any format that is suitable for presentation and/or submission to an application and/or service that can be used to place an order with one or more distributors based on the facility order guide. For example, the facility order guide can include information such as identifying information associated with the organization, identifying information associated the facility, identifying information of one or more general order guides used to generate the facility order guide, identifying information of one or more items, identifying information of one or more master items or product groups associated with the items, and any other suitable information. As described below, in some embodiments, particular items that are included in the facility order guide can be selected from a list of acceptable alternatives (e.g., sometimes referred to herein as a master list, or a product group) at the time the order guide is created based on any suitable factors such as stated preference, availability, price, size, brand, and the like.
In some embodiments, process 600 can utilize any suitable technique or combination of techniques to determine price and/or availability at the time when an order is being created. For example, process 600 can utilize techniques described above in connection with 606. In some embodiments, process 600 can query one or more systems associated with a particular distributor associated with the order to obtain updated price and availability information in real time (or near real time). In some embodiments, if such information is not available or otherwise cannot be obtained in real time, process 600 can use stored price information and can reconcile available inventory information after the order is accepted by the distributor. In some embodiments, information about backorders and discontinued items can be communicated to an organization and/or user at any suitable time. For example, such information can be communicated to the organization in a separate process. As another example, such information can be presented via a user interface or API used to place an order. In some embodiments, process 600 can use information about rebates, discounts, and/or other arrangements that the organization can utilize, the terms of any such arrangements, identifying information of one or more other parties in the arrangement (e.g., a supplier, a distributor, a third party, and the like), and/or any other suitable information related to such an arrangement to determine a net price that the organization would pay for a particular item. For example, in some cases, an organization (e.g., directly, or through a cooperative such as a GPO) can be the beneficiary of a contract with a distributor guaranteeing a particular price on an item if one or more certain conditions are satisfied. In such an example, process 600 can utilize information about the contract (and/or information about whether the condition(s) are satisfied) to determine the price for that item.
If process 700 determines that at least a portion of the distributor's system is not configured to respond to queries for particular information (“NO” at 704), process 700 can proceed to 706. In some embodiments, as an alternative to determining if the distributor's systems are configured to respond to queries at 702 and 704, process 700 can be configured to start at 706 or 708 based on how the distributor's systems are configured and/or based on how the distributor and an entity associated with process 700 have agreed to share information. For example, if a push model is to be used in which the distributor shares information by placing a file at a particular location (e.g., as described below in connection with 706), process 700 can be configured to begin at 706.
At 706, process 700 can receive updated information from a distributor about products that are available (e.g., stocked) via various portions of the distribution network associated with the distributor. In some embodiments, process 700 can receive the updated information using any suitable technique or combination of techniques. For example, the distributor can periodically (e.g., once per day, twice per day, once per hour, or at any other suitable frequency) at regular and/or irregular intervals, provide the information to a location associated with an order management service (e.g., a File Transfer Protocol (FTP) server, a Secure File Transfer Protocol (SFTP) server, a storage location such as an S3 bucket or an encrypted S3 bucket provided via the Amazon S3 service made available by Amazon Web Services, or the like). In some embodiments, the information provided by the distributor can be a file that includes information about which items are currently available from the distributor, identifying information associated with the items, how many of each item are available, size information (e.g., the amount of each item by count, by weight, by measure, or the like). in which portions of the distributors network the items are available (e.g., distribution centers which can provide the item), a stocking status identifier (e.g., if the item is currently in the inventory of the distribution center, if the item can be procured by the distribution center for delivery to facilities served by the distribution center, or other stocking status identifiers). In some embodiments, the information can include pricing information associated with each item. Note that such price information can be a list price, which may not apply to particular organizations, which may have negotiated for a different price for certain items. In some embodiments, the distributor can provide a single file with information for all portions of the distribution network. Additionally or alternatively, the distributor can provide multiple files that each correspond to a portion of the distribution network. In some embodiments, the information transmitted by a distributor's system (e.g., at 706 and/or 710, described below) can be in any suitable format, such as a CSV-based format, a TSV-based format, a fixed-length-based format, an XML-based format, or the like.
In some embodiments, an entity associated with process 700 (e.g., a third party service provider, an organization, a distributor, a supplier) may establish expectations (e.g., via a written agreement) about which information is to be included in the information provided by the distributor, how often the information is to be provided, which portion(s) of the distribution network is to be included in the information, and/or any other suitable parameters associated with the sharing of information.
Otherwise, if process 700 determines that at least a portion of the distributor's system is configured to respond to queries for particular information (“YES” at 704), process 700 can proceed to 708. At 708, process 700 can transmit a request to one or more systems associated with the distributor for information about items that are currently stocked at each distribution center, and/or items that are ordinarily stocked (but may currently be out of stock). For example, each distribution center associated with a distributor can use a database to keep track of which items are in stock, and the database can be kept updated as new items are received and other items are shipped to fulfill orders. As another example, a distributor can maintain a database to keep track of which items are currently stocked at each of multiple distribution centers. In some embodiments, process 700 can submit a query or queries for information maintained in the database associated with each node in the distribution (e.g., distribution center).
In some embodiments, the distributor's system can be configured to respond to a request by providing all pertinent information associated with one or more portions of the distribution network, such as information described above in connection with a file shared by the distributor at 706. Additionally or alternatively, in some embodiments, the distributor's system can be configured to respond to queries by providing a subset of information, with the information delivered being based on the format of the query.
At 710, process 700 can receive, for each node (e.g., distribution center), information about items that are stocked for distribution from that node and/or items available for transfer from another node. For example, process 700 can receive a list of items that are currently stocked, a quantity of each item (if any), size information, a cost associated with each item, and/or any other suitable information. As another example, process 700 can receive a list of actions that have been performed to add or remove items from the database associated with a particular node. In such an example, the actions can be used to update a database maintained by an entity associated with process 700. Additionally, in some embodiments, process 700 can receive information about a price at which inventory is available, and whether the price varies across different nodes of the distribution network and/or across different organizations.
At 712, process 700 can generate and/or update harmonized product availability information across all nodes for which information is available. For example, process 700 can generate and/or update a database of items that are available from the distributor, and can associate each item with a node or nodes (e.g., distribution centers) in which the item is available, in what quantities, in what size(s), and/or any other suitable information. In some embodiments, process 700 can use the most recent information available to generate and/or update the harmonized product availability information. For example, if information is received for the same distribution node at both 706 and 708, process 700 can determine which information is most recent and preferentially utilize that information.
In some embodiments, in which information is provided by the distributor at regular and/or irregular intervals, process 700 can return to 706 to await updated information after generating and/or updating the harmonized product availability information. For example, in some embodiments, process 700 can omit 702, 704, 708, 710, and 714 when information is only obtained from a particular distributor via the distributor pushing information to a location from which process 700 can retrieve the information.
At 714, process 700 can determine whether a predetermined amount of time has elapsed since the harmonized product availability information was updated. If process 700 determines that the predetermined time has not elapsed (“NO” at 714), process 700 can continue to wait. Otherwise, if process 700 determines that the predetermined time has elapsed (“YES” at 714), process 700 can return to 702 to request updated information from each node in the distribution network. Note that, in some embodiments, a portion of process 700 can be executed asynchronously. For example, if a portion of the distributor's systems are not configured to respond to queries for particular information, process 700 can receive information from the distributor at 706 when the information is sent (e.g., pushed) from the distributor's system(s), which may not coincide with times at which information is requested at 708.
Note that process 700 is a particular example of a process for generating and maintaining a list of items available from a distributor across the distribution network (or a particular portion(s) of the network), but other processes can be used to perform a similar task. For example, a computing device associated with each node in the distribution network can be configured to send updated information periodically (at regular and/or irregular intervals) to a computing device that maintains a list of products available across all the distribution network. Alternatively, in some embodiments, rather than each distribution center being associated with a particular database, the inventory across the distribution network can be tracked using a single unified encrypted database. In some embodiments, process 700 can utilize any suitable technique or combination of techniques to determine obtain information about inventory that is stocked and the price of such inventory. For example, process 600 can utilize techniques described above in connection with 606.
If process 750 determines that at least a portion of the distributor's system is not configured to respond to queries for particular price information (“NO” at 754), process 700 can proceed to 756. In some embodiments, as an alternative to determining if the distributor's systems are configured to respond to queries at 752 and 754, process 750 can be configured to start at 756 or 758 based on how the distributor's systems are configured and/or based on how the distributor and an entity associated with process 750 have agreed to share price information. For example, if a push model is to be used in which the distributor shares price information by placing a file(s) at a particular location (e.g., as described below in connection with 756), process 750 can be configured to begin at 756.
At 756, process 700 can receive updated information from a distributor about prices associated with particular products and/or organizations (e.g., certain customers of the distributor). In some embodiments, process 750 can receive the updated price information using any suitable technique or combination of techniques. For example, the distributor can periodically (e.g., once per day, twice per day, once per hour, or at any other suitable frequency) at regular and/or irregular intervals, provide the price information to a location associated with an order management service (e.g., a server, a storage location, or the like). In some embodiments, the information provided by the distributor can be a file that includes price information related to items made available by the distributor. In some embodiments, the file can be associated with a particular customer, and the distributor can provide a file for each of various customers that have a relationship with an entity associated with process 700 (or another process, such as process 600). Additionally or alternatively, the distributor can provide a single file that identifies customers and prices associated with the customer for each product available from the distributor (and/or each product for which a price associated with the customer differs from a list price).
In some embodiments, an entity associated with process 750 (e.g., a third party service provider, an organization, a distributor, a supplier) may establish expectations (e.g., via a written agreement) about which information is to be included in the price information provided by the distributor, how often the price information is to be provided, which portion(s) of the distribution network is to be covered in the price information (which can vary by organization), and/or any other suitable parameters associated with the sharing of price information. For example, in some embodiments, the price information provided by the distributor can include a contract price to which a specific organization is entitled on an item, a spot price on an item, and/or a list price for an item.
Otherwise, if process 750 determines that at least a portion of the distributor's system is configured to respond to queries for particular price information (“YES” at 754), process 750 can proceed to 758. At 758, process 750 can transmit a request to one or more systems associated with the distributor (and/or another party, such as a GPO) for price information associated with a particular customer, one or more particular nodes, and/or one or more products. For example, certain organizations can negotiate prices with distributors through various relationships (e.g., as described above in connection with
At 760, process 750 can receive price information about items that are associated with the distributor for one or more organizations for which price information was requested at 758. For example, process 750 can receive a list of prices for items available to the organization, prices for items on a general order guide, items in a master list or product group, and/or for any other items.
At 762, process 750 can generate and/or update harmonized price information for an organization and a particular distributor(s). For example, process 750 can generate and/or update a database of prices that the organization can expect to pay for certain items available from the distributor. In some embodiments, process 750 can use the most pertinent price information available to generate and/or update the harmonized price information. For example, if price information is received for the same organization and products at both 756 and 758, process 750 can determine which price information is most recent and preferentially utilize that information. As another example, if price information is received that includes list prices and other prices information that includes prices specific to a particular organization, process 750 can use the more specific information regardless of which information is more up to date. In some embodiments, process 700 can use information about rebates, discounts, and/or other arrangements that the organization can utilize (which can be received from the distributor, from a GPO, stored by a system executing process 700, stored in a system associated with the organization, and/or stored in any other suitable location), such as the terms of any such arrangements, identifying information of one or more other parties in the arrangement (e.g., a supplier, a distributor, a third party, and the like), and/or any other suitable information related to such an arrangement to determine a net price that the organization can expect to pay for one or more particular items. For example, in some cases, an organization (e.g., directly, or through a cooperative such as a GPO) can be the beneficiary of a contract with a distributor guaranteeing a particular price on an item if one or more certain conditions are satisfied. As another example, the organization can receive a rebate on the same item from the manufacture if one or more conditions are satisfied (which may or may not overlap with the conditions associated with the contract in the previous example). In some embodiments, process 700 can utilize information about one or more arrangements to determine a likely net price for each item based on the existence of the one or more arrangements and the likelihood that the conditions associated with the arrangement (if any) will be satisfied.
In some embodiments, in which price information is provided by the distributor at regular and/or irregular intervals, process 750 can return to 756 to await updated information after generating and/or updating the harmonized price information. For example, in some embodiments, process 750 can omit 752, 754, 758, 760, and 764 when price information is only obtained from a particular distributor via the distributor pushing price information to a location from which process 750 can retrieve the price information.
At 764, process 750 can determine whether a predetermined amount of time has elapsed since the harmonized price information was updated. If process 750 determines that the predetermined time has not elapsed (“NO” at 764), process 750 can continue to wait. Otherwise, if process 750 determines that the predetermined time has elapsed (“YES” at 764), process 750 can return to 752 to receive updated price information from the distributor. Note that, in some embodiments, a portion of process 750 can be executed asynchronously. For example, if a portion of the distributor's systems are not configured to respond to queries for particular price information, process 750 can receive price information from the distributor at 756 when the information is sent (e.g., pushed) from the distributor's system(s), which may not coincide with times at which information is requested at 758.
At 804, process 800 can create a master list or product group that includes the first item. In some embodiments, when an item is first added to a general order guide, process 800 can automatically create a master list or product group associated with the item. In some embodiments, if a product group already exists for a product that can be a substitute for the product to be added based on the request at 802, process 800 can identify the existing product group and/or process 800 can automatically add the selected item to the existing product group.
At 806, process 800 can determine whether the first item is available in at least all portions of the distribution network to which the organization associated with the order guide has access (e.g., in each distribution center that serves a facility associated with the organization). Additionally or alternatively, in some embodiments, at 806, process 800 can determine whether the first item is available in at least all portions of the distribution network associated with a particular general order guide. For example, process 800 can submit a request to a system that maintains information about which items are available across the distributor's distribution network. In a more particular example, process 800 can submit a query to a unified encrypted database (e.g., database 304) of inventory across all nodes in the distributor's distribution network for information about the first item. In some embodiments, process 800 can receive information indicating from which nodes the first item is available (and/or from which nodes the first item is normally available), and can compare those nodes in which the item is available to nodes which the facilities associated with the organization have access (e.g., comparing a list of distribution centers which can deliver the item to a particular region to a list of regions in which the organization has facilities and/or a list of facilities that are each associated with a region). In some embodiments, a user interface that presents information about items included in a general order guide, items included in a master list or product group, items included in search results, or any other time a user interface is presenting information about an item, the user interface can present coverage information indicating how many of the facilities are within a portion of the distribution network in which the item (or items included in a master list or product group corresponding to the item) is available. For example, coverage information can be presented as shown in, and described below in connection with,
At 808, process 800 can determine whether the first item is available across the portions of the distribution network to which the organization has access. If process 800 determines that the first item is available across the portions of the distribution network to which the organization has access (“YES” at 808), process 800 can move to 808.
At 810, process 800 can determine whether a request has been received to surface alternatives to the first item. For example, such a request can be manually initiated via selection of a particular user interface element. As another example, such a request can be programmatically initiated in response to a determination that the organization may be interested in being presented with alternatives (e.g., which can be indicated by a setting, by past conduct, and the like). As yet another example, such a request can be initiated whenever information about a particular item and/or a master list or product group that includes the particular item is presented. In a more particular example, if a user navigates to a portion of a user interface that presents information about a particular item, process 800 can consider navigation to that portion of the user interface to be a request to surface alternatives. As still another example, such a request can be initiated periodically at regular and/or irregular intervals. In a more particular example, a request can be initiated for different organizations in turn such that alternatives are surfaced for each of the organizations at least once in a particular period of time. In such an example, alternatives can be surfaced for each of the organizations at least once per day, per week, per month, or any other period of time. Such alternatives can be surfaced to, for instance, determine when there is an opportunity for savings. In some embodiments, a request to surface alternatives can be received when a particular user interface element is presented in a user interface, such as a field for presenting alternatives to a presented item. Alternatively, in some embodiments, a user may browse for other items (e.g., by navigating to another portion of the user interface, by entering one or more terms into a search field of the user interface, or the like).
If process 800 determines that a request has been received to surface alternatives to the first item (“YES” at 810), or if process 800 determines that the first item is unavailable in at least one portion of the distribution network to which the organization has access or a given facility has access (“NO” at 808), process 800 can move to 812.
At 812, process 800 can identify one or more alternatives for the first item. In some embodiments, process 800 can use any suitable technique or combination of techniques to identify alternatives to the first item, such as techniques described below in connection with
At 814, process 800 can indicate, for alternative items surfaced (e.g., automatically by process 800, or via a user initiated search for the one or more additional items), information indicative of whether each item is available where the first item (and/or other items in a master list or product group corresponding to the first item) is not available. Such information can be presented using any suitable technique or combination of techniques. For example, the information can be presented numerically. In a more particular example, process 800 can present the information using a number indicating how many more regions the item would cover compared to how many regions are currently covered. As another example, the information can be presented graphically. In a more particular example, process 800 can present the information using a pie chart or bar graph showing current coverage in a first color, additional coverage provided by the item in a second color, and regions still lacking coverage in a third color. In another more particular example, process 800 can present the information using different colors to indicate how much additional coverage is provided by an item. A first color (e.g., red) can indicate that the item provides no additional coverage, a second color (e.g., yellow) can indicate that the item provides some additional coverage, and a third color (e.g., green) can indicate that the item provides coverage for all regions that previously lacked coverage.
At 816, process 800 can suggest one or more alternatives to the first item for potential inclusion in a master list or product group for a class of items that includes the first item and the suggested alternative(s). For example, if the first item is a particular size container of detergent from a first supplier (e.g., a first brand of detergent), but that item is not available in all portions of the distribution network to which the organization has access or a given facility has access, process 800 can suggest detergent from another supplier and/or in a different size that is available in a portion of the distribution network in which the first item is not as a potential substitute to potentially include in a master list for the class “detergent.” In some embodiments, process 800 can use any suitable technique or combination of techniques to suggest the one or more alternatives. For example, process 800 can suggest the one or more alternatives by presenting the alternatives identified at 812 in a particular order. As another example, process 800 can suggest the one or more alternatives by highlighting (in any suitable manner) a lowest priced alternative, an alternative that provides the most additional coverage, an alternative that meets brand, nutrition, or other standards, and/or other similar criteria. In some embodiments, the suggested alternatives can be available via multiple different distributors.
At 818, process 800 can receive a request to add one or more of the suggested alternative items to the master list or product group. For example, a user can select one or more of the alternatives and/or select a position within the master list to place each of the one or more selected alternatives. In some embodiments, a product group can include items from multiple different distributors.
At 820, process 800 can determine whether a user has completed interaction with a particular master list or product group. In some embodiments, any suitable action can indicate that the user has completed interaction with a particular master list or product group. For example, process 800 can determine that a user has completed interaction with a particular master list or product group when the user navigates to a different portion of a user interface (e.g., to the general order guide associated with the master list or product group, to another master list or product group, to a list of general order guides, and/or another portion of the user interface that is not configured to edit which items are included in a particular master list or product group). As another example, process 800 can determine that a user has completed interaction with a particular master list or product group when the user stops interacting with the user interface (e.g., by signing out, closing an application, selecting a user interface element to save a current state of a master list or product group, or any other suitable action indicating that a user has stopped interacting with the user interface).
If process 800 determines that a user has not completed interaction with a particular master list or product group (“NO” at 820), process 800 can return to 802 (or any other portion of process 800 preceding 820, such as 804 to 818) to continue to edit a particular master list or product group. Otherwise, if process 800 determines that a user has completed interaction with a particular master list or product group (“YES” at 820), process 800 can move to 822. At 822, process 800 can use the master list or product group during creation or one or more facility order guides. For example, process 800 can use the order in which items are included in the master list or product group to select which of the items to include in the facility order guide being created. In such an example, process 800 can select the highest ranked item that is also available in the portion of the distribution network associated with the facility. As another example, process 800 can determine which item to select from the master list or product group based on price information. In such an example, process 800 can select the lowest priced item (e.g., by price per count, per pound, per ounce, or the like, rather than per unit) that is also available in the portion of the distribution network associated with the facility. Note that, in some embodiments, a facility order guide can include items available from different distributors. In such embodiments, when being used during an ordering process (e.g., via a procurement system), items available from different distributors can be presented in a unified user interface. Additionally or alternatively, in some embodiments, items available from different distributors can be presented using different user interfaces that can be presented serially or in parallel. For example, a user can be presented with a first user interface for ordering items in the order guide from one distributor, and when that is complete can be presented with another user interface for ordering items in the order guide from a second distributor. As another example, a user can be presented with a first user interface for ordering items in the order guide from one distributor, and can be presented with another user interface for ordering items in the order guide from a second distributor at the same time (e.g., as two different applications, as two different browser windows, as different tabs within a single browser window).
As yet another example, process 800 can determine which item to select from the master list or product group based on stocking information. In such an example, process 800 can sort the items in the master list or product group based on information indicating how readily available the item is, and can select an item that is most readily available that also meets another criteria or criterion such as highest priority or lowest price. Items can be available in a particular region because the items are currently physically located at the distribution center (which can be a category that is most readily available), the items can be sourced from a nearby distribution center relatively quickly (e.g., the item can be available on demand, but is not currently physically located at the distribution center), or the items can be sourced from a central distribution center (e.g., the items are available, but may not be shipped for several days, which can be a category that is least readily available).
At still another example, process 800 can determine which item to select from the master list or product group based on one or more other criteria or criterion, such as based on size (e.g., an organization may prefer a particular size over another), based on brand, based on contract status (e.g., if the organization has a contractual relationship with the distributor or a supplier in connection with the item), and/or any other suitable criterion or criteria.
In some embodiments, having identified a preferred item, process 800 can determine whether the preferred instance of the item is available in the subnetwork of the distribution network in which the facility is located. For example, process 800 can query a unified database associated with the distributor's available inventory and/or a database associated with the particular node(s) corresponding to the subnetwork in which the distribution network is located to determine whether the preferred item is available to that particular facility. Additionally, process 800 can determine whether the preferred item could be transferred from another distribution center to the node serving that facility to be shipped to the facility at the time as specified by the order.
If, when an order is being submitted for a particular facility, process 800 determines that the preferred instance of the item is not available for shipment to that facility from a node of the distribution network corresponding to that facility, process 800 can determine which of the alternatives in the product group is available and/or whether a next most preferred instance of the item is available from that node. In some embodiments, process 800 can determine the preferred instance of the item based on a one or more rules specified by the organization, which can be specified on an organizational level, a facility level, or a general order guide level. For example, the organization can select a rule based on the explicit priority assigned to each instance of the items. As another example, the organization can select a rule based on the stocking status (e.g., whether the item is stocked locally, or if it is stocked elsewhere but can still be ordered from the distribution center). As yet another example, the organization can select a rule based on price (e.g., the lowest price per count can be selected). As still another example, the organization can select a rule based on contract status (e.g., whether the organization has entered into a contractual relationship obligating the organization to preferentially purchase particular items, or allowing the organization to purchase particular items at reduced prices if certain conditions are met). In some embodiments, the initial decision about which instance to place on the facility order guide can be based on whether the item is stocked, but may not account for the amount that is stocked. For example, if the facility normally orders 100 units of an item, but only 25 units of that item are stocked, process 800 may place the item on the order guide regardless. Additionally or alternatively, in some embodiments, process 800 may select a different item, or may add alternatives (e.g., less preferred items) to a list of acceptable alternatives if that item is out of stock.
In some embodiments, process 800 can use any suitable factor(s) to determine which item from the master list to substitute for a most preferred item. For example, process 800 can select the alternative that would produce the lowest cost. As another example, process 800 can select an alternative based on the existence of a contractual relationship. In such an example, if the organization has an obligation to purchase a particular brand (e.g., due to a GPO contract with the supplier), process 800 can select the alternative in order to satisfy this obligation if possible. As yet another example, process 800 can select an alternative based on brand preferences, which can be made explicitly by a user or implied from past behavior of a user. In such an example, any suitable technique can be used to imply brand preference, such as machine learning techniques. Machine learning techniques that can be used to infer brand preference can include Random Forest techniques, K-Means clustering techniques, Word2Vec techniques, convolutional neural network classification techniques, recurrent neural network techniques, any other suitable machine learning techniques, and any suitable combination thereof.
In some embodiments, if process 800 determines that none of the items on the master list are available for a particular facility, process 800 can take an alternate action. For example, process 800 can alert a user that the item could not be placed on the facility order guide. In such an example, process 800 can present one or more alternatives that are available for the particular facility, and the user can indicate which (if any) to include in the facility order guide, and/or whether the selected item is to be added to the master list or product group. As another example, process 800 can automatically identify an alternative to be added to the facility order guide. In such an example, process 800 can determine which alternative to add based on the products ranking in a list of identified alternatives to at least one item in the master list. Additionally, a ranking can be based on how many of the items in the master list or product group are identified as being alternatives to an item surfaced automatically by process 800.
In some embodiments, process 900 can identify and present saving opportunities using any suitable technique or combination of techniques. For example, process 900 can identify items in a product group, at least a portion of a purchase history of the organization (e.g., products purchased by a facility, how much was purchased) for any suitable length of time (e.g., three months, six months, 12 months). For each product group, process 900 can calculate the cost per unit (e.g., per quantity, per mass/weight, per volume), which can account for rebates and/or discounts available to the organization, and can select the cheapest item from the product group based on the cost. Additionally, in some embodiments, process 900 can calculate the cost of one or more alternatives to at least one item in the product group, and can determine whether any of the alternatives are cheaper. For each product group, process 900 can calculate savings based on the cost of the cheapest item, and based on the order history information. Process 900 can calculate how much the organization can save per time (e.g., per week, per month, per year) if the organization were to preferentially order the cheaper item/cheaper alternative. Process 900 can present a list of saving opportunities that have been identified (e.g., as a list of product groups and corresponding savings in descending order of total savings).
At 904, process 900 can identify one or more alternatives to the first item. In some embodiments, identifying alternatives can include querying a database and/or knowledge base for alternatives to the first item. In such embodiments, a process of classifying items as being alternatives can be performed asynchronously (e.g., periodically at regular and/or irregular intervals) such that the information is available when requested. Additionally or alternatively, in some embodiments, process 900 can identify one or more alternatives by determining one or more properties of the first item, and automatically searching for alternatives with similar characteristics.
In some embodiments, a second item can be identified as an alternative to the first product based on various properties. For example, process 900 can determine whether two items are alternatives based on a comparison of the description and/or product category of the first item and a description and/or product category of other items. As another example, process 900 can determine whether two items are alternatives based on a size and/or unit of measure of the first item and the other items. In a more particular example, where the first product is a gallon container of detergent from a first supplier, process 900 can identify containers of detergent of similar size from other suppliers as being potential alternatives, but can determine that packets of detergent from the first supplier may not be an acceptable alternative.
As yet another example, process 900 can determine whether two items are alternatives based on nutritional content of the first item and other items that are potentially similar. For example, if the first item is low sodium vegetable stock, process 900 can determine whether potential alternatives have a particular sodium content.
As still another example, process 900 can determine whether two items are alternatives based on one or more properties of the first item and other items. More particular examples can included, if the first item is indicated as nut free, if the first time is in indicated as being gluten free, if the first time is in indicated as being organic, if the first time is in indicated as being conventional, if the first time is in indicated as being GMO free, and the like. In another more particular example, process 900 can determine whether another product is suitable for achieving the same outcome as the first item, which can include acting as a disinfectant for particular types of pathogens (e.g., bacteria, viruses, and/or other organisms). In some embodiments, various sources of knowledge can be used to determine whether a product is suitable for achieving a particular outcome, such as information provided by a government agency (e.g., a chart provided by the Centers for Disease Control and Prevention that identifies whether particular cleaning agents are suitable for use as disinfectants for particular pathogens).
As a further example, process 900 can determine whether two items are alternatives based on past user actions, such as which past suggestions were accepted and/or declined. In a more particular example, process 900 can use a trained model (e.g., trained using one or more machine learning techniques) that is provided information about which suggestions a user has adopted and/or which suggestions a user has declined as input, and provides output indicative of one or more alternatives to a particular item or items. In another more particular example, various products can be clustered using cluster analysis techniques, such as K-means clustering, mean-shift clustering, density-based spatial clustering of applications with noise. In such an example, products can be clustered across categories which can be used to determine, given products that a user has affirmatively selected, which other products the user may be interested in. Alternatives can be identified and/or ranked based on the product itself being similar, and also based on whether the product is in a cluster with other products that the user has affirmatively selected. Alternatively, users can be clustered based on similarity of user actions (e.g., product selections made by the users), and alternatives can be identified based on the product itself being similar and also based on how many other users in the same cluster have selected the product. In some embodiments, process 900 can generate signals that can be used to train and/or use trained models by affirmatively suggesting a product as an alternative and recording whether the user accepted or rejected the alternative, and/or what priority the user assigned to the alternative.
As another more particular example, if in the past a user (or users) have consistently expressed a brand preference when an item is not available for a particular facility, process 900 can determine that the user prefers a particular brand. In such an example, a particular item (e.g., a particular size of an item) is unavailable (e.g., when creating a facility order guide or at the time of ordering) or not available in a desired quantity, process 900 can suggest multiple items as alternatives such as an item from another supplier and an item from the same supplier in a different size, with the item from the other supplier being suggested first because it is less costly. If the user consistently chooses the item from the same supplier in spite of it appearing less desirable, process 900 can use this as a signal of brand preference for items from the first supplier.
In yet another more particular example, if a user consistently selects a particular quality of item (e.g., items can be classified into various quality levels, such as generic or private label, discount, standard, and premium), process 900 can use this as a signal indicative of the user's preference for a particular quality of product. In such an example, process 900 can preferentially suggest items of the quality preferred by the user regardless of whether the item is more expensive than other potential alternatives. This can be used as a signal across different types of products, such as if a user selects a generic item (e.g., a generic ketchup, a generic floor vacuum cleaner, a generic cleaning solution, a generic package of garbage bags, generic adhesive bandages, generic over the counter medication, generic light bulbs), the user may be open to other types of generic items, whereas if the user selects a corresponding branded item it may indicate that the user would be more interested in other branded items (which may be independent of whether the other items are associated with the same brand) even if they are not the least expensive option.
As an additional example, process 900 can determine whether two items are alternatives based on product relationships identified from menu planning activities. In a more particular example, a user can provide input indicating whether a particular item is not acceptable as an alternative and/or whether a particular item is an acceptable alternative, and in some cases a reason why the user considers the item to be acceptable or not. In such an example, this can be used as a signal when suggesting alternatives. If a user has identified two chicken breasts as being acceptable alternatives because the nutritional content is equivalent for the user's purposes, and has identified another chicken breast as not being an acceptable alternative because it has an unacceptably high sodium content, process 900 can utilize the information in determine whether other potential alternatives (e.g., other chicken breasts) are likely to be acceptable alternatives.
As another additional example, process 900 can determine whether two items are alternatives based on price. In a more particular example, two items may be very similar but the first item may be much less costly than the otherwise similar alternative. This may occur, for example, when the first item is a private label item and the second item is a brand name item. Alternatively, this may occur when the first item is a brand name item that is discounted based on a contractual relationship with the supplier, and the second item is a brand name item that is not discounted. In some embodiments, different properties of items can be used to determine whether an item is an alternative and/or how similar the item is as an alternative. For example, similarity for food products can be determined for various categories and/or properties such as: similarity based on product descriptions; similarity based on product categories; similarity based on product attributes (e.g., vegan, kosher, organic, low sodium, low fat, nut free, dairy free, and/or any other attributes); similarity based on unit of measure; match based on GTIN (UPC identifier); similarity based on nutritional analysis; similarity based on ingredients (e.g., common ingredients, mismatched equivalent ingredients, omitted ingredients); curated alternatives based on menu planning activities performed by users associated with the organization and/or users associated with other organizations; curated alternatives identified by a developer or other user associated with an entity providing access to process 900; past user behavior by all users (e.g., what have other users indicated as alternatives, such as by including two items in a product group); past user behavior particular to a specific user/organization. As another example, similarity for maintenance, repair and operations (MRO) products can be determined for various categories and/or properties such as: similarity based on product descriptions; similarity based on product categories; similarity based on product attributes (e.g., voltage/amperage, capacity, heat output, and/or any other attributes); similarity based on unit of measure; match based on GTIN (UPC identifier); similarity based on electrical power requirements; similarity based on materials (e.g., stainless steel, plastic, biodegradable, “green” alternatives, and/or any other attributes); curated alternatives based on product selection requirements performed by users associated with the organization and/or users associated with other organizations; curated alternatives identified by a developer or other user associated with an entity providing access to process 900; past user behavior by all users (e.g., what have other users indicated as alternatives, such as by including two items in a product group); past user behavior particular to a specific user/organization. In some embodiments, similarity scores can be generated for any of these properties and/or categories, and/or other properties and/or categories, and these similarity scores can be combined to generate a similarity score for a pair of items. Such a similarity score can be used to identify alternatives and/or to rank alternatives. In some embodiments, different similarity scores can be weighted differently. For example, past user behavior associated with the organization can be weighted more heavily than similarity based on unit of measure. In some embodiments, weights can be different for different users, such as if a user indicates that nutritional content or product attributes are especially important (either explicitly or implicitly), a similarity score that reflects similarity based on that category can be weighted more heavily.
In some embodiments, process 900 can determine whether a group of products is an alternative to a particular product or group of products. For example, if a product is composed of individual components, a group of products corresponding to the components can be identified as being an alternative to the product. In a more particular example, for a product (or item) such as a kit used to assemble a finished product, process 900 can identify the individual components as an alternative to the product. In another more particular example, for a single product (e.g., a finished product, a single package that includes multiple products) that can be assembled from components, process 900 can identify the components as being an alternative to the finished product. In some embodiments, process 900 can suggest a group of components as alternative to a product that is being presented and/or a product that is currently included on a general order guide. Additionally or alternatively, in some embodiments, where a group of products is an alternative to a product, and each product in the group is included in a particular order guide, process 900 can suggest the single product as an alternative to the group of products, especially if the single product presents an opportunity for savings.
Many examples exist of products that are composed of components. A very simple example is a package including multiple instances of the same item (e.g., a pack of 6 containers of a cleaning solution) can be an alternative to an equivalent amount of the same item in isolation and/or different sizes. As another example, a kit that includes various items that can be used to assemble a product (e.g., a kit that includes ingredients for a dish) can be an alternative to each item in isolation. In such an example, if it would be less expensive to purchase items corresponding to the items that are included in the kit, process 900 can suggest those items for inclusion as a group on a general order guide. As yet another example, a package that includes a variety of related items (e.g., various plastic utensils) can be an alternative to each item in isolation.
In some embodiments, if a particular product is available from a particular distributor, process 900 can identify alternatives that are available from a different distributor or distributors in the same portion of the distribution network. For example, if a particular product is available via a particular distributor, process 900 can present products available from that distributor as alternatives. As another example, if a particular product is available via the particular distributor, process 900 can present products available from a different distributor as alternatives. As yet another example, if a particular product is available via the particular distributor, process 900 can present a group of products available from the distributor as an alternative. As still another example, if a particular product is available via the particular distributor, process 900 can present a group of products available from a different distributor as an alternative. As a further example, if a particular product is available via the particular distributor, process 900 can present a group of products as alternative where one or more of the products presented as part of the group is available from the distributor and one or more of the other products presents as part of the group is available from a different distributor. In some embodiments, process 900 can present any combination of alternatives, including products available from the same distributor, products available from another distributor, and/or a group of products available from the same and/or a different distributor.
At 906, process 900 can determine an order for the identified alternatives. For example, process 900 can rank the potential alternatives based on how similar the alternatives are to the first item. Such a ranking can take into account multiple factors such as comparisons of the description and/or product category, size and/or unit of measure, nutritional content, product specifications, properties of the items, past user actions, menu planning and/or selection activities, cost, and the like.
At 908, process 900 can cause one or more of the identified alternatives to be presented to the user based on the ranking at 906. For example, process 900 can cause a highest ranked alternative to be presented, and in some cases, one or more other less highly ranked alternatives. In some embodiments, a cost difference of the alternative(s) can be presented to assist a user in determining which alternative (if any) to select. In such embodiments, the cost difference can be presented using various techniques, such a unit price difference, a difference in price per count or measure (e.g., per 100 count, per ounce, per kilogram, and the like). Additionally or alternatively, in some embodiments, a cost difference can be presented based on a difference in expected cost per time (e.g., per week, per month, per year) based on how much of the first item (or first class of item) the organization ordinarily purchases, and how much of the first item can (or must) replaced with an alternative.
At 910, process 900 can determine whether to end process 900 using any suitable technique or combination of techniques without incorporating user feedback into a model used to identifying and/or rank identified alternatives. For example, if alternatives are being presented and a user does not select any of the alternatives prior to navigating away from the alternatives, process 900 can end without considering the navigation to be feedback about the alternatives. As another example, if alternatives are being presented and a user closes the user interface, process 900 can end without considering it to be feedback about the alternatives presented.
If process 900 determines at 910 that process 900 is to end (“YES” at 910), process 900 can move to 912, and process 900 can end. Otherwise, if process 900 does not determine at 910 that process 900 is to end (“NO” at 910), process 900 can move to 914. At 914, process 900 can determine whether input has been received that is indicative of a user's preferences regarding one or more presented alternatives. For example, if a user selects one or more particular alternatives for inclusion in a master list or product group, process 900 can determine that input was received that is indicative of a user's preferences (e.g., indicating that the user prefers the selected alternative(s)). As another example, if a user selects a user interface element to manually search for alternatives, process 900 can determine that input was received that is indicative of a user's preferences (e.g., that the user is dissatisfied with all of the presented alternatives). As yet another example, if a user selects a user interface element to request that additional alternatives be automatically surfaced, process 900 can determine that input was received that is indicative of a user's preferences (e.g., that the user is dissatisfied with all of the presented alternatives). As still another example, input indicative of preference can be derived from inventory information (e.g., as described below in connection with
If process 900 determines that input indicative of preference has not been received (“NO” at 914), process 900 can return to 910 (or another earlier portion of process 900, such as 902). Otherwise, if process 900 determines that input indicative of preference has been received (“YES” at 914), process 900 can move to 916. At 916, process 900 can receive feedback regarding whether the suggested alternative (or one of the suggested alternatives) was added to the master list or product group, where in the master list or product group the alternative was added, if none of the alternatives were added to the master list, or if a user added an item to the master list that was surfaced via a user directed search, or any other feedback.
At 918, process 900 can use feedback received at 916 to update a model that is configured to identify and/or rank potential alternatives in the future. For example, as more users add a particular item to a master list that includes a first item, process 900 can determine that the item is more likely to be a preferred alternative to the first item. As another example, as users decline to add any of the presented alternatives, process 900 can determine that an item that has not been presented is likely to be a more preferred alternative. As yet another example, as users add an item to a master list or product group via a user directed search that was not included in an automatically surfaced set of alternatives for that master list or product group, process 900 can determine that the item is likely to be an appropriate alternative.
As shown in
As shown in
As shown in
Additionally, as shown in
As shown in
As shown in
As shown in
As shown in
In some embodiments, each transmitting device 1102 can be associated with a static location (e.g., a storage location, a room, an operating room, a nurse's station, a particular portion of a hallway, a door, and the like) within the facility. In such embodiments, the location of each transmitting device 1102 can be associated with identifying information of the transmitting device. For example, an inventory management system and/or inventory management service (e.g., inventory management service 404) can be used to create and/or maintain a data structure that includes identifying information of each transmitting device and associated location information. In a more particular example, the location information can be maintained in a database. Additionally or alternatively, in some embodiments, one or more transmitting devices 1102 can be associated with a mobile location (e.g., a medical cart, a medication cart, a medical device, an item of furniture, and the like) associated with the facility. In such embodiments, identifying information of the mobile location associated with a particular transmitting device 1102 can be associated with identifying information of the transmitting device. In some embodiments, as a mobile storage location (e.g., a medication cart) is moved from place to place, the location of the mobile storage location can be periodically (e.g., at regular and/or irregular intervals) determined and updated with the inventory management service. For example, one or more receiving devices (not shown) can be used to determine a location of a transmitting device 1102 associated with the mobile storage location.
In some embodiments, a computing device (e.g., a mobile computing device) can detect a signal transmitted by a particular transmitting device 1102, and can decode the signal to determine the identifying information of the particular transmitting device. Additionally, in some embodiments, the computing device can infer the distance from the strength of the detected signal.
In some embodiments, as described below in connection with
In some embodiments, any suitable technique or combination of techniques can be used to indicate that a particular item is being stored in the current location. For example, a user can be presented with a list of items (e.g., in a shipment, currently in inventory, and the like), and can provide input indicating which items are being stored at the current location.
As another example, a user can be prompted to capture information associated with a particular item. In such an example, the information can be identifying information of the item that specifically identifies the particular item, identifies what the item is, identifies a lot number associated with the item, identifies an expiration (or other use-by) date associated with the item, identifies one or more provenance dates, and/or any other relevant metadata associated with the item. In such an example, the user can be prompted to capture an image of a bar code associated with the item, which can be used to extract a UPC associated with the item. Additionally or alternatively, other techniques can be used to convey information, such as a QR code, a passive RFID device, a passive near field communication (NFC) device, and the like, which can be used to convey information about the item, such as a SKU, a UPC, a description of the item, a unique string of characters associated with that particular item, and the like.
In some embodiments, a user can convey inventory information related to a particular item utilizing a voice recognition system. For example, a user can be prompted to provide a description of an item into a microphone coupled to the user device (e.g., a mobile computing device or other suitable computing device). As another example, a user can be prompted to provide a quantity desired to replenish the stock of that item. In such embodiments, the inventory management service can generate an order for the desired quantity of the item and/or can add the desired quantity of the item to an order to be placed with a distributor.
Additionally, in some embodiments, user device 1152 can present a user interface that facilitate adding items that are in the storage location to an order. For example, in some embodiments, a user can provide input indicating that the user would like to reorder an item, and the user can be prompted to capture an image (or bring user device 1152 into scanning range for techniques such as NFC and RFID) of the item and/or a code associated with the item. Upon capturing such information, user device 1152 can transmit identifying information extracted from the image or signal (and/or can transmit the image or signal itself) to an order management system to be added to an order.
As another example, the task management system can be used assist personnel in performing an inventory in a variety of storage locations within a facility. For example, the task management system can provide a user interface that presents how much of each item is expected to be in inventory at each location, and can receive information about which items are actually in inventory at each location. The task management system can then be used to rectify one or more discrepancies, to locate items that are in inventory but are not in the expected/correct location, to determine whether any surplus or deficit of inventory exists, and/or any other tasks associated with tracking inventory.
At 1204, process 1200 can receive information related to where each item and/or portion of an item (e.g., when the item that is ordered includes multiple containers and/or pieces, such as boxes of gloves in a case of gloves that includes a certain number of boxes) is to be stored in the facility. For example, during order creation each item can be associated with a storage location, such as dry storage, freezer, cooler, medication cart, sterile storage, and the like. In some embodiments, when ordering or inventorying certain consumable items (e.g., those that require replenishment periodically at regular and/or irregular intervals) a purchaser can be required to specify a location where the item is to be stored until used (e.g., a particular supply closet, a walk-in freezer, a particular dry storage area, or the like). Associating the item with a physical location can facilitate accurate tracking of inventory for each storage location. Additionally, this can facilitate implementation of shelf-to-sheet inventory tracking by associating a “shelf” location (e.g., a particular storage area, a particular portion of a storage area, or the like) with each item. In some embodiments, location information received at 1204 can be recorded in a database (or other suitable data structure) associated with process 1200. Additionally or alternatively, in some embodiments, location information received at 1204 can be conveyed to a distributor with an order that is placed with that distributor.
At 1206, process 1200 can cause a mobile device (e.g., user device 1152) to present items that are to be stored and a user interface that can be used to indicate which items are being stored and/or at which location the item is being stored. In some embodiments, the mobile device can retrieve information about the items that are to be delivered from a database associated with process 1200. For example, an order number or other suitable identifying information associated with the order can be provided to process 1200 (e.g., via a manual input device such as a keyboard and/or touchscreen, via selection of a user interface element corresponding to the order from a list of pending and/or recent orders, via an image captured by a camera of the mobile device, via a voice command, and/or using any other suitable technique or combination of techniques).
In some embodiments, process 1200 can cause the information about a particular order to be presented at 606 in response to any suitable action or request. For example, in some embodiments, the mobile device can receive input selecting a particular order, and the mobile device can request information related to that order (e.g. process 1200 can receive a request from the mobile device to present items in a particular order).
At 1208, process 1200 can update inventory information based on information received from a mobile device. For example, process 1200 can store information such as the time an item was stored, a location at which it was stored, a serial number associated with the item, an expiration (or other use-by) date associated with the item, a date of manufacture, a lot number (or lot numbers) associated with the item, and the like.
At 1210, process 1200 can receive a request to present information about where items associated with a particular facility are stored. For example, an employee of the organization associated with the facility can access the inventory management service via a computing device (e.g., a mobile computing device or a desktop computing device). As another example, an employee of a vendor (e.g., a merchandiser) that services the facility can access the inventory management service via a computing device (e.g., a mobile computing device or a desktop computing device). In some embodiments, such a request can be initiated by an application that is used to guide an employee through a workflow that is, in part, based on retrieving items that are stored at various locations throughout a facility. For example, a new employee (e.g., especially in high turnover environments) may find it difficult to find all of the items required to perform a particular task, and the employee can be provided with a mobile device that can execute an application to provide directions to the employee based on the location of various items as recorded by the inventory management service. As another example, if an employee's job requires interacting with a large number of items that are stored throughout a building or set of buildings, it can be difficult for the employee to consistently locate all of the items. This can be exacerbated if the items are not consistently stored in the same locations. In such an example, the employee can be provided with access to the inventory management service (e.g., via a mobile device executing an application) to assist the employee in locating the items required to perform the employee's job. As yet another example, a task being performed by a user may require maintaining a record of a chain of custody of one or more items (e.g., drugs, surgical tools, a container in which a tissue sample has been collected), the user can be provided with a mobile device that can be used to find the items in inventory, record where the item is transferred to (e.g., a surgical tray, a medication cart, a medical cart), record when and/or how the item is used, and if appropriate, record how the item has been disposed of, or where the used item has been stored (e.g., for sterilization, for analysis by a laboratory).
Additionally or alternatively, in some embodiments, such a request can be initiated by an application that is used by a vendor to guide employees of the vendor through a workflow that is, in part, based on restocking items that are stored at various locations throughout a facility. For example, an employee of a vendor may find it difficult to find all of the storage areas that are to be restocked and/or to track which items can be used to restock each storage area, and the vendor employee can be provided with a mobile device that can execute an application to provide directions to storage areas based on the location of various items that are restocked by the vendor as recorded by the inventory management service.
At 1212, process 1200 can cause a user interface to be presented using the mobile device. In some embodiments, such a user interface can include inventory information about currently stored items which can be presented in any suitable fashion. For example, the items can be sorted by one or more of: age; expiration (or other use-by) date; lot number; provenance (e.g., for pharmacy/drug items); serial number; whether the item is in sterile inventory (e.g., for surgical tools, medical implants, and the like); name; and/or using any other suitable information. Additionally or alternatively, in some embodiments, such a user interface can include information about where items are normally stored (even if there are no such items currently stored).
At 1214, process 1200 can receive information indicating that an item has been removed from inventory. For example, a user can be prompted to capture an image of an item when retrieving the item (e.g., an image of a bar code, an image of the entire item), and process 1200 can use the image (or information extracted from the image) to determine which item is being removed from inventory. As another example, a user can be prompted to provide input indicating which item(s) is being removed, and a quantity of item(s) being removed. A particular example of a user interface that can be used to provide user input indicating which item(s) is being removed is described below in connection with
At 1216, process 1200 can update the inventory associated with the facility (and/or a particular storage area) based on the removal of the indicated item(s). In some embodiments, process 1200 can determine that a supply of a particular type of item is below a threshold level based on the updated inventory, and can prompt a user to add such an item to an order and/or can automatically add such an item to an order.
At 1218, process 1200 can receive a request to present information about tasks to be performed. In some embodiments, the tasks to be performed can be associated with a particular user (e.g., by an administrative user), and the request can be received from a device and/or application associated with the particular user. Additionally or alternatively, the tasks can be associated with a particular group and/or a particular activity. For example, the tasks can be associated with the maintenance staff, or with maintaining a particular system(s). In some embodiments, a list of tasks can be presented, which can, in some cases, include sub-tasks.
In some embodiments, the tasks to be performed can include any suitable tasks, which can include retrieving items that are stored in inventory, storing one or more items into inventory, and/or visiting one or more locations. For example, the tasks to be performed can be tasks associated with preparing a meal, which can include gathering a list of ingredients, and the location at which the ingredients are stored, gathering materials and/or tools used to prepare the meal (e.g., an appropriate pot, a cutting board, a knife, spices, etc.), and/or instructions to assist a user in preparing the meal. As another example, the tasks to be performed can be tasks associated with performing maintenance on one or more items, which can include identifying information and/or location information of the items on which maintenance is to be performed, a list of items required to perform the maintenance (e.g., tools, replacement parts, and the like), and/or instructions to assist a user in performing the maintenance. As yet another example, the tasks to be performed can be tasks associated with gathering items to be used in performing a medical procedure, which can include identifying information and/or location information of the items required to perform the medical procedure (e.g., tools, replacement parts, and the like), and/or instructions to assist a user in properly handling he items.
At 1220, process 1200 can cause a user interface to be presented that presents at least a portion of a workflow based on the tasks to be performed. In some embodiments, the workflow can include a list of tasks to be performed, with an indication of whether any of the tasks must be performed in a particular order and/or within a particular period of time. Additionally or alternatively, in some embodiments, the workflow can be presented graphically in connection with a depiction of locations within a facility at which the tasks are to be performed. For example, tasks can be presented as icons associated with particular locations, and a suggested path between locations can be presented in the user interface. Additionally, in some embodiments, one or more user interface elements can be provided that allow the user to indicate that a task has been completed, to provide information about the task and/or about the location or system associated with the task. For example, the user can provide notes about how the task was performed, or about anything unusual that occurred while performing the task. As another example, the user can capture an image of the location before and/or after the task was performed, which can be used to verify that the task was completed.
At 1222, process 1200 can receive information indicating that a user has visited a particular location and/or that the user has completed a particular task. For example, a mobile device can provide location information indicating whether the device has entered an area at which a task was to be performed. This can be used to verify, for example, that security personnel have visited a particular door and/or secure location. As another example, a user can provide input (e.g., by selecting a user interface element associated with a task) to indicate that a particular task has been completed. As yet another example, a user can provide input indicating that certain items have been retrieved, or that an item to be retrieved was missing.
At 1224, process 1200 can record information based on the task being completed and/or the particular location being visited. For example, if a particular task is to be performed periodically, process 1200 can record when the task has been completed and use the recorded information to track when the task is to be performed again. As another example, if a workflow requires visiting certain locations, process 1200 can determine which locations have and have not been visited. After recording such information, process 1200 can return to 1220 to present an updated user interface reflecting completion of the task and/or presenting a new task to be completed.
In some embodiments, a user can add items to an order at any time using a mobile device. For example, if a user is storing items (e.g., as described below in connection with
In some embodiments, a user can initiate an ordering action by selecting a particular user interface element, providing a particular verbal command, and/or capturing an image associated with an item that is not currently being stored and/or specifically retrieved.
In some embodiments, the identifying information can be provided to the mobile device using any suitable technique or combination of techniques. For example, the mobile device can execute an inventory management application that is associated with the facility (e.g., an employee of the organization that operates the facility can be logged in to the application), and the inventory management application can allow a user to provide input indicating a facility and/or order for which items are to be stored. In such an example, a list of options can be presented (e.g., a list of facilities, a list of orders) based on information in a portion of a database associated with the organization. As another example, the inventory management application can receive a current location of the mobile device (e.g., determined by the mobile device using a geolocation system of the mobile device, using multilateration techniques, or the like), and can compare the received location to locations of facilities to determine a current facility. As yet another example, the inventory management application can receive a code from the mobile device corresponding to a code emitted by a device that is physically present in or near the facility. In a more particular example, the code can be a UUID emitted by a beacon located at the facility and/or a storage area, and/or a code delivered by the beacon as a payload.
At 1304, process 1300 can determine that the user of the mobile device is authorized to access information about a selected order associated with the facility. In some embodiments, any suitable technique can be used to determine that the user is authorized to access the order information. For example, process 1300 can determine that a user that is logged in to an application being executed by the mobile device (and/or to a service being accessed by the mobile device) has been authorized by the organization associated with the facility to access the order. In such an example, the user can be an employee of the organization, and can be authorized (e.g., by an administrative user associated with the organization) to access orders associated with the facility, orders associated with a particular distributor, all order associated with the organization, a combination of the foregoing, and/or any other suitable orders.
As another example, process 1300 can determine that a user that is logged in to an application being executed by the mobile device (and/or to a service being accessed by the mobile device) has been authorized by a distributor to access orders associated with the distributor that are to be delivered to the facility and/or the organization. In such an example, the user can be an employee or contractor of the distributor. In a more particular example, process 1300 can determine that the order being accessed has been associated with the particular user. The distributor may authorize only certain users to access information about the order, which can, for example, prevent accidental access by another user.
In some embodiments, process 1300 can determine that the user is located in a vicinity of the facility associated with the order prior to determining that the user is authorized to access the order. For example, process 1300 can receive location information of the mobile device, and can verify that the mobile device attempting to access the order is within a predetermined range of the facility and/or a portion of the facility. As another example, process 1300 can receive information associated with the facility that is accessible in the vicinity of the facility and/or a portion of the facility. In a more particular example, the information can be a UUID of a particular beacon located near a particular portion of the facility (e.g., a front entrance of the facility, a loading dock of the facility, a secure closet within the facility, a mobile cart associated with the facility, or the like). In another more particular example, the information can be a code made available by one or more devices (e.g., a beacon, a wireless access point, a near field communication (NFC) tag, a radio frequency identification (RFID) tag, or the like) located within the facility and/or near a particular portion of the facility (e.g., a front entrance of the facility, a loading dock of the facility, or the like). In some embodiments, by inhibiting access to orders when a user is not within a vicinity of the facility, the user can be prevented from fraudulently indicating that items have been delivered to the facility.
In some embodiments, if process 1300 determines that the user is not authorized, process 1300 can return to 1304, or process 1300 can terminate.
At 1306, process 1300 can determine whether the user is attempting to access an existing order. For example, the user may be associated with a vendor that is responsible for restocking supplies in one or more storage areas of the facility, and the vendor may generate an order as needed, rather than storing items from an existing order. Such a vendor is sometimes referred to herein as a merchandiser. If process 1300 determines that the user is attempting to access an existing order (“YES” at 1306), process 1300 can move to 1308.
At 1308, process 1300 can cause the mobile device to present information related to the items associated with the order. In some embodiments, the information related to the items associated with the order can include any suitable information, such as identifying information associated with each item, a quantity of each item ordered, a storage area or areas at which the item(s) is to be stored, any suitable combination of such information, and/or any other suitable information.
At 1310, process 1300 can receive, from the mobile device, an indication of where one or more of the ordered items are being stored. For example, such an indication can be a transmission indicating that a particular item is being stored, and information that can be used to determine the location, such as a UUID (or UUIDs) of a transmitting device (or devices) associated with a particular location. In some embodiments, a user associated with the organization can operate the mobile device that transmits the indication of where one or more of the ordered items are being stored. For example, the user can be an employee of the organization that is responsible for managing inventory of one or more types of product (e.g., food, cleaning supplies, medical supplies, medication). In some embodiments, a user associated with the distributor can operate the mobile device that transmits the indication of where one or more of the ordered items are being stored. For example, the user can be an employee of the distributor or a contractor paid by the distributor that delivered the ordered items to the facility, and that is also responsible for stocking the items in one or more areas designated by the organization. In such an example, location information can be accessed from a database associated with process 1300 and/or a database associated with the distributor. In a more particular example, the mobile device used by the user associated with the distributor can retrieve location information via an application associated with the distributor, and the distributor can retrieve location information from the database associated with process 1300 and/or can maintain location information in a database associated with the distributor.
At 1312, process 1300 can determine that the quantity stored is correct and/or complies with one or more policies associated with the organization. For example, process 1300 can compare the quantity of a particular item that has been stored with the quantity included on the order. In such an example, if portions of the ordered quantity are to be stored in different storage areas, process 1300 can track the quantity until the user has visited each storage area and/or has indicated that storage of the order is complete before determining that the quantity is correct. In some embodiments, a user can be required to verify each item (or container of items) as the item is stored (e.g., by scanning a tag associated with the item, such as a barcode, an NFC tag, or the like). In some embodiments, if the quantity is not correct (e.g., if the quantity stored is smaller or larger than the quantity ordered), process 1300 can determine if the quantity complies with a policy associated with the facility and/or the organization. For example, as described below in connection with
At 1314, process 1300 can update an inventory associated with the facility and/or one or more storage areas associated with the facility based on storage of the indicated item(s) at 1310. In some embodiments, after an item has been stored and an inventory has been updated at 1314, process 1300 can return to 1308 and/or 1306.
If process 1300 determines that the user intends on storing items that are not associated with an existing order (“NO” at 1306), process 1300 can move to 1316. In some embodiments, process 1300 can determine that the user intends on storing items that are not associated with an existing order using any suitable technique or combination of techniques. For example, process 1300 can determine that no order exists from the distributor associated with the user of the mobile device. As another example, process 1300 can determine that the user of the mobile device is associated with a vendor that is responsible for restocking items at the facility. As yet another example, process 1300 can receive an indication that a user interface element associated with generating and/or updating an order has been selected.
At 1316, process 1300 can cause the mobile device to present information related to items that are available for stocking at the facility and/or at the storage area. In some embodiments, the information related to items that are available for stocking can include any suitable information. For example, the information related to items that are available for stocking items that the distributor is responsible for stocking at the facility. As another example, the information related to items that are available for stocking can include items from an order guide associated with the facility. As yet another example, the information related to items that are available for stocking can include items that have been stocked at the facility in the past and/or items that are acceptable for stocking at the facility.
At 1318, process 1300 can receive information indicative of an item that is to be stocked. For example, a user can provide input (e.g., via an input device such as a keyboard, microphone, or camera) indicating that a particular item is to be stocked.
At 1320, process 1300 can determine if the item to be stocked is a permitted item. In some embodiments, process 1300 can use any suitable technique or combination of techniques to determine whether the item is a permitted item. For example, process 1300 can determine whether the items are on a list of approved items associated with the facility. In a more particular example, process 1300 can determine whether the items are listed on an order guide associated with the facility and/or the organization.
If process 1300 determines that the item is not a permitted item (“NO” at 1320), process 1300 can cause the mobile device to present an indication that the item is not permitted for stocking, and can return to 1316. Otherwise, if process 1300 determines that the item is a permitted item (“YES” at 1320), process 1300 can move to 1322.
At 1322, process 1300 can determine that the quantity stored is correct and/or complies with one or more policies associated with the organization. In some embodiments, process 1300 can determine that the quantity stored is correct and/or complies with one or more policies associated with the organization using any suitable technique or combination of techniques, such as one or more techniques described above in connection with 1312.
At 1324, process 1300 can add the item(s) to an order and/or invoice. In some embodiments, process 1300 can generate an order and/or invoice as items are stocked by the user.
At 1326, process 1300 can receive information related to a storage area in which the item was stored. In some embodiments, process 1300 receives information related to a storage area in which the item was stored using any suitable technique or combination of techniques, such as one or more techniques described above in connection with 1310.
At 1328, process 1300 can update an inventory associated with the facility and/or one or more storage areas associated with the facility based on storage of the indicated item(s) at 1324 and/or 1326. In some embodiments, after an item has been stored and an inventory has been updated at 1328, process 1300 can return to 1316 and/or 1308.
At 1404, process 1400 can compare the quantity being stored and identifying information associated with the particular item to the order and/or to organization policies. In some embodiments, process 1400 can use any suitable technique or combination of techniques to compare the product to the order and/or organizational policies. In some embodiments, process 1400 can determine whether the item being stored is the item that was ordered based on the identifying information of the item (e.g., a UPC, a SKU, a semantically meaningful name, or the like). If the identifying information of the item being stored matches the identifying information of the item that was ordered, process 1400 can directly compare the quantity being stored to the quantity that was ordered, and determine whether the quantity is within a threshold quantity of the amount ordered (e.g., where the threshold can be based on organization policies). For example, the threshold may be zero, in which case the quantity being stored would need to exactly match the quantity that was ordered. As another example, the threshold may be a percentage of the amount ordered (e.g., plus or minus 10%, plus or minus 5%, plus or minus 1%, or the like). As yet another example, the threshold may be a quantity of containers. As still another example, the threshold may be a measured amount (e.g., in pounds, in ounces, in fluid ounces, in gallons, in cubic feet, in square feet, or the like).
In some embodiments, if the identifying information of the item being stored does not match the identifying information of the item that was ordered, process 1400 can compare the quantity being stored to an equivalent of the quantity that was ordered. For example, process 1400 can convert the unit of measure of the item being stored to an equivalent to the unit of measure of the item that was ordered. As another example, process 1400 can convert the unit of measure of the item that was ordered to an equivalent to the unit of measure of the item being stored. As yet another example, process 1400 can convert the unit of measure of the item being stored and the unit of measure of the item that was ordered to a common unit of measure. In a more particular example, if the item that was ordered is sold in cases of ten boxes that each include fifty units, and the item that is being stored is sold in cases of twelve boxes that each include thirty units, process 1400 can determine an equivalent or a common unit of measure. As described above, having converted one or both of the items, process 1400 can compare the quantities and determine whether the quantity is correct within a threshold.
In some embodiments, prior to comparing the quantity of the item being stored (e.g., a potential substitute item) to the ordered item, process 1400 can determine whether the item being stored is an acceptable substitute using any suitable technique or combination of techniques. For example, process 1400 can use one or more techniques described above in connection with 1320. If the item is not a suitable substitute, process 1400 can return to 1402 or can end.
At 1406, process 1400 can determine whether the quantity being stored is correct based on the comparison at 1404. If the quantity is correct (“YES” at 1406), process 1400 can end at 1408. Otherwise, if the quantity is not correct (“NO” at 1406), process 1400 can move to 1410.
At 1410, process 1400 can determine if the quantity that is not correct (sometimes referred to herein as the adjusted quantity) is acceptable based on the organizations policies. In some embodiments, an organization can set any suitable policies that can be used to determine whether an adjusted quantity is acceptable. For example, the organization can set a maximum quantity of particular items that can be stocked in the facility, in a particular storage area, and/or a maximum quantity of items that can be stocked for any single order. Under such a policy, if the quantity being delivered does not match the quantity ordered and is greater than the maximum or would result in the total amount stocked being greater than the maximum, process 800 can determine that the adjusted quantity does not comply with the policies. As another example, the organization can set a minimum quantity of particular items that are acceptable. In such an example, the organization may have a minimum amount that corresponds to the expected needs of the facility over a predetermined period of time, and if the quantity being stored would not bring the total quantity stored to at least the minimum, then the quantity may not be acceptable.
If process 1400 determines that the adjusted quantity is not acceptable (“NO” at 1412), process 1400 can move to 1414. At 1414, process 1400 can cause the order and/or invoice to be adjusted to indicate that the particular item was not received and/or was not accepted for delivery.
At 1416, process 1400 can determine if a suitable replacement is available for stocking and can add the replacement to the order based on organization policy. In some embodiments, process 1400 can use any suitable technique or combination of techniques to determine if a suitable replacement is available. For example, process 1400 can determine whether the organization has identified any items as being acceptable alternatives to the item that was ordered. In a more particular example, an acceptable alternative item can be an item that is included in a product group with the item that was ordered. In another more particular example, an acceptable alternative item can be an item that other organizations have identified as being an acceptable alternative (e.g., other similarly situated organizations). In yet another more particular example, an acceptable alternative item can be an item that has similar characteristics, and that has a price per unit that is within a threshold price of the ordered item. The characteristics can vary based on the type of item and the requirements of the organization. For example, an organization that operates healthcare facilities may require that any alternative food item have minimum nutritional requirements to be classified as an acceptable alternative.
As another example, process 1400 can determine whether an acceptable alternative is currently available for stocking. In such an example, process 1400 can evaluate the items that are available for stocking based on items that have been loaded onto a delivery vehicle that is currently located at the facility (e.g., a delivery truck that was used to deliver the current delivery), that can be routed to the facility, and/or that can be loaded onto a delivery vehicle and delivered by a certain time (e.g., prior to the facility closing). In some embodiments, process 1400 can determine whether an item that is intended for delivery to a different facility can be used as a replacement based on the policy or policies of the organization associated with the different facility. For example, if the facility for which items are meant for would accept a lower quantity of items today and/or would accept delayed delivery, process 1400 can indicate that the item can be used as a replacement item. Note that the replacement item may be identical to the ordered item. For example, if there are additional units of the ordered item on the delivery vehicle that are meant for delivery to another facility, process 1400 can determine that these items can be used as a replacement if the organization associated with the other facility would accept a delay or reduced quantity (e.g., in return for a credit).
If process 1400 determines that there is not a suitable replacement available (“NO” at 1418), process 1400 can move to 1408 and end. Otherwise, if process 1400 determines that there is a suitable replacement available (“YES” at 1418), or if process 1400 determines that the adjusted quantity is acceptable (“YES” at 1412), process 1400 can move to 1420.
At 1420, process 1400 can adjust the order and/or invoice to reflect the adjusted quantity and/or the replacement of the ordered item with a substitute item.
At 1422, process 1400 can prompt a user to provide information related to the adjustment in quantity and/or in item. In some embodiments, the information can be any suitable information that can be used to later determine whether there was a difference between what was ordered and what was delivered. For example, the user can be prompted to enter a reason why the quantity differed, such as the delivery not including the ordered amount of the product, the amount ordered being greater than a maximum that can be stored when combined with the amount that is currently stocked (e.g., prior to delivery of additional items), a portion of the items delivered being unacceptable because of damage, spoilage, or the like, and/or any other suitable reason.
At 1424, process 1400 can record identifying information of the user that authorized the adjustment and/or recorded the reason for the adjustment.
At 1504, process 1500 can cause a user interface for recording the location of a storage area to be presented. For example, process 1500 can cause a user interface to be presented that includes instructions and/or user interface elements that can guide a user through a process of recording and/or modifying a location of a storage area.
At 1506, process 1500 can receive an indication that a user has selected an existing storage area and/or has selected a user interface element for adding a new storage area.
At 1508, process 1500 can determine whether a user element that initiates recording of a current location as the location of the selected and/or new storage area has been selected. If process 1500 determines that the user interface element that initiates recording of the current location has not been selected (“NO” at 1508), process 1500 can return to 1506 (e.g., to allow a user to select a different user interface, cancel process 1500, move to a position to be recorded as the location of the storage area, or any other suitable action). In some embodiments, process 1500 can determine whether the location has previously been associated with a storage area, and if so, can take an appropriate action. For example, process 1500 can inhibit multiple storage areas from being assigned to the same location. As another example, process 1500 can prompt a user to confirm whether the current location is associated with multiple storage areas (e.g., multiple closely located closets). As another example, process 1500 can prompt a user to move closer to the storage area to more precisely locate the storage area to be added (e.g., as the current location may be too close to a previously added storage location), or give the user the option of deleting a storage location that is currently associated with the location.
Otherwise, if process 1500 determines that the user interface element that initiates recording of the current location has been selected (“YES” at 1508), process 1500 can move to 1510. At 1510, process 1500 can determine if the current location can be stored using existing signals. For example, process 1500 can determine whether there are a sufficient number of signals and/or whether the signal strength of each signal exceeds a minimum value. In a more particular example, process 1500 can determine whether at least three beacon signals from different beacons are detectable at a sufficient signal strength to provide a reliable distance to each beacon. Note that this is merely an example, and process 1500 can use any suitable criterion or criteria to determine if existing signals are sufficient. In another example, process 1500 can determine that a single signal at a sufficiently large signal strength is sufficient (e.g., if the beacon is within a relatively small threshold distance, such as within 1 meter, and precision is not required by the organization). In such an example, a single beacon can be used for each storage area, and a process for identifying a storage area being accessed can determine that the storage area being accessed is the storage area corresponding to the highest signal strength.
If process 1500 determines that there are a sufficient number of signals with a signal strength greater than a threshold (“YES” at 1512), process 1500 can move to 1514, and can record the current location as the location for the storage area based on the signals that are at least the threshold signal strength. In some embodiments, the threshold signal strength can be any suitable signal strength, such as a signal strength corresponding to a particular distance from the transmitter.
In some embodiments, process 1500 can record the current location in relation to the signal transmitters for which signals are at least the threshold signal strength (or a predetermined number of the strongest signals). For example, process 1500 can record the current location as corresponding to a first distance from a first transmitter, a second distance from a second transmitter, and a third distance from a third transmitter. As another example, process 1500 can record the current location as corresponding to a first signal strength from a first transmitter, a second signal strength from a second transmitter, and a third signal strength from a third transmitter. In some embodiments, process 1500 can record the current location as a set of coordinates in a frame of reference defined by signal transmitters associated with the facility. For example, process 1500 can define a coordinate system for the facility based on various signal transmitters located in or around the facility based on the location of the transmitters and the signal strength profile(s) of the transmitters at various location in the facility.
However, if process 1500 determines that there are not a sufficient number of signals with a signal strength greater than a threshold (“NO” at 1512), process 1500 can move to 1516. At 1516, process 1500 can prompt a user to set up at least one additional transmitter to ensure that the number of transmitters with the signal strength over the threshold is satisfactory. In some embodiments, at 1516, process 1500 can provide a user interface that can be used to assist a user in placing an additional transmitter. For example, process 1500 can cause the user interface to prompt a user to move to an area that is within a certain range of the current location (e.g., zero to ten meters, two to ten meters, or any other suitable range), and in a direction away from existing transmitters (if possible). In some embodiments, process 1500 can present a signal strength for various detected transmitters, and can instruct a user to move in a direction in which one or more signal strengths decrease.
At 1518, after a user has installed a new transmitter (or moved an existing transmitter), process 1500 can prompt a user to return to the storage area for which the locations are to be recorded, and process 1500 can return to 1512.
In some embodiments, a user can select a user interface element corresponding to an existing storage area. For example, if the user selects the portion of the user interface corresponding to the “NW Closet” label, a user interface for managing the selected storage area can be presented as shown in
In some embodiments, a user can select a user interface element corresponding to a new storage area to the list of storage areas. For example, if the user selects the portion of the user interface corresponding to the “+Add New” label, a user interface for adding a new storage area can be presented as shown in
Additionally, in some embodiments, products and/or items associated with the new storage area can be managed. In such embodiments, a product and/or item can be added or removed from the new storage area, a minimum quantity and/or maximum quantity of the product and/or item that is permitted to be stored at the new storage area can be set, a unit of measure for a product and/or item can be set, and any other parameters associated with products and/or items that can be stored in the new storage area.
In some embodiments, the user interface indicating that the signal strength is not sufficient can include various user interface elements, such as a “help” user interface element, a “cancel” user interface element, and a “placed!” user interface element. In some embodiments, selecting the “help” user interface element can cause a user interface to be presented that can guide a user through a process of placing an additional transmitter (e.g., as described above in connection with 1516 of
In some embodiments, after determining which storage area the user is accessing, user device 1152 can present a user interface for managing items in an inventory associated with the storage area as shown in
In some embodiments, various items in inventory at the storage area and/or that are normally in inventory at the storage area but which may be temporarily depleted can be presented within the user interface, and one or more user interface elements used to present information about the inventory can be selectable to cause more information about the product to be presented, and/or to cause another user interface (e.g., a user interface in which the item can be added to an order) to be presented. For example, as shown in
For example, as shown in
A portion of a user interface 1832 is shown in
In some embodiments, user device 1152 can transmit a request 2004 for information about storage areas associated with a particular facility to server 402. In some embodiments, request 2004 can be based on a current location of user device 1152 (e.g., based on the UUID of beacon 1102-1 detected in the signal emitted at 2002 indicating that user device 1152 is located within the vicinity of the facility associated with beacon 1102-1). Alternatively, in some embodiments, request 2004 can be based on user input to a user interface (e.g., user input to the user interface shown in
In some embodiments, server 402 can receive the request 2004 for information about storage areas associated with the facility, and can transmit storage area information that can be used to present information about which storage areas are associated with the facility, products/items that are permitted to be stored within the storage areas, and/or any other suitable information.
In some embodiments, user device 1152 can receive the information 2006, and can present a user interface with the storage areas currently associated with the facility and/or storage areas that are close to the current location of user device 1152. For example, user device 1152 can present a user interface such as the user interface shown in
In some embodiments, user device 1152 can receive user input to add and/or modify a storage area at 2008. For example, a user can select a portion of the user interface shown in
In some embodiments, user device 1152 can determine, at 2010, that the signal strength of current beacons is not sufficient to accurately locate the storage area being added/modified, and can prompt the user to add an additional beacon.
In some embodiments, at 2012, the user can add a new beacon 1102-2, which can begin emitting signals at 2014. After the user has installed the new beacon at 2012 (e.g., indicated by selecting a particular user interface element, such as the “placed!” user interface element shown in
In some embodiments, user device 1152 can determine, at 2018, that the signal strength of current beacons is now sufficient to accurately locate the storage area being added/modified, and can assign the current location to the storage area. As described above, in some embodiments, prior to permitting a user to add a new storage area at 2008, user device 1152 can determine whether a storage area has already been assigned to the current location (e.g., by checking storage area information 2006 received from server 402), and if a storage area already is assigned to a current location (or within a threshold distance of the current location), user device 1152 and/or server 402 can take an appropriate action, such as inhibiting addition of a new storage area, or another action (e.g., described above in connection with
In some embodiments, user device 1152 can transmit, at 2020, information that can be used to record the location of the storage area to server 402, which can record the location information. For example, in some embodiments, user device 1152 can transmit pairs of UUID and signal strength, which can be used by server 402 to determine a location of user device 1152 when the signals were recorded in a local coordinate system associated with the facility (or a portion of the facility). As another example, in some embodiments, user device 1152 can determine the coordinates of the storage location (e.g., if the coordinates of each beacon are known by user device 1152). As yet another example, in some embodiments, user device 1152 can transmit pairs of UUID and signal strength, which can record by server 402 to be used when determining which storage area is located near user device 1152 (or another user device).
In some embodiments, server 402 can receive request 2102 for information about orders associated with the facility/a storage area(s), and can determine that the user is authorized to access the order information at 2104. For example, if the user that is logged in via user device 1152 is an employee of the facility (and/or user device 1152 is associated with the facility), server 402 can determine whether the user is authorized by accessing a list of authorized users and/or devices associated with the organization.
In some embodiments, in response to determining that the user is authorized at 2104, server 402 can transmit information about orders associated with the facility at 2106. In some embodiments, user device 1152 can receive the information 2106, and can present a user interface with information about current orders and/or recent orders, and a user can select a particular order. Additionally or alternatively, if identifying information of a particular order were transmitted at 2102, user device 1152 can present information about that particular order.
In some embodiments, beacon(s) 1102 can emit signals at 2108, and can continue to emit signals periodically and/or substantially continuously. In some embodiments, the signal(s) emitted at 2108 can include identifying information associated with beacons 1102 (e.g., UUIDs associated with each beacon 1102).
In some embodiments, user device 112 can detect, at 2110, the current location of user device 1152 by detecting signals emitted at 2108 from one or more beacons. For example, user device 1152 can attempt to detect signals emitted by beacons, and can determine the relative signal strength in comparison to an expected maximum signal strength.
In some embodiments, user device 1152 can, at 2112, present a user interface with items from a particular order that are to be stored in a storage area in the vicinity of user device 1152.
In some embodiments, user device 1152 can, at 2114, receive input indicating that an item is being stored. In some embodiments, such input can be provided via the user interface and/or can be provided using another input device (e.g., a camera, a microphone, or the like). In some embodiments, a user can provide an indication of the quantity of the item that is being stored. Additionally or alternatively, in some embodiments, the user can be prompted to scan each container (e.g., box, case, can, jar, or any other suitable container) or item as the item(s) is being stored. Note that the units of measure in which a product/item is stored can differ from the unit of measure in which the product is ordered and/or delivered. For example, an item can be delivered in a purchase unit of measure (e.g., an arbitrary value used to describe the product, such as a “Case” or “Package”). In some embodiments, this unit of measure can be extracted from order information, but the user can provide a different unit of measure when an item is being stored. For example, a case of an item can come packaged as a number of boxes that each contain individual packages of products. In such an example, storage area A may be used to store a relatively large quantity (e.g., an entire box or boxes) and the quantity can be recorded in terms of boxes, while storage area B may be used to store a smaller quantity (e.g., because storage area B only has space for a single package, or because not as much is needed in the vicinity of storage area B) and the quantity can be recorded in terms of packages. In some embodiments, arbitrary names (e.g., case, box, package) can be mapped using numerical values. For example, if a case contains 6 boxes, and each box then contains 3 packages, which each contain 10 units, these conversion values can be used to indicate the number of packages or units that are currently stored, in addition to the more arbitrary labels. In some embodiments, the conversion values can be used when determining a quantity to order, as an item may be available in different quantities at different prices, which may not otherwise be apparent to a user.
In some embodiments, user device 1152 can transmit, at 2116, information about the current location (e.g., based on signals detected at 2110, based on a storage area identified based on the signals detected at 2110), an item that is being stored, and a quantity of the item that is being stored. In some embodiments, user device 1152 can transmit any other suitable metadata associated with the item or items being stored, such as a lot number(s) for the item(s) being stored, a serial number(s) for the item(s) being stored, a manufacture date(s) for the item(s) being stored, a provenance date(s) for the item(s) being stored, an expiration (or other use-by) date(s) for the item(s) being stored, when the item was last sterilized, and/or any other suitable metadata.
In some embodiments, server 402 can receive the information 2116, and can update an inventory associated with the storage area if the quantity stored is correct and/or permitted at 2118 (e.g., as described above in connection with
In some embodiments, user device 1152 can transmit a request 2204 for an order or orders associated with a facility and/or storage area(s) to server 402. In some embodiments, request 2204 can be associated with information encoded in the signal(s) emitted at 2202, which server 402 can use to verify that user device 1152 is in the presence of at least one beacon associated with the facility.
Additionally, in some embodiments, request 2204 can be based on user input to a user interface (e.g., user input to the user interface shown in
In some embodiments, server 402 can receive request 2204 for information about orders associated with the facility/a storage area(s), and can determine that the user is authorized to access the order information at 2206. For example, if the user that is logged in via user device 1152 is an employee of the distributor (and/or user device 1152 is associated with the distributor), server 402 can determine whether the user is authorized by accessing a list of authorized users and/or devices associated with the distributor, and verifying that the information associated with the request indicates that user device 1152 is located within, or in the vicinity of, the facility. In some embodiments, a user associated with the distributor can access the order when not in the vicinity of the facility, but may be inhibited from making changes (e.g., indicating that items have been delivered or stored, making changes to the order, or the like).
In some embodiments, in response to determining that the user is authorized at 2206, server 402 can transmit information about an order(s) associated with the facility at 2208. In some embodiments, user device 1152 can receive the information 2208, and can present a user interface with information about current orders and/or recent orders, and a user can select a particular order. Additionally or alternatively, if identifying information of a particular order were transmitted at 2204, user device 1152 can present information about that particular order.
In some embodiments, beacon(s) 1102 can continue to emit signals periodically and/or substantially continuously at 2210. In some embodiments, the signal(s) emitted at 2210 can include identifying information associated with beacons 1102 (e.g., UUIDs associated with each beacon 1102).
In some embodiments, user device 1152 can detect, at 2212, the current location of user device 1152 by detecting signals emitted at 2202 and/or 2210 from one or more beacons. For example, user device 1152 can attempt to detect signals emitted by beacons 1102, and can determine the relative signal strength in comparison to an expected maximum signal strength.
In some embodiments, user device 1152 can, at 2214, present a user interface with items from a particular order that are to be stored in a storage area in the vicinity of user device 1152, as determined using signals emitted at 2210.
In some embodiments, user device 1152 can, at 2216, receive input indicating that an item is being stored. In some embodiments, such input can be provided via the user interface and/or can be provided using another input device (e.g., a camera, a microphone, or the like). In some embodiments, a user can provide an indication of the quantity of the item that is being stored. Additionally or alternatively, in some embodiments, the user can be prompted to scan each container (e.g., box, case, can, jar, or any other suitable container) or item as the item(s) is being stored.
In some embodiments, user device 1152 can transmit, at 2218, information about the current location (e.g., based on signals detected at 2202 and/or 2210, based on a storage area identified based on the signals detected at 2202 and/or 210), an item that is being stored, and a quantity of the item that is being stored. In some embodiments, user device 1152 can transmit any other suitable metadata associated with the item or items being stored, such as a lot number(s) for the item(s) being stored, a serial number(s) for the item(s) being stored, a manufacture date(s) for the item(s) being stored, a provenance date(s) for the item(s) being stored, an expiration (or other use-by) date(s) for the item(s) being stored, when the item was last sterilized, and/or any other suitable metadata.
In some embodiments, server 402 can receive the information 2218, and can update an inventory associated with the storage area if the quantity stored is correct and/or permitted at 2220 (e.g., as described above in connection with
In some embodiments, user device 1152 can transmit a request 2304 for order guide information associated with a facility and/or storage area(s) to server 402. In some embodiments, request 2304 can be associated with information encoded in the signal(s) emitted at 2302, which server 402 can use to verify that user device 1152 is in the presence of at least one beacon associated with the facility.
Additionally, in some embodiments, request 2304 can be based on user input to a user interface (e.g., user input to the user interface shown in
In some embodiments, server 402 can receive request 2304 for order guide information (e.g., information about items that can be stocked at the facility) associated with the facility/a storage area(s), and can determine that the user is authorized to access the order information at 2306. For example, if the user that is logged in via user device 1152 is an employee of the merchandiser/distributor (and/or user device 1152 is associated with the merchandiser/distributor), server 402 can determine whether the user is authorized by accessing a list of authorized users and/or devices associated with the merchandiser/distributor, and verifying that the information associated with the request indicates that user device 1152 is located within, or in the vicinity of, the facility. In some embodiments, a user associated with the merchandiser/distributor can access order guide information when not in the vicinity of the facility, but may be inhibited from generating or making changes to an order (e.g., indicating that items have stocked, making changes to the order, or the like).
In some embodiments, in response to determining that the user is authorized at 2306, server 402 can transmit order guide information about items that can be stocked at the facility at 2308. In some embodiments, user device 1152 can receive the order guide information 2308, and can present a user interface with information about which items can be stocked, and where (e.g., which storage areas) the items can be stocked.
In some embodiments, beacon(s) 1102 can continue to emit signals periodically and/or substantially continuously at 2310. In some embodiments, the signal(s) emitted at 2310 can include identifying information associated with beacons 1102 (e.g., UUIDs associated with each beacon 1102).
In some embodiments, user device 1152 can detect, at 2312, the current location of user device 1152 by detecting signals emitted at 2302 and/or 2310 from one or more beacons. For example, user device 1152 can attempt to detect signals emitted by beacons 1102, and can determine the relative signal strength in comparison to an expected maximum signal strength.
In some embodiments, user device 1152 can, at 2314, present a user interface with items that can be stocked in a particular storage area in the vicinity of user device 1152, as determined using signals emitted at 2310.
In some embodiments, user device 1152 can, at 2316, receive input indicating that an item is being stocked. In some embodiments, such input can be provided via the user interface and/or can be provided using another input device (e.g., a camera, a microphone, or the like). In some embodiments, a user can provide an indication of the quantity of the item that is being stored. Additionally or alternatively, in some embodiments, the user can be prompted to scan each container (e.g., box, case, can, jar, or any other suitable container) or item as the item(s) is being stored.
In some embodiments, user device 1152 can transmit, at 2318, information about the current location (e.g., based on signals detected at 2302 and/or 2310, based on a storage area identified based on the signals detected at 2302 and/or 2310), an item that is being stored, and a quantity of the item that is being stocked. In some embodiments, user device 1152 can transmit any other suitable metadata associated with the item or items being stored, such as a lot number(s) for the item(s) being stored, a serial number(s) for the item(s) being stored, a manufacture date(s) for the item(s) being stored, a provenance date(s) for the item(s) being stored, an expiration (or other use-by) date(s) for the item(s) being stored, when the item was last sterilized, and/or any other suitable metadata.
In some embodiments, server 402 can receive the information 2318, and can update an inventory associated with the storage area and/or can update an order, if the quantity being stocked is correct and/or permitted at 2320 (e.g., as described above in connection with
In some embodiments, user device 1152 can transmit a request 2404 for inventory associated with a storage area in a facility to server 402. In some embodiments, request 2404 can be associated with location information that is based on the signal(s) emitted at 2402, which server 402 can use to determine which storage area is closest to user device 1152 (e.g., to determine which storage area the user is most likely to be accessing).
Additionally, in some embodiments, request 2104 can be based on user input to a user interface (e.g., user input to the user interface shown in
In some embodiments, server 402 can receive request 2404 for inventory information associated with a storage area(s), and can determine that the user is authorized to access the inventory information at 2406. For example, if the user that is logged in via user device 1152 is an employee of the facility (and/or user device 1152 is associated with the facility), server 402 can determine whether the user is authorized by accessing a list of authorized users and/or devices associated with the facility.
In some embodiments, in response to determining that the user is authorized at 2406, server 402 can transmit information about inventory stored at the storage area and/or information about products/items that are permitted to be stored at the storage area at 2408. In some embodiments, server 402 can transmit any other suitable metadata associated with the item or items associated with the storage area, such as a lot number(s) for the item(s) being stored, a serial number(s) for the item(s) being stored, a manufacture date(s) for the item(s) being stored, a provenance date(s) for the item(s) being stored, an expiration (or other use-by) date(s) for the item(s) being stored, when the item was last sterilized, and/or any other suitable metadata.
In some embodiments, user device 1152 can receive the inventory information 2408, and can present, at 2410, a user interface with information about which items are currently stored in the storage area and/or which products/items are permitted to be stored.
In some embodiments, user device 1152 can, at 2412, receive input indicating that an item is being removed from storage. In some embodiments, such input can be provided via the user interface and/or can be provided using another input device (e.g., a camera, a microphone, or the like). In some embodiments, a user can provide an indication of the quantity of the item that is being removed. Additionally or alternatively, in some embodiments, the user can be prompted to scan each container (e.g., box, case, can, jar, or any other suitable container) or item as the item(s) is being removed.
In some embodiments, user device 1152 can transmit, at 2414, information about the current location (e.g., based on signals emitted at 2402, based on a storage area identified based on the signals emitted at 2402), an item that is being removed, and a quantity of the item that is being removed. In some embodiments, user device 1152 can prompt a user to select a particular item(s) to remove from inventory based on metadata received in connection with inventory information 2408. For example, a facility may operate a particular storage area according to a policy (e.g., a first-in, first-out policy) in which items that are stored first are to be removed first. In such an example, user device 1152 can prompt a user to select the instances of a particular item that were stored earliest when removing that item from the storage area (e.g., based on a lot number associated with the item, based on a serial number associated with the item, based on identifying information such as a visual code associated with the item, based on a storage location of the item). As another example, for perishable items, user device 1152 can prompt a user to select the instances of a particular item have an earliest expiration (or other use-by) date (e.g., based on a lot number associated with the item, based on a serial number associated with the item, based on identifying information such as a visual code associated with the item, based on a storage location of the item). Additionally or alternatively, in some embodiments, stocking rules can be implemented to encourage a policy (e.g., a first-in, first-out policy) to be followed. For example, when items are being stored, items that are already present can be placed to be most accessible (e.g., at the front of a shelf, at the top of a bin), while newly stocked items can be stored to be least accessible (e.g., at the back of a shelf, at the bottom of a bin). In such an example, when removing items, a user can be prompted to remove items that are located at the location designated for first-removal (e.g., the front of the shelf, the top of the bin), and may not be prompted to remove items having particular characteristics (e.g., specific lot numbers, specific serial numbers).
In some embodiments, server 402 can receive the information 2414, and can update an inventory associated with the storage area, if the quantity being removed stocked is permitted at 2416, and can transmit information about the updated inventory at 2418 to ensure that the amount currently stocked is synchronized between server 402 and user device 1152, such that the user can verify that the quantity that is recorded as being removed and still stored matches the items that are present in the storage area. Note that, in some embodiments, the quantity that a user can remove may be limited for particular types of items (e.g., high value items, controlled substances, or the like), and removing more than a particular amount may require authorization by an administrative user (e.g., an employee's supervisor, a pharmacist, or any other suitable administrative user).
In some embodiments, user device 1152 can transmit a request 2504 for inventory associated with a storage area in a facility to server 402. In some embodiments, request 2504 can be associated with location information that is based on the signal(s) emitted at 2502, which server 402 can use to determine which storage area is closest to user device 1152 (e.g., to determine which storage area the user is most likely to be accessing).
Additionally, in some embodiments, request 2504 can be based on user input to a user interface (e.g., user input to the user interface shown in
In some embodiments, server 402 can receive request 2504 for inventory information associated with a storage area(s), and can determine that the user is authorized to access the inventory information at 2506. For example, if the user that is logged in via user device 1152 is an employee of the facility (and/or user device 1152 is associated with the facility), server 402 can determine whether the user is authorized by accessing a list of authorized users and/or devices associated with the facility.
In some embodiments, in response to determining that the user is authorized at 2506, server 402 can transmit information about inventory stored at the storage area and/or information about products/items that are permitted to be stored at the storage area at 2508. In some embodiments, user device 1152 can receive the inventory information 2508, and can present, at 2510, a user interface with information about which items are currently stored in the storage area, which products/items are permitted to be stored, and/or which items can be ordered. In some embodiments, server 402 can use a count of current stock on hand (e.g., based on manual entry or the tracking of stock entering/leaving inventory as described above in connection with 1208 and 1214 of
In some embodiments, user device 1152 can, at 2512, receive input indicating that an item is to be ordered. In some embodiments, such input can be provided via the user interface and/or can be provided using another input device (e.g., a camera, a microphone, or the like). In some embodiments, a user can provide an indication of the quantity of the item that is being ordered. Additionally or alternatively, in some embodiments, the user can be prompted to scan a container (e.g., box, case, can, jar, or any other suitable container) or item as the item(s) that is being re-ordered.
In some embodiments, user device 1152 can transmit, at 2514, information about the current location (e.g., based on signals emitted at 2502, based on a storage area identified based on the signals emitted at 2502), an item that is being ordered, and a quantity of the item that is being ordered.
In some embodiments, server 402 can receive information 2514, and can generate and/or update an order associated with the facility, if the quantity being ordered is permitted at 2516, and can transmit information about an updated order at 2518 to ensure that the amount being ordered is synchronized between server 402 and user device 1152, such that the user can verify that the quantity being ordered matches the user's expectations. Note that, in some embodiments, the quantity that a user can order may be limited for particular types of items (e.g., high value items, controlled substances, or the like), and ordering more than a particular amount may require authorization by an administrative user (e.g., an employee's supervisor, a pharmacist, or any other suitable administrative user). In some embodiments, server 2516 can interact with one or more purchasing systems to begin the order process (which may include substituting items based on product groups where the item that was to be ordered is not available is more expensive than an alternative, or is otherwise less desirable), and initiating an approval and/or review process.
In some embodiments, the recall information can include any suitable identifying information about the product or products that are subject to recall. For example, the recall information can identify a product name, a provenance, a manufacturing date or range of manufacturing dates, a lot number or range of lot numbers, and/or any other suitable information.
At 2604, process 2600 can compare information about products that have been recalled to information about items stored in an inventory of one or more organizations. In some embodiments, the information can be compared using any suitable technique or combination of techniques, and using any suitable information. In some embodiments, process 2600 can determine whether an item in inventory of an organization is a recalled product based on the identifying information of the item (e.g., a UPC, a SKU, a semantically meaningful name, a lot number, a serial number, or the like), or a combination of different types of identifying information. If the identifying information of the item in inventory matches the identifying information of the recalled product, process 2600 can determine that the item is potentially a recalled product. In some embodiments, if the identifying information of the item in inventory does not match the identifying information of the recalled product exactly (e.g., if the metadata of the item in inventory is missing information, or if multiple pieces of metadata match but a critical piece of metadata such as the UPC, SKU, or semantically meaningful name does not match), process 2600 can determine that the item may be a recalled product (e.g., process 2600 can flag the item for further investigation). In some embodiments, the recalled products can be any product that can be stored in inventory as an item, such as food, pharmaceuticals, medical devices, medical implants, tools, and the like.
At 2606, process 2600 can determine if any of the items in inventory for a particular organization are recalled products (or potentially recalled products) based on the comparison at 2604. If no items were identified as being potentially recalled (“NO” at 2606), process 2600 can end at 2608. Otherwise, if items were identified as being potentially recalled (“YES” at 2606), process 2600 can move to 2610.
At 2610, process 2600 can identify a storage location of each potentially recalled item (e.g., based on records made when the items were stored). For example, process 2600 can query an inventory management system (e.g., provided via inventory management service 404) for a storage location of any items with characteristics that match the recalled products.
At 2612, process 2600 can cause an alert to be issued to one or more users identifying the existence of the potentially recalled items in inventory of the organization. In some embodiments, the alert can include general information about the products that have been recalled that may potentially be in inventory, identifying information of the facilities in which the products may be in inventory (e.g., as items stored in one or more storage locations). In some embodiments, process 2600 can cause the alert to be issued to any suitable user or users. For example, process 2600 can cause an alert to be issued to a user associated with the organization (e.g., a user associated with overall operations of the organization). As another example, process 2600 can cause an alert to be issued to a user associated with a department that is responsible for purchasing, storing, using, and/or disposing of the item that has potentially been recalled (e.g., a user with responsibility at the facility for the inventory in which the item is located). In such an example, if multiple products have been recalled at a single facility, an alert can be issued to multiple users at the facility, such as a user responsible for overall operations of the facility, a user responsible for food preparation (e.g., if a food product has been recalled), and a user responsible for maintaining an inventory of over the counter medications (e.g., if an over the counter drug has been recalled). In such an example, the user responsible for overall operations can receive an alert indicating that both the food product and the over the counter medication have been recalled, while the user responsible for food preparation only receives an alert indicating that the food product has been recalled and the user responsible for maintaining an inventory of over the counter medications only receives an alert indicating that the over the counter medication has been recalled.
In some embodiments, the alert can be associated with a user interface element that, when selected, initiates an order for a replacement for the potentially recalled items. For example, if a food item (e.g., ground beef) has been recalled, an alert can be generated that is sent to both a user that is responsible for overall operations of a facility and a user that is responsible for ordering food for the facility. In such an example, one or both of the alerts can be associated with a selectable user interface element that facilitates replacing the recalled product with a suitable alternative (e.g., to minimize the disruption caused by the recall). In some embodiments, selecting the user interface element can initiate an ordering process for an alternative to the potentially recalled item(s).
If process 2600 determines that an order to replace the recalled products has been initiated (“YES” at 2614), process 2600 can move to 2616.
At 2616, process 2600 can determine if a suitable replacement is available for the recalled item. In some embodiments, process 2600 can use any suitable technique or combination of techniques to determine if a suitable replacement is available. For example, process 2600 can use one or more techniques for selecting an alternative described above in connection with
At 2618, if process 2600 determines that a suitable alternative exists (“YES” at 2618), process 2600 can move to 2620.
At 2620, process 2600 can add the alternative to a master order guide, a facility order guide, and/or an order for the facility based on organization policy. In some embodiments, process 2600 can use any suitable technique or combination of techniques to determine if a suitable replacement is available. In some embodiments, if the replacement has already been identified as an acceptable alternative, the order can be automatically placed (e.g., without user intervention) and/or can be expedited (e.g., based on the urgency of replacing the recalled item). Alternatively, in some embodiments, regardless of whether the replacement has already been identified as an acceptable alternative, a user can be required to review and authorize the order.
Otherwise, if process 2600 determines that an order to replace the recalled products has not been initiated (“NO” at 2614), if there is no acceptable alternative (“NO” at 2618) and/or if the alternative has been added to an order, process 2600 can move to 2622.
At 2622, process 2600 can generate one or tasks for users to verify the recall status of the potentially recalled items and/or to remove any recalled items from inventory. In some embodiments, process 2600 can generate such tasks using any suitable technique or combination of techniques, such as techniques described above in connection with 1218 of
At 2624, process 2600 can prompt one or more users to perform the tasks to verify the recall status of the items and/or to remove the potentially recalled items from inventory. In some embodiments, a user tasked with removing the potentially recalled items can be any suitable user, such as an employee associated with the organization or an employee of a distributor delivering a replacement for the recalled product. In a particular example, as described above in connection with 1220 of
At 2626, process 2600 can record the removal of recalled items (e.g., as described above in connection with 1212-1216 of
At 2704, process 2700 can identify items in inventory that are past or nearly past (e.g., within one day, a few days, a week, a month) of the user-by date. In some embodiments, process 2700 can identify such items using any suitable technique or combination of techniques, such as by submitting a database query for items that have a use-by date within a certain date range.
At 2706, process 2700 can determine if any of the items in inventory for a particular organization are expired or nearly expired (i.e., past and/or nearly past a use-by date). If no items were identified as being potentially expired (“NO” at 2706), process 2700 can end at 2708. Otherwise, if items were identified as being potentially expired (“YES” at 2706), process 2700 can move to 2710.
At 2710, process 2700 can identify a storage location of each potentially expired item (e.g., based on records made when the items were stored). For example, process 2700 can query an inventory management system (e.g., provided via inventory management service 404) for a storage location of any items with a use-by date that falls within a specified date range.
At 2712, process 2700 can cause an alert to be issued to one or more users identifying the existence of the potentially expired items in inventory of the organization. In some embodiments, the alert can include general information about the products that are potentially expired that are in inventory, identifying information of the facilities in which the products are in inventory (e.g., as items stored in one or more storage locations). In some embodiments, process 2700 can cause the alert to be issued to any suitable user or users. For example, process 2700 can cause an alert to be issued to a user associated with the organization (e.g., a user associated with overall operations of the organization). As another example, process 2700 can cause an alert to be issued to a user associated with a department that is responsible for purchasing, storing, using, and/or disposing of the item that is potentially expired (e.g., a user with responsibility at the facility for the inventory in which the item is located). In such an example, if multiple products are potentially expired at a single facility, an alert can be issued to multiple users at the facility, such as a user responsible for overall operations of the facility, a user responsible for food preparation (e.g., if one or more food items are potentially expired), and a user responsible for maintaining an inventory of over the counter medications (e.g., if an over the counter drug is potentially expired). In such an example, the user responsible for overall operations can receive an alert indicating that both the food product and the over the counter medication are potentially expired, while the user responsible for food preparation only receives an alert indicating that the food product is potentially expired and the user responsible for maintaining an inventory of over the counter medications only receives an alert indicating that the over the counter medication is potentially expired.
In some embodiments, the alert can be associated with a user interface element that, when selected, initiates an order for a replacement for the potentially expired item(s). For example, if a food item (e.g., a container of emergency rations) is potentially expired, an alert can be generated that is sent to both a user that is responsible for overall operations of a facility and a user that is responsible for ordering food for the facility. In such an example, one or both of the alerts can be associated with a selectable user interface element that facilitates replacing the potentially expired item(s) with a suitable replacement (e.g., the same item if available and suitable, or a different item if not available or if the organization no longer finds the item that has potentially expired to be suitable, to minimize the disruption caused by the expiring item(s)). In some embodiments, selecting the user interface element can initiate an ordering process for an alternative to the potentially expiring item(s).
If process 2700 determines that an order to replace the expired or expiring item(s) has been initiated (“YES” at 2714), process 2700 can move to 2716.
At 2716, process 2700 can determine if a suitable replacement is available for the expired and/or expiring item(s). In some embodiments, process 2700 can use any suitable technique or combination of techniques to determine if a suitable replacement is available. For example, process 2700 can use one or more techniques for selecting an alternative described above in connection with
At 2718, if process 2700 determines that a suitable replacement exists (“YES” at 2718), process 2700 can move to 2720.
At 2720, process 2700 can add the replacement to a master order guide, a facility order guide, and/or an order for the facility based on organization policy. In some embodiments, process 2700 can use any suitable technique or combination of techniques to determine if a suitable replacement is available. In some embodiments, if the replacement has already been identified as an acceptable alternative, the order can be automatically placed (e.g., without user intervention) and/or can be expedited (e.g., based on the urgency of replacing the expiring and/or expired item). Alternatively, in some embodiments, regardless of whether the replacement has already been identified as an acceptable alternative, a user can be required to review and authorize the order.
Otherwise, if process 2700 determines that an order to replace the recalled products has not been initiated (“YES” at 2714), if there is no acceptable alternative (“YES” at 2718) and/or if the alternative has been added to an order, process 2700 can move to 2722.
At 2722, process 2700 can generate one or tasks for users to verify the expired status of the potentially expired items and/or to remove any expired items from inventory. In some embodiments, process 2700 can generate such tasks using any suitable technique or combination of techniques, such as techniques described above in connection with 1218 of
At 2724, process 2700 can prompt one or more users to perform the tasks to verify the expired status of the items and/or to remove the potentially expired items from inventory. In some embodiments, a user tasked with removing the potentially expired items can be any suitable user, such as an employee associated with the organization or an employee of a distributor delivering a replacement for the expired items. In a particular example, as described above in connection with 1220 of
At 2726, process 2700 can record the removal of expired items (e.g., as described above in connection with 1212-1216 of
It should be noted that, as used herein, the term mechanism can encompass hardware, software, firmware, or any suitable combination thereof.
It should be understood that the above described steps of the process of
Although the invention has been described and illustrated in the foregoing illustrative embodiments, it is understood that the present disclosure has been made only by way of example, and that numerous changes in the details of implementation of the invention can be made without departing from the spirit and scope of the invention, which is limited only by the claims that follow. Features of the disclosed embodiments can be combined and rearranged in various ways.
This application is a continuation of U.S. application Ser. No. 16/875,476, filed May 15, 2020, which is based on, claims the benefit of, and claims priority to, U.S. Provisional Patent Application No. 62/849,457, filed May 17, 2019. Each of the preceding applications is hereby incorporated herein by reference in its entirety for all purposes.
Number | Date | Country | |
---|---|---|---|
20210357855 A1 | Nov 2021 | US |
Number | Date | Country | |
---|---|---|---|
62849457 | May 2019 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 16875476 | May 2020 | US |
Child | 17326989 | US |