Updating Smile CDR Software
Smile CDR can be deployed both dockerized, and non-dockerized. The process for upgrading the binaries differs between the deployment methods.
There are several folders which are relevant for updating the binaries on a Smile CDR server:
lib/
bin/
classes/
otel/
Within the Smile CDR installation directory, there is a directory called lib
that contains all of the binaries for Smile CDR. It is generally possible to simply replace the contents of this directory with the new contents from a release.
The following example shows an in-place upgrade of a single Smile CDR server:
Within the Smile CDR installation directory, there is a directory called lib
that contains all the binary code for Smile CDR. It is generally possible to simply replace the contents of this directory with the new contents from a release.
The following example shows an in-place upgrade of a single Smile CDR process:
cd smilecdr
bin/smilecdr stop
Change the following commands to use a backup folder that works for your installation:
cp -R lib /path/to/your/backup/folder
cp -R bin /path/to/your/backup/folder
if [ -d otel ]; then cp -R otel /path/to/your/backup/folder; fi
With Smile CDR shut down, no new data will be entering the system, so this would be the time to perform a full database backup of all your applicable databases.
However, some installations have very large databases and cannot wait for a full backup to take place, so your situation may require taking a different approach. It may be acceptable in this scenario to use the most recent full backup, along with the latest transaction logs, in case you need to restore the database to this point-in-time, just before the Smile CDR upgrade takes place.
The exact instructions for this step will differ, depending on which database you have chosen to use with your installation. Please consult your DBA Team for assistance with ensuring that you have a full database backup to this point in time, which could be used if you decide to rollback this upgrade.
rm lib/*
rm bin/smilecdr
rm bin/smileutil
mv bin/setenv bin/setenv-2025.05.PRE.backup
rm -rf otel/*
# The following command assumes you are currently in the root of your smilecdr
# installation, and will extract only the lib directory
tar --strip-components=1 -xvf /path/to/smilecdr-2025.05.PRE.tar.gz smilecdr/lib
# The following command assumes you are currently in the root of your smilecdr
# installation, and will extract only the bin directory
tar --strip-components=1 -xvf /path/to/smilecdr-2025.05.PRE.tar.gz smilecdr/bin
# The following command assumes you are currently in the root of your smilecdr
# installation, and will extract only the otel directory
tar --strip-components=1 -xvf /path/to/smilecdr-2025.05.PRE.tar.gz smilecdr/otel
In a previous step, we extracted a new setenv
file and placed it in your bin/
folder, but some customers have made changes to that file to optimize the performance of Smile CDR in their environment. Therefore, you will need to examine the backup version of that file (bin/setenv-2025.05.PRE.backup
), compare it to the new one (bin/setenv
) and re-apply any manual changes that may have been made in previous versions of Smile CDR.
You can compare these files using the following command:
diff bin/setenv bin/setenv-2025.05.PRE.backup
Occasionally, we introduce a new configuration setting or module and it will be added to the default classes/cdr-config-Master.properties
file in the new release. Users may choose to manage this file themselves, changing some of the default values to suit their needs, and sometimes using it in Properties Mode to force Smile CDR to use the configured values exclusively from the properties file. If this file is missing some new configuration value, it may not perform properly or it may cause problems during startup.
It is important to compare the old and new properties files to see whether any new configuration settings have been added, and add them to your local system as well, to remain up-to-date.
The process of adding new configuration properties to your local system will differ based on your server's node.propertysource
configuration setting. Note that if you do not have this property in your configuration file, it will use the default value of DATABASE
. More information is available here: Module Property Source
If you are currently using DATABASE
mode for your properties:
If you are NOT using DATABASE
mode for your properties:
With all of this finished, we can now move on to migrating your database, via whichever database migration mechanism you have selected.
You are about to leave the Smile Digital Health documentation and navigate to the Open Source HAPI-FHIR Documentation.