Configure OpenEMR for ICD-10

From OpenEMR Project Wiki
Revision as of 22:30, 21 June 2023 by Stephen waite (talk | contribs) (→‎Install the codeset)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Configure OpenEMR for ICD-10

A major concern of EMR users everywhere is the upcoming ICD-10 conversion. While it is a big change in many ways, the actual steps to migrate OpenEMR itself to ICD-10 readiness are not that difficult. In this HOWTO I will walk through the changes you need to make that are specific to OpenEMR and also provide some links to further information on the general topic of migrating to ICD-10.

Much of this info is compiled from the OpenEMR Forum- thanks everybody for your expertise!

- Harley at MI-Squared.

Overview: What needs to be done for ICD-10 conversion?

1. Install and activate the codeset
2. Test demo claims with clearinghouse
3. Reconfigure existing code customizations
4. Complete the migration

Install the codeset

The ICD-10 codes are freely available and are packaged with OpenEMR.

To install the codeset:

Install icd10.png
1. Log into OpenEMR as an Administrator- privileged user (#1 top right)
2. Left nav menu go to Adminstration-> Other -> External Data Load (#2 lower left)
3. Select ICD-10 from the options (#3 top left)
  • The screen at right should appear. Note the left panel says,
    "… Installed Release - Not Installed"
    and the big "INSTALL" button in the right panel.

4. Click the Install button. (#4 center)

When the screen returns, ICD-10 is installed.


It is possible that this other right-hand panel might be seen.

The message (blue oval) means that the 2015 ICD-10 files are together in the same directory with the 2012 files that came packaged in earlier versions of OpenEMR.

Simply delete or move the 2012 files elsewhere. When you return to this screen it will look like the first display above.

The 2012 codeset came with the 4.1.2 series of OpenEMR. If you want to install the 2015 codeset instead, upgrade to OpenEMR version 4.2.0 or higher.

Now, activate the ICD-10 codes for use in your system:

5. Left Nav menu: Admin -> Forms -> Lists / Edit List: Code Types
6. Click in the 'active' checkbox and make sure the same columns are selected
as are for ICD-9

Codetype list.png

7. Click 'Save' button at bottom of screen (not shown)

Your ICD-10 codes are ready to use.

Test demo claims with clearinghouse

A common question: "When should my practice upgrade to ICD-10?"
Answer: Install it now so you can test with your clearinghouse.

  • Migrating to ICD-10 is not an all or nothing move; you can still use ICD-9 codes with ICD-10 installed.
  • Activating ICD-10 codes in OpenEMR will not affect any other function
  • If you install soon you can test claim files with your clearinghouse before 1 October
  • Virtually all clearinghouses have ICD-10 test sites by now but they manage them differently. Ask yours how to submit test claims.
E.g., Trizetto has a special ICD-10 test website to submit test claims to; another clearinghouse assigns a human to 'escort' test claims though their system.

Once you have ICD-10 installed, you can create a test claim.

1. Create a new encounter with a dummy patient and open the fee sheet.
2. Add a few services then search for justifying ICD-10 codes (blue oval below)


3. Select your ICD-10 code to justify the Service Codes and save the fee sheet


4. Create a claim in the usual fashion.

Billing Manager recognizes the new code:


and the x12 file shows the new code properly.


NOTE: ICD-9 and ICD-10 can co-exist in OpenEMR and may both be used concurrently. Just be sure you keep only one type of code in a claim: no mixing ICD-9 and ICD-10 codes in the same claim, either paper or electronic.

Reconfigure code customizations

Question: “Does OpenEMR perform crosswalks between ICD-9 and ICD-10 codes?”
Answer: At this time OpenEMR does not perform crosswalks; you'll need to manually collect the equivalent codes into a reference cheat sheet. Once you install and activate ICD-10, those codes will appear in the fee sheet search function. Your cheat sheet will guide which new code to select.

Make a list of your most commonly used ICD-9 codes and go to one of the websites where you can look up their ICD-10 equivalents. One very useful site the AAPC's, at:

Another, extremely simple- to- use site:

If you have created custom service code dropdowns on your fee sheet you will need to add to them the equivalent ICD-10 version of the ICD-9 codes. The most common fee sheet customization is Custom Service Categories: fee sheet dropdown lists created by editing the system list, 'Service Categories' and configured at 'Administration-> Codes'.

One simple method to obtain a list of the codes used in the custom dropdowns is to print out a Superbill even if you don't use that report in your clinic. The custom categories will be found there, along with the codes of any ICD-9 diagnoses. And they're simple to get to.


1. Open any patient record (no changes will be made to it)

2. At bottom of the left nav bar select Superbill from the dropdown.

3. Print it.



All the custom categories in your fee sheet are listed in the superbill (above), with the diagnosis codes.

Take the printout to your preferred code converter and create your ICD-9 to ICD-10 crosswalk table.

The other, less common, fee sheet customization using ICD codes involves creating entries in the system list 'Fee Sheet'. These entries may contain any or all of the codesets active in your system, including ICD codes. If you have these, you or your IT support will know about it.


The individual items in this type of list do not register in the superbill so you have to get the ICD codes by manually transcribing them.

Unfortunately, the numeric codes are not automatically displayed in the lists; you need to have included them in the list item's Description.

However, if you or your IT Support are comfortable running SQL queries on the database here is a tool that can speed up building your cheat sheet.

This SQL query lists all the ICD-9 codes used in the custom fee sheet lists:

SELECT * FROM `fee_sheet_options` WHERE `fs_codes` LIKE '%ICD9%';

See where the database output columns correspond to the Fee Sheet list locations.

The database output may be exported to printable reports with the controls at the bottom of the database query display. Using these reports to record your crosswalks you can look up the ICD-10 codes you need.


With these tools in hand, re- coding the fee sheet customizations will be much easier.

Complete the migration

Question: “Can I use ICD-9 at all after 1 October?”
Answer: Claims with a Date of Service of 30 September or earlier may be submitted in ICD-9 after 1 October. Claims with DOS of 1 October and later must be sent in ICD-10.

  • Your migration to ICD-10 will be complete when all ICD-9 claims have been submitted and ICD-10 is the only codeset used for claims.
  • If the claim is already coded in ICD-9, submit it that way. However, once you've tested and passed your ICD-10 setup with your clearinghouse, why not start coding and claiming in ICD-10? It'll shorten your migration process.
  • When all claims with DOS before 1 October 2015 have been submitted consider removing the ICD-9 codes from the custom fee sheet lists and the Custom Service Categories. The codesets don't interfere with each other and they don't take up much hard drive space so there's no IT priority to do so. But removing half the codes from your fee sheet dropdowns would visually unclutter them and reduce the possibility of data entry errors.
  • When the time comes to delete those ICD-9 codes, the 'crosswalk lists' you made earlier with the SQL queries will come in handy.

References and Resources

  • The report at (left nav menu:) Reports/Clients/Clinical will give choice of ICD-9 or -10 when the 'Problem DX' box is clicked.