Forty Features Which Should Be in All Electronic Health Records including Epic & Cerner

I have been in the health information technology field since 1990 when I began creating ComChart EMR. It was a labor of love which ultimately evolved into a small business. From 2004 until 2012, ComChart EMR had amongst the highest KLAS rating of all EMRs in the small ambulatory care group. From 2011 until 2015, ComChart EMR was certified by the ONC for Meaningful Use Stage I. Unfortunately, the technical requirements arising from Meaningful Use mandates and changes in market conditions required that I stop selling ComChart EMR in 2015.

As a result of the 2.5 decades I spent creating ComChart EMR, I have learned a lot about which features are useful in the exam room and how to design an EMR so that it facilitates the user ability to provide medical care to their patient. As Judy Faulkner, Founder and CEO of Epic said, “Good software is art.” To this, I would add that it is only possible to create a well designed EMR if a practicing physician is intimately involved in both design and programming of the EMR.

Now that many of my former ComChart users have had to leave ComChart EMR for one of the large commercial EMRs, I have come to realize that some of these large EMRs lack features which were in ComChart EMR and which the former ComChart physicians wished were in their new EMR. In an attempt to improve the quality of these large, commercial EMRs, I have created the below list of features which, in my opinion, should be in all /most EMRs.This list is not intended to be comprehensive and it is totally subjective. While I expect that some of the items will be in some EMRs, I am certain that they are not in all EMRs. 

As this list is a bit long for a typical posting on The Health Care Blog, I will present the half of  my list below, which will include suggests regarding the Lab section and the Progress Note section of the EMR. The second posting on The Health Care Blog will discuss other suggested features for EMRs.

A Universal Truth about EMR design

It is essential that when all EMR features are incorporated into the EMR so that 1) they make their presence obvious to the user at the point moment in the clinical encounter and 2) the feature should be presented to the user in a manner which make it intuitively obvious how to utilize the feature or at least how to learn how to use the feature without being referred to a manual or told to attend a “training class” or call “technical support.”

Lab feature:

There should be button that causes the EMR to only displays all the abnormal lab test results and then gives the user the ability to sort the resultant list by test name, test date or any other parameter which is available. This can be invaluable when trying to understand the etiology of a patient’s symptoms.

Lab feature: 

The physician should be able to display any subset of a patient’s lab results, with the option to omit individual results, re-sort the displayed data (by date, value, name) and be able to export the data in cvs or Excel format.  

Lab feature: 

It should be possible for a physician to create a chart of lab tests, on the fly, which include any combination of tests from the patient’s existing labs. It should be possible to incorporate this lab chart into a Progress Note or print out the chart for the patient.

Lab feature: 

It should be easy for the physician to create an association between incoming test results (or LOINC value) and specific medicines so that when a incoming lab result is filed, the associated medication name appears alongside the file results. For example, every time a cholesterol result is filed, if the patient is on a statin, the name and dose of the statin will appear alongside the test result. In addition, this field should be accessible to the physician so they can add/alter the information as they feel is necessary. Other potentially useful associations are HBA1c and diabetic medicines, potassium and ace inhibitors, Vitamin D and ergocalciferol, etc. With this association incorporated into the lab results, it should be possible, with one click, to create lab charts which include the concurrent medication information, like this… 

Lab feature: 

Within the labs, it should be immediately obvious who ordered a test and to whom a copy of the test was distributed.

Progress Notes:

Physicians should be able to create a chart of any lab test results, from within the Progress Notes, by simply typing some sort of macro like “\\Lab test name.” This type of feature reduces unnecessary navigating around a patient’s chart and improves a physician’s work flow.

Progress Notes:

A physician should be able to add selected free text from the Progress Notes to either the Problem List, Medicine list, Allergy list, Family History or Old Problem list by simply highlighting the data and clicking a single button. This will reduce the need for “double entry” of data.

Progress Notes: 

There should be a free text field on the Progress Note layout where a physician can enter information that is not officially part of the patient’s patient chart and will never be exported or printed. This feature would allow a physician to write note to themselves like “Daughter wants issue of her mother’s depression discussed at the mother’s next visit, and daughter does not want to be identified.” Prior to the creation of EMRs, physicians would attach a piece of paper to the outside cover of the patient’s manila folder.

Progress Notes:

The physician should be able to search all of an individual patient’s free text Progress Notes for a word or phrase. It should also be possible to search a subset (or all) of the entire EMR’s free text Progress Notes for a word or phrase. This can be very useful when doing population searches or when trying to find a particular patient whose name is unknown.

Progress Notes:

The user should be able to print out any (or all) sections of a patient chart with no more then 2-3 clicks and concurrently print out a pre-addressed envelop. The design of this process should give the user the ability to have complete freedom to decide which sections of the chart will be included in the print-out, down to the level of individual test results and Progress Notes. This can be very usefully when creating referral letters.

Progress Notes:

The physician should easily be able to create template Progress Notes without the need for an IT person. These can be constructed from a series of “macros.” Examples of Progress Note “macros” should include:

ACTUAL DATA which will appear in the Progress Note MACRO

HISTORY AND PHYSICAL                     h&p or H&P

Today’s date                                               TodaysDate

Time                                                             GetCurrentTime

Patient name                                              PatientName

Patient’s nick name                                  GetPatientsNickname

Date of Birth                                              GetPatientDOB

Patient age on date of office visit          GetPatientAge

Problem list (comma separated list)                GetProblemList

Problem list (one Dx per line)                           GetParagraphProblemList

Problem list (one Dx every 4th line)               GetParagraph2ProblemList

Diagnosis list(comma separated list)              GetDiagnosisList

Diagnosis list (one Dx per line)                         GetParagraphDiagnosisList

Diagnosis list (one underlined Dx every 4th line)             GetParagraph2DiagnosisList

Diagnosis list with dates (one Dx per line)             Get_ParaProblemListWithDates

Medicine list (comma separated list)                         GetMedicineList

Medicine list (one Rx per line)                                     GetParagraphMedicineList

Old Medicine list                                                             GetOldMedicineList

Allergy list (comma separated list)                         GetAllergyList

Allergy list (one Rx per line)                                     GetParagraphAllergyList

Flowsheet data (most recent)                                     GetFlowsheetData

Flowsheet data (all)                                               GetAllFlowsheetData

Flowsheet data past due                                     GetPastDueFlowsheetItems

Old Problem list (comma separated list)             GetOldProblemList

Old Problem list  (one Dx per line)                         GetParagraphOldProblemList

Family diseases (comma separated list)                         GetFamilyDiseases

Family diseases (one Dx per line)                         GetParagraphFamilyDiseases

Social history                                                             GetSocialHistory

Habits and Risk Factors                                                 GetHabits&RiskFactors

Review of Systems                                                 GetReviewOfSystems

Most recent vital signs                                                 GetMostRecentVitalSigns

Chart of vital signs (chart of all data)                         GetChartOfVitalSigns

Chart of vital signs from last 3 years                         GetChartOf3yearsVitalSigns

Saved History                                                             GetSavedHistory

Saved Physical exam                                                 GetSavedPhysicalExam

Saved ROS                                                             GetSavedROS

Saved Procedure                                                 GetSavedProcedure

Saved Treatment Plan                                     GetSavedTreatmentPlan

Clinical Summary (Probs, Meds, Allergy, FSH, habits)             GetClinicalSummary

Lab results (all)                                                 GetAllLabResults

Lab results (all) data results only                                     GetAllLabsDataOnly

Lab results (< 12 month old)                                                 Get12mLabResults

Lab results (< 12 month old) data results only                                     Get12mLabsDataOnly

Lab results (< 6 months old)                                     Get6mLabResults

Lab results (< 6 month old) data results only                         Get6mLabsDataOnly

Lab results (< 3 months old)                                     Get3mLabResults

Lab results (< 3 month old) data results only                         Get3mLabsDataOnly

Lab results (< 1 months old)                                     Get1mLabResults

Lab results (< 1 month old) data results only                         Get1mLabsDataOnly

Lab results (≤ 7 days old) )                                                 Get7dLabResults

Lab results (≤ 7 days old) data results only Get7dLabsDataOnly

Lab results (most recent labs) GetMostRecentLabResults

Lab results (most recent labs) data results only                         GetMostRecentLabsDataOnly

Radiology reports (Entire text of all)                                     GetXrayReports

Most recent radiology report                                     GetMostRecentRadiologyReport

Radiology summaries (Recent, first)                                     GetRadiologySummaries

Radiology summaries(Oldest, first)                                     GetChronologicRadSummaries

Most recent radiology summary                                     GetMostRecentRadSummary

Radiology summaries < 1 month old                                     Get1mXraySummaries

Radiology summaries < 3 months old                                     Get3mXraySummaries

Radiology summaries < 6 months old                                     Get6mXraySummaries

Radiology summaries < 12 months old                                     Get12mXraySummaries

Radiology reports < 1 month old                                                 Get1mXrayReports

Radiology reports < 3 months old                                                 Get3mXrayReports

Radiology reports < 6 months old                                     Get6mXrayReports

Radiology reports < 12 months old                                                 Get12mXrayReports

User’s name                                                 MedicalProvider

Name of Primary Care Physician                                     PCPname

Name of Referring Physician Referring MD                          ReferringMDname

Associated clinicians (Includes PCP & Referring MD)             GetAssociatedPhysicians

Chart of patient’s CBCs                                                 LabChart:CBC

Chart of patient’s Electrolytes                                                 LabChart:Electrolytes

Chart of patient’s Lipid Profiles                                                 LabChart:LipidProfile

Chart of patient’s INRs                                                 LabChart:INRChart

Chart of patient’s Lipid Profiles                                     LabChart:LipidProfile

Chart of patient’s Liver Function Test                                     LabChart:LiverProfile

Chart of patient’s Thyroid Profiles                                     LabChart:ThyroidProfile

List of diagnostic tests pending                                     GetListOfTestsPending

List of prescriptions written today                                     GetPrescriptionsWrittenToday

Associated billing claims information                                     GetBillingClaimsData

Copayment of Primary Insurance                                     GetPrimaryInsurance

Copayment of Secondary Insurance                                     GetSecondaryInsurance

Copayment of Primary Insurance                                     GetCopayPrimaryInsurance

Copayment of Secondary Insurance                                     GetCopaySecondaryInsurance

Get all CPT names modifiers codes                                     GetAllCPTNamesModifiersCodes

List of all CPT codes                                                             GetAllCPTCodes/Names

Most recent CPT code (CPT1 from last visit)             GetLastCPTCode/Name

List of Diagnoses with ICD codes (one line)                         GetDiagnosesWithICDCodes

List of Diagnoses with ICD codes (paragraph)             GetParaDiagnosesWithICDCodes

Get patient’s next appointment                                     GetPatientsNextAppointment

Progress Notes:

The physician should be able to easily create personal “macros” where the physician types an appreciation and the EMR replaces it with the associated text information. For example;  the user might create the macro “\paoa” which when entered into the EMR’s Progress Note immediately gets replaced with “Patient aware of above”.  Or the physician might create a macro “\gcl” which is immediately replaced by 
















And then, the “standard” macros (like GetParagraphProblemList) get replaced with the actual patient data. All of this will make it easier for the physician to minimize the time they spend “charting” and give them more time to interact with their patents.

Search functionality:

The user should have the ability to search the entire database, on any indexed field, such as demographic data, providers, Problem list, Medicine List, Allergy list, old problem list, old medicine list, PCP and associated MDs, insurance, race, language, ethnicity, date of visits, Vital signs, Flow sheet data, radiology data, legal documents (HCP, Advanced directives, HIPAA) smoking status, etc. For example, “Find all male patients, <65 yo, who have DM-2 and albuminuria and hypertension, and have not been seen in the last year, and whose most recent HBA1c>9, and is managed by Dr. XXX, is on lisinopril, and last SBP>160” or find all patients who are on 2 specified medications. Once a search is conducted, the resultant information should be able to be easily exported out of the EMR into an Excel or cvs document, for use as the physician feels is necessary.

Search functionality:

Any physician should be able to assembly a list of patients, based on any indexed text field then automatically add a note to the chart of each of those patients (with the option to add a “To do” or a “Reminder.”)  For example, if a publication shows that a specific medication has a new side effect when it is used in patients of a certain age or gender or in conjunction with another medication, it is useful to be able to add a note to the relevant patients chart that says something like “At next visit remember to discuss the newly reported side effect of medicine XYZ, see AIM 2016;214:123”)

Search functionality:

When test results return, it should be very easy for the physician to send an order to the lab that says “Please add this additional blood test to the current sample in the lab.”

Medicine List:

The accuracy of the medicine list is crucial to patient care. The process of altering an existing medicine on the medicine list, adding medications to the medicine list, removing medications from the medicine list should be able to be accomplished with a maximum of 1-2 clicks.

Problem List, Medicine List:

There should be a “comment” field associated with the Problem list and Medicine list so as to allow to the user to enter any ancillary information they feel is necessary.

Problem List, Medicine list, Allergy list

The user should be able to add data to these essential elements of the patient’s chart in every location where the data is displayed and the data should be displayed in every location where a practicing physician might be expected to want to see those data elements, such as in the Progress Notes, Flowsheet, Labs, Orders, etc. It is irrational to make the user navigate to another location in the EHR in order to modify these data elements.

Clinical Summary:

There should be an option to keep a list of all physicians who are involved in the care of the patient and their assigned roles such as cardiologist, surgeon, etc

Graphing data:

One should be able to graph any numeric data, print the graph (for the patient) as well as incorporate the graph directly into the patient’s Progress Notes as an essential component of the medical narrative.

Referral letters:

The user should have complete freedom to decide which data elements will be included in any printed / faxed document, down to the level of an individual lab test, radiology report and Progress Note.

Patient Portal:

The physician should have the ability to decide what type of information appears on the patient portal, e.g., Labs, Radiology, Problem list, Medicine List, Allergy List, Progress Notes, Flowsheet, Vaccinations. The physician should have the option to turn off the patient portal for an individual patient, ”hide” an individual Progress Note from being displayed on the patient portal and “hide” a particular lab test from appearing on the Patient Portal. The physician should also have the option to decide when a result will appear on the Patient Portal, for example, immediately after the data is added to the EMR or 3 or 7 days after the data is put into the patient’s chart.

To Do List:

It should be possible for the user to create a “future To Do,” which disappears from the system until a specified date in  future when the item reappears on the user’s “To Do list.”  It should also be possible for the user to ask the system to display all their  “future To Dos” with a single click. This gives the physicians an easy way to track items that will happen in the future and helps them maintain an uncluttered screen.

To Do List:

It should be possible for the user to provide various “priorities” to each of the items on their “To Do” list and allow them to sort their “To Do” list by date, patient name, priority, creator of “To Do”, type of “To Do.”

Ordering test:

When ordering tests, it should be easy to tell the lab that a copy of the test results should be sent to another physician (or to the patient) and this process should require no more than one click.

Ordering test:

When ordering tests, the user should be immediately presented with the date and results from the last time the test was done. In addition, the (relative) cost of the test should also be presented to the user and an estimate of the patient’s expected incurred cost.

Miscellaneous feature:

It should be possible to print an envelope addressed to the patient at all locations in the EMR where such a feature might reasonably be needed, such as on the Clinical Summary layout, Orders layout, Lab results, Progress Notes, X-rays, Prescriptions, etc. Similarly, at the location which contains a physician’s or pharmacy’s address, there should be a button that prints a pre-addressed envelope.

Miscellaneous feature: 

One should be able to create letters or emails, based on templates, and these templates should give the user the ability to automatically incorporate various bits of information in the form of “macros,” as discussed above. For example, it should be possible to build a “template letter,”, that can be used to write a letter or email to a patient, which says something like “Your recent tests are normal. Here are the results. Please see me as planned on DDD/MMM/YYYY” and this can be either printed (with an envelope) or emailed with one click.

Miscellaneous feature: 

In all locations where this information might reasonably be needed by the physician, the date of the patient’s next appointment should be displayed, such as on the prescription layout, labs layout, Progress Note layout and where the physician reviews incoming data (test results, email) etc.

Miscellaneous feature:

The user should have the ability to easily redirect any notifications, like newly received lab results, to another individual in the EHR.

Miscellaneous feature:

On the fax cover page, the user should be able to include (and easily alter) a default message like “Current guidelines for DM-2 recommend that tight control is not appropriate in the elderly.” This will facilitate the ability of one physician to educate other physician.

Miscellaneous feature:

EMRs which are used in an emergency room should be able to send a message to the patient’s primary care physician, when the patient arrives in the emergency room. In addition, physicians need to be able to turn on and off these notifications both at the individual patient level and at a global level. In addition, the physician should have the ability to redirect these notifications to a surrogate.

Miscellaneous feature: 

The physician should be able to determine the sort order of the Problem list and Medicine list. For example, they may want to have the list for the medicines sort alphabetically or by time of day they are administered or based on importance or toxicity, or any other way that the user wishes to have the problem list and medicine list sorted.  This can easily be accomplished by adding a numeric “sort order” field for each diagnosis and medicine.  This sort order will then be retained wherever Problem list or Medicine list is displayed.  To facilitate medicine reconciliation, it should require no more than a single click to change the Medicine list sort order to “alphabetical” and to return the Medicine list to the preferred sort order.

Miscellaneous feature:

It should be possible for the user to create a “future letter” to a patient, which is retained in the EHR until a specified date in the future, when the letter is automatically printed (with an envelope) or emailed to the patient. 

Miscellaneous feature:

It is absolutely imperative that the EMR be designed to minimize the number of clicks and the need to change locations within the EMR. This situation can occur when the physician needs to see a “type” of data that is located at another section of the EMR.  One way to bring information to the physician, without requiring them to navigate to another location in the EMR, is to use the “color” of the buttons to convey information to the physician. For example, if the physician is viewing the Progress Notes, the “go to labs button” could be red if there is no lab data on the EMR.  If the patient has lab results in the EMR, the “go to labs button” could be green.  Thus, by looking at the “go to labs button”  the physician would immediately know if there was/was not lab data on file. One can use multiple colors to convey more nuanced information. For example, the “go to the appointments button” could be red if the patient’s next appointment is “today,” while yellow implies the next appointment is within 1 week, blue might imply the next appointment is more than 1 week in the future while grey means that the patient has no scheduled upcoming appointments. 

Miscellaneous feature:

Another way to bring information to the physician, without requiring them to navigate to another screen, is the use of the “hover over” option.  If the physician wants to know the date of the patient’s next appointment, they simply hover the mouse over the “go to the appointments button” and  pop-up window immediately appears with the date of the upcoming appointment appointment(s).  The same feature can be used to display the most recent lab data, chart of vital signs, radiology data, the patient demographic data like phone number, etc.  Thus, it is possible to deliver information to the physician, when/where they need it, without requiring them to navigate to a different section of the EMR.  This will reduce the amount of data sent over the network, speed up the EMR and improve the EMR’s usability.

Miscellaneous feature:

Physicians should be able to generate a list of all of a patient’s previously prescribed and discontinued medications and sort the list by generic name, brand name, date entered into the EMR, date prescribed, date discontinued, prescriber and class.

Miscellaneous feature:

To reduce the possibility that a physician would click on a button that they did not intend to click on, when the mouse hovers over a  navigation button, that button should change colors to indicate that is the active choice. 

Miscellaneous feature:

All EMRs should have a location in the EMR where physicians can store copies of patient handouts, medical articles, protocols, PDFs, text information, pictures and other items which they will believe will be helpful to their practice. The physician should be able to organize this information into logical sections, subsections and sub-subsections. They should also be able to search this information, print the date and copy / paste the information into a patient Progress Note, as they see fit.

Miscellaneous feature:

At the same location on the computer screen, in all locations throughout the EMR, there should be a “suggestion” button. When clicked, a text window opens and the dialog box reads “Enter you suggestion to improve this EMR below. Your suggestion, along with your location in the EMR and other relevant EMR data will be sent to the CIO, MD, who should be a practicing physician that uses the EMR on a regular basis. The CIO, MD should assemble an “EMR re-design” team to sort through these suggestions and prioritize which changes should be made to the EMR by the CTO and his/her team. It is imperative that the power to decide whether and when a new feature should be added to the EMR should reside with the clinicians, not with the technologists. 

In my opinion, a suggested new feature should be added to the EMR if it creates no unresolvable security issues and proposed feature meets any of these criteria:

1) will likely be used by many users

2) has the potential to improve the efficiency of the health care provider

3) has the potential to reduce the cost of healthcare

4) has the potential to improve the quality of healthcare

5) has the potential to promote patient engagement

Technical issues, like it is “too technically difficult” or “the IT department has other priorities” or “it cannot be done” are not acceptable reasons to fail to add a new feature to an EMR. As a programmer, I know that there is always a way to circumvent almost all technical issues.

Hayward Zwerling, M.D.



A version of this article was posted on The Health Care Blog in 2016.

Scroll to Top