Abstract:
A system is described for managing data and information in a healthcare environment, such as a hospital. A handheld code scanner reads codes and either accepts data, or performs instructions based on the read code. The code scanner wirelessly transmits the codes or data to a central server which acts on the read code to carry out necessary functions. The system is useful for tracking patient data, such as for delivery of medicine. In addition, since the system can carry out instructions, it is useful for allowing healthcare workers to quickly and conveniently perform their duties without the necessity of sitting at a computer terminal.

Description:
CROSS REFERENCE TO RELATED APPLICATION  
       [0001]     This application is a divisional of related U.S. application Ser. No. 10/857,701 filed on May 28, 2004 and claims priority to U.S. Provisional Patent Application 60/475,173 entitled “MEDICAL MANAGEMENT SYSTEM” and filed on May 30, 2003, U.S. Provisional Patent Application 60/530,073 entitled “MEDICAL WORK FLOW SYSTEM” and filed on Dec. 16, 2003, and U.S. Provisional Patent Application 60/560,084 entitled “MEDICAL WORK FLOW SYSTEM” and filed on Apr. 7, 2004. The disclosures of the above-described filed applications are hereby incorporated by reference in their entirety. 
     
    
     BACKGROUND OF THE INVENTION  
       [0002]     1. Field of the Invention  
         [0003]     The present invention relates generally to a system for controlling data in a health care environment. More particularly, the present invention relates to a medical processing system that includes a handheld scanner that uses a code scanner for entering commands and data into a medical management system.  
         [0004]     2. Description of the Related Art  
         [0005]     Some computing tasks or environments require a high degree of mobility, ease of operation, and low cost implementation due to a large number of users. One example of such tasks is the administration and documentation of care provided to patients in a medical or hospital environment. Computer resources in these environments are limited due to inadequate availability of access points such as input/output (I/O) stations or terminals. Although stationary terminals have a large screen, familiar full-featured keyboard, and mouse input devices, such terminals are inconvenient to use in certain environments due to lack of portability, or availability due to cost and space constraints. Notebook computers with wireless communication capabilities can increase the power of computer terminals while maintaining relatively fast and available computing power. However, they are still somewhat large in size, bulky to transport, have limited battery life, require two hands to operate, and are expensive.  
         [0006]     A plurality of small sized wireless computing devices have been developed, such as wireless personal digital assistants (PDA&#39;s), for use by caregivers in administration and documentation of medical care. For example, U.S. Pat. No. 4,916,441 to Gombrich describes a handheld terminal that includes a wireless transmitter and a bar code scanner for entering medical data into a computer system. Unfortunately, a nurse needs to manually type much of the information onto a small keyboard on the device. This is inconvenient and time-consuming in a hospital environment.  
         [0007]     In addition, similar devices are either fragile or bulky, expensive, and require two-handed or tedious tasks for operation. Thus, improved devices and methods are needed in the technology.  
       SUMMARY OF THE INVENTION  
       [0008]     In one aspect of the present invention a wireless terminal for use in medical care administration management system, comprising a code scanner configured to read scan codes, a processor configured to determine whether the scan codes correspond to patient data or to an instruction and a wireless transceiver, configured to transmit the codes to a system computer.  
         [0009]     In some embodiments the system computer initiates a process in response to receipt of a code corresponding to an instruction. In some embodiments the processor is further configured to determine whether the instruction may be performed locally. The wireless terminal may be further configured to execute the instruction. In another aspect of the present invention the terminal may be configured to store user information and transmit the user information with the codes read by the code scanner to the system computer. In other embodiments the wireless terminal may further comprise a display for displaying messages to a user. In other embodiments the wireless terminal may further comprise an input button for receiving input from a user.  
         [0010]     In another aspect of the present invention the transceiver is configured to communicate with the system computer over a computer network. The code scanner may be configured to read two-dimensional machine readable codes. In some embodiments of the present invention the code scanner is configured to read barcodes. In other embodiments of the present invention the wireless terminal further comprises an additional code scanner. In one embodiment of the present invention a wireless terminal further comprises a plurality of indicators. In some embodiments the plurality of indicators includes at least one of a visual indicator and an audio indicator. In some embodiments a scan code corresponds to a binary number comprising a plurality of bits, and wherein one of the plurality of bits indicates whether the scan code corresponds to data or an instruction.  
         [0011]     A terminal for use in a medical care administration system, the terminal comprising a code scanner configured to read a two-dimensional data dot encoding a scan code, wherein the scan code corresponds to data or an instruction and a data processing module configured to determine whether the scan code corresponds to data or to an instruction and further configured to wirelessly transmit the scan code to a server computer.  
         [0012]     In some embodiments the wireless terminal further comprises an instruction processing module configured to process scan codes corresponding to instructions. In some embodiments the code scanner is configured to read the two-dimensional data dot from an array of data dots having a center to center spacing between adjacent data dots of less than about 30 mm.  
         [0013]     In another aspect of the present invention a wireless terminal for use in medical care administration management system, comprising, a code scanner, configured to read scan codes a processor and a wireless transceiver, configured to transmit the codes to a system computer, wherein the wireless transceiver is further configured to communicate with a server periodically.  
         [0014]     In some embodiments the processor is configured to determine whether the scan code is data or an instruction. In other embodiments the processor is further configured to determine whether to wait for a periodic communication session with the server before executing an instruction. In other embodiments the wireless transceiver is further configured to transfer at least one of the data and the instruction to the server without waiting for a periodic communication session with the server. In some embodiments the wireless terminal is configured for one-handed use. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0015]     The present invention is described with reference to the accompanying drawings. In the drawings, like reference numbers indicate like elements.  
         [0016]      FIG. 1  is a block diagram of one embodiment of a medical management system.  
         [0017]      FIG. 2  is a block diagram of one embodiment of a server used in the medical management system shown in  FIG. 1 .  
         [0018]      FIG. 3  is a perspective view of one embodiment of a wireless terminal according to one aspect of the invention.  
         [0019]      FIG. 4A  is a bottom view of the wireless terminal shown in  FIG. 3 .  
         [0020]      FIG. 4B  is a side perspective view of the wireless terminal shown in  FIG. 3 .  
         [0021]      FIG. 5A  is a block diagram of components within one embodiment of a wireless terminal.  
         [0022]      FIG. 5B  is a block diagram of one embodiment of a plurality of modules communicating with the microcontroller of a wireless terminal.  
         [0023]      FIG. 6  is a flowchart illustrating one embodiment of a method of operating a wireless terminal in the medical management system.  
         [0024]      FIG. 7  is a flowchart illustrating one embodiment of a method of operating a wireless terminal during a communication session with the server.  
         [0025]      FIG. 8  is a flowchart illustrating one embodiment of a method of operating the server during a communication session with a wireless terminal.  
         [0026]      FIG. 9  is a flowchart illustrating one embodiment of a method of operating the server.  
         [0027]      FIG. 10  is a flowchart illustrating one embodiment of a method of operating the information update module in the server.  
         [0028]      FIG. 11  is a flowchart illustrating one embodiment of a method of operating the messaging module in the server.  
         [0029]      FIG. 12  is an exemplary illustration of one embodiment of a Medication Worksheet for use in a medical management system.  
         [0030]      FIG. 13  is an exemplary illustration of one embodiment of a configuration report used to configure a wireless terminal.  
         [0031]      FIG. 14A  is perspective assembly view illustration of one embodiment of a DOT scanner for use in a wireless terminal.  
         [0032]      FIG. 14B  is a cross-sectional view of the assembled DOT scanner of  FIG. 14A .  
         [0033]      FIG. 15  is an illustration of an additional embodiment of a wireless terminal. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT  
       [0034]     Embodiments of the invention relate to a system and method employing a wireless handheld terminal for management of medical care in an environment such as a hospital. The wireless terminal preferably has at least one code reader, or scanner, used to read codes corresponding to, for example, patient identification, item identification, documentation characters and phrases, commands, and instructions. The codes are preferably machine readable codes, including one and two dimensional optically readable codes such as bar codes, but can include radio frequency identification (RF ID) devices or tags. The codes can be applied to objects, cards, or placards throughout a hospital environment. In one embodiment, each user can have a card, or codesheet, comprising that user&#39;s most commonly used codes. Thereby, the user only needs to scan the codes on their codesheet to enter particular data, or carry out specific instructions.  
         [0035]     As described below, in addition to scanning in codes as data, the system also scans in codes that provide an instruction to the system. By scanning in a plurality of codes, a user, such as a nurse, can send messages, page, print, process commands at a server, and order medical tests. For example, in one embodiment, a nurse may need to page a doctor to the patient&#39;s location. In this embodiment, the nurse would scan the patient ID bracelet, which includes a scan code sequence identifying the patient. The nurse would then scan an instruction code, printed either on a placard or in the room, which provides the instruction “page the doctor”. The scanned codes would be transmitted wirelessly to the server, and the instruction would be executed at the server.  
         [0036]     The server would query a database or lookup table of codes and instructions for the scanned codes and determine that one of the scanned codes corresponded to a “paging” instruction. The system would then execute instructions to identify the doctor to be paged based on the scan code corresponding to the identification of the patient, and then page the appropriate doctor to the patient&#39;s location. In one embodiment, the system is linked to a hospital administration system which stores the name of each patient, and the doctor for the patient that is currently on-call. Thus, the wireless terminal not only provides the function of reading data with the code scanner, but also advantageously performs functions using the same code scanner.  
         [0037]     The terminal preferably establishes communication with a server that maintains a database of codes and corresponding information or commands which it uses to process the codes received from the terminal via a wireless communication link. The server is preferably in communication with additional devices via a network, such as a local area network (LAN), where the additional devices perform a variety of functions, such as messaging, printing, or record keeping. The server is also configured to communicate with the wireless terminal to provide requested information or information in response to scanning of particular codes, such as codes corresponding to particular medications.  
         [0038]     In one aspect of the invention, the wireless terminal has processing capabilities such that it can process codes locally without communicating with the server, and thereby interacting with the user autonomously in certain capacities. The terminal communicates with the user via indicators and a display screen, such as an LCD screen. The terminal can also be adapted with audio indicators such as a beep to indicate a warning condition or a message awaiting acknowledgement. The user can acknowledge or respond to messages displayed on the screen with an acknowledgement or “OK” button on the terminal. As one example, a nurse might scan in a code from a packet of Digoxin, which is a medicine to treat heart problems that should be administered only after an apical pulse measurement has been taken by the nurse. Once the nurse scans the code from the Digoxin packet, a processor in the terminal reads the code and compares it with an internal list of codes. In this case, the terminal would recognize the code as requiring an apical pulse measurement, and would display a warning and request input from the nurse of the apical pulse. The nurse could then scan in the apical pulse measurement by scanning codes corresponding to the appropriate numbers in order to enter the pulse measurement into the terminal. Once the pulse measurement was entered, the terminal could transmit the entered data to the server.  
         [0039]     The codes used and maintained in the system are preferably in a “closed” symbology, such that only one code corresponds to a particular instruction or piece of information. This ensures that the system does not receive duplicate codes which correspond to different instructions or information. In certain embodiments, the codes are implemented as a 2-D matrix, or DOT as described in International Publication No. WO 02/07065, hereby incorporated by reference in its entirety. In one embodiment, the physical DOT is 7 mm in diameter, and comprises 321 white or dark hexagons. In another embodiment, the physical DOT is approximately 5 mm in diameter, but less than 7 mm in diameter. In one embodiment, a computer server can be configured to generate a 64 bit number, encrypt it, and algorithmically produce a 2-D DOT which uniquely represents the encoded data. Where the system is implemented using the DOT symbology, the system can have additional capabilities such as the methods and systems described in International Publication No. 02/21794 A2. As used herein, a “dot scanner” is configured to read the DOT symbology.  
         [0040]     The 2-D DOT advantageously permits high density placement of DOTS as explained in Publication No. 02/21794 A2. The DOTS can be placed adjacent to one another in the same horizontal row or vertical column without the data from one DOT interfering with the ability of a terminal to read an adjacent DOT. Thus, the DOTS can be arranged as an array of DOTS. In one embodiment, a center to center distance between adjacent DOTS is approximately 20 mm and is less than 25 mm. In other embodiments, the center to center distance between adjacent DOTS is less than about 10 mm, 15 mm, 20 mm, 30 mm, 35 mm, 40 mm, 45 mm, 50 mm, 55 mm, 60 mm, 65 mm, 70 mm, 75 mm, 80 mm, 90 mm, or 100 mm.  
         [0041]     Due to the vast number of data combinations made possible by the DOT symbology, (18 billion billion), an entire medical management system can be implemented using DOT&#39;s to represent all of the information and commands desired in the system. Thereby, the possibility of confusion with commonly used bar codes is eliminated. The system may, however, be implemented with both DOT and bar code technology, where the terminal would include both a bar code scanner and a DOT scanner. Such an embodiment is described below.  
         [0042]     As used herein, “instructions” refer to computer-implemented steps for processing information in the system. Instructions can be implemented in software, firmware or hardware and include any type of programmed step undertaken by components of the system.  
         [0043]     As used herein, a “code which corresponds to instructions” or a “code corresponding to an instruction” means a code that refers to, or is converted into, one or more instructions to be carried out in the system. For example, a code “ABC123” might point to an instruction that results in a doctor being paged to a particular room. Codes and their corresponding instructions can be stored in a database or lookup table so that scanning in a code causes the terminal to lookup the code in the database and retrieve its corresponding instruction, or set of instructions. As described, codes are preferably converted into 1D or 2D symbols so that they can be conveniently scanned into the system.  
         [0044]     One example of a Local Area Network may be a corporate computing network, including access to the Internet, to which computers and computing devices comprising the system are connected. In one embodiment, the LAN conforms to the Transmission Control Protocol/Internet Protocol (TCP/IP) industry standard. In alternative embodiments, the LAN may conform to other network standards, including, but not limited to, the International Standards Organization&#39;s Open Systems Interconnection, IBM&#39;s SNA, Novell&#39;s Netware, and Banyan VINES.  
         [0045]     As used herein, a “microprocessor” may be any conventional general purpose single- or multi-chip microprocessor such as a Pentium® processor, a 8051 processor, a MIPS® processor, a Power PC® processor, or an ALPHA® processor. In addition, the microprocessor may be any conventional special purpose microprocessor such as a digital signal processor or a graphics processor. The microprocessor typically has conventional address lines, conventional data lines, and one or more conventional control lines.  
         [0046]     As used herein, the term “module” refers to the various modules in the system as discussed in detail below. As can be appreciated by one of ordinary skill in the art, each of the modules comprises various sub-routines, procedures, definitional statements and macros. Each of the modules are typically separately compiled and linked into a single executable program. Therefore, the following description of each of the modules is used for convenience to describe the functionality of the preferred system. Thus, the processes that are undergone by each of the modules may be arbitrarily redistributed to one of the other modules, combined together in a single module, or made available in, for example, a shareable dynamic link library.  
         [0047]     The system may include any type of electronically connected group of computers including, for instance, the following networks: Internet, Intranet, Local Area Networks (LAN) or Wide Area Networks (WAN). In addition, the connectivity to the network may be, for example, remote modem, Ethernet (IEEE 802.3), Token Ring (IEEE 802.5), Fiber Distributed Datalink Interface (FDDI) or Asynchronous Transfer Mode (ATM). Note that computing devices may be desktop, server, portable, hand-held, set-top, or any other desired type of configuration. As used herein, an Internet includes network variations such as public internet, a private internet, a secure internet, a private network, a public network, a value-added network, an intranet, and the like.  
         [0048]     As used herein, the term “programming language” refers to any programming language such as C, C++, BASIC, Pascal, Java, FORTRAN, and Assembly Language and ran under the well-known operating system. C, C++, BASIC, Pascal, Java, and FORTRAN are industry standard programming languages for which many commercial compilers can be used to create executable code.  
         [0000]     System Overview  
         [0049]      FIG. 1  is a block diagram of one embodiment of a medical management system  10  implemented in a hospital environment. The system comprises a computer or server  12 , and a plurality of battery powered wireless terminals  14 A-D, wherein the wireless terminals  14  and server  12  preferably communicate according to IEEE 802.11 wireless LAN specifications. The system can also use other wireless communications specifications known in the technology, such as radio frequency (RF) or Bluetooth. The system also preferably includes a hardwired terminal  16  coupled to the server  12  via a network or direct connection, wherein the hardwired terminal  16  can be used as a control point for the system such that only authorized users can activate a terminal  14 A, and as a hardwired communication link between a terminal  14  and the server  12 .  
         [0050]     The wireless terminals  14  and server  12  preferably communicate periodically during communication sessions and are not in constant communication. Thereby, battery power at the wireless terminals  14  can be conserved and situations where the terminal  14  is out of communication range with the server  12  do not create power consuming loop processes wherein the terminal  14  continually attempts communication with the server  12 . The server  12  and wireless terminals  14 , however, can communicate at any instant if desired, and are not limited to communication during the designated communication sessions. The wireless terminals  14  are preferably small in size for ease of portability and one-handed use.  
         [0051]     The server  12  is also coupled to a plurality of peripheral devices and systems, such as a printer  20 , a messaging system  22 , a pharmacy system  24 , a laboratory system  26 , a hospital server  28 , and a patient record system  30 , via a network connection. Commands or instructions received from the wireless terminals  14  are communicated by the server  12  to the various devices and systems for performance of requested tasks, and information from the various peripheral devices and systems are communicated to the wireless terminals  14  by the server  12 . For example, the pharmacy system  24  can send updated medication information for patients or send notification to the server  12  when a patient&#39;s medication is ready. A terminal  14  can also query the pharmacy system  24  for information via the server  12 . Similarly, a terminal  14  can send laboratory test requests to the laboratory system  26 , or receive test results from the laboratory system  26  via the server  12 .  
         [0052]     Where the hospital server  28  maintains, for example, patient registration information, the hospital server  28  can send updated information to the server  12 , and the wireless terminals  14  can update the hospital server  28 , for example, when a patient has been discharged.  
         [0053]     In one embodiment, the patient record system  30  is an Electronic Medical Record (EMR) system, and is updated with information from the wireless terminals  14  so as to maintain an electronic record of each patient&#39;s medication administration and any additional comments input to the terminal  14  by a user.  
         [0054]     Thus, the wireless terminals  14  have capabilities similar to computer terminals which are connected to the peripheral devices and systems through a conventional network. The interaction of the wireless terminals  14 , server  12 , and peripheral devices and systems will be described in further detail hereinafter.  
         [0055]     The server  12  comprises a database  32  for storing a plurality of scan codes and each codes&#39; corresponding data or instruction in order to perform a plurality of electronic tasks. The data includes, for example, information corresponding to a patient, medication, objects, and note taking entries, and the instructions can include tasks such as “print a patient report”, “order laboratory tests”, and “request assistance”. The database  32  can be modified and maintained using the terminal  16  or additional computer terminals in communication with the server  12 . In certain embodiments, the system comprises both a local server and a remote server, including local and remote databases. In such embodiments, the local databases provide pointers to locate the appropriate remote server. In addition, where a plurality of servers and databases are used in a single hospital, for example, a master computer or server can be used to maintain and update the databases.  
         [0000]     Server  
         [0056]      FIG. 2  is a block diagram of one embodiment of the server  12 , wherein the server  12  is in data communication with transmit and receive, or transceiver circuitry  46  including an antenna  48  for wireless communication with the plurality of wireless terminals  14 . The server  12  may include additional transmit and receive circuitry for processing of data and instructions where the server  12  is linked to a wireless access point including a transceiver and antenna. As described above, the server  12  can also communicate with the wireless terminals  14  via a hardwired connection at the hardwired terminal.  
         [0057]     The server  12  comprises a transceiver module  50  configured to receive and facilitate transmission of data via the transceiver circuitry  46 . The server  12  further comprises an activation module  54  configured to initiate each terminal  14  at the beginning of each use. In one embodiment, a user may request activation of a terminal  14  by scanning a code (or codes) corresponding to user information, such as a username and password. In one embodiment, the user scans an identification code on their name badge, and thereafter enters a password into the code scanner. In response to an activation request, the activation module  54  first verifies whether the user is authorized to use the terminal  14  by attempting to correlate the user information with information stored at the database  32 . Secondly, where a nurse at a nurse&#39;s station in a hospital is requesting activation of the terminal  14 , the activation module  54  sends a list of tasks to be performed and information to be used by the nurse during their working shift. More specifically, where Nurse A requests activation of a terminal  14 , the activation module  54  sends information corresponding to Patients A, B, C, and D, who are assigned to Nurse A, to the terminal  14  along with any additional tasks to be performed by Nurse A for those patients or in general. These exemplary features of the system  10  are discussed in more detail hereinafter below in reference to  FIGS. 12-13 .  
         [0058]     As shown in  FIG. 2 , the server  12  also comprises an analyze module  56  in data communication with the transceiver module  50  and configured to analyze incoming data or instructions from the wireless terminals  14  via the transceiver circuitry  46 . The analyze module  56  is in data communication with additional processing and task performance modules at the server  12 , and communicates the incoming data or instruction to the appropriate module according to its analysis. As will be appreciated by those skilled in the art, the server may include a separate analyze module or plurality of modules for analysis of data or instructions from the peripheral devices and systems and for analysis of data and instructions from the wireless terminals  14 .  
         [0059]     The server  12  further comprises an instruction processing module  58  for processing an instruction, and a data processing module  60  for processing data, wherein analysis by the analyze module  56  determines whether a communication from a wireless terminal comprises data or an instruction, and sends the communication contents to the appropriate module for processing. The server  12  also includes a processor  62  and a memory  64 , used by instruction processing and data processing modules  58 ,  60  during operation. The memory  64  can also be configured to store the database  32  of scan codes and corresponding instructions or data. It should be realized that additional memory types, such as a flash memory, can also be used to store data within the server  12 .  
         [0060]     The memory  64  is also configured to store information received from the peripheral systems for use by the wireless terminals  14  and their users. For example, where a server  12  is assigned to each nursing station in a hospital, the memory  64  stores information corresponding to the patients assigned to the nursing station and the tasks to be performed by the caregivers assigned to the patients. More specifically, the medications, time of administration, and any additional information regarding the care of patient A is stored in memory  64  for use by the caregiver assigned to patient A.  
         [0061]     The additional processing and task performance modules at the server  12  comprise an information update module  66 , configured to update information stored in memory  64  with information from the plurality of peripheral devices and systems. For example, the information update module  66  receives medication orders from the pharmacy system, updates the memory  64  with the pharmacy orders, and sends updated medication orders to the appropriate wireless terminal  14 .  
         [0062]     As shown in  FIG. 2 , the server  12  further comprises a report generation module  68  configured to coordinate generation of a report for a particular patient or for all patients assigned to the user of the terminal  14  in response to an appropriate scan code instruction from a terminal  14 . The report generation module  68  receives a report generation instruction from the instruction processing module  58 , and uses the processor  62  and memory  64  to obtain the information to be included in the report. Once the information has been gathered, the report generation module  68  sends the report to the printer. This allows a user to scan a particular code on the terminal in order to have a predefined report printed from the data stored on the server or elsewhere.  
         [0063]     In one embodiment, the server  12  also includes a messaging module  70  configured to receive, generate, and send messages to the wireless terminals  14  and peripheral systems. The module  70  receives messages from the messaging system  22  ( FIG. 1 ) to be sent to the wireless terminals  14 . The messaging system  22  can include a computer terminal, or plurality of terminals, where a user can enter a text message to be sent to a particular wireless terminal  14  by designating the user by name. For example, a text message comprising notification of an urgent telephone call can be entered at the hardwired terminal  16  for Nurse A. The messaging system  22  communicates the message and corresponding terminal user identification (“Nurse A”, for example) to the server  12 . The server  12  routes the message and user identification to the messaging module  70 , which looks up the user identification (Nurse A) in the database  32  or memory  64  to determine which terminal  14  should receive the message. The messaging module  70  then formats the message for the destination terminal  14  and sends the message via the transceiver module  50  and transceiver circuitry  46  to the terminal controlled by Nurse A.  
         [0064]     In one embodiment, the report generation module  68  is configured to generate a message to notify the user of the terminal  14  which requested generation of a report that the report has been printed. The generated message is communicated to the messaging module  70 , which formats the message and adds information for communication to the appropriate terminal  14 .  
         [0065]     In another embodiment, the patient record system  30  maintains an electronic record for each patient with respect to medication administration, including, but not limited to, type of medication, quantity of medication administered, how administered, and time of administration. This information may then be stored at the server  12  and terminal  14 , such that the server  12  may generate an alert or notification message if a terminal fails to timely send data indicating administration of medication. Alternately, the terminal may generate an alert or notification message if expected medication administration is not received by the stored time of administration, or within a predefined time period prior to the specified time of administration.  
         [0066]     For example, a patient may be scheduled for administration of a particular medication at a predetermined time. The terminal  14  tracks an elapsed time after a predetermined medication administration time and may generate an alert or notification message if no indication of medication administration has been received within a predetermined alert time. The predetermined alert time may be, for example, 30 minutes or one hour after a scheduled administration time. Thus, the terminal  14  may be configured to monitor for an event where the time elapsed since the scheduled time exceeds some predetermined latency time. The terminal  14  may transmit the message to the server  12  for entry into the patient&#39;s care record. The terminal  14  will continue to periodically alert the user of the terminal  14  until the user acknowledges the alerts or the expected information is entered at the terminal  14 . The user of the terminal  14  may acknowledge the alert or notification by, for example, selecting the “OK” button on the terminal  14 .  
         [0067]     Alternatively, the server  12  may send a message to a terminal  14  in response to some predetermined patient event. For example, a patient may have had one or more lab tests ordered to evaluate a condition. The server  12  may send a message to a terminal  14  in response to events such as availability of lab results for a particular patient, changes in patient medication, changes in patient health which may be monitored manually or through the use of telemetry, or some other predetermined event, such as a critical abnormal lab result.  
         [0068]     In one embodiment, the server  12  maintains statistics on usage related to each individual terminal  14 , the user, time information, and the type of code (barcode or DOT, for example) read by the user during each code read or scan event. In addition, information regarding, for example, mistakes in medication administration or user operation of the terminal, misreads of the code scanners, or other operational activity outside of an ideal work flow is tracked by the server. Such tracking or compilation of statistics provides for future performance improvement and optimization of the system.  
         [0000]     Terminal  
         [0069]      FIG. 3  illustrates one embodiment of the terminal  14 . As shown, the terminal  14  is designed to fit comfortably in one hand of a user. Moreover, the features of the terminal  14  are positioned so that the user can operate the terminal with one hand. An upper surface  71 A includes a display  72 , which is preferably a 3-line×16 character backlit liquid crystal display (LCD). The display  72  can be used to display warnings, prompts, messages, etc., for the user. Of course, the invention is not limited to any particular type of display. Thus, display windows that show 1, 2, 4, 5 or more lines of text are within the scope of the invention. In addition, display windows that have additional features, such as chemiluminescent pigments, and non-textual display properties, are within the scope of the invention.  
         [0070]     The terminal  14  may also include indicators, such as a multiple or tricolor LED “Good Read” and message indicator  74  which, for example, illuminates briefly in green to notify the user when a code has been properly scanned, illuminates in red to notify the user when a code has been improperly scanned, and illuminates in yellow to notify the user when a message has been displayed on the display  72 . The terminal  14  may also include additional indicators, such as a power source indicator and a wireless connectivity indicator (not shown). Such indicators can be incorporated as part of the display  72 , or can be separate LED indicators which illuminate only when the available power is low or the terminal  14  is out of range for wireless connection with the server  12 . In other embodiments, the one or more indicators may be one or more LEDs. The indicators are not limited to the colors and functions described above. For example, an indicator LED may display red, yellow, or green, or combinations of these, depending on a status of the terminal  14 .  
         [0071]     Also located on the upper surface  71 A is a DOT scan button  76  and a barcode scan button  77  to activate the code scanners, where the illustrated embodiment comprises both a DOT scanner and a barcode scanner. In the illustrated embodiment, the DOT scan button  76  is positioned on the upper surface  71 A opposite the location of the DOT scanner on a lower surface of the terminal  14 , and the barcode scan button  77  is positioned on the upper surface  71 A opposite the location of the barcode scanner on the lower surface of the terminal  14  to indicate the location of the scanners to the user for scanning codes. It will be appreciated that in one embodiment a terminal comprises only a barcode scanner and barcode scan button, and in a second embodiment a terminal comprises only a DOT scanner and DOT scan button. The terminal may additionally or alternatively include means for reading an RF ID tag.  
         [0072]     As shown, the terminal  14  also includes an “OK” or acknowledge button  78  for user input in response to questions, or to acknowledge messages appearing on the display  72 . Engaging the OK button  78  allows the terminal  14  to interact with the user in a predefined manner so that input from the user can be stored within the terminal  14 , or transmitted to the server  12  for processing. It should be realized that other mechanisms for entering data into the terminal  14  are also contemplated. For example, a pair of “YES” and “NO” buttons could be implemented in place of the single OK button  78 . In addition, fewer or more buttons could be placed on the rear surface, or other surfaces of the terminal  14  without departing from the spirit of the invention. For example, the OK button  78  could be placed on a side surface and still be within the scope of the invention. In one embodiment, the terminal  14  includes a jog dial on a side surface of the terminal, for example, that can be used to scroll through messages that appear on the display  72 , or to activate one of the scanners  80 ,  81 .  
         [0073]      FIG. 4A  is a bottom view of the terminal  14  and shows a lower surface  71 B which includes output windows for a bar code scanner  80  and a DOT scanner  81 . Of course, embodiments of the invention include either fewer or more output windows for scanning codes into the terminal  14 . In one embodiment, the terminal  14  only includes the bar code scanner  80 . In a second embodiment, the terminal  14  only includes the dot scanner  81 .  FIG. 4B  is a side perspective view of the terminal  14  and shows the upper surface  71 A and a portion of the DOT scanner  81 .  
         [0074]      FIG. 5A  is a block diagram of one embodiment of the terminal  14 . As shown, the terminal  14  comprises the bar code scanner  80 , DOT scanner  81 , display  72 , LED indicator  74 , DOT scan button  76 , barcode scan button  77 , and acknowledge button  78 . The terminal  14  further comprises a microcontroller  82 , such as an Atmel AT91 16/32-bit microcontroller, which includes a processor  84 . In one embodiment, the processor  84  has a 32-bit reduced instruction set computer (RISC) architecture with a 16-bit instruction set, for example, and is configured for low power consumption.  
         [0075]     The microcontroller  82  further comprises memory, which may be a combination of a static random access memory (SRAM)  86  and flash memory  88 . The SRAM  86  is configured to store program and application data, and preferably has a size capable of supporting a real-time operating system and application data, as well as memory space for image processing using data from the DOT scanner. In one embodiment, the SRAM  86  is supplemented by a pseudo SRAM device  87 , which combines a dynamic random access memory (DRAM) cell structure with an SRAM interface, so as to provide for low power consumption and low device cost. As will be appreciated by those skilled in the art, the single communication lines connecting elements of the terminal  14  are exemplary in nature, and a plurality of communication or control lines are contemplated.  
         [0076]     The flash memory  88  is configured for permanent storage of boot firmware, operating system, driver, protocol stack, and application programming, and is also preferably configured for low power operation. In one embodiment, the flash memory  88  provides a relatively small storage amount, such as 2 Mbytes, and additional flash memory  90  is provided external to the microcontroller  82 . For example, an additional 4 or 8 Mbytes of flash memory  90  is mapped into the memory area of the microcontroller  82  using external interface or glue logic  92  for address decoding into the same bank as the flash memory  88 . In one embodiment, the terminal operating system and/or application software at the flash memory  88 ,  90  can be upgraded in whole or in part via a wireless communication link.  
         [0077]     The microcontroller  82  also comprises a plurality of interfaces for communication with a plurality of peripheral devices. In one embodiment, the microcontroller  82  further comprises an external bus interface  94  configured to interface with the external memory components  87 ,  90  and glue logic  92 , for example. The microcontroller  82  may also comprise a plurality of universal asynchronous receiver-transmitters (UART&#39;s)  96 ,  97  configured for asynchronous communications with peripheral devices, a plurality of programmed input/output lines, and a programmed input/output controller  98 , configured to control the signals on the parallel input/output lines according to information from the processor  84 .  
         [0078]     The terminal  14  may additionally comprise a supervisory chip  99  coupled to the processor  84  and including a reset function and a watchdog timer. The reset function facilitates a system reset, for example, when the voltage supply rail exceeds a predefined threshold and maintains the reset condition for a predefined period of time while the terminal  14  components are allowed to stabilize. The watchdog timer is coupled to a watchdog timer signal output from the processor  84 , wherein the timer will trip in the event of a software deadlock at the processor  84 , and subsequently initiate a system reset. In one embodiment, the terminal  14  includes a clock  100  which provides the CPU clock, and the processor  84  can be configured to reduce the clock rate to conserve power when in a standby or sleep mode. The clock  100  may include a clock synthesizer. The microprocessor  82  may also use the clock as a real-time clock in order to communicate reminder messages or tones to the user for scheduled medication administrations or tasks. The clock can also provide for time stamping of each code scanning event or other events at the terminal  14 . The terminal  14  may also include a real time clock, such as the Real Time Clock chip DS2415 from Maxim Semiconductor (Dallas), to provide the microcontroller  82  with real time information.  
         [0079]     The glue logic  92  is preferably provided by a low power complex programmable logic device (CPLD), and is configured to interface with the DOT scanner  81 , a wireless communication transceiver  102 , a display controller  104 , and a user input and indicator controller  106 . The terminal  14  may further include one or more antennas  108 , coupled to the wireless communication transceiver  102 . The DOT scanner  81  comprises an image sensor  120 , such as an Omnivision OV6130 CMOS black and white imager incorporated into a digital camera including lens optics, and a bright LED  122  for illumination of the DOT image for scanning. In one embodiment, the DOT scanner  81  is a complete, individual unit and is configured to interface with the microcontroller  82  via the glue logic  92 .  
         [0080]     The wireless communication transceiver  102  is configured to communicate with the server  12  using wireless communication specifications such as RF, Bluetooth, or a WLAN specification, and the one or more antennas  108 . In one embodiment, the wireless communication transceiver  102  is a wireless LAN (WLAN) module comprising a media access controller (MAC), such as the Agere WaveLAN WL 60010 MAC, and physical layer solution, such as the Agere WaveLAN WL 1141 802.11b Physical Layer Solution. The MAC controller interfaces with the glue logic  92  via a compact flash interface  124 , and implements the 802.11 protocol specified by IEEE standards. The WLAN module may also be configured to implement an advanced encryption standard (AES). In one embodiment, the terminal  14  further comprises an EEPROM  126 , which is coupled to the transceiver  102  and configured to store device information, such as production attributes (serial number, board version, manufacturing date, MAC address, production number, etc.) and radio calibration data.  
         [0081]     The display controller  104  is configured to interface with the display  72 , which can be implemented with a black and white back-lit LCD. For example, the display  72  can be a 128×64 dot LCD module with chip-on-glass (COG) technology, or a 122×32 dot LCD module with tape carrier package (TCP) technology. The graphic controller  104  can be implemented, for example, with the Samsung Graphic Driver (KS0713/S6B1713). In one embodiment, the display controller  104  is not configured with built-in character fonts and a character font table is stored in memory in the terminal  14 . The display controller  104  may be configured to display predefined symbols, such as a battery power indicator, battery charge status indicator, wireless communication status, and wireless communication signal strength.  
         [0082]     In one embodiment, the user input and indicator controller  106  is configured to interface with one or more visual indicators, such as a plurality of single color LED&#39;s, bicolor LED&#39;s, or the tricolor LED indicator  74 , so as to facilitate activation or illumination of such indicators according to control signals from the microcontroller  82 . The user input and indicator controller  106  is further configured to monitor and receive input from one or more input switches or buttons, such as the DOT scan button  76 , the barcode scan button  77 , and the acknowledge or “OK” button  78 . In one embodiment, the terminal  14  includes a jog dial switch to select and initiate the reading of a barcode or DOT image. The user input and indicator controller  106  preferably interfaces with the microcontroller  82  via the glue logic  92 , wherein the glue logic  92  extends general purpose input/output (GPIO) capabilities from the microcontroller  82 . In addition, a de-bounce function may be provided for the input buttons and the jog dial switch.  
         [0083]     In one embodiment, the terminal  14  comprises one or more audio indicators, such as a piezo speaker  130  and driver  132 , coupled either directly to the microcontroller  82  or through the glue logic  92 . The audio indicator preferably provides acknowledgement to a user of a successful code reading and/or decoding of a barcode or DOT image, and may also notify a user of a waiting message, alarm, or warning. The audio indicator may also produce different audio signals to indicate different conditions to the user, such as a first audio signal to indicate a successful code reading and decoding, and a second, different audio signal to indicate an unsuccessful code reading and/or decoding.  
         [0084]     The microcontroller  82  may include testing circuitry or one or more interfaces for testing circuitry at the terminal  14 . In one embodiment, the microcontroller  82  comprises an embedded in-circuit emulator  134 , and the terminal includes a joint test action group (JTAG) interface  136  to support ARM standard embedded in-circuit emulation. The terminal  14  may further comprise a debug port  138  for the microcontroller  82 , comprising an RS232 transistor-transistor logic (TTL) interface to communicate with a peripheral test and debug monitor or circuit. The debug port  138  may also provide for initial programming of flash memory in the terminal  14  through a built-in flash programming routine at the microcontroller  82 .  
         [0085]     The terminal  14  further comprises the barcode reader  80 , which may be implemented with a modular barcode scan engine such as a miniaturized, high performance 650 nm laser-based, single-line decoded scan engine from Symbol Technologies (model no. SE-923). The scan engine is preferably modular and self-contained, and includes a microcontroller configured to decode a barcode into a format compatible with and readable by the microcontroller  82 . In one embodiment, the barcode reader  80  communicates with the microcontroller  82  through an RS232 TTL interface via a slave microcontroller  140 . The slave microcontroller  140  is preferably configured for low-power operation, and acts as a pass-through device when the barcode reader  80  is configured to decode barcode data independently. In certain embodiments, the barcode reader  80  is implemented with a scan engine which is not configured to decode a barcode, and the terminal  14  further comprises additional decoding or conversion circuitry configured to convert barcode data into an acceptable format for processing at the slave microcontroller  140 .  
         [0086]     In one embodiment, the terminal  14  comprises a battery monitor and safety circuit  144  coupled to a battery power interface  146 . The battery power interface  146  is preferably configured to draw power from a re-chargeable battery, such as a Li-Ion Polymer single cell battery, which provides approximately 3.7 volts. In one embodiment, the battery and the battery monitor and safety circuit  144  are a single unit, and may include the Texas Instruments chip BQ2050, for example. Where a re-chargeable battery is used, the terminal  14  further comprises a battery charger interface  148  configured to interface the battery monitor and safety circuit  144  with an external battery charger through metallic charger contacts, for example. The battery charger interface may be implemented, for example, with the Texas Instruments lithium ion charger, part no. BQ24002PWP.  
         [0087]     The battery monitor and safety circuit  144  is configured to monitor the power level in the battery and conditions during charging, and the slave microcontroller  140  provides an interface, preferably a one wire interface, between the microcontroller  82  and the battery monitor and safety circuit  144 . The battery preferably provides 3.3 volts for input/output and 1.65 volts for the processor core power rails through an on/off switch  149  for operation of the terminal  14 . In one embodiment, the terminal  14  includes one or more voltage converters  150 , such as the Micropower Synchronous Buck-Boost DC/DC converter by Linear Technology (LT3440EMS), to provide the desired power rails.  
         [0088]     As the terminal  14  preferably remains operational for an extended period of time, such as up to 12 hours, the terminal  14  is configured for low power operation. In one embodiment, peripheral components of the reader are not all operated simultaneously. For example, the terminal  14  is preferably configured to refrain from transmitting and receiving data at the wireless communication transceiver  102  at the same time a code reading event occurs at the DOT reader  81  or the barcode reader  80 . In certain embodiments, the wireless communication transceiver  102  may consume a large amount of power, and the specific transceiver implemented, such as the Agere WaveLAN, provides a variety of power savings modes that can be implemented to optimize the operational time of the terminal  14  between battery re-charging events.  
         [0089]      FIG. 5B  is a block diagram illustrating one embodiment of a plurality of modules for implementation at the microcontroller  82 . As will be appreciated by one skilled in the art, the following described modules may be implemented in conjunction with processors and storage devices in addition to or in place of the microcontoller  82 . As illustrated in  FIG. 5B , the microcontroller  82  comprises a scan module  160  configured to process the codes read by the code scanners  80 ,  81 , and an analyze module  162 , configured to analyze the processed scan codes. The analyze module  162  is configured to determine, for example, whether a scan code corresponds to data or an instruction. If the analyze module  162  determines that a scan code corresponds to data, the data scan code is processed at a data processing module  164 . If the analyze module  162  determines that a scan code corresponds to an instruction, then the instruction scan code is processed at an instruction processing module  166 .  
         [0090]     The data or instructions corresponding to the scan codes may be used or performed locally at the terminal  14 , or transmitted to the server  12  via the communication transceiver  102 . The microcontroller  82  may include a transceiver module  168 , which is configured to format data or an instruction for communication to the server according to the communication specifications of the communication transceiver  102 . As discussed above, the terminal preferably communicates with the server  12  during designated communication sessions. During a communication session, the terminal  14  preferably transmits more than a single scan code from the terminal  14 , however, the terminal  14  can transmit a scan code outside a designated communication session according to whether the data or instruction is to be sent to the server immediately. Determination of whether data or instructions are to be transmitted immediately may be based on user input or the type of data or instruction.  
         [0091]     The microcontroller  82  also comprises an activation module  170  configured to operate in conjunction with the activation module  54  at the server  12  when a user requests activation of a terminal  14 . Following user authorization by the server  12 , the activation module  170  is configured to process information sent by the activation module  54  at the server  12  and store the information in memory. In association with the modules illustrated in  FIG. 5B , memory will be referred to generally and may include, but is not limited to, the SRAM  86  and Flash memory  88  at the microcontroller  82 , and the additional pseudo SRAM  87  and Flash memory  90 .  
         [0092]     Referring to the example previously discussed, Nurse A requests activation of the terminal  14  by scanning a code on her identification badge. Upon authorization of Nurse A to use the terminal  14 , which may also include input of a password at the hardwired terminal  16  or the terminal  14 , the activation module  170  coordinates receipt of information corresponding to Patients A, B, C, and D, who are assigned to Nurse A, along with any additional tasks to be performed by Nurse A for those patients or in general. The activation module  170  then stores the received information in memory. The activation module  170  also stores the authorized user&#39;s identification code in memory, such that data and instructions sent to the server  12  can be tagged with the user&#39;s identification for future use, for example, in record keeping. In one embodiment, the terminal  14  communicates with the server  12  using a hardwired connection during an activation procedure.  
         [0093]     The microcontroller  82  further comprises a display module  172  configured to facilitate display of messages, text, and indicators on the display  72  via the display controller  104 . The microcontroller  82  also comprises a user input module  174 , configured to monitor and process user input received at the OK button  78  and a keypad if included on the terminal  14 . The user input module  174  responds to the received input accordingly, for example, depending on the message being displayed on the display  72 .  
         [0094]     The microcontroller  82  may further comprise an indicator module  176  configured to control illumination of the Good Read and message indicator  74 , via the user input and indicator controller  106 . As discussed above, the indicators may include an LED configured for illumination, for example, to notify a user that the terminal  14  is awaiting acknowledgment of a message or has displayed a warning at the display  72 . The indicator module  176  may also be configured to facilitate illumination of the Good Read indicator  74  when either of the scanners  80 ,  81  have scanned a new code. Where the terminal  14  includes an auditory indicator, the indicator module  176  is further configured to facilitate activation of the auditory indicator, such as a beep or buzz, as a warning or to indicate that a code has been properly or improperly read by one of the scanners  80 ,  81 . The terminal  14  can include a plurality of auditory indicators, which can be downloaded, for example, from the server  12  via a hardwired or wireless connection.  
         [0095]     The microcontroller  82  also includes a power management module  178  configured to monitor remaining battery power via the battery monitor and safety circuit  14 , and to schedule low power or no power operation of terminal components to conserve power. The power management module  178  may also be configured to facilitate display of the amount of available power or status of the battery via an indicator as discussed above. The power management module  78  may be further configured to facilitate communication of this information to the server  12 . In one embodiment, the microcontroller  82  further comprises an alarm and warning module  180 , configured to detect alarm and warning conditions and generate alarm or warning messages for display at the display  72 , or activation of the indicators.  
         [0096]     In the terminal  14  based embodiment of the alert system described above, the terminal  14  can further be configured maintain an electronic record for each patient with respect to medication administration, including, but not limited to, type of medication, quantity of medication administered, how administered, and time of administration. The microcontroller  82  may generate an alert or notification message if a user of the terminal  14  fails to timely indicate administration of medication. A user of the terminal  14  may timely indicate administration of medication by, for example, reading the DOTs associated with the patient and the medication. The microcontroller  82  may include a scheduling module  182  configured to manage scheduled tasks such as medication administration times, to monitor user input indicating completion of scheduled tasks or rescheduling thereof, and user notification of scheduled tasks.  
         [0097]     For example, a patient may be scheduled for administration of a particular medication at a predetermined time. The terminal  14 , uses a schedule monitoring function at the scheduling module  182  to track an elapsed time after a predetermined medication administration time and may generate an alert or notification message if no indication of medication administration has occurred within a predetermined alert time. As with the server based system, the predetermined alert time may be, for example, 30 minutes or one hour after a scheduled administration time. Thus, the scheduling module  182  may monitor data entry for receipt of scan codes indicating administration of a medication or completion of a task, for example, which correspond to scheduled medication administrations or tasks. In the event the scheduling module  182  determines that the elapsed time following a scheduled medication administration exceeds some predetermined latency time, and no scan codes have been received to indicate completion of the scheduled medication administration, the scheduling module  182  facilitates activation of an indicator or display of an appropriate message at the display  72 . The terminal  14  may continue to periodically display or sound the notification or alert until acknowledgement by the user of the terminal  14 . The user of the terminal  14  may acknowledge the alert or notification by, for example, selecting the “OK” button  78  on the terminal  14  or by performing the process associated with the alert. The terminal  14  may present the alert on a display, using one or more indicators, audibly, or using some other way or some other combination of ways.  
         [0098]     In one embodiment, the terminal  14  is configured to schedule notification for a follow-up task in response to an event such as administration of a medication or treatment. For example, in response to receipt of user input indicating administration of a medication, the scheduling module  182  schedules a follow-up visit notification or reminder for the user to visit the patient and perform an additional task. In one particular example, a nurse may administer a pain medication and input corresponding information into the terminal  14 . In response to receipt of information regarding the administration of the pain medication, the scheduling module  182  schedules a notification for a predetermined time following administration of the medication, such as one hour. In addition, the notification may include instructions to perform an additional task or enter additional information, such as patient heart rate or a pain score provided by the patient. Subsequently, the terminal  14  notifies the user, upon lapse of the predetermined time, with instructions to visit the patient and perform a predetermined task or obtain and input predetermined information or data, such as a pain score.  
         [0000]     Processes  
         [0099]     One embodiment of a method  198  of operating the terminal  14  is illustrated in the flowchart of  FIG. 6 . The process begins at a start state  200 , and then moves to a state  201  wherein the terminal  14  receives a scan code using one of the scanners  80 ,  81 . In a state  202 , the terminal  14  determines whether the scan code corresponds to data or an instruction, wherein such a determination can be made according to a single bit in the scanned code, for example. If the terminal  14  determines that the scan code corresponds to data in state  202 , the terminal  14  determines whether the data is the type of data expected in a state  204 . For example, where the previous code scanned by the terminal  14  corresponds to a patient and the terminal was awaiting a scan code corresponding to a medication or note taking entry for the patient, the wireless terminal would recognize that the current scan code corresponding to a different patient was not expected.  
         [0100]     If the scan code is determined to correspond to an expected type of data as determined in state  204 , the terminal  14  determines whether to wait for additional data in a decision state  208 . If the terminal  14  determines that it should wait for additional data in state  208 , the wireless terminal waits to receive another scan code in state  201 . For example, where a scan code corresponding to patient identification data was received in state  200 , the terminal  14  would await additional data for the patient, such as the medication administered, dosage of medication, and note taking entries.  
         [0101]     In the event the terminal  14  determines in decision state  208  that it should not wait for additional data, it proceeds to a state  210  to determine whether the scan code data corresponds to data stored in memory. For example, where the authorized medications for Patient A are stored in memory, the terminal  14  determines whether the scan code data corresponds to an approved medication for a designated patient as stored in memory. If the scan code data does not correspond to the data in memory, the terminal  14  generates a warning to the user in a state  212 , indicating that a code corresponding to an incorrect medication has been scanned. The terminal  14  waits to receive another scan code in state  201 . The process  198  then moves to decision state  215  to determine whether or not to display the warning to the user. If a warning is to be displayed, the process  198  moves to state  216  and displays the message at the display  72 . If a determination is made at decision state  215  that no warning is to be displayed to the user, the process skips state  216  and terminates at an end state  217 .  
         [0102]     However, if the scan code data does correspond to an authorized medication in state  208 , the wireless terminal transmits the scan code data to the server at the next communication session in state  214 . Preferably, a plurality of scan codes are grouped together for transmission to the server, wherein a group comprises a patient identification code, a medication code, and a dosage. Depending on the type of medication administered, the group may also comprise a patient&#39;s vital sign such as temperature, method of administration such as oral or injection, and location of injection. Of course, embodiments of the invention are not limited to particular groupings of data for transmission to the server.  
         [0103]     If the scan code is determined to correspond to an unexpected type of data as determined in state  204 , the method  198  then moves to decision state  215  to determine if a message should be displayed to the user. There are several instances where the user should be provided with messages. For example, where the terminal  14  is being used to document and ensure accurate medication administration, the user first uses the wireless terminal to scan a code corresponding to a patient, such as a code on the patient&#39;s wristband. In response to such a code, the terminal  14  waits for additional data, and the user would proceed to scan a code on medication packaging. The wireless terminal  14  then uses the patient identification code to determine whether the code from the medication packaging is an authorized code for the patient according to the information stored in memory. In the event the scanned medication code corresponds to the authorized medication as stored in memory, the terminal  14  may display a message to indicate that the administration of the medication is authorized, dosage information, and administration information. The terminal  14  can also display a prompt to the user for entry of additional information, such as patient pulse and/or temperature. The user can enter such additional information, for example, by scanning codes corresponding to numerical digits with the terminal  14 .  
         [0104]     Following administration of a medication, a caregiver can use the terminal  14  for documentation or note taking. In particular, the user can document a reaction to a medication by scanning the appropriate code. For example, in the event a patient vomits after receiving medication, the user of the wireless terminal scans a code corresponding to the text “PATIENT VOMITED”. The terminal  14  recognizes that the code corresponds to documentation data and transmits it to the server  12  with the patient identification code during the next communication session.  
         [0105]     Referring now back to decision state  202 , if the terminal  14  determined that the received scan code corresponds to an instruction, the terminal  14  proceeds to a decision state  218 . In decision state  218 , the terminal  14  determines whether the instruction is to be performed by the terminal  14  or to be sent to the server  12 . If the instruction is to be performed by the terminal  14 , the wireless terminal executes the instruction in a state  220 . The process  198  then moves to the decision state  215  to determine if a message should be displayed to the user.  
         [0106]     If the instruction is to be sent to the server  12 , the terminal  14  proceeds to a decision state  222  to determine whether the instruction is an immediate instruction, i.e. the instruction needs to be sent immediately and the terminal  14  should not wait for the next communication session. If the terminal  14  determines that the instruction is an immediate instruction in state  222 , the terminal  14  transmits the instruction to the server  12  immediately in a state  224  and does not wait for the next communication session. If the wireless terminal determines that the instruction is not an immediate instruction in state  222 , the terminal proceeds to a state  226  to transmit the instruction to the server  12  during the next scheduled communication session.  
         [0107]     Thus, in one embodiment, the user of the terminal  14  scans a code corresponding to an instruction to print a report or order a laboratory test for a patient, sends a message or page, or requests information from a peripheral system connected to the server  12  by scanning the appropriate code(s) with the code scanners  80 ,  81 . The terminal  14  then proceeds to transmit the instruction and any additional information, such as patient identification information, to the server  12  to initiate a procedure according to the instruction.  
         [0108]     The terminal  14  can also initiate performance of an instruction, such as immediate request for assistance. For example, a user can scan a code on the wall in a patient room to request immediate assistance, wherein the code includes information regarding the location of the code as scanned. Such an instruction would be determined to be an immediate instruction in state  222  and would therefore be transmitted to the server  12  without waiting for the next communication session. In addition, the terminal  14  is configured to execute instructions or commands such as display medication data for a patient, or recall and display the last N scan code entries.  
         [0000]     Transmitting Data  
         [0109]      FIG. 7  is a flowchart illustrating one embodiment of a method of operation of a terminal  14  during a communication session. In a state  250 , the terminal  14  transmits data and/or instructions to the server  12 . In a state  252 , the terminal  14  receives data and/or instructions from the server  12 , and in a state  254 , the terminal  14  updates memory with the data received from the server  12 . In a state  256 , the wireless terminal  12  performs the instructions received from the server  12 , such as display of a message on the display  72 .  
         [0110]     One embodiment of a method of operation of the server  12  during a communication session with a wireless terminal is illustrated by the flowchart of  FIG. 8 . In a state  260 , the server  12  receives data and/or instructions from the terminal  14 , and in a state  262 , the server  12  transmits data and/or instructions to the terminal  14 . In a state  264 , the server  12  updates memory  64  and the appropriate peripheral systems, such as the patient record system  30 , with the data received, and in a state  266 , the server  12  performs tasks or initiates performance of a process in response to instructions received from the wireless terminal  14 .  
         [0000]     Processing Data and Instructions  
         [0111]     One embodiment of a method  290  of operation of the server  12  in response to receiving a scan code from a terminal  14  is illustrated in more detail in the flowchart of  FIG. 9 . As illustrated in  FIG. 9 , the method begins at a start state  292 , and proceeds to a state  300  wherein the server  12  receives data and/or an instruction from the terminal  14  in the form of a scan code. In a state  302 , the server determines whether the scan code corresponds to data or an instruction. If the scan code corresponds to data, the server  12  proceeds to a state  304  wherein memory  64  is updated with the data. The server  12  may also send the data to the appropriate peripheral system such as the patient record system  30 .  
         [0112]     If the scan code is determined to correspond to an instruction in state  302 , the server proceeds to a state  306  to determine whether the instruction is to be performed by the server  12  or another device or system. If the instruction is to be performed by the server  12 , the method proceeds to a state  308  wherein the server  12  executes the instruction. If the instruction is to be performed by a device or system other than the server  12 , the server  12  proceeds to a state  310  to determine whether the instruction is to be performed by a peripheral device, such as the printer  20 , or a system, such as the messaging system  22 .  
         [0113]     If the instruction is to be performed by a device, the server  12  proceeds to a state  312  where the process is initiated in the designated device according to the instruction by either sending the instruction directly to the device, or modifying and formatting the instruction and sending a formatted instruction to the designated device. Following initiation of the process in the designated device, the server  12  may query whether the instruction has been performed or completed in a state  314 . If the instruction has not been performed, the server  12  can initiate the process in the designated device again by returning to state  312 . If the instruction has been performed, the server  12  proceeds to an end state  316 . In addition, the server  12  can send a message to the terminal  14  notifying the user that the process initiated in response to the received instruction has been completed.  
         [0114]     If the server  12  determines in state  310  that the instruction is to be performed by a system, the server  12  initiates the appropriate process in the designated system or sends the instruction to the system designated as part of the instruction. In a state  320 , the server  12  queries the system as to whether the instruction has been performed. If the instruction has been performed, the server proceeds to an end state  322 , and if the instruction has not been performed the server returns to state  318  and sends the instruction to the designated system again to be performed. Alternately, if the instruction is in the process of being performed, or is waiting to be performed, the server  12  will continue to query the system until the instruction has been performed. In addition, the server  12  can notify the user of the terminal  14  that sent the instruction that the instruction has been performed by sending a message to the terminal  14  for display.  
         [0000]     Information Update Module  
         [0115]      FIG. 10  is a flowchart illustrating one embodiment of a method of operation of the information update module  66  in the server  12 . In a state  350 , the server  12  receives an information update from a peripheral system or device, such as the pharmacy system  24 , wherein the information received comprises updated medication orders for a patient or medication orders for a new or transferred patient. In a state  355 , the information update module  66  stores the information in memory  64 , and transmits the updated information to the appropriate terminal  14  during the next communication session.  
         [0000]     Messaging Module  
         [0116]     One embodiment of a method of operation of the messaging module  70  in the server  12  is illustrated in the flowchart of  FIG. 11 . The messaging module  70  receives information including a message for a terminal  14  user in a state  370 . In a state  375 , the messaging module  70  looks for the terminal user, designated by name or ID number, in memory  64  and determines which terminal  14  to send the message to according to user information for each terminal  14  stored in memory  64 . In a state  380 , the messaging module  70  transmits the message to the appropriate terminal  14  using the transceiver  46  and antenna  48 .  
         [0117]     The system  10  is also capable of additional processes, such as billing or inventory control. For example, every item given or used by a patient in a hospital has a scan code applied to it or that corresponds to it in the system. When that item is used by or for the patient, the caregiver providing the item scans the patient ID code and the item code. Such information is then transmitted to a billing or record keeping system for future reference.  
         [0118]     An additional capability of the system  10  may include entry of physician orders for patients, where a physician uses a terminal  14  to enter medication or medical care orders for a patient by scanning codes corresponding to the patient identification information, the medication to be administered, the dosage, and additional information regarding administration of the medication.  
         [0000]     Example Process  
         [0119]      FIG. 12  is an example of a Medication Worksheet  1200  that may be used in conjunction with a terminal  14  and server  12 , operating in a system such as the hospital system  10  of  FIG. 1 , and using, for example, the processes of  FIGS. 6-11 . In one embodiment, a user such as a nurse, authorized personnel, or system administrator obtains a printed version of the Medication Worksheet  1200  at the beginning of a working shift. For example, as previously discussed, the user of a terminal  14  may scan a code corresponding to an instruction to print a Medication Worksheet, and then scan a code corresponding to data identifying the user. In response to the instruction, the server  12  would facilitate printing of the Medication Worksheet for the identified user.  
         [0120]     The Medication Worksheet  1200  comprises a number of fields supplying a variety of information. For example, the Medication Worksheet  1200  can include an assignment field  1210  that identifies the responsible user or nurse, applicable date, and applicable shift in terms of time. The Medication Worksheet  1200  can also include a patient field  1220  that identifies one or more patients, their corresponding medications, and scheduled administration times for the medications.  
         [0121]     The Medication Worksheet  1200  can also include fields comprising scan codes that a user such as a nurse or authorized personnel are likely to use during their working shift, such as medication administration sites. In one embodiment, the fields include a “sites” field  1230 , an “override” field  1240 , a “keypad” field  1250 , and an “other” field  1260 .  
         [0122]     The “sites” field  1230  can include one or more scan codes associated with one or more medication administration sites or methods. For example, a user can administer medication to a first patient in accordance with the schedule shown in the patient field  1220 , wherein the user scans a first patient scan code  1222  associated with the first patient. The user can then indicate, by scanning the appropriate scan code, the site at which a first listed medication was administered. For example, the user may scan the “1. thigh” scan code  1232  to indicate that the first medication was administered via an injection to the left thigh. The terminal  14  would then transmit the information corresponding to the scan codes, such as patient information, medication, and location of medication administration, to the server  12 . In response to receipt of the information from the terminal  14 , the server  12  can then communicate the information to one or more modules or servers in the system, such as the patient record system  30 .  
         [0123]     The user can similarly scan a scan code in the “override” field  1240  to indicate a reason for overriding a scheduled administration of medication, such as “increased nausea”. The “keypad” field  1250  can be used to compose messages or enter data for transmission to a server  12 , such as patient statistics including temperature. In  FIG. 12 , the keypad field  1250  shows a numeric keypad. In other embodiments, the Medication Worksheet  1200  may include a numeric, alphanumeric, symbolic, combination thereof, or some other keypad.  
         [0124]     The “other” field  1260  can include other instructions or data entries not included in the previously described fields. For example, the “other” field  1260  may include a page scan code  1262  corresponding to an instruction to “page S. Felner RN”, or other designated personnel that may be currently on duty. In response to a user scanning the page scan code  1260 , the terminal  14  sends an instruction to the server  12 , and the server facilitates a page to the listed party. In addition, the user can compose a message that is used in the page using the scan codes in the “keypad” field  1250 , or additional scan codes in the “other field  1260  corresponding to predefined messages, such as “patient requested consultation”.  
         [0125]     It may be advantageous to implement the scan codes on the Medication Worksheet with DOTs to identify various inputs. Unlike a bar code, the DOTs consume a small area on a standard printed page and can be positioned adjacent one another, both horizontally as well as vertically. The 2-dimensional nature of the dots allows the terminal  14  to isolate and selectively read dots that are positioned very close to one another.  
         [0126]     The system  10  can similarly use DOTs to initially configure a terminal  14 .  FIG. 13  shows an embodiment of a configuration report  1300  that can be generated and used to configure a terminal  14 . A system administrator or other user can input information to the server  12 , at the hardwired terminal  16 , for example, and can thereby facilitate printing of the configuration report  1300  by the printer  20  (see  FIG. 1 ). The user can then configure the terminal  14  using the information provided in the configuration report  1300 , such as written instructions and a plurality of scan codes implemented with DOTs, barcodes, or a combination thereof.  
         [0127]     In one embodiment, the system administrator inputs a server address  1310  and network address  1320  to the server  12 . The server address can be, for example, an IP address. The system administrator can, for example, identify one of a plurality of server addresses using a pull down menu, manual entry, automated process or some other method of identifying a server. Similarly, the system administrator can identify a network from one or more available networks using a pull down menu, manual entry, automated process or some other method of identifying a server  12 .  
         [0128]     The server  12  can then process the information entered by the system administrator and generate one or more configuration scan codes  1330  that can be used to configure the terminal  14 . The one or more scan codes  1330  can include, for example, one or more DOTs that identify or dictate a configuration operation recognized by the terminal  14 . One or more additional scan codes may also be used to identify the server address and network, as well as other communication protocol. In one embodiment, the one or more scan codes in the configuration report  1300  identify a Wired Equivalent Privacy (WEP) algorithm key that is used by the terminal  14  to provide security over a wireless communication channel.  
         [0129]     In order to configure a terminal  14  using the configuration report  1300 , a user can simply sequentially read each scan code or DOT in the configuration report with the terminal  14 . The terminal  14  is configured once all of the dots in the configuration report  1300  have been read by the terminal  14 .  
         [0000]     Exemplary DOT Scanner  
         [0130]      FIG. 14A  is a perspective assembly view illustration of one embodiment of a DOT scanner  1400  for use in a wireless terminal  14 . As illustrated in  FIG. 14A , the DOT scanner  1400  comprises a flex circuit  1402  having a CMOS camera attached. A first positioning piece  1404  is coupled to the flex circuit  1402 , and a shielding piece  1406  is positioned over the CMOS camera on the flex circuit  1402 . A lens  1414  is inserted into a lens sleeve  1410 , and a lens retaining ring  1412  is coupled to the lens sleeve  1410  to retain the lens in the lens sleeve  1410 . An outer sleeve  1414  is positioned substantially surrounding the lens sleeve  1410  and is configured to focus the CMOS camera, via positioning of the lens within the outer sleeve  1414 , such that a central viewing axis of the CMOS camera is perpendicular to a DOT over which the camera is positioned. The outer sleeve  1414  is positioned in a first narrow aperture  1416  of a nose cone  1418 , wherein the nose cone  1418  is configured to ensure the CMOS camera is positioned an optimal distance from a DOT during a scanning event. The nose cone  1418  also comprises a second opening  1420  opposite the first narrow aperture  1416 . The second opening  1420  has a greater circumference than that of the first narrow aperture  1416  and is configured to be positioned over and encircling a DOT for scanning. The nose cone  1418  further comprises a second narrow aperture  1422  positioned substantially adjacent to the first narrow aperture  1416 , and configured to receive an LED  1424  and an LED sleeve  1426 . The nose cone  1418  is configured to focus light from the LED  1418  at the second opening  1420  of the nose cone  1418  so as to illuminate a DOT during a DOT scanning event.  
         [0131]     The assembled scanner  1400  is illustrated in more detail in  FIG. 14B , where  FIG. 14B  is a cross-sectional illustration of the assembled DOT scanner  1400  of  FIG. 14A . The configuration of the nose cone  1418  with respect to the fist narrow aperture  1416  and the second narrow aperture  1422  is more clearly illustrated in  FIG. 14B , and a CMOS camera  1428  is visible as coupled to the flex circuit  1402 . As illustrated in  FIG. 14B , the portion of the nose cone  1418  extending from the second narrow aperture  1422  merges with the portion of the nose cone  1418  extending from the first narrow aperture  1416 . Thereby, a DOT positioned at the second opening  1420  is illuminated by the LED  1424  positioned at the second narrow aperture  1422 , while the CMOS camera  1428  captures an image of the DOT through the first narrow aperture  1416 .  
         [0132]      FIG. 15  is a top view illustration of an additional embodiment of a terminal  14 . As illustrated in  FIG. 15 , the terminal  14  includes a numeric keypad  1520  for user input. The numeric keypad  1520  comprises ten numeric keypad buttons corresponding to the numbers zero through nine, a decimal point button, and a backspace button. Alternately, the keypad  1520  may be implemented in a configuration corresponding to that used on a standard computer keyboard. As will be appreciated by those skilled in the art, the keypad  1520  can be implemented with a variety of button combinations, and is not limited to the implementation illustrated and described herein. For example, the keypad  1520  may be implemented with an alphanumeric keypad such as those used with a standard telephone keypad.  
         [0133]     It will be appreciated that the above-described system can be implemented in additional environments, such as nursing homes, etc. and is not limited to the health care industry. For example, implementation of the system in industries and environments where precise inventory tracking and workflow management can be advantageous.  
         [0134]     The foregoing description details certain embodiments of the invention. It will be appreciated, however, that no matter how detailed the foregoing appears in text, the invention can be practiced in many ways. As is also stated above, it should be noted that the use of particular terminology when describing certain features or aspects of the invention should not be taken to imply that the terminology is being re-defined herein to be restricted to including any specific characteristics of the features or aspects of the invention with which that terminology is associated. The scope of the invention should therefore be construed in accordance with the appended claims and any equivalents thereof.