Database Design - Smile CDR Documentation

Database Design

Smile CDR typically uses two separate databases (i.e. sets of tables) in order to operate. These databases are outlined below. Conceptually these are separate sets of tables with different purposes.

In a simple installation it is possible for all tables to exist in a single database schema, which will simplify deployment. However, unless you know that your requirements will remain small, it is recommended to create separate database schemas for each set of tables.

Cluster Manager Database

This database is required in order for Smile CDR to operate. A single instance of this database must be shared by all nodes in a cluster. This database is used to store:

FHIR Relational Storage

This database is used to store FHIR resource contents. A typical installation will have one instance of this database, which is shared across all nodes in the cluster. In such a configuration, FHIR clients accessing Smile CDR will see a single endpoint with a single pool of resources.

However, depending on your specific requirements, you may want to have multiple separate and distinct pools of resources. If this is required, you may want to create multiple FHIR Relational Storage databases – and multiple FHIR Storage (Relational) modules pointing to them.

See JPA Server Schema for details on the database schema used by the FHIR Storage (RDBMS) module.

FHIR MongoDB (Non-Relational) Storage

This database is used to store FHIR resource contents. A typical installation will have one instance of this database with a collection for each type of resource and a corresponding collection for each resource type's history. This instance is shared across all nodes in the cluster. In such a configuration, FHIR clients accessing Smile CDR will see a single endpoint with a single pool of resources.

Database Design

Database Administration

Database Design Database Connection Pool Setting Up PostgreSQL Troubleshooting PostgreSQL Setting Up MySQL Setting Up MariaDB Setting Up Oracle Setting Up SQL Server (MSSQL) AWS RDS Authentication Azure Entra Authentication

Database Connection Pool