Frequently Asked Questions

How do I find/develop tools for extracting information from EHRs?

Open source software for extracting data from an EHR and then manipulating it: ESP (Electronic Medical Record Support for Public Health) is a general purpose software suite intended to work with any modern EHR system. It was developed by the CDC Center of Excellence in Public Health Informatics at the Harvard Pilgrim Health Care Institute.1,2 Detailed information is available at ( The NIH Collaboratory EHR Core can provide more information.

  • A nightly data transfer process moves data files from Epic to ESP. This data is a pre-defined subset of data fields from EHRs that have experienced a transaction during the preceding day.
  • Downloaded data is loaded to ESP database, detection algorithms are run and cases of interest are identified. Examples of “cases” can include potential subjects for a clinical trial, individuals already enrolled in a trial, individuals with new occurrences of outcomes of interest, including trial outcomes, adverse events, or conditions of interest to the practice or to public health agencies.
  • ESP has flexible reporting capabilities, able to generate appropriately formatted messages to clinicians, public health agencies, and, in principle, to patients.


  1. Lazarus R et al. Electronic Support for Public Health: Validated case finding and reporting for notifiable diseases using electronic medical data, Technical description of ESP. J Am Med Inform Assoc. 2009; 16:18-24.
  2. Klompas et al. Integrating Clinical Practice and Public Health Surveillance Using Electronic Medical Record Systems. Am J Prev Med 2012;42(6S2):S154–S162.

How do I insert information, including Patient Reported Outcomes, into the EHR to elicit additional information from clinicians, or to guide clinician behavior?

Messaging clinicians using the EpicCare inbasket and storing messages permanently:

  • This system will work with any external source of information.
  • A message to a clinician is built around an HL7 text message, which identifies the patient, the provider, plus information about events or conditions of interest. The HL7 text message is saved to a file system directory, and also saved to a database questionnaire record.
  • An Epic system process picks up the text message files and loads them via the Transcription Interface. The message is appended to the patient’s EMR in EpicCare, and the message also appears in the provider EpicCare in-basket.
  • The message to the clinician may have a link to connect to a web form external to EpicCare that asks the provider to respond. An example currently in use notifies the clinician that the patient is suspected of having an adverse reaction to a vaccine, and invites the clinician to use the link to access a form that collects additional information about the event and the clinician’s impression of whether it is related to the vaccine. While the web form is external to EpicCare, it may be simplest for security reasons for the server containing the form to be maintained in the same security environment that hosts EpicCare.
  • It is possible to automate the process and content of inserting information into the EpicCare record.
  • The external logic system can also send messages to investigators, to the patient, or to other parties.

We describe below an example of insertion of a notice to clinicians into the EpicCare inbasket, along with a link to an external questionnaire to elicit information from the clinician. The example also describes the insertion of the clinician’s response into the EpicCare record.

An automated vaccine adverse event detection and reporting system is currently being piloted in the EpicCare environment. This pilot uses ESP, a surveillance platform that leverages EHR data to exchange information between providers and public health departments. ESP receives a nightly download from EpicCare of the preceding day’s encounters (diagnoses, vital signs, laboratory tests with result, prescribing) and arrays it into a standard format for analysis. The transformed extract stays with the provider’s EpicCare database, so no confidential information is transferred. Current applications include notifiable disease case reporting, influenza-like-illness syndromic surveillance, and automated monitoring of diabetes risk factors, prevalence, care, and complications.1

In the example of vaccine adverse events, a program runs each night to identify potential vaccine adverse effects (a combination of diagnoses and timing after immunization – the rules are vaccine specific). When a potential adverse event is discovered, an automated message is inserted into the clinician’s inbox and also into the record, noting the potential adverse event. The message also contains a link to an external questionnaire that elicits the clinician’s opinion about whether the event is likely to be a vaccine adverse event, and if so, whether the clinician wants to submit a report to the CDC’s Vaccine Adverse Event Reporting System (VAERS). If the clinician does want to do this, the system autopopulates a report form and invites the clinician to add any relevant information. The system then submits the report to the CDC, and enters a copy of the report into the EpicCare record.

In slightly more detail, the actions that can follow the clinician’s response about whether the event is a vaccine adverse event are:

  1. If true, ESP generates and sends a VAERS report to CDC with all the appropriate information, and writes out a new message file to be picked up by the Transcription interface process. This new message updates the patient’s Epic EMR, updating the first message, now with the new information that a VAERS report has been sent to the CDC.
  2. If false, ESP generates and writes out a new message file to be picked up by the Transcription interface process. This updates the patient’s Epic EMR, updating the first message, now with the new information that the AE was a false positive.
  3. If no action is taken by the provider:
    • Some categories of AE are automatically sent (e.g., if an ICD-9 diagnosis code indicates a vaccine reaction of any sort, these AEs are automatically sent to the CDC after 7 days with no provider response via the ESP website). This is the same for an identified subset of “rare, severe” AEs that have been specified by the CDC. Auto-sent VAERs reports result in EMR updates along the lines of “a” above.
    • Otherwise, the original letter is left in the patient's record, but without any action from the provider, no further updates are made to the EMR, and no VAERS reports are made to the CDC.


  1. Klompas et al. Integrating Clinical Practice and Public Health Surveillance Using Electronic Medical Record Systems. Am J Prev Med 2012;42(6S2):S154–S162.


EHR Data FAQs: EHR Data FAQs. In: Rethinking Clinical Trials: A Living Textbook of Pragmatic Clinical Trials. Bethesda, MD: NIH Health Care Systems Research Collaboratory. Available at: Updated December 21, 2017.