USOO5724968A United States Patent (19) 11 Patent Number: 5,724.968 liff 45 Date of Patent: Mar. 10, 1998
54 COMPUTERIZED MEDICAL DIAGNOSTIC Bergman, Rhonda, Computers make house calls to SYSTEM INCLUDING META FUNCTION patients; Harvard Community Health Plan offers comput erized information service to patients, Journal of the Ameri 75 Inventor: Edwin C. Diff, La Jolla, Calif. can Hospital Association; 67(10):52 (May 20, 1993). 73) Assignee: First Opinion Corporation, San Diego, Bowden, K.F., et al., Data structures for general practice Calif. records, Information Processing 71; pp. 1398-1406 (1972). Can Telecommunications Help Solve America's Health 21 Appl. No.: 176,857 Care Problems?. Arthur D. Little, Inc. Acorn Park, Cam bridge, MA; (Jul 1992). 22 Filed: Dec. 29, 1993 Cimino, James J., et al., DXplain. An interactive knowledge (51) Int. Cl...... A61B 6/00; G06F 15/42 base for assistance in medical diagnostic decisions, IEEE/ (52) U.S. Cl. ... 128/630 Ninth Annual Conference of the Engineering in Medicine 58 Field of Search ...... 128/697,903, and Biology Society; (1987). 128/901, 630, 695, 670, 671, 632, 668, 716:364/413.02, 413.01, 413.03 (List continued on next page.) References Cited (56. Primary Examiner-Angela D. Sykes U.S. PATENT DOCUMENTS Assistant Examiner-Stephen Huane 4,220,160 9/1980 Kimball et al. . Attorney, Agent, or Firm-Knobbe, Martens, Olson & Bear 4,315,309 2/1982 Coli. ABSTRACT 4,337,377 6/1982 Van Riper et al. . 57 4,428,381 1/1984 Hepp. A system and method for providing computerized, 4,458,693. 7/1984 Badzinski et al. . 4,465.077 8/1984 Scneider. knowledge-based medical diagnostic and treatment advice. 4531527 7/1985 Reinhold, Jr. et al. . The medical advice is provided to the general public over a 4,606,352 8/1986 Geddes et al. . telephone network. Two new authoring languages, interac 4,712,562 12/1987 Ohayon et al.. tive voice response and speech recognition are used to 4,825,869 5/1989 Sasmor et al. . enable expert and general practitioner knowledge to be 4,838,275 6/1989 Lee . encoded for access by the public. “Meta' functions for 4,839,822 6/1989 Dormond et al. . time-density analysis of a number of factors regarding the 4,868,763 9/1989 Masui et al. . number of medical complaints per unit of time are an 4.945,476 7/1990 Bodick et al. . integral part of the system. Asemantic discrepancy evaluator 4,962,491 10/1990 Schaeffer. routine along with a mental status examination are used to 4,974,607 12/1990 Miwa. detect the consciousness level of a user of the system. A (List continued on next page.) re-enter feature monitors the user's changing condition over time. A symptom severity analysis helps to respond to the FOREIGN PATENT DOCUMENTS changing conditions. System sensitivity factors may be 447710A1 9/1991 European Pat. Off. . changed at a global level or other levels to adjust the system advice as necessary. OTHER PUBLICATIONS Advertisement for Physician's Database Manager and Iliad, 16 Claims, 40 Drawing Sheets The Alpha Media Catalog: (Oct. 1993). Becher, Ernst Fernmeldewesen fir soziale Dienste in Microfiche Appendix Included Entwicklungsldindern, NTZ; 33:304 (1980). (9 Microfiche, 454 Pages)
Sotiware Concer.?i
- PsiASST&N. D 3.SSTO ErCLE RecstaAKCr Assists RT REcist Rafior. palat rest RTX x - casultatas HTCY (uftay
------p.TIFT 5,724,968 Page 2
U.S. PATENT DOCUMENTS Mallory, Jim, Computers now giving medical advice, News bytes (American Association for the Advancement of Sci 4,975,840 12/1990 DeTore et al.. 5,012,411 4/1991 Policastro et al. . ence) (Panel Discussion); (Feb. 19, 1992). 5,030,948 7/1991 Rush. McDonald, Michael D. and Blum, Henrik L., Health in the 5,054,493 10/1991 Cohn et al. . Information Age. The Emergence of Health Oriented Tele 5,099,424 3/1992 Schneidman. communication Applications. Environmental Science and 5,113,869 5/1992 Nappholz et al. . Policy Institute; (1992). 5.193,541 3/1993 Hatsuwi ...... 128/630 Rose, J. (editor), Progress of cybernetics. vol. 2 cybernetics OTHER PUBLICATIONS and industry, social and economic consequences, cybernet ics and artifacts. Proceedings of the First International Conrath, David W. et al. A preliminary evaluation of Congress of Cybernetics, London, Gordon and Breach Sci alternative telecommunication systems for the delivery of ence Publishers; pp. 803-811 (1969). primary health care to remote areas, IEEE Transactions on Sacks, Terry, Pocket computer may cure technology-shy Communications; COM-23(10): 1119-1126 (1975). Cover for “An Apple A DayTM . . .” Created by Edward physicians, San Diego Union-Tribune; p. E-16; (Mar. 24, Weinstock, Dr. P.H., Avant-Garde (1984). 1992). Currid, Cheryl, Risky business: doctors, lawyers shy away Salvans. P. Ferrer and Valles, L. Alonso, An epidemiologic from computer technology, PC Week; (Sep. 17, 1990). approach to computerized medical diagnosis-AEDMI pro Doheny, Kathleen, Hack attack, LA Times Magazine; p. 8: gram. Comput. Biol. Med.; vol. 20, No. 6, 433-443 (1990). (Aug. 4, 1991). San Diego Emergency Physicians Society, Minutes of Meet Frenger, Paul, Details of database management system for a ing, Regular Oct. 1991 Meeting; P.O. Box 16685, San telephone medical consultation service, IEEE Frontiers of Diego, CA 9217.6; first page. Computers in Medicine; (1982). Schild, W., et al., Computer-aided diagnosis with an appli Frenger. Paul, Advanced techniques used to create a tele cation to endocrinology, IBMJ.Res. Develop.; vol. 22, No. phone medical consultation service, ISA; pp. 103-107 5, pp. 518-532 (1978). (1983). Shortlife, Edward H., Consultation systems for physicians: Freudenheim, Milt, Computer says take 2 aspirin, The New the role of artificial intelligence techniques, Expert Systems York Times, Business and Health; p. D2 (Jun. 25, 1991). and AIApplications; pp. 323-333 (1980). Gini, G. and Gini, M. A serial model for computer assisted medical diagnosis, Int. J. Bio-Medical Computing; Sloane, L., For round-the-clock diagnoses, just pick up 11:9-113 (1980). your telephone, New York Times; p. 16 (Jul 13, 1991). Goldbard, Gary A. Class Notes, Tulane Medicine; Jun. Smothers, R. New video technology lets doctors examine 1991; p. 26. Tulane University Medical Center, 1430 Tulane patients many miles away, New York Times; (Sep. 16, Avenue, New Orleans, LA 701 12-2699. 1992). Gome. Amanda, A picture of success, Herald-Sun; p. 13 System helps doctors keep up to date, New York Times; p. (Nov. 19, 1991). 18 (Jul. 13, 1991). Gorry, G. Anthony, FA6.3 Automating judgmental decision Thorpe, C. William, et al., Section II, Systems and programs, making in medicine, Bulletin of the Operations Research A microcomputer-based interactive cough sound analysis Society of America; 19(2) (1971). Harvard Community Health Plan testing computerized ser system, Computer Methods and Programs in Biomedicine; vice that answers health-care questions, Technical Comput 36:33-43 (1991). ing; No. 9, vol. 6 (Aug. 1991). Wagner, J. et al., A knowledge-based system for interactive Kerr, Jennifer. Phone is link to health-care information, San medical diagnosis encoding, Conference paper of Expert Diego Union-Tribune; p. A-3 (Sunday Jul. 18, 1993). Systems and Decision Support in Medicine. 33rd Annual Laughlin, Michael L. (editor), Telecommunications may offer Meeting of the GMDS EFMI Special Topic Meeting; pp. poor a 'road to healthcare, Computer in Health Care; pp. 449-465; (Sep. 1988). 32-37 (Nov. 1992). Walz, Nancy, Computer system aims to wipe out medical Levin, Carol, Patient, heal thyself, PC Magazine; p. 32, paperwork, The Associated Press. Business News; (Jun. 25, (March 16, 1993). 1991).
U.S. Patent Mar 10, 1998 Sheet 2 of 40 5,724.968
Off-line Speech File Production
isEEEEE OOOOOOOOD 100 Speech files recorded Dialogic boord via telephone to hord disk U.S. Patent Mar 10, 1998 Sheet 3 of 40 5,724.968
ASCII Node Tronslation Process f727
Algorithms written in authoring language Script longuoge (ASCII text file)
A2
TRANSLATON UTILITY
A7.3 U.S. Patent Mar. 10, 1998 Sheet 4 of 40 5,724.968
Algorithm Processor at Runtime f
Speech Files
BEEFEO,OOOOOOOOO Diologic voice processing board
Speech playback & touch tone detection
AlgorithmCorithm PProcessor Speech recognitionA
A 24
ESPOOD OD SODO SODDDDD DD VPro Speech Recognition Board
Voice Print Vocobulories U.S. Patent Mar 10, 1998 Sheet S of 40 5,724.968
f725 LOADING NODE 100 AT RUN TIME Y |- List FilesH a D /74 S-2State Node Tobie List File for Node 100 N:10:103:05:121 H:O P:100 W:Problems Menu
Node record for Node 100 22 Node 100: Parent 100: Type Menu: Digits=1 A27
Load Node Routine: Reads o record A974 from the node table and o List file; then builds o doto structure in memory.
Node = OO A2a Porent = 100 Type = Menu Digits = 1 Help list Kempty list> Play list 1OO Next list Work list -> 1=101, 2=103, 3-105, 4=12) -D Problem = Menu U.S. Patent Mar. 10, 1998 Sheet 6 of 40 5,724.968
Node Block
Time
Poren = 100 Type = Menu Digits Help list Kempty list) Play list 100 Next list = 101, 2= 103, 3=105, 4=121 Work list Problem = Menu Symbol Table
272 Reo = True Problem = Menu A7,52
Node Block
Type = Menu Digits = 1 Help list
Age = 45 Sex Mole Real = True Problem = Menu U.S. Patent Mar 10, 1998 Sheet 7 of 40 5,724.968
Node Block
Prent at 10 Type Link Digits = 0 Help list ole 227 Real = True Problem = CCHP Av.52/ Node Block Porent = 2200 Type = Link Digits = 0 Help list Kempty list) Ploy list Symbol Table 24 Problem = CCHP U.S. Patent Mar 10, 1998 Sheet 8 of 40 5,724,968 Node Block Porent = 2200 226 Type = YesNo Digits = 1 Help list -b Next list 1=2206, 2=2210 Work list Kempty list> 225 Reol = True Problem se CCHP Az.57 Node Block Node = 2210 Porent s 2205 252 Type = YesNo Digits = 1 Help list -D Kempty list> Ploy list -> 2210 Next list Work list -> =2211, 2=2215 --> Mole Redl - True Problem as CCHP A7.27 U.S. Patent Mar. 10, 1998 Sheet 9 of 40 5,724.968 Software Conceptual Diogrom 22 2725 PATENT LOGN PROCESS PATIENT AND 252 ASSISTANT ASSISTED ENROLLMENT REGISTRATION DATABASE ASSISTANT REGISTRATION PATIENT REGISTRATION PR OCESS CONSUTATION 262 252 HISTORY (META) Read/ 264 Write PATENT RESPONSE 25a5. Write Write 266 TREATMENT MEDICAL HISTORY TABLE OBJECTS --- EVALUATION PROCESS ReOd 268 PATENT MEDICAL HISTORY Read/ Write 269 Write Redd Write PATENT MEDCATION U.S. Patent Mar. 10, 1998 Sheet 10 of 40 5,724.968 Top Level Flow Diogram 322 START 322 New coll rings in 2 Greeting 22 Message initial Screening 32A Question: "is this a medical emergency?" 27 323 Y 3/2 es Instruct coller to diol End Coli 9-1-1 of EMS No 3/2 CPR informotion 3// Urgent Core Menu: 2 - Heimlich Hug Heinich Hug informotion 3/5 fa Yes ls the coller d No ls the coller theth registered patient? patient? NO 22 PATIENT PATENT LOGIN REGISTRATION PROCESS PROCESS 37A5 377 A7.72 U.S. Patent Mar. 10, 1998 Sheet 11 of 40 5,724.968 3/9 22 No ls coller a registered Ossistant? Yes 222 27.4 ASSISTANT ASSISTANT LOGN REGISTRATION PROCESS PROCESS 32/ No ls the patient already registered? 275 Yes 272 ASSISTED ASSISTED PATENT PATENT LOGIN REGISTRATION PROCESS PROCESS 327 A. 72 U.S. Patent Mar. 10, 1998 Sheet 12 of 40 5,724,968 327 Obtoin Date of birth Date of birth opproximate On file? known? age of patient 32A Get patient's date of birth 322 337 Age correct Recite date of birth ja Advise osst. to get date of Dote of birth birth for next correct? co Flag date of birth for SOWe A.7% U.S. Patent Mar. 10, 1998 Sheet 13 of 40 5,724,968 3/7 344 EVALUATION PROCESS System Selection Menu 1 - Diagnostic System 2 - Treatment Toble 3 - (Future Process) TREATMENT 4 - End Col Process/Function 25 3.425 fa Yes Ask Patient to confirm New Potient doto each new do to item learned during this session Real Mode : (Exit Confirmation Ond not info mode? Loop) Write new potient information to Pending file 34? 352 ox session transcript Ask Patient for fox to Patient/Doctor? number Add transcript to the fox queue 532 A. 72/ U.S. Patent Mar. 10, 1998 Sheet 14 of 40 5,724.968 Patient Login Process 39 25A 359 2 Set Match Flag a True 362 Prompt Coller for Potient D Number (PIN) 32/ 36 Less than three No mistakes? Yes 64 365 356 Voice Print Record Voice Print of Potient Match flag = False o file? 367 Prompt caller to pronounce their full norne 369 Does somple poss Stote that voice sample does not poss the matching criterio? motching criteria Stote that voice sample passed the Match flag = Folse matching criteria 32 Verify Sex ond Age 323 Obtoin Sex 3725 3725 377 Obtain Sex and Age Real or Info Use Potient's Sex No of Hypotheticol mode? and Age? Potient 32/ Match flag = Advise Potient of Sex & Age True? Pending Mode correct? Set Mode = Reo Set Mode = Pendina Set Mode = Info 326 255 Review touch tone Yes Explain touch tone commonds commonds? 592 322 Review voice Yes Explain voice keywords? keywords Enobie Prompting prompting? enobled 3.25 Prompting disobled U.S. Patent Mar 10, 1998 Sheet 16 of 40 5,724,968 252 Potient Registration Process 227 422 Enter and verify sex Yes 426 Enter and verify birthday No Z27 Yes Record full name of patient 427 Sove voice woveform for voice printing af Provide Potient D Number (PIN) 437 434 Do you have the user Pouse to get poper Pouse for pomphlet? and pencil? 50 seconds 256 Turn to page three A7.97 U.S. Patent Mar. 10, 1998 Sheet 17 of 40 5,724.968 447 Explonotion of touch tone keys 444 Explonation of voice keywords 447 Explanation of Reol ond information modes 42 Summory of new USer informotion 45.4 A. 92 U.S. Patent Mar. 10, 1998 Sheet 18 of 40 5,724.968 Evoluotion Process 472 472 f 47/ Anatomic System identificotion Method Menu 1 - Anatomic System, 2 - Couse 3 - Alphabetic Groups System 4 - Catalog Number Couse Menu Screening Questions Alphabetic Groups erious Yes subgroup? Menu condition exists? Enter Couse Cotolog Screening Number Questions condition exists? Complaint Complaint Menu Menu 45 Initio Problem Screening Questions 496 4%? 4%f Advise Potient to End Serious Medicol seek in Trediate Evoluotion Condition Exists?cco Medico Attention Process 49? 492 Bronch to O ls the Re-enter flag raised Yes Re-enter point in for this problem? the Evaluation Process No 49a 494 s Az. 7022 U.S. Patent Mar. 10, 1998 Sheet 19 of 40 5,724.968 496 499 (22 22 Yes Meto Meto Threshold No Consulting in Reol or Pending Mode? function reoched? Moke recommendotion. based on number of consultations 526 Diagnosis 22 Continue Evaluation No Process Re-enter criterid met for this Problem? No Diagnosis Raise Re-enter flag for this Problem 24 Yes Wish to heor treotment information? No 256 Treatment Toble Physical 25 Self Exorm Another Complaint ? Potient No Condition 532 End Evoluotion Severity Process Anolysis Aa. 7(22 U.S. Patent Mar. 10, 1998 Sheet 20 of 40 5,724.968 Metc. Function 522 34(2 Input Parameters: PS-Problem String SS-System String CS-Couse String T1-Beginning timestomp T2-Ending timetsamp Read first Meto record 3229 Timestamp between T1 ond Record fields match input strings? Redd first Meto record 552 Increment More Meto counter MC records? A. //a U.S. Patent Mar 10, 1998 Sheet 21 of 40 5,724.968 Find the three most recent Meto records whose fields motch the input strings. n-2 = second most recent n- 1 = next most recent n = most recent as Set TDR = x/Y Return MC and TDR A. 7/A U.S. Patent Mar. 10, 1998 Sheet 22 of 40 5,724.968 Assistant Login Process 272 92402 242 Prompt Caller for Assistont ID Number (AIN) 944 97.427 ess thon three mistakes? No Yes 252 Prompt coller to pronounce their full none 25 N 5-1SST_PERM = 257 24 Stote that voice sample Does somple poss matches the reference matching criterio? sample ASST EXP cToday? Yes State thot voice somple does not match the reference sample Relationship exists? 255 Set Mode = Pending Set Mode = Red a. 727 U.S. Patent Mar. 10, 1998 Sheet 23 of 40 5,724.968 7.59 942 Verify Assistant's Sex and Age 962 Obtain Sex ond Birth dote Yes 245 227 Review touch tone Y eS Exploin touch commonds? - tone commonds 277 22 Review voice Yes Exploin voice keywords? keywords 2725 97/ NYes Prompting Enable prompting? enobled No 272 Prompting disabled 22 End Login A7. 72 U.S. Patent Mar. 10, 1998 Sheet 24 of 40 5,724.968 Assisted Potient Login Process 292 1. 2725 992 Ask Assistont for Potient D Number (PIN) 2.94 225 Less thon three No mistakes? eS 22 225 Con the patient Record Potient Potient Voice Print provide o voice Voice Print On file? sample? 999 Con the patient provide a voice sample? f(222 Potient pronounces full none A22 State that voice sample Does somple poss does not poss the the motching criterio? motching criteria 7026 Yes Stote that voice somple posses the matching criterio Aa2/2/ 297 a. 732 s U.S. Patent Mar. 10, 1998 Sheet 25 of 40. 5,724.968 f(227 227 A (2025-N f(22.6 f27 Advise that new Advise that new data doto will be soved will not be soved to to patient's record patient's record Verify Patient's Sex and Age Aa2/2 Obtoin Potient's Sex ond Birth dote Yes f(7/6 A(7/25 Review touch tone Yes Exploin touch commonds? tone commonds No A222 A(22 Review voice Yes Exploin voice keywords? keywords No f226 AA224 Enoble Prompting prompting? enobied A422 Prompting disabled A4322 End Login A. 732 U.S. Patent Mar. 10, 1998 Sheet 26 of 40 5,724.968 Assistant Registration Process A45.2 , 27f A452 Enter Ond verify sex of Assistant Yes f(256 Enter ond verify birthday of Assistant Yes Record Assistont's full note AAA2 Save voice woveform for voice printing A4254 Provide Assistont D Number (AIN) A22A A445 f(272 Do you have the user Pouse to get poper Pouse for pamphlet? and pencil? 30 seconds A(22 Turn to page three A7, 74a U.S. Patent Mar. 10, 1998 Sheet 27 of 40 5,724.968 f(27% f(272 Explonation of touch tone keys A22 Explanation of voice keywords Explanation of Redi Ond Information modes fasa No fa Summary of new Ossistont information A(292 A7, 742 U.S. Patent Mar. 10, 1998 Sheet 28 of 40 5,724.968 Assisted Patient Registration Process f//7 f/// - Set Mode = Pending f f/2 Enter and No verify Potient's Sex eS A fa No Enter ond verify Potient's birthday Yes f22 f / 79 Record potient's Con the patient voice somple provideo voice sample? fA22 Inform ossistant that Sove voice the system will attempt sample for reference to capture patient's voice somple during next login Recite Potient D Number (PIN) A. 722. U.S. Patent Mar. 10, 1998 Sheet 29 of 40 5,724.968 Af25 AA2a, f/25 f32 Does Ossistant Yes Pouse for hove the user Pouse to get poper 30 seconds pamphlet? ond pencil? AA32 Turn to page three f/325 Explonation of touch tone keys f/32 Repeat? No A 742 Explanation of voice keywords A/22 Repeat? No A f4 Explanation of Real Ond informotion nodes Summary of new patient informotion <&cs A 7-2 A. 752 U.S. Patent Mar. 10, 1998 Sheet 30 of 40 5,724.968 527 Mental Stotus Exom 2 a32 Stort Score = 0 652 Question #1 "What day of the week is it?" a3a aff Y eS Score = A256 Question #2 "Whot month of the year is it?" 622 Score = 62? Question #3 "Who is the President of the United States?" a?? a 24 YeS Score = - /z. 767 U.S. Patent Mar. 10, 1998 Sheet 31 of 40 5,724.968 727 72/ Yes Return to Score) = MSE Evoluotion Threshold? Process No 722 Set Mode = Pending 72 724 Somebody else Yes Able and willing Yes ovoilable 2 assistant? No No 724 727 Write any new patient Registered No informotion in Ossistant? the Pending file Yes 22 272 Assistant Assistont Login Registration 725 72? Transfer col staff person U.S. Patent Mar. 10, 1998 Sheet 32 of 40 5,724.968 5/22 Semontic Discreponcy Evoluotion Routine (SDER) 7/2 774 "Remember "Please tell me this three digit Predetermined the three digit number..." Time interwo number" Numbers motch? 24 A. 77 U.S. Patent Mar. 10, 1998 Sheet 33 of 40 5,724.968 5A2 Post Medical History Routine 2 74.7 Input Porometer: L - Condition Lobel Prompt patient for medical condition do to 726 Ask patient to verify data 752 instol lobel and volue in symbol to ble 254 A. 72 U.S. Patent Mar. 10, 1998 Sheet 34 of 40 5,724.968 Physical Self Exam 772 27/ 772 722 Home Tele Vital Signs Diognostic stethescope Tests 772 772 Observable Clinico Sound Physical Signs Recording 722 Ask Patient to confirm volue 7254 222 No Yes Yes No 7256 instol value in symbol to ble 725 Av. 79 U.S. Patent Mar. 10, 1998 Sheet 35 of 40 5,724.968 5/A5 Potient Medico Condition Routine 1. 3/7/7 input Porometer: L - Condition Lobel Prompt patient for medico condition do to 26 Ask patient to verify doto 905? 5/2 instol lobe and volue in symbol table 5/4 A. 207 U.S. Patent Mar. 10, 1998 Sheet 36 of 40 5,724.968 57? Symptom Severity Analysis 237 Input Porometer: N - number of points 556 Coiculote Slope & Power 92 Return Slope & Power A.2/ U.S. Patent Mar. 10, 1998 Sheet 37 of 40 5,724,968 General Treatment Toble 2 25a Treotment Selection Method Menu Menu-Driven Direct Messoge Treatment Selection: "Please Selection enter the treatment Process message number." Play treatment message "M" Play Society rnessOce9 'M' message "M" message "M" Play OTC exists? message 'M' Terminal Menu 1. Select another 2. Exit Treotment Toble A72 U.S. Patent Mar. 10, 1998 Sheet 38 of 40 5,724.968 56.4 Menu-Driven Treatment Selection Process 2 22 322 Areo Selection Menu 1 - Neurological 2 - Areo? Nr. AreON 594 Neurological Areo Menu 1 - Epilepsy 2 - Meningitis 3 - Depression 922 Depression Menu Meningitis Menu 1 - Mole, under 50 1 - 2 years old & 2 - Female, under 50 under 5 - Mole, 50 & over 2 - over 2 years old 4 - Female, 50 over U.S. Patent Mar. 10, 1998 Sheet 39 of 40 5,724.968 TABLE 3 CARDAC RESPRATORY NERVOUS e o a DERMATOLOGC TRAUMA NFECTION ALLERGY TU MOR TABLE 4 SYMPTOM SEVERTY TIME A72 2-5 U.S. Patent Mar 10, 1998 Sheet 40 of 40 5,724.968 TABLE 5 SYMPTOM SEVERTY TIME TABLE 9 NCREASNG SENST WITY NCREASING SELECT WITY 5,724.968 1. 2 COMPUTERIZED MEDICAL DIAGNOSTIC toll-free 800 number. Using a keyboard that is part of the SYSTEM INCLUDING META FUNCTION box, the user answers questions displayed on a screen of the box relating to the user's symptoms. Depending on the Microfiche Appendix answers, the user might be told to try a home remedy, be 5 called by a nurse or doctor, or be given an appointment to be A Microfiche Appendix containing computer source code examined. A limitation of this system is the additional is attached. The Microfiche Appendix comprises 9 sheets of expense of the electronics box, which could either be microfiche having 454 frames, including one title frame. purchased by the user for approximately $300 or purchased The Microfiche Appendix contains material which is by the health organization with the expense to be passed on subject to copyright protection. The copyright owner has no 10 to the users. Another limitation is that this service is directed objection to the reproduction of such material, as it appears to members of a particular contracting health organization, in the files of the Patent and Trademark Office, but otherwise such as an HMO. What is desired is a system that does not reserves all copyright rights whatsoever. require additional hardware for the basic service, but that BACKGROUND OF THE INVENTION utilizes the existing communication network. The desired 15 system should be available for use by any person, not just 1. Field of the Invention members of a certain organization. The present invention relates to medical knowledge sys A prior attempt at a health care solution for a limited set tems and, more particularly, to systems for giving medical of conditions is described in U.S. Pat. No. 4712,562. A advice to the general public over a telephone network. patient's blood pressure and heart rate are measured and the 2. Description of the Related Technology 20 measurements are sent via telephone to a remote central Health care costs currently represent 14% of the United computer for storage and analysis. Reports are generated for States Gross National Product and are rising faster than any submission to a physician or the patient. U.S. Pat. No. other component of the Consumer Price Index. Moreover, 4.531.527 describes a similar system, wherein the receiving usually because of an inability to pay for medical services, office unit automatically communicates with the physician many people are deprived of access to even the most basic 25 under predetermined emergency circumstances. medical care and information. U.S. Pat. No. 4,838,275 discloses a device for a patient to lay on or sit in having electronics to measure multiple Many people delay in obtaining, or are prevented from parameters related to a patient's health. These parameters seeking, medical attention because of cost, time constraints, are electronically transmitted to a central surveillance and or inconvenience. If the public had universal, unrestricted 30 control office where a highly trained observer interacts with and easy access to medical information, many diseases the patient. The observer conducts routine diagnostic ses could be prevented. Likewise, the early detection and treat sions except when an emergency is noted or from a patient ment of numerous diseases could keep many patients from initiated communication. The observer determines if a non reaching the advanced stages of illness, the treatment of routine therapeutic response is required, and if so facilitates which is a significant part of the financial burden attributed 35 to our nation's health care system. It is obvious that the such a response. As previously mentioned, highly trained United States is facing health-related issues of enormous people are needed by this system along with the special proportions and that present solutions are not robust. measurement apparatus (embedded in a bed or chair). One prior attempt at a solution to the health care problem Other prior attempts at a health care solution are typified is called Ask-A-Nurse, wherein a group of nurses provide by U.S. Pat. No. 5,012.411 which describes a portable health information by telephone around-the-clock. A person self-contained apparatus for measuring, storing and trans with a medical problem calls an 800 number and describes mitting detected physiological information to a remote loca the problem to the nurse. The nurse uses a computer for tion over a communication system. The information is general or diagnostic information on the ailment or com evaluated by a physician or other health professional. As plaint mentioned by the caller. The nurse may then refer the 45 before, highly trained people are necessary to utilize such an caller to a doctor from a computerized referral list for a apparatus. contracting hospital or group of hospitals. Client hospitals Several services to provide medical or pharmaceutical contract with Ask-A-Nurse to provide patient referrals. A advice are now available via "1-900” telephone numbers, managed care option called Personal Health Advisor is e.g., "Doctors by Phone." These services are available 24 similar and adds the capability fox the caller to hear prere 50 hours a day and 7 days a week. A group of doctors, including corded messages on health topics 24 hours a day. Several some specialties, is available to answer questions about problems exist with these prior medical advice systems. health care or medical conditions for people anywhere in the First, these systems have high costs associated with having United States who call the “1-900” telephone of one of the a nurse answer each telephone call. Second, the caller may services. A group of registered pharmacists answers ques have to belong to a participating health plan to utilize the 55 tions about medications for the "1-900” pharmaceutical service. Third, if for some reason all nurses on a particular service. shift happen to be busy and the caller has an emergency condition (that is not known by the caller to be an SUMMARY OF THE INVENTION emergency), precious time in getting emergency services The present solution to the health care problem is a may be lost during the delay. computerized medical diagnostic and treatment advice Another prior health system was developed by InterPrac (MDATA) system that is a medical knowledge-based system tice Systems which provides a computerized service that designed to give medical advice to the general public over answers health care questions and advises people in their the telephone network. The goal of the MDATA system is to homes. A health maintenance organization (HMO) may provide everyone with equal access to high quality, 100%- provide this service to its members in a particular geo 65 consistent medical advice at areasonable cost. The MDATA graphic area. To get advice at home, an HMO member system provides callers with extremely fast and virtually connects a toaster-sized box to a telephone and calls a unlimited access to health care information, twenty-four 5,724.968 3 4 hours a day, from any location around the world. Health care made available. The MDATA system regularly and fre advice is made available to an entire spectrum of users, from quently updates the treatment aspect of the system. elderly patients confined to their homes to travelers in a The computerized medical diagnostic and treatment foreign country with telephones in their cars. advice (MDATA) system is a medical knowledge-based The central ideas leading to the development of the system designed to give medical advice to the general public MDATA system are based on the following assumptions: over the telephone network. Using a new authoring language, interactive voice response and speech recognition Nearly 90% of all patient complaints are confined to technology, the MDATA system encodes a highly useful approximately 100 medical problems. core of expert and general practitioner diagnostic and treat Almost all primary care decisions involved in these 100 10 ment knowledge into a computerized system for access by problems can be made based upon information learned non-medically trained personnel. solely by obtaining a detailed medical history. The The MDATA system does not provide advice for every results of the physical examination, laboratory, and medical problem, nor does it make an exhaustive study of imaging studies only tend to confirm a diagnosis. one vertical cross-section of medicine. Instead, the MDATA The minimal amount of information that many doctors 15 system provides up-to-date medical advice for approxi believe can only be obtained from the physical exami mately one hundred of the most commonly encountered nation can actually be directly acquired from the patient problems in general practice and emergency medicine. It when given appropriate instructions. also provides valuable information to the public on any In most cases, a face-to-face interaction between the number of other medical topics. doctor and patient is not necessary. A detailed and 20 As another embodiment of the MDATA system, a person well-constructed history, along with physical findings desiring medical advice and having access to a personal elicited from the patient, can be obtained over the computer (PC) loads a program into the PC to produce a telephone. stand-alone medical diagnostic and treatment advice (SA Medicine is basically diagnosis and treatment. Although MDATA) system. Rather than listening to questions and treatment recommendations change frequently, the fun 25 responding via touch tone keypresses or via voice, the user damental principles of making the diagnosis do not. responds to questions and directions displayed on the com There is a significant delay between the time a new puter screen via a computer input device, such as a keyboard therapy is recognized as safe and effective and the time or mouse. The diagnosis and/or treatment recommendations physicians are able to provide it to their patients, provided by the MDATA system are the same as that These central ideas are utilized in the implementation of the 30 provided by the SA-MDATA system. The user of the MDATA system. SA-MDATA system can procure updates by contacting the A goal of the MDATA system is to give better medical MDATA system sponsor/administrator to obtain the most advice than a family practitioner who is unfamiliar with a current treatment table information for a particular diagno patient, e.g., an on-call physician. A person seeking medical SS. advice frequently will not be able to see or speak with his or 35 One aspect of the present invention includes an automated her personal physician in a timely manner. The MDATA medical advice system, comprising: a computer, input system provides medical advice whenever desired by the means, connected to the computer, for receiving information caller-seven days a week/24 hours a day. from a patient, output means, connected to the computer, for All previous medical algorithms, including those used in transmitting information to the patient, a consultation his the military, are designed for face-to-face interactions. Self 40 tory database stored in the computer, the database compris help books generally do not consider age and sex in their ing a time ordered sequence of records, each record includ algorithms. Furthermore, a book cannot take into account ing the following fields: a date, a medical problem, an how many times a person has consulted the same algorithm anatomical system, and a cause of the problem, means for within a short period of time for the same problem. The searching the consultation history database using a match medical algorithms used by the MDATA system are 45 pattern to identify records having the match pattern, and designed for use in a telecommunications setting and over means for analyzing the frequency of the patient's diagnos come the deficiencies of self-help books. tic consultations, wherein the records identified by the Previous medical advice systems do not do a time-density searching means permit assessment of the improvement or analysis for a number of factors with regard to the number deterioration of the patient's medical condition. of complaints per unit of time. The MDATA system uses 50 Another aspect of the present invention includes, in an "meta' functions to perform these analyses. automated medical advice system including a computer, and Previous medical advice algorithms do not have a way of input and output devices, a method of evaluating a problem detecting the consciousness level of the person seeking of a patient over time, comprising the steps of: creating a consultation. The MDATA system invokes a "mental status consultation history database, the database comprising a examination' whenever a complaint or problem has the 55 time ordered sequence of records, each record including the possibility of an altered level of consciousness. In addition, following fields: a date, a medical problem, an anatomical the MDATA system uses “semantic discrepancy evaluator system, and a cause of the problem; storing the consultation loops' which allow the system to invoke the mental status history database in the computer; and analyzing the consul exam if there are differences in answers to the parallel tation history database using a match pattern, wherein the threads of thought that are woven or embedded into the step of analyzing comprises: accessing a set of records system. within the consultation history database by use of a time Other medical advice systems do not have a "re-enter” window, the time window comprising a range of preselected feature to monitor a patient's progress or worsening over dates; comparing the match pattern to each of the accessed time. The MDATA system checks for and responds to records; calculating a consultation frequency value from changing conditions over time. 65 matched records identified by the comparing step; and Prior medical advice systems suffer from the inability to providing a recommendation to the patient if the frequency be nearly instantly up-dated as new medical information is value satisfies a predetermined threshold. 5,724.968 S 6 BRIEF DESCRIPTION OF THE DRAWINGS embodiments to assist in understanding the claims. FIG. 1 is a block diagram illustrating the components of However, the present invention can be embodied in a a presently preferred embodiment of the computerized medi multitude of different ways as defined and covered by the cal diagnostic and treatment advice (MDATA) system of the claims. present invention; For convenience, the following description will be out lined into the following 22 principal sections: Introduction, FIG. 2 is a diagram of the off-line process used in System. Overview, Operating Features of the MDATA producing the speech files shown in FIG. 1; System, Authoring Language, Run-Time Operation, Soft FIG. 3 is a diagram of the Node Translation process used ware Structure, Top-Level Flow, Login Process, Registra in creating files for use by the system of FIG. 1; 10 tion Process, Evaluation Process, The Meta Function, Men FIG. 4 is a diagram of some of the files and components tal Status Examination, Semantic Discrepancy Evaluator of FIGS. 1 and 3 that are utilized at run time; Routine, Past Medical History Routine, Physical Self FIG. 5a is a diagram of the utilization of the files shown Examination, Symptom Severity Analysis, Treatment Table, in FIG. 3 at run time; The MDATA System Paradigm, Video Imaging, Benefits of FIGS.5b-5g are an exemplary sequence of data structures 15 the MDATA System, Optional System Configuration, and of the system shown in FIG. 1 at run time; Summary of Advantages of the Present Invention. FIG. 6 is a block diagram illustrating a conceptual view of the database files and processes of the system of FIG. 1; I. Introduction FIGS. 7a, 7b, 7c and 7d are a top-level flow diagram of A consultation for a person seeking medical advice begins the MDATA system of FIG. 1; with a telephone call to the medical diagnostic and treatment FIGS. 8a and 8b are a flow diagram of the patient login advice (MDATA) system of the present invention. The process 250 defined in FIG. 7a; MDATA system asks the caller specific questions and then FIGS. 9a and 9b are a flow diagram of the patient analyzes each response. registration process 252 defined in FIG. 7a; 25 Voice recognition and interactive voice response technol FIGS. 10a and 10b are a flow diagram of the evaluation ogy allow callers to respond to yes/no and multiple choice process 254 defined in FIG. 7d. questions either by speaking directly into the telephone or by FIGS.11a and 11b are aflow diagram of the meta function using the touch tone pad of their telephone. 500 defined in FIG. 10b. Easy access to the information in the MDATA system is FIGS. 12a and 12b are a flow diagram of the assistant 30 made possible by a natural user interface. The computer login process 272 defined in FIG.7b; driven dialogue consists of simple yes/no and multiple FIGS. 13a and 13b are a flow diagram of the assisted choice questions. The questions and treatment recommen patient login process 276 defined in FIG.7b; dations are very simply worded yet skillfully designed to FIGS. 14a and 14b are a flow diagram of the assistant reflect the accumulated experience of many physicians in registration process 274 defined in FIG. 7b; 35 conducting patient interviews. FIGS. 15a and 15b are a flow diagram of the assisted Although all the MDATA system's questions are designed patient registration process 278 defined in FIG. 7b; to be easily understood, unforeseen situations willinevitably FIGS. 16a and 16b are aflow diagram of the mental status arise. For this reason, hierarchical staffing is implemented. examination function 508 defined in FIG. 10b. As an example, for every 10 telephone lines, one operator FIG. 17 is a flow diagram of the semantic discrepancy 40 fully trained in triage and the MDATA system will be evaluator routine (SDER) 510 defined in FIG. 10b, available. For every 10 operators there will be one registered FIG. 18 is a flow diagram of the past medical history nurse in attendance; and for every 10 registered nurses, there routine 512 defined in FIG. 10b, will be one physician in attendance. Staffing requirements FIG. 19 is a flow diagram of the physical self examination are adjusted as the system is refined toward optimal effi function 514 defined in FIG. 10b, 45 ciency. The MDATA system does not require the operator or FIG.20 is a flow diagram of the patient medical condition the registered nurse to make any medical decisions. routine 516 defined in FIG. 10b, FIG. 21 is a flow diagram of the symptom severity II. System. Overview analysis function 518 defined in FIG. 10b. Referring to FIG. 1, the components of a presently FIG. 22 is a flow diagram of the treatment table process preferred embodiment of the computerized medical diag 256 defined in FIG. 7d; and nostic and treatment advice (MDATA) system 100 of the FIG. 23 is a flow diagram of the menu-driven treatment present invention are shown. A personal computer (PC) 102 selection process 864 defined in FIG. 22. includes a plurality of components within an enclosure 104. FIG. 24 is Table 3, a two dimensional array of causes Of 55 A plurality of telephone lines 106 interface the public diseases plotted against anatomical systems. telephone network 108 to the computer 102. As an example, FIG.25 is Table 4, an exemplary plot of symptom severity one of telephone lines 106 is shown to be switched via network 108 to connect with a telephone 110 that is used by versus time. a person desiring medical advice (user) 112. Throughout this FIG. 26 is Table 5, another exemplary plot of symptom document, the words user, caller and patient are used inter severity versus time. changeably. However, it will be understood that the caller FIG. 27 is Table 9, a plot of sensitivity and selectivity may be acting as a proxy for the patient. If this is the case, versus time. the caller will be registered as an assistant for the patient. DETALED DESCRIPTION OF THE The hardware and system software were assembled with PREFERRED EMBODIMENT 65 two basic concepts in mind: portability to other operating The following detailed description of the preferred systems and the use of industry standard components. In this embodiments presents a description of certain specific way, the system can be more flexible and will allow free 5,724.968 7 8 market competition to continuously improve the product, A. main.c-a collection of functions that mostly deal with while, at the same time, decrease costs. While specific telephony functions, such as answering the phone line, hardware and software will be referenced, it will be under speech file playback, and DTMF tone collection. Glo stood that a panoply of different components could be used bal data structures are defined here. in the present system. 5 B. base.c-functions that invoke the CodeBase revision The system currently runs on the PC 102 with an Intel 5.0 library to perform xbase file manipulation. 80486 microprocessor. "Telephony” functions use Dialogic Corporation's D/41D voice processing board 122 based on C. pars.c-the parse function, and supporting functions a digital signal processor (DSP). The voice processing (VP) that manipulate the memory variable symbol table and board 122 performs several functions including interfacing run time stack. the telephone lines, decoding touch tone signals, speech 10 D. regi.ic-an on-line patient registration module. recording and speech playback. Touch tone signals are also E. resp.c-gets the caller's responses, either DTMF or known as "dual tone multiple frequency” (DTMF) signals. voice, and figures out what to do next by obeying a A group of one to four telephone lines 106 connect to the VP command (e.g., “repeat” or “backup”), or traversing board 122. The computer 102 may include a plurality of VP through the algorithm node map. boards 122 based on how many phone line connections are 15 desired for the system 100. Speech recognition is achieved F. term.c-auseful collection of text phrases for Dialogic using Voice Processing Corporation's speech recognition and VPC board termination events and error codes. VPRO-4 board 124 (also DSP based). The voice recognition G. user.c-"non-diagnostic” portions of the caller ses (VR) board 124 performs several functions including rec sion: initial screening questions, caller login, and the ognizing utterances and returning an index number of a 20 next node playback initiator. recognition confidence level. The VR board 124 and the VP H. util.c-a collection of general purpose functions board 122 both connect to an industry standard architecture (ISA) bus 126. The ISA bus 126 interconnects the micro shared by a run time executable, a node editor and processor 120 with a plurality of peripherals through con ASCII translator tools. troller circuits (chips or boards). 25 I. view.c-a module that controls the graphics system The VP board 122 also connects to a VPRO-Adapt board display. 128 via an analog audio bus 130 that is called Analog J. x10.c-an X-10 computer interface routine for fault Extension Bus. Four simultaneous channels provide a 96 recovery. kbit/second data transfer rate. Each channel corresponds to K. xlat.c-a module linked with pars.c and utilic object a telephone line connected to the VP board 122 and is 30 modules to build xlat.exe, a stand-alone translation associated with a current patient consultation. The Adapt executable for offline ASCII text file translation. board 128 further connects to a digital audio bus 132. The The application is compiled with the Microsoft graphics, VRboard 124 also connects to the digital audio bus 132. The Dialogic board, VPC board and CodeBase database librar Adapt board 128 performs analog to digital signal conver 1’S. sion to a VPC-proprietary digital pulse code modulation 35 The Voice Processing Corporation (VPC) VPro-4 VR (PCM) format. The digital bus 132 can accommodate 32 board has eight voice recognition channels, which by default channels and has a data transferrate of 2.048 Mbits/second. are associated one-to-one with the Dialogic D/41D channels. The computer ISA bus 126 has a plurality of peripherals VPC's pioneering workin the voice processing field is in the connected to it through adapters or controllers. A video area of continuous speech. This allows a person to speak a adapter board 136, preferably at VGA or better resolution, multiple digit number in a natural manner, without pausing interconnects to a video monitor 138. A serial communica after each digit, VPC supplies two continuous speech tion circuit 140 interfaces a pointing device, such as a mouse vocabularies: one vocabulary contains the digits 1 through 9, 142. A parallel communication circuit may be used in place plus "zero” and "oh', and the other contains just the two of circuit 140 in another embodiment. A keyboard controller words “yes” and "no". The vendor-supplied digits continu circuit 144 interfaces a keyboard 146. A small computer 45 ous speech vocabulary is used by the system 100. In the systems interface (SCSI) adapter, such as model 1542C presently preferred embodiment, if the score is 75% or made by Adaptec. provides a SCSI bus 150 to which a 500 better, the response is unconditionally accepted. If the score Mb or greater hard disk drive 152 and dual Bernoulli 150 is between 20% and 74%, the digits recognized are read Mb disk drives are preferably attached. The hard drive 152 back, and the caller is asked to accept or reject the digits. In stores database files such as the patient files, speech files, 50 another embodiment of the system 100, the above score and binary support files. thresholds are implemented as tunable parameters. The A main memory 156 connects to the microprocessor 120. scoring parameters are stored in a configuration file that is In the presently preferred embodiment, the MDATA system manipulated off-line by a utility program and is read by the 100 operates under DOS version 5.0 operating system 158. run-time system at initialization. The system software is written in Microsoft C\C++ version 55 VPC also provides a few discrete vocabularies. Discrete 7.0 using structured programming techniques. An algorithm vocabularies contain one or two word utterances. The processor 160 includes a parser and supporting functions vendor-supplied discrete speech vocabulary of the months of that manipulate a memory variable symbol table and a run the year is used in the on-line patient registration process. A time stack, which will be described hereinbelow. Sequiter speaker-independent discrete speech vocabulary consisting Software Inc. Codebase 5.0 allows access to X-base com of the words “yes”, “no”, “backup”, “continue”, “help", patible database records stored on the hard drive 152. The “operator", "pause", "quit" and “repeat" has been developed MDATA system 100 also includes two new authoring lan using a very powerful set of utilities supplied by VPC, guages (one each is used in two embodiments of the system), Scripter and Trainer. These utilities are for collecting which will be discussed hereinbelow. samples and training the vocabulary. The system software includes the following code modules 65 The VR board 124 has the minimum of two MB memory for which source code is included in the attached Microfiche installed. The default memory configuration has a partition Appendix: for both continuous vocabularies and a partition for one 5,724.968 9 10 discrete vocabulary. Additional discrete vocabularies may be matically added to the patient's medical record, but downloaded if the on-board memory is reconfigured. rather written to a "Pending" file where it will be The VR board 124 has four digital signal processors verified off-line by a staff person. (DSP's) from which VPC derived eight voice recognition Voice Keywords and DTMF Command Keys The system is channels. Each of these eight recognition resources is responsive to the following voice keywords and DTMF keys referred to as a VPro Speech Processor (VSP). Discrete when it is in a prompting state, i.e., notin response to a menu vocabulary recognition requires one VSP; continuous message: vocabulary recognition requires two adjacent VSP's. The MDATA system 100 has a VSP resource manager in the resp.c software module. This resource manager allocates 10 Voice DTMF VSP's in a dynamic manner to VP board 122 channels on a yes Useful for answering yes/no questions. demand basis. As soon as the system receives a response, O 2 voice or DTMF, it releases the VSP's associated with the backup i Causes the system to back up to the caller's VP board 122 channel. "predecessor" message (see below), then The MDATA system 100 uses VPC's application pro resume playback. gramming interface (API) for the C programming language, 15 help x: Plays helpful information: either the node's help message list, or the DTMF This makes the application vendor specific to VPC, but also command explanation message. allows the system 100 to utilize all the powerful API operator O Causes the system to transfer the caller features, e.g., on-line creation of discrete speaker dependent to a live person. vocabularies used for voice pattern matching or voice print pause 7 Transitions to pause mode. The system 20 default pause period is 30 seconds. 1ng. quit 9 Quits the current algorithm, and takes The VPC API supports both continuous speech vocabu the caller to node 110, which asks the lary (CSV) and discrete speech vocabulary (DSV) recogni caller if (s)he wishes to select another tion. algorithm. The voice processing (VP) board 122 supports speech repeat 3 Repeats the current node's play message 25 list. If this command is given in the recording and playback, as well as touch tone (DTMF) middle of a long play list, then signal detection and decoding. A device driver, associated playback restarts with the first message with the VP board 122, is loaded into systemmemory during in the list. load operations. The device driver supports communications Pause Mode Commands between the VP board 122 and the application code at run yes 1. Extends the pause period by one default time (e.g., when a person is seeking medical advice). 30 pause interval (30 seconds). Through a shared memory segment, the device driver sends continue 2 Ends pause mode. If this occurs at a Yes/No node, the system will repeat the event and status data to the application code in real-time as question. If this occurs at a Link events occur on the associated telephone line. These events node, the system will resume playback include the ring of an incoming call, touch tone key pressed with the "current” message. The system by the caller, and the hang-up signal. The VP board 122 35 resolves the DTMF digit "2" ambiguity, plays back speech messages that are stored on the hard drive "no" versus "continue", by examining the 152. The algorithm processor 160 sends a selected speech pause mode flag. file having an encoded speech message that is retrieved from the hard drive 152 to the VP board 122 at the appropriate FIG. 2 illustrates how speech files are created. A person time for speech message playback. A speech message can be 40 programming medical algorithms uses speech messages to of variable length with a typical message about one to two communicate with the person seeking medical advice. As minutes in length. Several speech messages may be chained previously mentioned, these speech messages are of variable together to produce an extended spoken message, e.g., length. The programmer typically writes a script for the giving instructions to the patient. During speech file speech message. Then using the handset of the telephone playback, the VP board 122 is monitoring touch tone 45 110, a speakerphone feature, or other voice-input device, response from the caller. The VP board 122 may be config e.g., a microphone, the programmer reads the script into the ured to interrupt speech file playback when a touch tone voice-input device which is connected to the VP board 122. signal is detected. The VP board converts the speech into a digital format and System Operating Contexts The system has an activity flag records the digitized speech to a file that is stored on the hard in the port status block for each patient currently using the 50 drive 152. In the presently preferred embodiment, a subdi system to keep track of which state the associated VP board rectory named vox contains the system speech files, and channel is in: subdirectories for each medical algorithm. System speech a. Idle Mode-an idle channel waiting for a telephone files are of the form sysxxx, where xxx is some arbitrarily call; assigned number. The system messages are used by the b. Login Mode-a condition where a patient is in the 55 “fixed” parts of the system, e.g., greeting, login process, login process; registration process. There are a few speech files of the form msgxxx. These are the past medical history questionnaire c. Registration Mode-a condition where a patient is in messages, and response acknowledgements. There are addi the registration process; tional speech files of the form msgxxxx in each of algorithm d. Real Mode-a condition where a patient is consulting subdirectories, where xxxx generally matches the node for an actual medical problem; number, which will be explained hereinbelow. Node mes e. Info (Information) Mode-a condition where a patient sages include information, question, menu and help mes is consulting for information or a hypothetical situa Sages. tion; f. Pause Mode-a patient-initiated pause condition; 65 III. Operating Features of the MDATA System g. Pending Mode-similar to Real mode except that new One of the MDATA system's main objectives is to bring medical information gathered for a patient is not auto together highly-qualified medical experts, encode their 5,724.968 11 12 knowledge in a central location, and make it available to mation. Therefore, the MDATA system asks patients for everyone. A new and unique authoring language is used by their complete medical history. The MDATA system can the MDATA system to help accomplish this objective. either obtain the patient's medical record over the telephone Each day, specialists perform the same tasks over and or it can mail or fax a detailed questionnaire to each patient. over. They enact the same diagnostic ritual of solving a The patient can then gather the necessary information at familiar problem. At the same time, however, primary care their convenience. The MDATA system will always be physicians attempt to find the best path through the diag available by telephone to clarify any questions the patient nostic maze of an unfamiliar problem. This process is may have. inefficient and fraught with error. The MDATA system uses the “International Classification In medicine, there is generally one best way to do things. 10 of Diseases” (ICD9CM) codes to help summarize the Instead of physicians spending valuable time duplicating information it has about a patient. This world standard is a tasks, the MDATA system utilizes medical experts from each comprehensive numerical system used to classify the entire medical specialty who write detailed algorithms for the spectrum of medical diseases. ICD9CM codes are also treatment of the 100 or so most commonly encountered used to classify specific procedures performed (e.g., complaints in family practice and emergency medicine. 15 appendectomy) as well as the morphology of neoplasm (i.e., These algorithms are carefully and specifically designed to tissue diagnosis of a cancer). elicit historical data and physical findings over the In addition, the MDATA system 100 uses ICD9CM telephone, rather than in face-to-face interactions. "E-Codes' to classify environmental events, circumstances. Several experts could work together to thoroughly and conditions as the cause of injury, poisoning, and other research one particular complaint as well as to anticipate the adverse effects. These codes are particularly helpful for full spectrum of possible problems and patient responses. storing information about what drugs the patient has taken or These experts could also provide and maintain the MDATA is currently taking, as well as the context (e.g., therapeutic system treatment table as well as the imaging modality of use, accident, poisoning, suicide attempt) in which they choice and laboratory test of choice tables. These concepts were or are being taken. For example, E942.1 is the code for will be described hereinbelow. 25 the therapeutic use of digoxin. Medications are also cross Carefully crafted questions, used in the taking of a medi categorized according to the classification done by the cal history, are the main tools that the MDATA system uses American Hospital Formulary Service List (AHFS) Num to assess the problems of patients. The key to getting a good bers. The MDATA system 100 also uses “V-Codes" to history is to ask the right questions. In a sense, in the classify other types of circumstances or events such as diagnostic process questions are like tests. It is important to 30 vaccinations, potential health hazards related to personal and note that the right questions are basically always right; they family history, and exposure to toxic chemicals. don't change. Although they may be refined over time, in It is estimated that the alphanumeric component of a general, once excellent and well-crafted questions are devel patient's medical history will not exceed 1,000 atoms or oped they are good for a very long time. Of course, as new pieces of information. An atom is considered herein to be a diseases are discovered, e.g., toxic shock syndrome and 35 separate identifiable data item or point. With this AIDS. new sets of diagnostic questions are developed that assumption, the medical records of every person on the are disease specific. planet could currently be stored on approximately 1,000 The questions used by an earlier generation of physicians, optical disks. who did not have any of the latest imaging modalities (types 40 While a patient interacts with the MDATA system, the or methods), are far more sensitive and precise in diagnosing system is constantly determining what questions to ask, apatient's problem than the questions used by doctors today. based upon the information it has about the patient. Just as The MDATA system makes use of fine nuances of language a physician gathers relevant pieces of information from his to diagnose patients as well as to determine when certain or her dialogue with a patient, the MDATA system flags and tests or imaging studies are necessary. 45 later stores all pertinent pieces of information that it learns The MDATA system's statistic generating capabilities from each interaction with its patient. Therefore, certain enable the system to analyze the effectiveness of the ques questions, because their answers remain the same, need not tions used in the diagnostic process. As a result, physicians be repeated. For example, if the MDATA system learns that benefit from the immense amount of statistical information a patient's mother has suffered from migraine headaches, it that is gathered regarding the wording of questions asked in 50 will never have to ask for this information again. taking medical histories. For example, exactly what percent Again, the more information the MDATA system has age of patients who answer “yes” to the question, "Is this the about a patient, the more specific is its advice. It is not worst headache of your life?" actually have a subarachnoid uncommon for the MDATA system to give different advice hemorrhage? Although this is a classic description of this to different patients calling for the same complaint. In other problem, the exact probability of having this kind of brain 55 words, the advice given is patient-specific. Not only can the hemorrhage after answering “yes” to this question is not MDATA system's advice be different for different patients, presently known. but there are times when the advice given to the same patient Currently, doctors can only estimate the probability of (calling for the same complaint but at different times) is certain conditions based on history. By applying the statis different. For example, one of a group of functions called tical information that is generated, the MDATA system not "meta” keeps track of the number of times the MDATA only provides the patient with advice that is continually system has been consulted for the same problem. Once a improving, but it will also be able to pass along these threshold is reached, the MDATA system advises the patient probabilities to the entire medical community. that the number of consultations alone, for the same To function optimally, the MDATA system tries to gain as complaint, may signify a problem. The system then makes much medical information about its patients as possible. 65 an appropriate recommendation. Although a first-time caller is given excellent advice, more Before the MDATA system stores any information, the specific advice can be given if the system has more infor system verifies its accuracy. To accomplish this task, "con 5,724.968 13 14 firmation loops" are used. Any piece of information that will simple "yes/no" questions, the flow of interaction can be become a part of the patient's medical record is sent through described by a binary tree. Multiple-choice questions (e.g., a confirmation loop where the system asks the patient to menus) provide multiple branches in the tree. Each question verify the accuracy of the information that the system has can be considered a node, and the acceptable responses to collected. The confirmation loop enables the system to this question are branches leading to the next question verify new patient information and make corrections before (node). Using this abstraction of an algorithm, one can draw it enters this information into the patient's medical record. a directed graph (also known as a node map) of the nodes and branches of an algorithm, beginning with the initial TV. Authoring Language question, and ending with all possible terminal points. The MDATA system uses a new authoring language that The node table is built in this manner: is specifically designed to allow medical knowledge to be 10 1. An author develops an algorithm. encoded into a usable computer program. The presently 2. The algorithm is broken up into separate nodes. preferred voice response or telephony version of the 3. A directed graph is drawn up, which is a flow chart of MDATA system is written in object-oriented Microsoft the algorithm's operation. C\CH-version 7.0. This allows the MDATA system to easily interface with industry-standard database programs, includ 15 4. Each node's definition is entered into the MDATA ing those that are SQL-based, as well as to be portable to system, either by: other operating systems. The operating systemis transparent a.. using an ednode utility to write each node's defini to the user. tion into the system's machine readable node table, O Before the development of the MDATA system's author 20 b. using an xlat utility to translate an ASCII file of ing language, there was no practical way for medical experts human-readable node definitions into the system's to encode their knowledge into a meaningful, useful, and machine readable node table. accessible structure. Although other computer languages Several example node maps are included in the attached have been used to build medical expert systems, they have Microfiche Appendix. almost always required a knowledge engineer and a pro 25 Referring to FIG. 3, a process for translating a medical grammer to be involved. Quite often, the knowledge algorithm written in the authoring language will be encoded in these systems could only be accessed and fully described. FIG. 3 illustrates an ASCII (American Standard understood by physicians. Typically, the programmer would Code for Information Interchange) format textfile 170 as an try to translate the doctor's diagnostic skills and treatment input to a translation utility 172. An ASCII file can be rules into computer code. This separation of the physician's 30 created by use of a text editor or a word processing program knowledge from the encoded treatment recommendations (may need to export to the ASCII format). The ASCII file often engendered anxiety in the physician and has, at times, 170 contains node definitions conforming to the syntax led to inaccurate treatment recommendations. briefly described hereinbelow and more thoroughly The MDATA system's authoring language, however, is described in the attached Microfiche Appendix. An example designed to allow physicians to transfer their knowledge into 35 node definition text file 170 for Headache is included in the a computer program that can be directly accessed by non Microfiche Appendix. medically trained personnel. Recursive and iterative tech The purpose of the ASCII node definition translator utility niques are used to acquire the knowledge from the expert 172 (xlat.exe, along with functions in pars.c and utilic) is to and assemble it in a way that allows it to be immediately convert a human-readable document into a machine readable transposed into the MDATA system's algorithms. Because format that the MDATA system reads at run time to process of the simple interface of the language, and because a an algorithm. This utility 172 may be considered to be a formula for writing the algorithms has already been preprocessor; the translation must be accomplished prior to developed, physicians who are not computer literate can run time. The translation utility 172 is listed in the Micro encode their knowledge as well as understand exactly how fiche Appendix. that process takes place. 45 The output of the utility 172 is a set of binary (NOD The MDATA system's authoring language allows flat BLK) records written to a node table 174 (filename of information to be restructured into a hierarchical or layered nodefos), and a set of binary list files 176 (in a subdirectory formatin which the arrangement of the knowledge conveys list\listxx\xxyy, where xx is the first two digits of the node meaning. Thus, a textbook description of a disease can be number, and yy are the last two digits). Four list files transposed into a form that allows useful treatment recom 50 176a-176d are shown as an example. Each "list” file, e.g., mendations to be made. 176a, contains a "next” table (i.e., the next node after this The new language also allows the formation of a structure one'), a message play list for this node, and a "work” list in which multiple overlays of screening questions, combined (i.e., one or more “things to do” at this node before begin with the application of recursive techniques, sequentially ning speech playback). The binary record written to the node exclude some diagnoses while at the same time reaching 55 table 174 (nodefos) has fields containing the node number treatment recommendations. The MDATA system's simplic (which is redundant; the record's position in this file also ity and elegance would not be possible without the new indicates the node number), the node's “type” attribute language. (Menu, Link, Prompt, Yes/No, Return. Hangup) and a parent The MDATA system's authoring language allows an node number. algorithm programmer to retrieve information from a The node table 174 is a table of 10,000 NOD BLK patient's medical record, request additional information records. This table 174 is indexed by a node number, e.g. the from the patient, and guide the flow of algorithm execution fiftieth record corresponds to node 50. The contents of the based on medical history and the patient's responses. The individual node records may be viewed by selecting “Dis language allows the programmer to implement an algorithm play Node” while running the edinode utility. The node in a natural scripted style. 65 records are modified by either using the ednode utility, or The course of an algorithm is determined by caller when translating node definitions from ASCII to the node responses to questions that the MDATA system asks. For file with the xlat utility. 5,724.968 15 16 One of the following keywords is necessary as the first The first keyword in a node definition must be Node. The item on each line, but only one keyword is accepted per line; other keywords may be given in any order. The next any excess information will be discarded. occurrence of the Node keyword will invoke a completeness test. If the completeness test is successful, then the node definition is saved in machine readable (binary) format, and Node The Node keyword denotes the beginning of a translation continues with the new Node line. A set of new node and defines the node number. reserved language keywords is listed in Table 1. Parent The Parent keyword defines the parent of the node being defined. The Type keyword defines the class of the TABLE 1. node being defined. Acceptable type names 10 are: Reserved language keywords (case insensitive): Menu This node presents a multiple choice question. G link Teturn YesNo This node presents a simple Yes/No type and 8. test question. digbuf heta then Link No caller response is required at this digits next type node, algorithm processing will continue 15 else node wait at a predetermined node, essf parent write Prompt This node requests some numeric flush play work information from the caller. The hangup pop xOf information is placed in a DTMF buffer help prompt yesno which is then stored in the next node. if push Return Returns from a subroutine call (e.g., 20 keep reenter after configuring a past medical history object). Hangup The system will release this caller after it finishes speech file playback, V. Run-Time Operation or if the caller interrupts playback Referring to FIG. 4, the run time interaction among the with a DTMF key press. 25 hardware and software components of the MDATA system Waitill This node will play the message list, 100 will be described. As previously mentioned, algorithm then pause for the specified nonzero number of seconds before continuing. processor 160 includes the parser and supporting functions The G keyword defines the action to be taken that manipulate the memory variable symbol table and the for a response to either a Menu or YesNo type run time stack. For a selected medical algorithm, a node node, record is read from the node table 174 and a list file is read Digits The Digits keyword is used in conjunction 30 from the plurality of list files 176. The algorithm processor with Type Prompt to indicate the maximum number of DTMF digits to collect from the also interacts with the Vpro voice recognition (VR) board caller, 124 for speech recognition and with the Dialogic voice Play The Play keyword defines a play list of one processing (VP) board 122 for speech playback and DTMF or more messages to be played at this node. detection. The VP board 122 further is interconnected with Help The Help keyword defines a play list of one 35 a set of speech files 180 that are stored on a portion of hard or more messages containing useful hints for interacting with the system. These messages disk 152 and with one of the telephone lines 106 that provide helpful instructions for a new or connects via the telephone network 108 (FIG. 1) to the confused caller. patient's telephone 110. The VR board 124 further connects Next The Next keyword defines the next node to with the voice print vocabularies 182, previously described, jump to after the node being defined. It is 40 also stored on a portion of hard disk 152. The algorithm used in conjunction with node types Link and processor 160 utilizes the speech recognition, speech Prompt. Work The Work keyword indicates a sequence of one playback, and DTMF detection resources as directed by the or more operations to perform when arriving medical algorithm that is retrieved from the node table 174 at the node being defined. This processing and the list files 176. occurs before speech playback begins. 45 Referring to FIGS. 4,5a and 5b, several data structures are utilized at run time. These data structures are described A select set of math functions, relational operators, and as follows: nested if-then-else statements are Supported. A pound sign A. Port Status Block (PSB). A port status blockis created (*#) or a hyphen (-) in the first position on a new line will at run time for each VP board 122 channel. The PSB cause the translator to skip over the rest of the line. This is 50 contains flags, buffers and tables that hold the state useful for inserting comments, or delimiting between indi information of the channel, retain responses from the vidual node definitions. The translator also disregards blank caller, and keep track of where to transfer control in lines. response to voice recognition and telephony events. In order for a node to be properly defined, a minimum The PSB keeps track of whether the caller prefers to use number of keywords must be present for each node, and 55 spoken or touch tone responses, the caller's last other keywords must be included depending on the node response, the number of consecutive errors the caller type. The minimum keyword set for a properly defined node has made, and other context sensitive parameters. S. B. Node Block. This structure 196 contains the node Node. Parent, Type, and Play. number, the type attribute (link, menu, yes/no, hangup, Dependency rules: prompt, wait, return) and pointers to: (1) The Menu type requires at least an G1 line and an a. Help list-a Play list of help information; G2 line. b. Play or Message list-a list of one or more messages (2) The YesNo type requires an G1 and an G2 line or speech files to play in sequence at each node; (G3, etc. are ignored). c. Next table or list-contains entries for each possible (3) The Link type requires a Next line. 65 response to a yes/no or menu node that are evaluated (4) The Prompt type requires a Digits line and a Next at run time to determine the next node to branch to: line. and 5,724.968 17 18 d. Work list-things to do before message playback the speech is recorded in multiple files. To simplify algo StartS. rithm programming and enhance readability (viz., eliminate The load node() routine 194 in utilic builds the node long chains of link nodes), the Link node's play list may block structure 196 in memory by first reading in a node contain up to ten message numbers. record 190 from the node table 174. Then linked lists are Upon arrival at a Link node, the system positions a attached to the pointers help, play, next and work. These lists “current message” pointer at the beginning of the play list come from the list files 176, in subdirectory path (trivial case: single message play list; interesting case: Wist\listxx\xxyy, where xxyy is the node number, wherein multiple message play list). As playback proceeds, the each list file 192 is associated with a unique node. current message pointer moves down the play list. After the C. Symbol Table. Each patient has their own associated 10 system plays the last message on the list, it moves on to the symbol table. A portion of a symbol table 212 is shown next node. in FIG. 5b. The symbol table is loaded at run time with If the caller issues a "backup' command, the system will memory variables that hold patient specific data (age, move the current message pointer back one message, and sex, and items from medical history) and algorithm resume playback. If the pointer was at the beginning of the specific data. The items in the symbol table can be 15 list (e.g., trivial case), the system backs up to the previous flagged for storage to the patient's medical history. node and places the current message pointer at the beginning D. Run Time Stack (RTS). Each Dialogic VP board 122 of the play list. If there is more than one message in the list, channel has a RTS associated with it. The RTS is used the system cues the pointer to the last message in the list. by the parser. The algorithm programmer can push to The system then resumes playback. In the "pause” mode, and pop from the RTS, e.g. to temporarily store a value 20 when the caller issues the "continue” command, the system of a variable. will resume playback at the current message. The work list has the non-playback tasks that are per The MDATA system 100 uses three basic operating formed at each node. There is one work list for each node, modes: and it is identified with the work keyword in the ASCII node A. Real Mode-involves an actual medical problem. In definition file. The work list may be empty. Each time the 25 this mode the system 100 loads the past medical system transits to a new node, it will execute the work list. history, saves new past medical history objects, and If the patient repeats a node, the system will not execute the writes a meta record for each algorithm consulted. The work list again; it will simply replay the message(s). If the medical algorithm programmer is responsible for pro patient requests the system 100 to back up the node map, the viding code to jump past meta analysis in Information system will execute the work list of the node it backs up to. 30 mode. Typical tasks in the work list involve manipulating objects B. Information Mode-involves a “what if' scenario. In on the run time stack or in the symbol table, testing for the the Information mode the system 100 disregards past presence of memory variables, configuring past medical medical history, does not save newly configured past history or current medical condition objects, or writing medical history objects, does not write a meta record database records. An example of a complex work list foll 35 for each algorithm consulted, and does not perform lows: meta analysis. The patient has an option in Information “Test OBJECT2; Phone-DIGBUF; Push Age” mode to change the age and sex parameters to emulate This example tests for the presence of a patient record a hypothetical patient. object labelled "OBJECT2", loads the contents of the digit C. Pending Mode-handles the situation when a patients buffer into memory variable Phone, and pushes the value of voice sample does not match the patient's reference memory variable Age onto the run time stack. sample. Pending mode is utilized also when an assistant Each node has the 'next' table or list. The next list indices is interacting with the MDATA system 100 on behalf of range from 1 to 9, inclusive. The next list contains either a a patient and both the assistant's and the patient's voice single node number, or an if expression. For all node types, samples fail the voice printing test. In the case where except the Hangup node, there will be at least one next list: 45 the assistant's voice sample fails the voice printing test Link and Prompt nodes: the next node is stored at table but the patient's voice sample passes the test, Pending index 1. mode is not utilized. In Pending mode, the MDATA Yes/No node: the next node for the Yes response is stored system 100 considers the patient's medical history and at table index 1, and the No response is stored at index 2. performs meta analysis during this consultation. This corresponds to the prompt, “if the answer is yes, press 50 However, a meta record is not written for this consul 1; if no, press 2.” tation and any new medical information gathered on Menu node: the response number and the table index are this patient will not be written to the patient's medical the same. Even though the actual data structure has a '0' record. The new medical information is written to a index in the C programming language, this index is not used "Pending" file. The Pending file is verified off-line by in the next table because a '0' response is reserved for 55 a system administrator or staff person, and then is operator assistance. added to the patient's medical record only if the infor Following is an example of a next list: mation can be verified. “if Male and Ages 55 then 100 else 200” is interpreted as: One of the drawbacks of the traditional doctor-patient If the patient is both male and over 55 years old relationship is the short amount of time that physicians are then go to node 100 else go to node 200. able to spend with patients. The MDATA system 100, Speech files 180 may be of an arbitrary length. A message however, allows patients as much time as they wish to learn may be informational, a list of menu options, or a yes/no about their problem as well as to obtain information on any question. A "two paragraph” or “under one minute' limit has number of other medical topics. been adopted as a style convention for the presently pre Through the “Information mode” feature of the MDATA ferred embodiment. Typically, a node is programmed as a 65 system 100, callers can learn about a disease process, an sequence of Yes/No nodes, with "informational” Link nodes illness or the latest treatment for any disease, without adding interspersed as needed. When there is a lengthy discussion, any information to their personal medical record. Although 5,724.968 19 the system 100 keeps track of the interaction, it is labeled as depending on the response of the patient. In this example, an "Information mode session.” The record of the caller's the patient responds "no", and the parser evaluates the Next path through the system is not used as the basis for any list based on the patient selection and branches to node future advice, nor is it considered in generating system i2210. statistics. 5 At FIG. 5g. the algorithm processor 160 loads node The Information mode is not limited to complaints for #2210, represented by node block 230. The work list is which the MDATA system 100 offers medical advice. Infor empty in this node so the system 100 goes right to playing mation about early detection and treatment of many other back message #2210 which presents a yes/no type of ques diseases as well as the latest advances in medicine can be tion to the user. The Next list has two nodes for possible made available through the information mode. 10 branch points depending on the response of the patient. If the Referring to FIGS. 5b through 5g, as an example, a run patient answers “yes” to the question, the parser branches to time sequence of steps of how a patient may traverse a main node #2211, but if the patient answers "no" to the question, menu node map several steps into a chest pain algorithm the parser branches to node #2215. node map will be described. A portion of the main menu node map with associated script, and of the chest pain 15 VI. Software Structure algorithm node map with associated script is included in the Referring to FIG. 6, the system utilizes eight principal, Microfiche Appendix. Six nodes with a portion of an asso separate processes and seven related databases. A patient ciated symbol table will be discussed. login process 250 is used by the system 100 to identify a At FIG. 5b, the algorithm processor 160 loads the first patient who has previously registered into the system by node #100, represented by node block210. The variables for 20 prompting for a patient identification number (PIN). An Age, Sex, and Real mode were loaded into the symbol table assistant login process 272 is used by the system 100 to 212 during the login process (which will be described identify an assistant who has previously registered into the hereinbelow). Throughout this example, the help list is system by prompting for an assistant identification number empty, i.e., no help information is played for the patient. The (AIN). An assisted patient login process 276 is used by the work list sets the Problem variable of the symbol table 212 system 100 to identify a patient who has previously regis to be Menu. Then the system 100 begins playback of tered into the system by prompting for the patient identifi messagei100. This message gives the patient a menu of cation number. If the caller is the patient, a patient registra choices to choose from. The Digits entry equal to one means tion process 252 is used by the system to register new or that a one digit response is expected from the patient. The first-time patients. If the caller is not the patient, an assistant patient may respond by pressing a touch tone (DTMF) key 30 registration process 274 is used by the system to register new on the telephone or speak the choice response into the or first-time assistants. Then, if the patient is not already telephone handset microphone. In this example, the patient registered, an assisted patient registration process 278 is selects menu option "1". The parser evaluates the Next list used by the system to register the patient. These processes based on the patient selection and branches to node #101. will be further described hereinbelow. At FIG.5c, the algorithm processor 160 loads node #101, 35 represented by node block 214. The work listis empty, so the Once a caller has logged in or registered, the system system 100 goes right to playing back message #101 which provides a choice of two other processes in the current presents another menu of choices to the user. The Next list embodiment. The first of these processes is the evaluation has four nodes for possible branch points. In this example, process 254 that performs a patient diagnosis. The second of the patient selects menu option “1” for a chest pain com these is a treatment table process 256 to obtain current plaint. The parser evaluates the Next list based on the patient treatment information for a particular disease or diagnosis. selection and branches to node #2200. In another embodiment, other choices are added to access At FIG. 5d, the algorithm processor 160 loads node other medical information processes. #2200, represented by node block 218. The work list com Associated with these eight processes are a patient and mand is to update the value of Problem in symbol table 220 45 assistant enrollment database 260, a consultation history to CCHP (chest pain). Then the system 100 begins playback database 262, a patient response database 264, a medical of messageff.2200. No response is required from the patient history objects database 266, a patient medical history for a Link type node. The Next list has two nodes for database 268, a pending database 269, and a patient medi possible branch points depending on the value of symbol cation database 270 that are described as follows: table variable Real. The parser evaluates the If expression in 50 A. The master patient and assistant enrollment database the Next list for the value of Real and, in this example, 260 is created at run-time by one of the registration branches to node #2201. processes 252,274, or 278. This database 260 is readby At FIG. 5e, the algorithm processor 160 loads node the patient login process 250 or the assisted patient #2201, represented by node block 222. The work list com login process 276 to validate a patient's identity at mand is to write a Meta consultation record for future use by 55 login time and by the assistant login process 272 to a Meta function. The play list is empty so no message is validate an assistant's identity at login time. The data played. No response is required from the patient for a Link base 260 is essentially a master file of all registered type node. The main purpose of this node is to write the patients and assistants indexed by their patient ID Meta consultation record (because the system is currently in number or assistant ID number, respectively. The Real mode for this patient). The Next list has only one node patient ID or assistant ID, date of birth and gender so no decisions are necessary by the parser which, in this fields are entered by the on-line registration process; example, branches to node #2205. the system administrator manually enters the name of At FIG.5f the algorithm processor 160 loads node #2205, the patient or assistant in an off-line manner. represented by node block226. The worklistis empty in this The patient and assistant database 260 contains one record node so the system 100 goes right to playing back message 65 for each patient or assistant. This database 260 is indexed by #2205 which presents a yes/no type of question to the user. the identification number. The system appends the enroll The Next list has two nodes for possible branch points ment database 260 after a caller is successfully registered. 5,724.968 21 22 The “next ID number" is stored in a binary file, configfos, data. For human readability, the system also inserts "Begin and is incremented after each successful registration. Each Cal' and "End of Call' records in this file. Each record has record has the following fields: the following fields: Field Name Data Type Width Usage Field Name Data Type Width Usage ID Numeric 10 D number DATE Date 8 Date stamp MM/DDIYY TYPE Character 1. User type: “P” - patient, TME Character 8 Time stamp HH:MM:SS "A' - assistant NODE Numeric 6 Current node number ASST PERM Boolean 1 Permanent assistant 10 TYPE Character 5 Response type: DTMF flag or WOICE ASST EXP Date 8 Expiration for RESP Character 5 Response command or permanent assistant digit string RELATONS Pointer 20 Pointers to related MODE Character 1. Consultation patients/assistants operating context ORGZTN Character 8 Organization VERSION Character 20 Wersion or alphanumeric code 15 Begin/End call NAME Character 20 Patient/Assistant name comment SEX Character 1. Gender SENS FACT Character 2O Current sensitivity YEAR Numeric 4 Year of birth factor settings MONTH Numeric 2 Month of birth DAY Numeric 2 Day of birth ACCESS Date 8 Last access 20 D. The medical history objects database 266 is an auxil RV PATH Character 20 Path name of recorded iary database that supports a key feature of the MDATA voice file system 100: past medical history. The medical history objects database is a catalog of unique alphanumeric B. The consultation history or meta database 262 is codes, each code corresponding to a medical condition created at run-time by the evaluation process 254. A con 25 or diagnosis that is not expected to change during the sultation record contains alpha-numeric codes for the patient's complaint, the affected anatomic system and the life of the patient (e.g., a diagnosis for asthma is coded diagnosed cause of the patient's complaint. When the meta as "RWHZAST"). function is invoked at run-time, it compares alphanumeric In addition to the alphanumeric codes, the MDATA sys strings provided by the evaluation process with the fields of tem 100 uses the “memo” field in a Foxpro database to store all the patient's meta records that fall within a time window 30 binary objects. Currently, these binary objects are clinical specified by the evaluation process. The meta function sounds obtained from the patient over the telephone. returns the number of matches found, and an indication of It is anticipated, that as database technology gets more the frequency of the patient's complaint. sophisticated (moving toward multi-media and so forth), it Each patient has an individual meta file that is part of the will allow storing of larger and more complicated binary consultation history database 262. At the conclusion of the 35 files such as the following: a digitized X-ray, a digitized CAT evaluation process and dependent on the run-time operating scan, a digitized MRI scan. In addition, as video-telephone mode flag, the system will create a new meta record, technology advances, it is anticipated that the system 100 populate its fields with the information gathered during the will store video images or even holographic images of the evaluation process, and append this record to either the patient. consultation history database 262 or the Pending file 269. For every past medical condition there is a record in the For example, information used in the new meta record may medical history objects database that contains the attributes come from a “Write Meta' command in a node Work list. of the medical condition, and contains a pointer into the past Each record has, the following fields: medical history questionnaire. The attributes of a medical condition include its data type (e.g., boolean or numeric) and 45 the number of digit positions needed to store the value of a Field Name Data Type Width Usage numeric value associated with this condition (not applicable DATE Date 8 Date stamp to boolean type). PROBLEM Character 5 Patient The pointerfield is useful for obtaining medical history at complaintisymptom run-time. If a patient has an incomplete medical history SYSTEM Character 5 Anatomical system 50 questionnaire on file with the MDATA system 100, then the affected CAUSE Character 5 Diagnosed cause of pointer field allows the evaluation process to momentarily complaint suspend the evaluation, go to the medical questionnaire and ask an individual question, collect and verify the patient's response, and then resume the evaluation process. This C. The patient response database 264 is created at run 55 "ask-when-you-need-it” approach relieves the new patient time by the evaluation process 254. The response database of going through an exhaustive medical history question 264 is an audit trail: each record is time stamped and naire before the first consultation of the diagnostic process. registers the patient's response to each question. This data Each record of the medical history objects database has base 264 can later be analyzed off-line with a database the following fields: program such as FoxPro/FoxBase to reveal how the patient responded to questions during the evaluation process 254, or a database program can be developed to gather response Field Name Data Type Width Usage patterns and statistics and generate appropriate reports. LABEL Character 8 Object code name Each patient has a response trace file that is part of the TYPE Character Object data type patient response database 264. The system 100 appends this 65 DGTS Numeric 3 Maximum number of response trace file with a response record every time the digits in response patient answers a question or provides algorithm-requested 5,724.968 23 24 -continued medication database 270 is created by the evaluation process 254 at run time. A “Write Drug" command builds a record Field Name Data Type Width Usage and fills its fields with same-named memory variables from CALL Pointer 6 Identifies the symbol table. The evaluation process 254 may read the question(s) to be medication database 270 during run time as needed. The asked to configure treatment table 256 optionally reads the medication database this object AUDIO Binary NAA Voice print 270 to determine the medication(s) being used by the IMAGERY Binary N/A Face print patient. RFU Character 20 (For future use) O Field Name Data Type Width E. The patient medical history (PMH) database 268 is created at run-time by the evaluation process 254 or by use GENERICNAME Character 20 of a past medical history questionnaire. The PMH database TRADE NAME1 Character 20 268 is read by the evaluation process during run-time. This TRADENAME2 Character 20 15 TRADE NAME3 Character 20 database 268 contains each patient's individual medical ICD-9-CMCODE Character O history. A new patient has an option to go through the entire ICD-9-CMECODE Character O medical questionnaire at one time, thereby configuring all ICD-9-CMVCODE Character 10 OTHER Character 20 the past medical history objects listed in the objects database DOSAGE Character 20 266. Alternately, the new patient can bypass the question ROUTE OF ADMINISTRATION Character 10 naire and go right into the diagnosis of a medical complaint. FREQUENCY Character 10 Then, if a medical algorithm requires a past medical history USE Character 20 START DATE Date 8 object that has not yet been configured, the evaluation STOP DATE Date 8 process 254 invokes a past medical history function before OTHER Character 20 it continues with the algorithm. OTHER2 Character 20 Each patient has their own past medical history file, which 25 is part of the PMH database 268, that contains records which describe medical events or conditions from the patient's life. The system 100 appends a record to this file each time a past VII. Top-Level Flow medical history object is configured for the patient. The Referring to FIGS. 7a, 7b, 7c and 7d, the top level flow contents of this file are installed in the symbol table when the 30 300 of the MDATA system 100 software will be described. patient logs in to the system 100. The medical algorithm The telephone number used to access the MDATA system programmer is responsible for using a TEST command to 100 may vary in various embodiments of the system. If the verify that necessary items are present in the symbol table sponsoring agency or hospital Wishes to provide access to before algorithm execution. Aside effect of a negative TEST the MDATA system 100 at no cost to the caller, then a result is that the system 100 prompts the patient to provide 35 toll-free 800 service number can be used. If the sponsoring that information. The system 100 flags any new or modified agency or hospital wishes to recover the costs of running the items, and asks the patient to confirm these values during an MDATA system 100 from the caller, it may use a pay-per Exit Confirmation Loop which will be described hereinbe call or premium charge number (e.g., 900 service). "Current low. Each record has the following fields: Procedural Terminology” (CPT-4) codes are available to 40 describe and bill third party payers for telephone consulta tions. They are a listing of the descriptive terms and iden Field Name Data Type Width Usage tifying codes for reporting medical services and procedures. LABEL Character 20 The object's label CPT-4 codes are the most widely accepted nomenclature for TYPE Character 1. Object data type reporting physician services to insurance companies. WALUE Character 10 Object's configured 45 value Beginning at a start state 302, a person 112 (FIG. 1) CERT Numeric 3 Certainty of desiring medical advice calls the telephone number for the object's value MDATA system 100 on a telephone line 106. The caller may DATE Date 8 Object configuration date be the patient or may be an "assistant', e.g., parent, relative. ICD9A Float 5 First ICD-9 code or friend, that is helping the patient. Moving to state 304, the 50 system 100 answers the call automatically and greets the CD9E Float 5 Fifth ICD-9 code caller 112 with an introductory greeting message by playing back a speech file stored on the hard drive 152 by use of the F. The "Pending” database file 269 holds medical infor VP board 122. Proceeding at state 306, the MDATA system mation gathered during Pending mode for offline veri 55 100 asks each patient who calls the system a series of "initial fication. The Pending database record structure is the screening questions.” These questions are designed to iden same as that used for the past medical history (PMH) tify patients who are critically ill; they are not designed to database 268. The evaluation process writes to the identify the patient's problem. The initial screening ques Pending database at run-time when it configures a new tions enable the system to filter out patients who require past medical history object for a patient during a immediate medical attention. Pending mode interaction. The contents of the Pending Moving to decision state 308, any patient found to be database are reviewed off-line by a staff person, and if critically ill is instructed to dial the emergency response the information is verified, the staff person appends the telephone number "911" at state 309 or will be automatically information to the patient's past medical history file. connected to the nearest emergency medical services system G. An optional patient medication database 270 contains 65 in the patient's area. The telephone call is terminated by the a file for each patient containing information about medi computer 102 at state 310. The following are examples of cation they are taking, or have taken in the past. The initial screening questions: 5,724.968 26 IS THIS A MEDICAL EMERGENCY? The medical information gathered during an assisted ARE YOU HAVING DIFFICULTYBREATHING consultationis written to the patient's medical record only if ARE YOU EXPERIENCING SEVERE PAIN OR PRES the following three conditions are met: SURE IN YOUR CHEST? (a) the assistant's ASST PERM flag is True If the system determines that the patientis experiencing a (b) the ASST EXP timestamp has not been reached medical emergency, it may provide the patient with a menu (c) the assistant has a relationship pointer to the patient of emergency medical procedures at state 311. In situations record where the patient or the caller for the patient is far from the If any of these conditions are not met, then any new medical nearest emergency help, e.g., a rural setting, the caller may information gathered on this patient will be saved to the need to initiate emergency procedures immediately. The 10 Pending file 269 for off-line verification by the system menu of emergency medical procedures provides several administrator. The system 100 establishes at state 315 whether the caller choices to the caller. If the caller presses touch tone key "1" is the patient, or an assistant. If the caller is not the patient, or speaks the word "one" into the telephone mouthpiece, the then the system asserts that the caller is an assistant and, at computer 102 branches to state 312 wherein well known a decision state 320, determines if the assistant is registered. CPR (cardiopulmonary resuscitation) information is recited. 15 If the assistant is not already registered with the system, the If the caller has a speakerphone capability associated with system enrolls the new assistant at the assistant registration the telephone 110 being used, the caller may be able to listen process 274. If the assistant is already registered with the to and perform the instructions given by the system 100 in system 100, the computer 102 performs the assistant login a hands-free manner away from the telephone. If the caller process 272. At the completion of either process 272 or presses touch tone key"2" or speaks the word "two" into the 20 process 274, the computer 102 advances to a decision state telephone mouthpiece, the computer 102 branches to state 321. 313 wherein well known Heimlich Hug information for If the patientis not already registered with the system 100, choking is recited. At the completion of either state 312 or as determined at decision state 321, then the system allows state 313, the telephone call ends at state 314. the assistant to register a new patient at the assisted patient If the patient is determined at state 308 not to have a 25 registration process 278. However, if the patient is already medical emergency, i.e., the MDATA system 100 is satisfied registered with the system 100, as determined at state 321, that no immediately life threatening condition is present, the the computer 102 performs the assisted patient login process computer 102 moves to a decision state 315 to determine if 276. At the completion of process 278 or process 276, the the caller is the actual patient. If so, the computer 102 computer 102 proceeds through off-page connector B 327 to proceeds to a decision state 316 to determine if the patient 30 a decision state 334 on FIG. 7c. has previously registered or ever consulted with the system At decision state 334, the computer 102 determines if the 100, i.e., is not a new or first-time caller. If so, the system patient's date of birth is in the patient's medical record. If so, 100 verifies the patient's identification and retrieves their the computer proceeds through off-page connector C 317 to medical record at the patient login process 250, which will state 344 on FIG. 7d. If not, the system 100 attempts to get be further described hereinbelow. At the completion of 35 the patient's date of birth. Moving to state 335, the system process 250, the computer 102 proceeds through off-page 100 asks the assistant if the patient's date of birth is known. connector C 317 to state 344 (FIG. 7d). If the patient is not If so, the computer 102 advances to state 336 to request the registered, the MDATA system 100 proceeds to the patient patient's date of birth. At state 337, the system 100 recites registration process 252 for a new patient, which will be the patient's date of birth obtained at state 336. At a decision described hereinbelow. At the completion of process 252, state 338, the assistant determines if the date of birth is the computer 102 proceeds through off-page connector C correct as recited by the system 100. If not, the computer 102 317 to State 344 on FIG. 7d. loops back to state 336 to request the patient's date of birth If the caller is not the patient, as determined at state 315. again. If the patient's date of birth is correct as determined the computer 102 proceeds through off-page connector A at state 338, the computer 102 flags the date of birth for 318 to state 320 on FIG. 7b. There will be times when the 45 saving in the patient's medical record at state 339, and patient may not be able to use the MDATA system 100 proceeds to state 344 on FIG. 7d. directly, e.g., due to injury, weakness or altered level of If the patient's date of birth is not known, as determined consciousness. In these cases, an "assistant” may interact at state 335, the computer 102 proceeds to state 340 wherein with the system on behalf of the patient. the system requests the assistant to provide an approximate An assistant registers with the system through the assis 50 age of the patient. The age is an important parameter used in tant registration process 274 which will be described here the evaluation process 254 and treatment table 256. At state inbelow. The assistant registration record is identical to the 341, the system 100 recites the patient's approximate age patient registration record in structure, but three fields have obtained at state 340. At a decision state 342, the assistant special significance for an assistant: ASST PERM. ASST determines if the age is correct as recited by the system 100. EXP, and RELATIONS. The ASST PERM field is a bool 55 If not, the computer 102 loops back to state 340 to request ean flag that can only be set true off-line by the system the patient's approximate age again. If the patient's approxi administrator who has verified, through separate means, that mate age is correct, as determined at state 342, the system a relationship exists between a patient and an assistant. The 100 advises the assistant at state 343 to get the patient's relationships are one-to-many, i.e., apatient may have one or actual date of birth before the next consultation, and pro more assistants, and an assistant may be related to more than ceeds to state 344 on FIG. 7d. The system 100 uses the one patient. The ASST PERM flag may also be constrained approximate age in the consultation during the evaluation by the ASST EXPfield, which contains a timestamp for the process 254 and the treatment table 256. expiration of the ASST PERM attribute. If the ASST At state 344 on FIG.7d, the system 100 presents the caller PERM flag is true, then the RELATIONS pointers will point with a system selection menu. Here, the caller is asked to to one or more patient records for whom this assistant is a 65 Select from among four choices: diagnostic system, treat "permanent assistant;" otherwise the RELATIONS field will ment table, a future processfunction, or end call as be empty. described below: 5,724.968 27 28 A. Diagnostic System: The system starts the evaluation fax queue for subsequent transmission. At the completion of process 254 at a menu, whereitasks the patient to begin state 351 or if the system 100 determined at state 349 that the identification of the complaint. session transcript was not to be faxed, the telephone call is B. Treatment Table: The system takes the patient to the terminated at state 352. treatment table process 256 at a menu, where it asks the patient to select a treatment selection method. VIII. Login Process C. Future Process/Function: A future process or function Referring now to FIGS. 8a and 8b, the patient login 280, undefined in the present embodiment, that reads process 250 defined in FIG. 7a will be described. This and/or writes the databases shown in FIG. 6. process 250 is called if the patient has previously called and D. End Call: The system performs several steps and then O registered with the system 100. Beginning at a start state terminates the telephone call. 358, the computer 102 moves to state 359 and initializes a In either process 254 or 256, the computer 102 functions as match flag to true. The match flag is checked later in this an interpreter as performed by algorithm processor 160 in process 250 in conjunction with setting the mode of the following the node map created by the algorithm program consultation. Proceeding to state 360, the computer 102 mer. At the exit point of the evaluation process 254, the 5 prompts the patient for the patient ID (identification) number system 100 gives the patient the option of selecting another (PIN) that is assigned during the registration process. The complaint. At the end of the treatment table process 256, the patient registration process 252 will be described in con system gives the patient the option of selecting another junction with FIGS. 9a and 9b. Proceeding to a decision treatment. state 361, the computer 102 determines whether the PIN is At the completion of the evaluation process 254, treat 20 valid. If not, the computer 102 determines, at a decision state ment table process 256, or future process 280, the system 362, if less than three tries at entering the PIN have been 100 loops back to state 344 and recites the system selection attempted. If so, the computer 102 loops back to state 360 to menu to the caller. If the caller chooses the End Call repeat the request for the PIN. However, if three attempts at selection at state 344, the MDATA system 100 moves to a entering the PIN have been made, as determined at state 362, decision state 345. At decision state 345, the system 100 25 the computer 102 plays a polite message that advises the determines if process 254, process 256, or process 280 did patient that the login attempt failed and terminates the call not occur in Information mode, i.e., did occur in either Real at state 363. The computer 102 reports the failed login mode or Pending Mode, and examines the patient's symbol attempt to the system administrator at the sponsoring table to determine if any of the configured memory variables agency, hospital or other organization. The patientis allowed are past medical history conditions that need to be saved to 30 to reregister as a new patient, however, to permit access to the patient's medical history file. If both conditions are true the needed medical information. The system administrator at state 345, the system 100 advances to a decision state 346 to determine if the consultation is being performed in Real resolves this type of situation off-line. mode. If not, the consultation is being performed in Pending If the patient has correctly entered a valid PIN, as deter mode, and the system 100 then writes any new patient 35 mined at state 361, the computer 102 moves to a decision information obtained during the consultation to the Pending state 364 to determine if the patient identified by the PIN has file 269. If state 346 proves to be true, i.e., Real mode, for a voice print or sample voice waveform on file in the system each past medical condition that needs to be saved, the 100. If not, the computer 102 proceeds to state 365 to record MDATA system 100 asks the patient at state 348 to grant the voice print of the patient, e.g. the patient's pronunciation permission to save the datum to the patient's medical history of his or her full name. The patient's voice print may not be file and to confirm that the datum is correct. For example, on file, for example, if the patient could not provide a voice during a consultation for cough, the MDATA system 100 print during the assisted patient registration process 278 in learned that the patient has been diagnosed as being HTV a prior consultation. At the completion of recording the positive. The system 100 will ask, "May I record the voice print at state 365, the computer 102 advances to state information about your HIV diagnosis in your medical 45 366 wherein the match flag is set to false to indicate that the record?" If the patient responds "yes", then the system 100 patient's voice print was recorded during the current login. will ask, "Please verify that your diagnosis for HIV was If the patient identified by the PIN has a voice print on file positive, is this correct?" If the patient responds "yes", then in the system 100, as determined at state 364, the computer the system 100 writes this fact to the patient's medical 102 proceeds to state 367 and prompts the patient to pro history file. After confirmation, each data item is stored in 50 nounce his or her full name. Moving to a decision state 368, the patient's file in the patient medical history database 268 the computer 102 determines whether the voice sample (FIG. 6). obtained at state 367 passes the matching criteria. If not, the At the completion of either updating the history database computer proceeds to state 369 and recites a message that 268 at state 348, state 345 proves to be false, or at the the current voice sample does not pass the matching criteria. completion of state 347, the system 100 moves to a decision 55 In the presently preferred embodiment, the current voice state 349. Before the MDATA system 100 ends the consul sample is compared to the reference voice sample recorded tation with the patient, it presents a summary of all the during the patient registration process 252 or the assisted advice it has given. The patient is asked to write down and patient registration process 278. Because the voice samples repeat back the key points. The MDATA system 100 then did not match, as determined at state 368, the computer 102 gives the patient the option of receiving a summary of the 60 sets the match flag to false at state 370. In this case, the consultation session and specific recommendations provided match flag is set to false to indicate that one of the security by the system by either facsimile or first class mail. If a fax checking methods has failed. However, the process 250 is desired, the system 100 asks the patient for a fax number continues at state 372 after the match flag is set to false at at state 350. The patient also has the option to send a either state 366 or 370. Summary of the consultation to his or her health care 65 If the voice sample passed the matching criteria at state provider or specialist. Proceeding to state 351, the computer 368, the computer 102 advances to state 371 and recites a 102 adds the transcript of the current telephone session to a message that the current voice sample passed the matching 5,724.968 29 30 criteria. This security check condition is now satisfied, and process 272 is called if the assistant has previously called the match flag remains set to true. At the completion of state and registered with the system 100. Beginning at a start state 371 the computer 102 moves to state 372. At state 372, the 940, the computer 102 moves to a state 942 and prompts the computer 102 verifies the sex and age of the patient by assistant for the assistant ID (identification) number (AIN) reciting the sex and age, as stored in the enrollment database that is assigned during the registration process. The assistant 260 (obtained during the patient registration process 252), to registration process 274 will be described in conjunction the patient. At a decision state 373, the patient responds to with FIGS. 14a and 14b. Proceeding to a decision state 944, the correctness of the recited information. If the sex or birth the computer 102 determines whether the AIN is valid. If date information is not correct, the computer 102 moves to not, the computer 102 determines, at a decision state 946, if state 374 to request the correct information. The computer 10 less than three tries at entering the AIN have been attempted. 102 then proceeds back to state 372 to verify the information If so, the computer 102 loops back to state 942 to repeat the received at state 374. If the result of the decision state 373 request for the AIN. However, if three attempts at entering is true, i.e., the sex and age are correct, the computer moves the AN have been made, as determined at state 946, the through off-page connector A375 to a decision state 376 on computer 102 plays a polite message that advises the assis FIG. 8b to determine if the patient desires to conduct the 15 tant that the login attempt failed and terminates the call at telephone session in Real mode or information mode. If state 948. The computer 102 reports the failed login attempt Information mode is desired, the computer 102 moves to a to the system administrator at the sponsoring agency, hos decision state 377 to determine if the patient's sex and age pital or other organization. are to be used during the Information mode consultation. If If the assistant has correctly entered a valid ATN, as not, the computer 102 moves to state 378 to request an age 20 determined at state 944, the computer 102 proceeds to state and sex to use in a hypothetical situation during the infor 950 and prompts the caller to pronounce his or her full name. mation mode session. Moving to a decision state 379, the Moving to a decision state 951, the computer 102 determines computer 102 recites the sex and age obtained at state 378, whether the voice sample obtained at state 950 passes the and asks the patient to confirm that this information is matching criteria. If not, the computer proceeds to state 952 correct. If not, the computer 102 moves back to state 378 to 25 and recites a message that the current voice sample does not request the age and sex again. When decision state 379 is pass the matching criteria. In the presently preferred true or the patient's age and sex are to be used during this embodiment, the current voice sample is compared to the consultation, as determined at state 377, the computer 102 reference voice sample recorded during the assistant regis moves to state 380 and sets the operating mode to be tration process 274. Because the voice samples did not Information mode. 30 match, as determined at state 951, the computer 102 sets the If decision state 376 is determined to be Real mode, the operating mode to Pending at state 953. In this case, Pending computer 102 moves to a decision state 381 to check if the mode is set to indicate that one of the security checking match flag is true. If not, the system 100 advises the patient, methods has failed. However, the process 272 continues at at state 382, that the current consultation is to be performed state 960 on FIG.12b after Pending mode is set at state 953. in Pending mode. The operating mode is set to be Pending 35 If the voice sample passed the matching criteria at state mode at state 383. If the match flag is true, as determined at 951, the computer 102 advances to state 954 and recites a state 381, the computer 102 sets the operating mode to be message that the current voice sample passed the matching Real mode at state 384, criteria. This security check condition is now satisfied. Next, At the completion of setting the operating mode at either three additional checks are performed on the assistant iden state 380, state 383, or state 384, the computer moves to a tified by the AIN obtained at state 942. At a decision state decision state 386. At decision state 386, the computer 102 955, the computer 102 determines if the permanent assistant determines if the patient desires to review the touch tone flag is true, as stored in the patient and assistant enrollment commands described during the registration process. If so, database 260. If so, the computer 102 advances to a decision the computer 102 advances to state 388 and recites the touch state 956 to determine if the expiration date for the perma tone commands. At the completion of state 388 or if the 45 nent assistantis in the future, i.e., the expiration date has not patient did not wish to review the touch tone commands, the been reached yet. If so, the computer 102 advances to a computer 102 proceeds to a decision state 390 wherein the decision state 957 to determine if a relationship exists computer 102 determines if the patient desires to review the between the assistant and a patient, i.e., the assistant has a voice keywords described during the registration process. If relationship pointer to the patient record. If so, the operating so, the computer 102 advances to state 392 and recites the 50 mode is set to Real at state 958, and then the computer 102 voice keywords. At the completion of state 392 or if the advances through off-page connector A959 to state 960 on patient did not wish to review the voice keywords, the FIG.12b. However, if any of the decision states 955.956, or computer 102 proceeds to a decision state 394 wherein the 957 prove to be false, the computer 102 moves to state 953 computer 102 determines if the patient desires to enable wherein the operating mode is set to Pending. prompting. If so, the computer 102 advances to state 396 and 55 States 960 through 964 are similar to states 372 through enables prompting. If not, prompting is disabled at state 398. 374 of the patient login process 250 (FIG. 8). Because of this To "enable prompting” means that the patient would like to similarity, only significant differences are discussed in the be prompted for responses. This is referred to as “hard” interest of avoiding repetitiveness. States 960,962 and 964 prompting, since this will remain in effect for the duration of verify the assistant's age and sex, rather than the patient as the call. If hard prompting is off, and the system 100 has in states 372, 373 and 374. States 966 through 980 are difficulty recognizing patient responses, the computer 102 similar to states 386 through 400 of the patient login process turns on “soft” prompting. After the next successful 250 (FIG. 8b). The main distinction is that states 966-980 recognition, the computer 102 turns off soft prompting. At pertain to the assistant and states 386–400 pertain to the the completion of state 396 or 398, the computer 102 returns patient. at state 400 to the top level flow (FIG. 7). 65 Referring now to FIGS. 13a and 13b, the assisted patient Referring now to FIGS. 12a and 12b, the assistant login login process 276 defined in FIG.7b will be described. This process 272 defined in FIG. 7b will be described. This process 276 is called if both the patient and the assistant 5,724.968 31 32 have previously called and registered with the system 100. to Pending at state 1008. The system 100 then advises the This process allows the patient flexibility by permitting the caller at state 1009 that new patient information will not be assistant to provide help during the login and subsequent saved to the patient's medical record because the consulta consultation. Beginning at a start state 990, the computer tion is in Pending mode until the information is verified 102 moves a state 992 and prompts the assistant for the off-line. patient ID (identification) number (PIN) that is assigned At the completion of state 1006, i.e., the voice sample during the registration process. As previously defined in passes, the computer 102 continues process 276 at state 1005 FIG. 7, the assisted patient registration process 278 is called wherein the operating mode is set to Real. The system 100 if the patient is not already registered. Process 278 will be then advises the caller at state 1007 that new patient infor described in conjunction with FIGS. 15a and 15b. Proceed mation will be saved to the patient's medical record. ing to a decision state 994, the computer 102 determines At the completion of state 1009 or state 1007, the com whether the PIN is valid. If not, the computer 102 puter 102 moves to state 1010. States 1010, 1012 and 1014 determines, at a decision state 996, if less than three tries at verify the patient's age and sex, similar to states 372, 373 entering the PIN have been attempted. If so, the computer and 374 (FIG. 8). States 1016 through 1030 are similar to 102 loops back to state 992 to repeat the request for the PIN. 15 states 386 through 400 of the patient login process 250 (FIG. However, if three attempts at entering the PIN have been 8). The main distinction is that states 1016-1030 are directed made, as determined at state 996, the computer 102 plays a to the assistant and states 386–400 are directed to the patient. polite message that advises the caller that the login attempt failed and terminates the call at state 998. The computer 102 DX. Registration Process reports the failed login attempt to the system administrator Referring now to FIGS. 9a and 9b, the patient registration at the sponsoring agency, hospital or other organization. If process 252 defined in FIG. 7a will be described. This the assistant doesn't know the PIN and the patient cannot process 252 is called if the patient has not previously called provide it, the assistant is allowed to reregister the patient as and registered with the system 100. During the first a new patient at process 278 to permit access to the needed consultation, the MDATA system 100 obtains the patient's medical information. In this case, the assistant may have to 25 age and sex. This is the minimum amount of information that estimate the age of the patient if the patient has, for example, the MDATA system requires in order to give medical advice. an altered state of consciousness. The system administrator The more information the MDATA system has about a resolves the record-keeping in this situation off-line. patient, however, the more specific is its advice. If the assistant has correctly provided a valid PIN to the The MDATA system 100 assigns each of its patients a system 100 at state 994, the computer 102 moves to a 30 unique patient identification number. In addition, when a decision state 993 to determine if the patientidentified by the patient initially registers, the patient's own pronunciation of PIN has a voice print or sample voice waveform on file in his or her name is recorded, digitized and saved to their the system 100. If not, the computer 102 moves to a decision medical record. Then, when the patient calls back, the state 1003 to determine if the patient can provide a voice previous recording is retrieved and the patient is asked to sample. If not, the computer 102 proceeds through off-page 35 repeat their name exactly as they did during registration. The connector B 997 to state 1008 on FIG.13b. If the patient can two recordings are then compared to see if they match. This provide a voice sample, as determined at state 1003, the use of “voice printing” helps to further ensure the security computer 102 moves to state 995 to record the voice print of and confidentiality of a patient's medical record. the patient, e.g. the patient's pronunciation of his or her full Beginning at a start state 420, the computer 102 proceeds name. The patient's voice print may not be on file, for to state 422, requests the sex of the patient, and verifies by example, if the patient could not provide a voice print during repeating the response given by the patient. Moving to a the assisted patient registration process 278 in a prior decision state 424, the patient responds by indicating to the consultation. At the completion of recording the voice print system 100, via touch tone key or a voice response, whether at state 995, the computer proceeds through off-page con the repeated information is correct. If not, the computer 102 nector B 997 to state 1008 on FIG. 13b. 45 loops back to state 422 to request the information again. If the patientidentified by the PIN has a voice print on file When the information is correct at state 424, the computer in the system 100, as determined at state 993, the computer 102 proceeds to states 426 and 428 to request and verify the 102 proceeds to state 999 and asks whether the patient can birth date of the patient in a similar fashion to states 422 and provide a voice sample to the system. If not, the computer 424. 102 proceeds through off-page connector B 997 to state 1008 50 When the decision state 428 is determined to be true, the on FEG. 13b. States 1000, 1002, 1004, 1006 are similar to computer 102 proceeds to state 427 and requests the patient states 367. 368, 369, 371, respectively, of the patient login to pronounce his or her full name. Moving to state 429, the process 250 (FIG. 8). Because of this similarity, only sig full name is digitized and stored in a subdirectory on the nificant differences are discussed in the interest of avoiding hard drive 152 (FIG. 1) indexed by a Patient Identification repetitiveness. At the completion of state 1004, i.e., the 55 Number (PIN). File names are of the form: