FORM DATA ENTRY WITH MATCHING OF THE FIELD TYPE

Abstract: A data entry system comprises input means (10), preferably a voice recognition system, for the input of items of data and database means (17) for storing a plurality of records, each record consisting of one or more data items, each data item being defined as being in one of a number of data categories. The system includes means (12) for storing at least one document format or data entry form having at least one field for the addition of a data item from a predetermined category. Each data item input is compared with stored reference date (31) to find a match for the input data item, and, hence, to identify the data category to which the input data item belongs. The input data item is added to the document format or data entry form at a field associated with the data category so identified. The stored reference data may include at least one register (31) of information derived from the records stored in the database (17) means but separate from them. The system is very easy to use for unskilled users and, further, document formats and data entry forms in applications complying with the complement object model can easily be converted to such a system using a suitable Active X control.

Description: FORM DATA ENTRY WITH MATCHING OF THE FIELD TYPE The present invention relates to an improveα system for document completion or form filling m tne context of a word-processing system or for tne entry of data into a - αatabase. Many word-processing and computer systems currently available offer a facility for inserting data from a computer record of some kind into a standard document format. Operations of this kind range from simply adding ic name and address details to a standard letter wnich is no oe sent to a number of different aααressees to inserting a large numner of items of data into a complicated document format, for example, completing a patient's hospital record. In this specification, the term λ document' s to 15 be taken to cover any file stored on a computer or word- processor or m a database, into which one or more items of data from a separate database are to be inserted to form a complete file for printing, display or further storage . 20 One difficulty w th systems of this kind hitnerto is that they may be relatively complicated to use, requiring skilled operators and careful input of information. It is, however, a well-recognised fact that the introduction of personal computers and word-processing systems has led to 25 much more widespread generation of documents by relatively unskilled operators, for example, professionals of various kinds including doctors and lawyers, many of whom have little training m using such systems. It would be desirable, therefore, to provide a document generation 30 facility in word-processing or computer systems whicn s easy for an unskilled operator to use. Similar problems arise m connection with the entry of data into a database or other structured computer memorv; data must be input into the correct field m the correct record. To facilitate entry of data into such databases and the like storage, many systems use a graphical user interface (GUI) which provides a screen display having the appearance of a form to be completed; the user selects, with the aid of a mouse or in some other way, the appropriate box into which text or other data can be inserted. While the screen has the appearance of a document, no file containing both the 'document format' and the inserted data is ever generated. Instead, data is simply entered into the database fields represented graphically on screen by each box selected by the user prior to entry of the data items added to the database record. A graphical display of this kind, which leads to entry of data into a database rather than generation of a document will be referred to as a 'form' in this specification and its appended claims. In accordance with a first aspect of the invention, there is provided a data entry system comprising: input means for the input of items of data; database means for storing a plurality of records, each record consisting of one or more data items, each data item being defined as being in one of a number of data categories; means for storing at least one document format or data entry form, the document format or data entry form having at least one field for the addition of a data item from a predetermined category; and means for receiving a data item input at the input means and for comparing it with stored reference data to find a match for the input data item, and, hence, to identify the data category to which said input data item belongs; said means for receiving being operable to add the input data item to the document format or data entry form at a field associated with the data category so identified. In a preferred embodiment, the stored reference data comprises at least one register of information derived from at least some of the plurality of records stored in the database means but separate from them. This has the advantage over using the records in the database means themselves for reference purposes that a more sophisticated search package can be used to generate and search the register or registers, allowing speedier operation and more efficient comparison. Preferably, the data entry system comprises at least one register of commands; the means for receiving a data item input at the input means being operable to compare the said data item with the content of the register of commands to find a matching item and, hence, to identify commands input at the input means. With this arrangement, the user can simply input data and commands without the need to identify commands to the system, making the system easier for an unskilled user to use. In a preferred form, the input means includes a voice recognition system capable of converting audible speech into electrical signals suitable for input to the means for receiving data items . Voice recognition systems are in increasingly widespread use as an easy means for using computers or other electronic systems. In general, they permit the user to speak commands to the device in question. When incorporated into direct dictation systems, they also allow the user to dictate text directly into a word- processing system without the need for a keyboard or an intermediary skilled m typing. It will be appreciated that such systems allow input of two kinds; direct commands, for example, OPEN FILE, which cause operation of programs, and text or data, which is to be added as such to documents or records. In a further aspect the invention provides a method of generating a data entry system of the kind described aoove for a particular application, the method comprising analysing a pre-existing document format or data entry form used in the said application to identify and characterise fields provided for the addition of data and to generate additional code for inclusion in operating software under which the application is to run and/or the application software for the application under which data is to be entered, and adding the code generated to the operating and/or application software, respectively; the added code acting in use to cause comparison of each input data item with the stored reference data and to add the input data item to the document format or data entry form at a field associated with the data category identified. In a third aspect the invention provides an Active X control as described below for use in generating a data entry system for a particular application. An embodiment of such a system will now be described m detail, by way of example, with reference to the drawings, m which : Figure 1 is a schematic diagram of a system n accordance with he invention; Figure 2 illustrates schematically storage of records comprising a plurality of data items; and Figure 3 shows schematically a document or form. A preferred embodiment of a system in accordance with the invention comprises a direct dictation unit 10 including a voice recognition system, a processor 12 which interfaces with both the direct dictation unit 10 and with a word- processor or database storage 14 or both. In practice, the three units 10, 12 and 14 may effectively be implemented using the processor of a single personal computer ( 'pc' ) , for example, a 486 series pc or a pc containing a pentium processor supplied by Intel Corporation provided with 16 or 32 Mb of RAM and 30 Mb of hard disc space. In addition, the system requires a suitable microphone 16, for example, the microphone supplied by Talking Technologies under the trade mark 'TALK MIC which is particularly suitable for use in voice activated or direct dictation systems since it is capable of transmitting accurately the user' s voice without corruption and free of extraneous background noise. The direct dictation unit 10 which is used for voice activation of the system may, for example, be implemented by using one of a number of commercially available software packages, for example, IBM Voicetype, supplied by IBM Corporation, or Kurzweil Voice, supplied by Xerox Corporation and a suitable pc. These packages transform the input from the microphone 16 into input capable of recognition by the word processing system being used to generate the finished document or by data input software accessed by means of a form of the kind described above. The system is particularly advantageous when used in combination with stored data held in computer memory 17, for example, a conventional database or other organised memory of some kind. The database may be used to store data, for example, lists of patients' names and addresses, dates of birth, and the like. The database 17 may be associated with one or more documents of a word-processing system, as a source of external data, or may be associated with one or more forms, by means of which data can be added to the database or ooth. In a preferred embodiment, the screen of the pc may carry a display which serves both functions; the display may represent the format of a document, which can be printed off or stored as a complete file for further use, while, at the same time, functioning as a form for data entry. As is usual in commercially available databases, items of data of different types or categories may be associated or linked to form a single record 18. This can best be explained by likening the database to a grid of boxes or fields capable of storing information, as shown in Figure 2. Each row 19 of boxes (or 'record' ) may be used to store information about a single individual, each column 20 storing information of a particular type (or 'data category' ) , for example, dates of birth for a plurality of individuals . To use the system the user calls up a standard form, if data is to be entered, or document, which may be a letter or other document template. In either case, the form or document template 22 comprises of a number of boxes or fields 23 into which information of a particular kind is to be entered, n a similar manner to completing a conventional paper form. (See Figure 3) . Data and commands can be input using the voice recognition unit 10 or, more conventionally, by using a keyboard (not shown) . The user can then start to add data to the document or form 22 by inputting data using the voice recognition unit 10. It is to be noted that, whether we are considering data entry or document generation, there are two different situations which arise initially. In the first case, data to form a completely new record is to be added to the document or form. In the second case, a record already exists in the database and the first step towards data entry is to select the desired record from those in the database. However, once selection has taken place, addition of data to an existing record can proceed in the same manner as the addition of data to a newly created record. Where data is to be added to either a new record or to a record already selected, the invention provides that it is not necessary for the user to identify the category of information being input. The processor 12 takes the input from the voice recognition unit 10 and compares it with stored data until it finds a match. For example, if the data input is a patient's surname, the processor 12 will compare the information which has been inputted with the data items of a first category 20 within the database, for example, it may first compare the inputted surname with the column of data representing addresses. It will not, of course, find a matching data item in this first category and will then move on to compare the inputted data with items stored n the second category and so on. When a matching item is found, the processor 12 causes the information to be added by the word-processor 14 to the selected document or form, inserting it at the appropriate field or 'box' 23 according to the category or type 20 of data item with which the processor 12 matched it. So, if the inputted data item matches a surname held in the database storage, the data will be added to the document in the box 23 which corresponds to the patient's surname on the form. Although it is possible to select the appropriate category 20 by searching against the database 17 itself, it is preferable to select the category by reference to separate registries or indexes generated from the database 17 but held separately in memory 30. This allows more sophisticated and efficient indexing and searching techniques to be employed. For example, searching and indexing packages available may permit the grouping or clustering or terms, m effect, a two-tier indexing allowing terms to be grouped together, for example, all conditions affecting the eye might be grouped or 'clustered' within the registry 31 or index for 'diagnoses' so that once it has been determined that a particular patient suffers from an eye problem, a match is sought only among those conditions which affect the eye. A separate registry 31 may be stored for each data category 20, some will in effect be a simple alphabetical or numeric listing of all data items in a category, others may be more complex. In addition, some registries may contain purely numeric data, for example, dates of birth, and others alphabetic data. Using suitable software for searching and indexing, the system can recognise, for example, purely numeric data, and will consequently not look for a match in categories containing alphabetic information . Each registry 31 will, however, be associated with a single data category so that, if a match is found, it should in most cases provide a clear indication as to the category to which data should be added. Because more sophisticated procedures can be used with a separately generated registry 31 than with the database itself, matching of a data item with an existing data entry can be achieved more quickly. Once the first input data item has been matched and added at the appropriate location n the document or form, the user can input further items of data using the voice activation unit 10, each further data item being checked by the processor 12 against stored information in either the database 17 itself, or, preferably, the registries held in the memory 30. Once a match has been found, each additional data item can be added to the document or form 22 at the appropriate location 23. Where data is to be added to an existing record 19 in the database 17 or a document is to be generated by importing data from an existing record 19 into a document template or where, as is preferred, the two operations are to be combined, the first step will, of course, be to select the required record 19. This can be achieved by using the same data matching procedure as is described above n connection with selection of an appropriate data category 20. Most users will, for speed, select a data item which is unique or nearly unique to a particular record 19, for example, the patient's surname. However, the user might only be able to recall a data item from the required record of the kind likely to give rise to multiple matches during the checking operation. In this instance, it can be arranged that the software causes all records containing a matched data item to be displayed so as to allow the user to select the required record 19. Alternatively, particularly in the case where separate structured registries are used for matching purposes, it is possible to arrange for matching against two or more input data items: a logical AND operation. For example, a doctor might recall simply that a patient whose record s to be updated, was admitted on a particular date with a particular condition. Using suitable search software it is straightforward to locate a record which contains data items matching the admission ate and the patient' s condition. As indicated above, once a record has been selected, additional data items can be added to the record in precisely the same manner as they are added to new records; each input item oemg chec<ed against stored data to identify the appropriate data category 20 in which the item should be placed. Preferably, the system is such that identification of the required record 19 in the database oy the processor 12 causes the all data items from that record 19 for which there are corresponding boxes or locations 23 on the displayed form or document 22 to be displayed at the appropriate locations 23 m the document or form 22 automatically. Thus, m the example given, if the database storage also holds details of a patient's forenames, address, date of birth and doctor's name, these items can be added to the form 22, if the form has appropriate fields 23 for entry of these data items, automatically on finding a match for the input data item in a record held in the database 17. The document or form 22 may include further fields or boxes 23 to which free text can be added by the user at w ll, using the voice activation or direct dictation unit 10. Thus, for example, the document or form might, m the example referred to above, include one or more fields into which a patient's case notes may be added by dictation. In addition to data items, the voice recognition system or other input means 10 may also allow the user to input commands for navigating around the document or form 22 directly, for closing a particular operation or application or for selecting another form or document. It is possible, using the system of indexes or registries described above to avoid any need for the user to distinguish commands from other spoken input to the system. The stored data held in the memory 30 may include a registry 32 of command words so that if the input is matched against an item in the commands registry 32 it is treated by the system as a command not as text or other data to be matched. The registry of commands might, for example, include words such as 'up', 'down' and 'next', as well as labels identifying particular fields 23, such as 'surname', 'doctor', 'd.o.b' used for moving from field to field 23 within a chosen form or document. It might also include a list of document and/or form names to enable the user to select the required form or document easily. Finally, the commands registry 32 might include more general commands such as 'open', 'close' or 'print' which can be used with any form or document. Whilst the systems described above have been described in connection with the input of data using a voice activation or direct dictation unit, it will be appreciated that other forms of input could also be used, for example, a conventional computer keyboard. The system described allows for very easy and quick completion of documents and forms for printing or addition of data to database systems and records for storage by unskilled users, lessening or eliminating errors due to operator errors (bias) and making data entry consistent by permitting specific data items to be entered always in the same manner and format . In the context of many widely used software packages, existing forms can easily be customised to function in this way, in particular, those defined using graphical user interface packages such as Visual Basic, Delphi, C++ or other software compatible with 'Active X' technology. The Active X Technology has developed from a tool previously known as object linking & embedding - OLE - widely used by software developers to provide specific capabilities not available within the development environment. Such capabilities can be engineered by writing specific instructions to the computer' s operating ; system or to other applications and tnen encapsulating these as a tool that 'plugs and plays' . For example, it mignt be appropriate to insert a spreadsheet generated using one software package into a document generated using a word processing package having 10 no spreadsheet capability. This could be achieved using the OLE technology which would allow the provision of specific instructions, recognisable by the operating system and by the word processing and spreadsheet software, the instructions effectively calling the _5 spreadsheet package from within the word processing package and closing the spreadsheet package down again once it's use within the word processing software has been completed. However, although the Active X technology permits the same 20 object linking as was previously possible through OLE, it is a much broader concept and encompasses a much wider functionality, automating several tasks n one or more applications and having them called from another. The Active X technology is a medium for creating simple or 25 complex objects, applying properties to them, giving them methods, raising events and then providing a common shell of functionality and connectivity to the development space of the development programming language. Because the Active X technology consists of consistent methods which 30 are recognised by major development languages as well as the operating systems found in a pc environment, the Active X technology allows for better communication and connectivity than was possible with OLE. Most major software suppliers now write their software products to be compatible with Active X technology. In general, the term 'object' is used to descrioe any virtual or aostract item which is capable of having properties, and methods and raising events. For example, an application package like Microsoft Word is an object, as is a spreadsheet or a collection of data cells (a database), a single data cell or a text box. However, in the context of Active X technology, the term 'object' is limited to those objects, sometimes referred to as 'component objects' or 'window objects' which meet the requirements of a standard known as the Component Object Model ( 'COM' ) . The COM requires: 1. A common way for applications to access and perform operations on objects. 2. A mechanism for keeping track of whether an object is in use and for deleting the object when it is no longer needed. 3. A standard error reporting mechanism (instead of error codes and values) . 4. A mechanism for applications to exchange objects . 5. A means for identifying objects and associating them with applications able to understand how those objects are implemented. Using a component model application, there are no particular difficulties in determining how to handle methods, properties or events since these are called by reference to standard conventions automatically. The specific instructions generated in the Active X technology to allow manipulation of objects meeting the COM standard are called 'controls' . In the present case, the Active X control we have developed analyses the form or document in great detail and writes 'script codes' which allow the input means, for example, the voice recognition software referred to aoove, to communicate with the form or document without any skilled user involvement. As set up in, for example, Visual Basic, a form consists of a plurality of 'controls' which consist of defined 'events', 'properties' and 'methods' . Events are actions built into the form; they may self-refer or may act on other events by means of 'methods', eg, 'open', 'close' or 'click' . 'Properties' relate to name, size and other similar descriptors. Examples of events are: Form . load Text 1^ gotfocus Data 1 . error An example of a method is: Richtextboxl . loadfile For each form, the Active X control analyses the content of the form, its structure, the relationships between the contents of the form, and the relationship between the content of the form and any associated database. This is possible because the development software, in the example given, Visual Basic, complies with the component object model (COM) . In particular, our Active X control identifies all events within the form, all methods which can be called and all properties which can be modified. It also lists and names all controls within a given form and their relative locations, which are generally defined by reference to the control's 'tab' property. The Active X control also analyses the controls themselves, again identifying all events, methods or properties associated with each control, any links between the form and any associated database. Having thus analysed the form m detail, the Active X control then performs a decision making process to determine which items on the form need coding for recognition by the input means, n the example given above, voice recognition software. It then generates codes automatically for the items selected by the decision making process and inserts these cooes nto the voice recognition software. These codes permit tne input means 10 to recognise as commands input intended to enable further actions to be taken, or as control and navigation information allowing movement within the form or another record, to another form or to close the form. In addition codes are inserted into the voice recognition software to allow the system to identify the locations on the form or document 22 where converted speech input should be placed as text. Thus, when the voice recognition software is selected by the user, the voice recognition software will have in its stored list of recognised commands all the words which will be needed to navigate around a form, select a particular location for entry of text or enter the text itself within selected locations on the form. For example, if there is an input field 23 on the form or document 22 identified to the user by the label 'diagnosis' , then the user can select the required field simply by speaking the word 'diagnosis' ; the codes necessary for this will have been generated and inserted into the voice recognition software by the Active X control after the form has been analysed and an input field labelled 'diagnosis' identified by the control on the form or document. It will be appreciated that this is latter step is, m fact, a two-fold step; firstly, the code for recognition of the spoken word 'diagnosis' must be added, and, secondly, a command to move to that field within the form must be added so that every time the word is recognised the application enters any text or data following m the correct field. The Active X control may, in addition, automatically generate codes for inclusion n the commands registry 32 or m the registries 31 or indexes used as described above to allocate input data to the correct data category 20 in a given record 19. So, as each data item is input it will be checked against existing entries and, if none is found, the Active X control will cause the required code for the new entry to be added to the relevant register for that data category once the user has identified it. The Active X control is equally effective whether the template under analysis is a document for completion and printing or a data entry form for the input of data to a database or other record system. It will operate on any form or document generated using development software compatible with Active X technology.

Claims: CLAIMS 1. A data entry system comprising: input means for the input of items of data; dataoase means for storing a plurality of records, each record consisting of one or more data items, each data item being defined as being in one of a number of data categories; means for storing at least one document format or data entry form, the document format or data entry form having at least one field for the addition of a data item from a predetermined category; and means for receiving a data tem input at the input means and for comparing it with stored reference data to find a match for the input data item, and, hence, to identify the data category to which said input data item belongs; said means for receiving being operable to add the input data item to the document format or data entry form at a field associated with the data category so identified. 2. A data entry system according to claim 1 wherein the stored reference data comprises at least some of the plurality of records stored m the database means. 3. A data entry system according to claim 1 wherein the stored reference data comprises at least one register of information derived from at least some of the plurality of records stored in the database means but separate from them. 4. A data entry system according to any preceding claim wherein the means for receiving an input data item is operable to comparing the input data item with stored reference data to find a match for the input data item, and, hence, to identify a record stored in the database means . 5. A data entry system according to claim 4 in which identification of a record causes one or more additional data items from the record in which the matching item is held to be added to the document format or data entry form D at fields dependent on the categories of the said one or more additional items. 6. A data entry system according to any preceding claim comprising at least one register of commands; the means for receiving a data item input at the input means being 0 operable to compare the said data item with the content of the register of commands to find a matching item and, hence, to identify commands input at the input means. 7. A data entry system according to any preceding claim wherein the input means includes a voice recognition 5 system capable of converting audible speech into electrical signals suitable for input to the means for receiving data items . 8. A data entry method comprising: storing in database means a plurality of records, 0 each consisting of one or more data items, each data item being defined as being n one of a number of data categories ; storing at least one document format or data entry form, each document format or data entry form having at 5 least one field for the addition of a data item from a predetermined category; inputting of an item of data; and receiving an input data item; comparing the input data item with stored reference data to find a match for 0 the input data item, and, hence, identifying the data category to which said input data item belongs; and adding the input data item to the document format or data entry form at a field associated with the data category so identified . 9. A data entry method according to claim 8 wherein the input data item is compared with stored reference data comprising at least some of the plurality of records stored in the database means. 10. A data entry method according to claim 8 wherein tne input data item is compared with stored reference data comprising at least one register of information derived from at least some of the plurality of records stored in the database means but separate from them. 11. A data entry method according to any of claims 8 to 10 wherein an input data item is compared with stored reference data to find a match for the input data item, and, hence, to identify a record stored in the database means . 12. A data entry method according to claim 11 in which identification of a record causes one or more additional data items from the record in which the matching item is held to be added to the document format or data entry form at fields dependent on the categories of the said one or more additional items. 13. A data entry method according to any of claims 8 to 12 further comprising storing at least one register of commands; and comparing an input data item with the content of the register of commands to find a matching item and, hence, to identify commands input at the input means . 14. A data entry system according to any preceding claim wherein data items are input orally by means of a voice recognition system capable of converting audible speech into data items capable of comparison with stored reference data. 15. A method of generating a data entry system in accordance with claim 1 for a particular application, the method comprising analysing a pre-existing document format or data entry form used in the said application to identify and characterise fields provided for the addition of data and to generate additional code for inclusion in operating software under which the application is to run and/or the application software for the application under which data is to be entered, and adding the code generated to the operating and/or application software, respectively; the added code acting in use to cause comparison of each input data item with the stored reference data and to add the input data item to the document format or data entry form at a field associated with the data category identified. 16. A method according to claim 15 in which the code generated also causes at least one register of information to be derived from at least some of the plurality of records stored in the database means for comparison with input data items, the code acting n use to add to the said register of information as each subsequent data item is input. 17. A method according to claim 15 or 16 in which the application is a component object model application and the document format or data entry form is analysed and code for addition to the operating and/or application software generated by means of an Active X control as hereinbefore defined. 18. An Active X control as hereinbefore defined for use in generating a data entry system in accordance with claim 1 for a particular application.

Inventors: SOLANKI GUIRISH, SOLANKI, GUIRISH
Applicants: MEDICAL TALK SYSTEMS LIMITED, SOLANKI GUIRISH, SOLANKI, GUIRISH
Application year: 1998
Main classification: G06F17
IPC codes: G06F3, G06F17