SNOMED CT in OpenEMR

I am trying to load SNOMED CT and RxNorm into my system. I have activated SNOMED CT in the Codes List feature under Administration. When I download the English version of SNOMED I am told that the file is unsupported. I also receive the following message:

OpenEMR does not recognize the incoming file in the contrib directory. This is most likely because you need to config the release in the supported_external_dataloads table in the MySQL database.

Is there an easier solution that having to generate SQL statements to populate this table in MySQL?

Thank you,

Robert

for RxNorm did you use the Full Monthly Release?

1 Like

Moussa:

Thank you. To be honest, I have not tried installing RxNorm. I assumed that the fix for SNOMED would help any problems I have with RxNorm. Do you advise trying to load RxNorm.

Thank you,

Robert

Give it a try! RxNorm_full_12012025.zip

Also look at your php.ini file, make sure to allow enough time / size for large uploads

1 Like

SNOMED has over 1,500,000 records. You can download it from here:

SNOMED CT Member Licensing and Distribution Service The file is called SnomedCT_InternationalRF2_PRODUCTION_20251201T120000Z.zip. Place it in the openemr/contrib/snomed/ folder so that Apache (or Nginx) can read the file.

2 Likes

I set the file uploads to 30mg. I am not sure what command to look for in terms of time.

Check these:
Table for Quick Editing

Parameter Recommended for Large Files Description
upload_max_filesize 100M Max size of a single file.
post_max_size 110M Max size of the whole request.
memory_limit 256M RAM available to the script.
max_input_time 600 Max time allowed to receive data.
max_execution_time 600 Max time allowed to process data

Ai generated input

Thank you. When I tried to load RxNorm, I received the following error message.

Error: LOAD DATA LOCAL INFILE is forbidden, check related settings like mysql.allow_local_infile|mysqli.local_infile_directory or PDO::MYSQL_ATTR_LOCAL_INFILE|PD0::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY

Moussa:

I opened php.ini in Notepad and those parameters are not in the file. Should I add them?

SNOMED is really large may be need to set higher numbers

How do you run your openemr?
I am using debian server with apache and it is there in /etc/php/8.2/apache2

I am running XAMPP. Apache Server. MySQL

I am accessing the php file under the following directory: c:\xampp\php. Those parameters are not in my php.ini file?

sorry, I do not know how to use xampp. Here is an Ai generated response.

In XAMPP, the easiest way to edit your php.ini is through the Control Panel. This ensures you are editing the specific version being used by the Apache server.

1. Open php.ini via XAMPP Control Panel

  1. Open the XAMPP Control Panel.

  2. Find the Apache row.

  3. Click the Config button in that row.

  4. Select PHP (php.ini) from the dropdown menu. This will open the file in your default text editor (usually Notepad on Windows or TextEdit on Mac).


2. Manual File Locations

If the Control Panel isn’t working, you can find the file manually at these default paths:

  • Windows: C:\xampp\php\php.ini

  • macOS (VM/Intel): /Applications/XAMPP/xamppfiles/etc/php.ini

  • Linux: /opt/lampp/etc/php.ini


3. How to Search and Edit

The php.ini file is quite long (often over 1,000 lines). Use Ctrl+F (Windows) or Cmd+F (Mac) to find the specific parameters:

  1. Search for upload_max_filesize and change it (e.g., upload_max_filesize = 128M).

  2. Search for post_max_size and change it (e.g., post_max_size = 128M).

  3. Search for max_execution_time and increase it (e.g., max_execution_time = 300).

  4. Save the file and close the editor.

[!IMPORTANT]

Restart Apache: Your changes will not take effect until you click Stop and then Start on the Apache service in the XAMPP Control Panel.


4. What about MySQL?

While php.ini handles the PHP side of things, if you are uploading large files specifically into a MySQL database (as BLOBs), you might also need to edit the MySQL configuration file (my.ini or my.cnf):

  1. In XAMPP Control Panel, click Config next to MySQL.

  2. Select my.ini.

  3. Search for max_allowed_packet.

  4. Increase it to match your needs (e.g., max_allowed_packet = 128M).

  5. Restart the MySQL service.

Would you like a sample script to run in your browser that confirms if these changes were successfully applied?

Luis:

That is the file I am trying to install. I keep receiving error message. I am told it is not the correct file.

Moussa - I made the changes to the parameters found in the respective files. There was no post_max_size and max_execution_time in the php.ini file. Should I add them?

Moussa:

Received the same error message.

Error: LOAD DATA LOCAL INFILE is forbidden, check related settings like mysql.allow_local_infile|mysqli.local_infile_directory or PDO::MYSQL_ATTR_LOCAL_INFILE|PDO::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY

Sure, give it a try!

Note, I do not have SNOMED. I do have RxNorm

I added the parameters to the php.ini file. Still receiving the same error message when I try to load RxNorm.

Error: LOAD DATA LOCAL INFILE is forbidden, check related settings like mysql.allow_local_infile|mysqli.local_infile_directory or PDO::MYSQL_ATTR_LOCAL_INFILE|PD0::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY

I cannot find any reference to these parameters in mysql.ini file.

Sorry I do not use XAMPP

Ai generated response:
Enable in MySQL (my.ini)

Since XAMPP uses MariaDB/MySQL, you must enable the feature on both the server and the client side within the database configuration.

  1. Open my.ini via the XAMPP Control Panel (MySQL > Config).

  2. Find the [mysqld] section (the server settings) and add this line under it:

    • local-infile=1
  3. Find the [mysql] section (the client settings) and add the same line:

    • local-infile=1
  4. Save the file.

1 Like

Have you read OpenEMR 7.0.4 Windows Installation - OpenEMR Project Wiki

Step 4 mysqli_allow_local_infile = On