Asterisk for Medical Offices

Asterisk for Medical Offices

Asterisk is an enterprise-capable PBX. It runs with both digital and analog telephony connections and hardware.

This document is a summary of a system that would provide a full range of computer telephony services suitable for most medical offices.

The AMO system would be open-source and would ideally be provided in a manner that is simlar to Asterisk @ Home - on a single CD-ROM which is (more-or-less) plug-and-play with the appropriate administrative options modifiable with web-based GUI rather than Linux experience required. There is great need for such functionality and an enormous market for installers or consultants to configure these systems.

This is a quick overview of such a system. Please feel free to edit this document for clarity or enhancements.
If others contribute, perhaps we can cause this bounty to increase significantly. I have a pledge of $500 from another physician if we can get this project off the ground. Perhaps a few smart college students off for the summer can work on this? eh? ...

Obviously, this is not a full spec, but I think it provides a pretty good overview of what this would be and how it would be implemented. Nothing that is rocket science here...

AMO would be:

  • A flexible telephone system capable of many hundreds of extensions if necessary with full voicemail and IVR functionality for automated attendants, phone trees and many interactive functions.
  • Advanced functionality for automated appointment reminder phone calls and automated laboratory result messaging for patients to obtain information using a secure and automated telephone system.
  • Interactive functionality for patients to confirm appointments and schedule new appointments.
  • Reduced overall cost of the telephone system in general and telephony costs on a monthly basis.

1) Using asterisk as a telephone system for a medical office would enable any medical practice to take advantage of the ease-of-use and advanced functionality that this PBX system provides. Offices can use digital phones with advanced features and functionality while keeping costs at a very reasonable level. The core system has many robust functions but the main asterisk for medical offices functionality would include an automatic set up for 10 extensions as well as initial set up for an automated attendant, call queues, voicemail functionality for prescriptions and new appointments as well as software using Asterisk Management Portal or another open-source application for management and end-user customization without the requirement of expensive consultants.

2) The functions for automated appointment reminder phone calls and automated laboratory result messaging for patients to obtain information would be built as additional functionality to the main asterisk system. Ideally, this would be done in an open-source scripting language such as PHP. Commercial products such as "appointment call" and "teleminder" at such functionality and these products would be used as a guide for development of these functions. Clearly, these functions are not technically complex and ideally, a web-based interface to the management of these functions including the recording of voice prompts for very common functions would be desirable.

A use case for such a system would be as follows: A lab result comes back to the physician and is reviewed. For normal lab results, the physician would look into the result reporting system and enter identifying information about that patient such as patient ID number or name. A quick search (ideally using very rapid searching user interface such as AJAX) would return this patient and the physician would choose one of a small number (10 or 15) common test result reports that he or she has recorded previously and are stored on the server. Abnormal test results are generally handled with a different methodology and the patient would receive a telephone call directly from the physician and or office staff. This system would not be used to report abnormal test results.

A system would then optionally call the patient at a previously selected (preferably by the patient) telephone number and prompt the patient for identifying information such as Social Security number or patient ID number. The patient ID number would be given to the patient at the time that the test is obtained on a business card or something cool like that. The patient would enter this number or other identifying information with the telephone keypad (or by voice if we can get speech recognition to work adequately) and would then hear the previously recorded physician result report. At this point, the patient would have an option to be connected to office staff to schedule a follow-up appointment if they so desire, to meet a message for the office staff or the physician for a callback by human to further clarify things if very it are additional questions or to simply hang up.

The system would record the fact that the patient obtained this result and a report would be automatically generated on a daily basis regarding which patients had received these reports and which had not. Patients who do not receive these reports would be called repeatedly for a period of (modifiable) three days and with subsequently be called by human.

Use case for appointment reminder system: The system would read a file that would be made up of, separated values of patient names and telephone numbers and placed in a predefined directory on a daily basis. Since most practice management systems can create such a file, this would reduce the need for lots of interface work between this system and a practice management system. We may need to build methods of getting this from Windows directories on a network or may need to set up an FTP directory for the file to be placed there on a daily basis by a human or practice management system. Once the file is parsed with names dates and times of appointments for a configurable number of days in the future (most practices call patient's two days before an appointment) the system would automatically make telephone calls to all of the patient's and would play a human voice as well as computer-generated voice with a greeting such as this: "Hello this is the office of Dr. Smith. We are calling for (John) who has an appointment on (February 12, 2005 at 1:22 p.m.) please pressed one if you received this message and to confirm at this time is still convenient for you. Please pressed to it you'd like to leave a message for office staff regarding his appointment or if you would like to reschedule." The system would be able to automatically determine whether it reaches an answering machine or voicemail. All of the data from these telephone calls would be collected and a report would be automatically generated and e-mailed to a predefined e-mail address or addresses on a daily basis. Additional telephone calls would be made by humans if necessary. Obviously, voicemail slept by patients during this interaction would go directly to voicemail boxes that would be collected by humans on an ongoing basis.

Overall design of the Asterisk system would obviously support either analog or voice over IP. Initial configuration would include an "on-call" functionality which would automatically retrieve the on-call physician and to contact information for that position from an on-call-XML compliant call scheduling system. Presently, the only system that complies with such standards is In the absence of this functionality, a web-based interface would be provided for users to contact telephone numbers and pager numbers are for that physician. When he phones are "rolled over" in the evening so that the on-call physician can respond, the system will work as follows: Any phone call coming into the system after hours will be routed to the on-call rules. A recording will inform the caller that the office is closed and at the on-call physician is available for emergencies. There prompted to leave a voicemail message for business matters such as appointment cancellations or billing issues by pressing an extension number. By pressing another extension number, they offered the opportunity to meet a voicemail message for the physician on call for urgent matters that can be handled within 30 to 60 minutes. A third option provides the opportunity to reach the physician for emergencies within five to 10 minutes. If the selection is made for emergent access to the physician, the system will attempt to reach the physician in many ways as well have been set up previously in a ranked order: If the physician wishes to be called on a cell phone first, the patient will be asked to wait on hold while the physician is reached. The physician cell phone will then ring and he or she will have the opportunity to press the button and the connected directly to the patient after hearing brief identifying recording that the patient will have made initially. At .patient and the physician will be able the each other. The telephone call will be recorded in a log and if available, the telephone number of the patient will be recorded in the database. At the conclusion of the phone call, when the patient hangs up, the physician will be prompted to record a brief summary of the telephone call. In the morning, administrative staff or optionally, a remote transcriptionist will listen to these recordings and transcribe documentation of the telephone calls. In such a scenario, it may be preferable to set up an e-mail address where the documentation of these phone calls including date time caller ID signatures and duration of call are recorded. The calls may also be forwarded to a voice recognition system for processing in the same manner. In either scenario, all we would need to do is set up an e-mail address for where the voice files would be sent.

In the scenario in which the patient selected that this is an urgent message and not emergent, the position may be contacted in a different manner (as would be defined in the system) the options for contacting a physician would simply be a series of telephone numbers which would be identified as pagers cell phones or home phones. If the system is unable to reach the physician after a predefined period of time using method number one, then the system would try method number two and so on and so on. A backup system would exist for the system to call another physician or an administrative person if no one responds within a predefined number of minutes.

Update: August 2006

I've implemented much of this - using some simple coldfusion scripts and which provided the rare combination of a reliable asterisk implementation that normal humans (rhather than computer geeks) can interact with and manage .. and an API that permits customization and functional expansion.

Contact me at Jacobr_at___ gmail for info/etc.

Taridium ipbx Enterprise PBX in Medical Office Environments

Taridium's ipbx has an 'On Call' Module for use in medical office scenarios. This has been implemented to track down the on-call doctor or any other support person. The system will call pre-defined numbers until the call has been acknowledged or the message has been listened to.

Further customization and CRM integration is available.


e-Lab / electronic Laboratory


  • Integración de comunicaciones empresariales y móviles
    • 100% tecnologías libres y abiertas (GNU, Linux)
    • Comunicaciones unificadas
    • Telefonía IP
    • Mensajeria instantanea multimedia
    • Acceso remoto
    • Sincronizacion con telefonos moviles
  • Soluciones y servicios con alto Valor agregado
  • Alta disponibilidad
    • Redundancia
    • Clustering
    • Balanceo de carga
  • Diseño, Implementacion y Consultoria especializada
    • Internetworking, Comunicaciones y Servicios IP
    • Linux y Software Libre
  • Infraestructura
    • Data Centers
    • Cableado estructurado
    • Energia
    • Sistemas de tierra

Created by: jacobr, Last modification: Tue 21 of Sep, 2010 (00:45 UTC) by elab
Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+