The present invention is generally directed to network communication, and more specifically is directed to the configuration of network devices used in the automated dispensing of pharmaceuticals and related methods and apparatus.
Pharmacy generally began with the compounding of medicines, which entailed the actual mixing and preparing of medications. Heretofore, pharmacy has been, to a great extent, a profession of dispensing, that is, the pouring, counting, and labeling of a prescription, and subsequently transferring the dispensed medication to the patient. Because of the repetitiveness of many of the pharmacist's tasks, automation of these tasks has been desirable.
Some attempts have been made to automate portions of the pharmacy environment. In a typical automated pharmacy machine, bins store individual prescriptions or groups of prescriptions that have been filled by a pharmacy. A bin holding a prescription is accessible to a customer for pick-up only after the customer identifies him/herself (typically via an input keypad or the like) as someone with authority to pick up the prescription. Exemplary automated pharmacy machines are described in U.S. Patent Publication No. 2007-0179666 to Bain and U.S. Pat. No. 7,228,200 to Baker et al., the disclosures of each of which are hereby incorporated herein in its entirety.
Configuring the various elements of an automated pharmacy machine after initial assembly of the machine may be time-consuming. For example, an automated pharmacy machine may include a plurality of optical sensors or scanners for scanning the prescriptions or other packages stored in each of its bins. As such, after mounting the scanners within the automated pharmacy machine, human intervention may be required to inform a network controller where each scanner is located in the automated pharmacy machine, for instance, by populating a look-up table. In addition, manual configuration of a mechanical device, such as a dipswitch or jumper, may be required to assign a network address to each scanner. However, such manual configuration methods may introduce the potential for errors and/or additional costs. For example, an installer may assign a scanner with an incorrect network address, and/or may inadvertently assign two scanners with the same address.
According to some embodiments of the present invention, a method for configuring a network device including an optical sensor includes activating the optical sensor of the network device to generate data representing an image in view thereof, and analyzing the data from the optical sensor to determine image information represented by the image. A network address is automatically assigned to the network device based on the image information represented by the image in view of the optical sensor.
In some embodiments, the image information may be an alphabetic and/or numeric character string. The network address may be automatically assigned by automatically generating the network address for the network device from the character string using a predetermined algorithm, and automatically storing the network address in a memory of the network device.
In some embodiments, the image in view of the optical sensor may be a barcode representing the character string.
In some embodiments, the network device may be one of a plurality of communicatively coupled nodes in a system, and the character string may indicate a physical location in the system.
In some embodiments, the system may include a matrix having a plurality of rows and columns. The character string may identify a row and/or a column in the matrix corresponding to the physical location of the image in the system.
In some embodiments, the network address for the network device may be generated by extracting at least one alphabetic and/or numeric character from the character string, and generating the network address to include a representation of the at least one alphabetic and/or numeric character. Accordingly, the network address of the network device may indicate the physical location of the image in view of the optical sensor thereof.
In some embodiments, the plurality of nodes may be arranged in a same row of the matrix. The character string may include an alphabetic character that identifies a column of the matrix corresponding to a physical location of the network device.
In some embodiments, the system may be an automated pharmaceutical dispensing apparatus including a plurality of bins configured to store filled prescriptions therein. The plurality of bins may be arranged along the rows and columns of the matrix, and each of the plurality of bins may include a respective barcode affixed thereto. The image in view of the optical sensor may be one of the respective barcodes, and the character string represented by the one of the respective barcodes may identify the row and/or column of one of the plurality of bins to which the barcode is affixed.
In some embodiments, the network address may be one of a predetermined set of network addresses generated using the predetermined algorithm. An activation command may be transmitted from a network controller to the plurality of nodes in the system based on the predetermined set of network addresses, and the optical sensor of the network device may be activated in response to the activation command.
In some embodiments, the network address assigned to the network device may be associated with the physical location in the system indicated by the character string. Then, a command may be selectively transmitted from the network controller to the network device among the plurality of nodes to activate the optical sensor thereof to identify an item in view thereof at the corresponding physical location.
According to further embodiments of the present invention, a system includes a plurality of communicatively coupled network devices. The network devices respectively include an optical sensor that is operable to generate data representing a respective image in view thereof, and a processor that is operable to activate the optical sensor, analyze the data to derive respective image information therefrom, and automatically assign a respective network address to its corresponding network device based on the respective image information represented by the respective image in view of the optical sensor.
According to still further embodiments of the present invention, an automated pharmaceutical dispensing apparatus includes a plurality of bins configured to store filled prescriptions therein, and a plurality of communicatively coupled scanners. The bins include respective barcodes affixed thereto. The scanners respectively include an optical sensor that is operable to generate data representing a respective barcode in view thereof, and circuitry that is operable to activate the optical sensor, analyze the respective data to determine respective image information represented by the respective barcode, and automatically assign a respective network address to its corresponding scanner based on the image information represented by the respective barcode in view of the optical sensor.
According to yet further embodiments of the present invention, a network device includes an optical sensor operable to generate data representative of an image in view thereof, and a circuit coupled to the optical sensor. The circuit is operable to activate the optical sensor to generate the data, analyze the data to determine image information represented by the image, and automatically assign a network address to the network device based on the image information represented by the image.
According to some embodiments of the present invention, a method for configuring a network device having a sensor therein includes activating the sensor of the network device to receive data, analyzing the data from the sensor to determine physical location information represented thereby, and automatically assigning a network address to the network device based on the physical location information indicated by the data from the sensor. For example, the sensor may be a radio frequency identification (RFID) reader or receiver, and the data may be received from an RFID tag affixed to the physical location in a system.
Although described above primarily with respect to method, system, and device aspects of the present invention, it will be understood that the present invention may also be embodied as computer program products. Also, other network devices, methods, systems, and/or computer program products according to embodiments of the invention will be or become apparent to one with skill in the art upon review of the following drawings and detailed description. It is intended that all such additional electronic devices, methods, and/or computer program products, as well as any and all combinations of the above embodiments, be included within this description, be within the scope of the present invention, and be protected by the accompanying claims.
The present invention will be described more particularly hereinafter with reference to the accompanying drawings. The invention is not intended to be limited to the illustrated embodiments; rather, these embodiments are intended to fully and completely disclose the invention to those skilled in this art. In the drawings, like numbers refer to like elements throughout.
Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and the present specification and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. As used herein the expression “and/or” includes any and all combinations of one or more of the associated listed items. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
Where used, the terms “attached”, “connected”, “interconnected”, “contacting”, “mounted,” “coupled” and the like can mean either direct or indirect attachment or contact between elements, unless stated otherwise. In addition, spatially relative terms, such as “under”, “below”, “lower”, “over”, “upper” and the like, may be used herein for ease of description to describe one element or feature's relationship to another element(s) or feature(s) as illustrated in the figures. It will be understood that the spatially relative terms are intended to encompass different orientations of the device in use or operation in addition to the orientation depicted in the figures. For example, if the device in the figures is inverted, elements described as “under” or “beneath” other elements or features would then be oriented “over” the other elements or features. The device may be otherwise oriented (rotated 90 degrees or at other orientations) and the descriptors of relative spatial relationships used herein interpreted accordingly.
It will also be understood that, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first scanner, bin, or node could be termed a second scanner, bin, or node, and, similarly, a second scanner, bin, or node could be termed a first scanner, bin, or node without departing from the teachings of the disclosure.
Well-known functions or constructions may not be described in detail for brevity and/or clarity.
In a system of network devices that collects information about its surroundings, the physical location of each network device may set the context for interpreting the information it collects. As an example, a network of three barcode scanners having the network addresses X, Y and Z may serve conveyor belts A, B and C, respectively. When a scanner scans a package and returns a barcode value of 3, an association between the location of the scanner and the value 3 may be necessary to determine the location of the package in the system. Moreover, to determine which package was on conveyor B, a means of directly addressing the scanner on conveyor B may be required. This process may thereby require an association between the physical address (B) of the conveyor belt and the logical network address (Y) of the scanner. Having made this association, a message may be sent to scanner Y requesting a scan of the barcode affixed to the package in view (e.g., the package on conveyor B).
Accordingly, embodiments of the present invention provide systems, methods, and computer program products for automatically determining the physical locations of a plurality of network devices and assigning addresses to the network devices based on the physical locations thereof. In particular, some embodiments of the present invention provide a system for optically determining and automatically assigning network addresses for the plurality of network devices without human intervention. The system includes a network of communicatively coupled network devices (also referred to herein as “nodes”). Each network node contains an optical sensor (such as a barcode reader), a processor, and the firmware for operation. Based on data from the optical sensor, each network node may be automatically programmed with a unique network address, which may be subsequently used for communication with the node. In particular embodiments, a barcode is mounted within view of a barcode scanner attached to each network node. Each barcode is encoded with data that is unique and identifies the barcode's physical location in the system. Each node uses its barcode scanner to scan the associated barcode. The node applies an algorithm to the data encoded in the barcode, yielding the physical location information. The node may then automatically generate its network address based on this physical location and store its network address in a read-only memory (ROM) or other memory of the network node.
Embodiments of the present invention may be used, for example, in an automated pharmaceutical dispensing apparatus, such as an automated pharmacy machine.
As shown in
The chain of bins 300 is moved by a mechanism in the housing 102 including at least one axle 409 and a pair of hubs mounted to the axle at each of its ends. One hub of the axle 409 is indicated by reference numeral 410, the other by 411. The hubs 410 and 411 of the axle 409 are supported for rotation in bearings (not shown) in the side panels of the housing 102. The hubs 410 and 411 include sprockets in their respective rims. A sprocket in each hub rim is indicated by reference numeral 412. The chain 300 is received over the hubs 410 and 411 in the upper end of the housing 102, with cylindrical retainers 413 at the ends of rods which link the bins together engaged by the sprockets 412. In the lower end of the housing, a semicircular chute 414 made of low friction material such as Teflon is held against the chain 300 in order to guide the chain as it rotates against the chute 414 and retain contents of the bins in the bins as the chain 300 rotates through a bottom arc. Alternatively, a sheet of low friction material can be tensioned against the chain 300 in the lower end of the housing 102. Other means for retaining the contents of the bins in the bins through the bottom arc include wire springs in the bins or belts outside the bins. Two pairs of guides 415 secured to each of the side panels of the housing 102 form channels which receive the cylindrical retainers 413 and stabilize the chain as it is moved or transposed in the housing 102. The chain 300 is moved in either vertical direction by a drive mechanism including a belt 417 that engages the hub 410 that is visible in
As shown in
Still referring to
Referring again to
Each of the network devices 322a to 322h is configured to automatically assign and program itself with a unique network address based on the information received from its corresponding optical sensor 395a to 395h. In particular, with reference to
The images provided in view of each of the optical sensors 395a to 395h are selected such that each processor 315a to 315h will generate and assign a different network address to each network device 322a to 322h. In addition, the processors 315a to 315h may be configured to generate the respective network addresses using a predetermined algorithm. For example, in embodiments where the respective positions of the network devices 322a to 322h in the array 322 correspond to the columns of the matrix 310, the processors 315a to 315h may extract the column designator (e.g., “A” to “H” in the above example) from each character string and generate the network addresses for the devices 322a to 322h to include the corresponding column designator. In other words, the physical locations of the network devices 322a to 322h may be determined from the scanned images, and the network addresses for the devices 322a to 322h may be assigned based on their physical locations. As such, the logical addresses of the network devices 322a to 322h may reflect the physical locations of the network devices 322a to 322h in the matrix 310.
The network device controller 301 is aware of the character string represented by the barcode 654 affixed to each of the bins 306, and thus, uses the same algorithm to predetermine the set of network addresses that will be generated by the network devices 322a to 322h. For example, the network device controller 301 may retain the bin identifier for each bin 306 as an ordered table, list, map, tree, or other equivalent structure, and may easily and quickly scan such a structure to retrieve the bin identifier for a particular bin and generate its network address using the predetermined algorithm. The data structure may also relate the present location of each row of bins relative to the dispensing and loading stations to track the bin arrays currently positioned at or moving past the stations, and further, to relate each door of the array 116 to a specific one of the bins 306 positioned adjacent thereto.
The network device controller 301 may thereby associate the network addresses assigned to the network devices 322a to 322h with their respective physical locations in the apparatus 100 indicated by the character string. The network device controller 301 may also initiate the process of generating and assigning the network addresses to each of the network devices 322a to 322h by broadcasting an activation command to all of the network devices 322a to 322h using the predetermined set of network addresses, thereby instructing the network devices 322a to 322h to activate their respective optical sensors 395a to 395h to scan or capture the respective barcodes 654 on the bins 306 in view thereof.
Accordingly, once the apparatus 100 has been assembled and the network devices 322a to 322h have been attached, the network devices 322a to 322h receive a broadcast command from the network controller 301. This command causes each network device 322a to 322h to establish a network address by scanning the barcode 654 in view thereof, extracting the alphabetic column designator from the barcode data, and storing the alphabetic character in its memory 375a to 375h. Since network addresses and column locations may have a one-to-one relationship and barcode alphabetic characters may be unique to the column, the alphabetic character(s) from the barcode may be used as the respective network addressees for the network devices 322a to 322h.
More particularly, with reference to
As such, once the network addresses have been assigned to the network devices 322a to 322h, the network device controller 301 may selectively transmit a command from the network controller to a particular one of the network devices 322a to 322h to activate the optical sensor thereof. For example, once the apparatus has been assembled and the chain of bins 300 has been rotated such that the bin 306′ is positioned adjacent to the door 116h, the network device controller 301 may transmit a command to a particular network device 322h to scan the label on the package 650 contained in the corresponding bin 306′ and identify the contents of the package 650 based on the information scanned from the label. In the example shown, a retainer 656 integral with the package 650 retains the package 650 and positions the thin end 652 to cover the barcode 654 on the upper surface of the bin. The package 650 may be flexible, made of plastic film or reinforced paper, and the retainer 656 may be semi-rigid, made of cardboard or thin plastic, so that it may buckle, flex, or bend. The retainer 656 may include holes therein it to ease insertion into and removal from the bin 306′. The retainer 656 acts between a side of a bin and the thin end 652 such that the transaction information is positioned in the line of sight 326 of the sensor 395h when the bin 306′ is rotated to the position adjacent to the door 116h.
Although embodiments of the present invention have been described herein with reference to barcodes, it will be understood that the network address of each network device may be derived from any visual identifier affixed to or otherwise positioned in the line of sight of its optical sensor. In addition, it will be understood that some embodiments of the present invention may use radio frequency identification (RFID) tags (instead of and/or in addition to barcodes) encoded with the alphabetic and/or numeric character strings indicating the locations of the respective bins 306 to which they are affixed, and the network devices 322a to 322h may each include a respective RFID reader (instead of and/or in addition to the optical sensors 395a to 395h) operable to receive, analyze, and/or decode data provided by the RFID tag on the bin 306 in its proximity. As such, each of the processors 315a to 315h may be operable to assign a respective network address to its corresponding network device 322a to 322h based on the location information derived from the data received from the RFID tag on a bin 306 proximate thereto.
Moreover, although discussed primarily herein with reference to use in an automated pharmaceutical dispensing apparatus, it will be understood that embodiments of the present invention are not limited to such a use, but rather, may generally be used in any system or network of communicatively coupled network devices where one or more of the network devices can automatically determine and assign its own network address according to data provided by a sensor thereof. Embodiments of the present invention can thereby eliminate the need for human intervention typically required when setting dipswitches or populating look-up tables in order to assign network addresses to network devices. This can eliminate potential errors and/or costs associated with manual configuration methods, and can improve reliability by eliminating the need for electromechanical switches.
The present invention has been described herein with reference to flowchart and/or block diagram illustrations of methods, systems, and devices in accordance with exemplary embodiments of the invention. It will be understood that each block of the flowchart and/or block diagram illustrations, and combinations of blocks in the flowchart and/or block diagram illustrations, may be implemented by computer program instructions and/or hardware operations. These computer program instructions may be provided to a processor of a general purpose computer, a special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer usable or computer-readable memory that may direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer usable or computer-readable memory produce an article of manufacture including instructions that implement the function specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions that execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart and/or block diagram block or blocks.
It will be further appreciated that the functionality of any or all of the program modules may, also be implemented using discrete hardware components, one or more application specific integrated circuits (ASICs), or a programmed digital signal processor or microcontroller. The program code may execute entirely on a single processor and/or across multiple processors, as a stand-alone software package or as part of another software package. The program code may execute entirely on an electronic device or only partly on the electronic device and partly on another device. In the latter scenario, the other device may be connected to the electronic device through a wired and/or wireless local area network (LAN) and/or wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
The foregoing embodiments are illustrative of the present invention, and are not to be construed as limiting thereof. Although exemplary embodiments of this invention have been described, those skilled in the art will readily appreciate that many modifications are possible in the exemplary embodiments without materially departing from the novel teachings and advantages of this invention. Accordingly, all such modifications are intended to be included within the scope of this invention.
This application is a continuation of and claims priority from U.S. patent application Ser. No. 12/690,448, filed on Jan. 20, 2010, which claims priority from U.S. Provisional Patent Application Ser. No. 61/145,772, filed Jan. 20, 2009 and entitled Method And Apparatus For Optically Determining And Automatically Programming The Network Address For Devices Operating In A Network, the disclosures of which are hereby incorporated by reference herein in their entireties.
Number | Date | Country | |
---|---|---|---|
61145772 | Jan 2009 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 12690448 | Jan 2010 | US |
Child | 13588570 | US |