Legend
A new feature | |
An existing feature has changed | |
A bug fix | |
A performance improvement | |
A security issue has been corrected |
Released | 2025-05-18 |
Codename | TBD |
HAPI FHIR | Smile CDR 2025.05.R01 is based on HAPI FHIR 8.2.0, and includes all changes and fixes included in this version. Please see the HAPI FHIR ChangeLog for details about what has changed. |
Before 2025.05.R01, the property intermediate_logging_enabled
, could be defined in camel
module as well as in hl7v2_in
module. Camel module definition has been deprecated. Going forward only hl7v2_in
module definition (key = module.<endpoint-hl7v2-in-module>.config.intermediate_logging_enabled
) will be accepted.
As of 2025.05.R01, Smile CDR now uses the AWS Advanced JDBC Driver to manage connections to RDS databases. This comes with minor changes on how to use both IAM and Secrets Manager. More details can be found in the documentation.
The FHIR gateway now supports the history operation at the instance level |
|
Added warning message to the conversion results returned to an hl7v2 endpoint client when the value populated in OBR.24 could not be mapped to an element of Table 0074. |
|
Prior Auth Support (PAS) module now has two additional properties for specifying |
|
Add Prior Auth custom troubleshooting log handler. |
|
Added support for Provider Access Da Vinci data export, via the |
|
Added a troubleshooting log for request partition routing. |
|
The configuration bundle zip download now includes a summary of registered hooks. |
|
If a Camel Message Body implements IModelJson (i.e. it is a Java class that supports JSON serialization), the body will now be serialized to JSON and made available to the Camel Script as a JSON object. |
|
Previously when a Camel Script expected Java Bundle input, it needed to have the |
|
FHIR Path expressions can now be evaluated on FHIR resources within the Java Execution Environment. See the FHIR Model API documentation for details on how to do this. |
|
Modified Camel JavaScript integration to give Camel Scripts access to Exchange Headers and Properties by including includeExchange=true in the Camel Script URI. See the Script section of Smile Camel Processors for details of how this works. |
|
Added P2P export type to |
|
The Module Config page of the Web Application Console now displays the interceptors that are registered on that module. |
|
Fixed an issue where the FHIR Gateway blocks responses containing an OperationOutcome in a search |
|
Previously, configuring the system in Mass Ingestion Mode while providing JS update callbacks would prevent an HL7v2 endpoint module from booting. This combination of configuration is now allowed. |
|
Previously in some situations when exporting a CDA document that contained a Vital Signs section, an additional |
|
Previously, the |
|
Fix Camel module startup exception when some route included Hl7v2 javascript function processor. |
|
Attempting to edit/save modules in the admin console would not work if using Safari browser. This has been fixed. |
|
Exported configurations would include S3 Secret Keys, they are now redacted like passwords and other sensitive data. |
|
Previously, properties related to Inbound SMART on FHIR configured on a FHIR endpoint would not be propagated in the response to a capabilities discovery (GET /.well-known/smart-configuration). This issue is fixed. |
|
The |
|
Previously, when importing a CDA document, if the Mental Status section contained Mental Status Observation entries or Assessment Scale Observation entries at the root of the section, these observations would be parsed correctly, but not linked from the Composition. This has been corrected. |
|
Previously, the CDA Exchange+ module would fail to export a CDA document if the source bundle contained an |
|
Previously, when parsing an unknown field of a HL7v2 message, if only one component is in the field and it is requested as the first component, e.g. as 'OBX-23-1' the parser would throw an error. Now it correctly returns the value. |
|
Previously, the CDA Exchange+ module was transforming the contents of Admission Medications, Medications Administered, and Discharge Medications sections to MedicationStatement resources when conforming to a US Core or USCDI IG. This has been changed to produce MedicationRequest resources instead, to better align with IG guidance. |
|
Previously, calling XmlDocumentProxy#getXPathElements(xpath) in the JSEE would return an empty list even if matching nodes existed, if the XML document contained an unqualified |
|
Update $member-match response to conform with HRex Member Match Operation. Return MemberIdentifier as Identifier resource and MemberId as Reference as specified in https://build.fhir.org/ig/HL7/davinci-ehrx/OperationDefinition-member-match.html |
|
Update $invoke-export to handle the case member-match response does not return a memberId |
Released | 2025-02-17 |
Codename | Transfiguration |
HAPI FHIR | Smile CDR 2025.02.R01 is based on HAPI FHIR 8.0.0, and includes all changes and fixes included in this version. Please see the HAPI FHIR ChangeLog for details about what has changed. |
The way that data in the Resource.meta.source
element is stored has been changed since Smile CDR 2023.08.R01. Users of systems which used this element prior to that release may need to perform a data migration. See Resource Meta Source Migration for more information.
A new $smile-generate-cda
endpoint has been introduced in the CDA Exchange+ module.
See the documentation
for more details.
The endpoints template/{template_id}/apply
and
{resource_type}/{resource_id}/apply
have been removed from the JSON Admin API. All uses of these endpoints should be replaced with calls to the new $smile-generate-cda
endpoint.
See this migration guide
for detailed instructions.
Use of the DocumentReference/$docref
endpoint to generate CDA documents is still supported, but discouraged, as the behaviour of this endpoint may change in a future release.
This module has been removed from Smile CDR. Installations with this module configured will no longer boot this module.
Smile CDR stopped collecting internal metrics in 2024.02.R01 in favour of using OpenTelemetry. In 2024.11.R01, the entities and services related to this metric collection have been removed. As of 2025.02.R01, the following tables, indexes, and generators have been removed:
Tables:
CDR_METRIC_GAUGE
CDR_METRIC_TIMER
CDR_METRIC_HC
Indexes:
IDX_METRICHC_NODEP_HID
ID Generators:
SEQ_METRICHC_PID
Previously, the hl7v2 inbound mapper would not create an issue when processing a coded element with a missing code system or a missing required code (conversion from CE, CWE or IS to Coding or CodeableConceot). Two new properties have been introduced for the hl7v2 listener module which will issue error/warning for these cases. The properties are disabled by default. |
|
Added |
|
This feature introduces method |
|
Added documentation for module dependencies. See an example here and see a full list of module dependencies here. |
|
A new Consent Module has been added to the list of Experimental Features. This module adds a Consent resource-driven framework on top of the existing code-driven Consent Service. See the Consent Module Overview page for more details. |
|
Default templates have been created for each resource type to generate narrative for every section within the CDA Exchange+ module. To use the generative narrative feature see the documentation here. |
|
Gateway consent has been added, allowing to apply consent to routes before sending requests to targets. |
|
The following OpenTelemetry metrics have been added to monitor the number of successful and failed authentication attempts: |
|
The HL7 v2.x inbound processor now supports mapping |
|
A new experimental option has been added to the FHIR Endpoint module which provides a virtualized view of an MDM-enabled repository. See MDM Virtualized Endpoint for more information. |
|
The Package Registry Endpoint module now supports searching for packages by author. |
|
In the CDA Exchange+ module, new parsing of |
|
A new setting has been added to the FHIR Storage (RDBMS) module which allows full resource contents to not be indexed by the Full-Text engine when Full-Text indexing is enabled. Disabling this setting can save space if the Full-Text engine is only required for terminology purposes. |
|
Added the |
|
Introduce new custom interceptor |
|
Added configuration property to Cluster Manager configuration that allows to specify optional prefix for the broker channels (ActiveMQ Queues and Kafka Topics). This will cause the given prefix to be prepended to the names of non-customizable channels being used by Smile CDR. |
|
MegaScale search now supports searching multiple partitions at once provided all of those partitions map to the same database. |
|
When performing a Federated OAuth2/OIDC Login, Smile CDR will now supply PKCE parameters to the federated provider, providing an additional element of security to this exchange. |
|
CDS Hooks Prefetch Requests are now being logged in transaction logs. |
|
A new MDM mode configuration item was added (default MATCH_AND_LINK). When the MDM module is run in MATCH_ONLY mode then MDM operations are disabled and no MDM processing occurs. This is useful if, for example, you want to use the Patient/$match operation without having the overhead of creating links and golden resources. |
|
The CDA Exchange+ module allows the default narrative templates to be overridden by providing a set of custom Thymeleaf templates in the Narrative Generator module. See the documentation for more details. |
|
Two new settings have been added which can be used to configure the timeout and size of the Validation Support Cache. This cache now also exports OpenTelemetry metrics around its current size. |
|
Changed the CDA Exchange+ narrative templates selection criteria to use the coding that is provided in |
|
Changed the CDA Exchange+ section narrative generator to flatten subsection resources into the list of resources used when generating narrative content. |
|
Functionality has been added to filter transaction logs by module id. See the Optional Module ID Filtering section of the Transaction Log page for more details. |
|
The CDA Exchange+ module now supports exporting C-CDA Discharge Summary documents. |
|
The CDA Exchange+ module now provides the operation |
|
The CDA Exchange+ module now provides configuration parameters to allow fine-grain control of which generated resources get persisted during the cda export process. |
|
Upgraded the Clinical Reasoning module to the latest release of 3.15.0. Many caregaps request errors that previously resulted in HTTP status code of 500 now result in 400 instead. |
|
Upgrade the Clinical Reasoning module to the latest release of 3.15.0. CMPI now supports the delete operation |
|
Upgrade the Clinical Reasoning module to the latest release of 3.15.0. Please review associated ticket for detailed list of changes which including changes to error handling, measure scoring and support for Organization subjects. |
|
The Apache Camel version used in the Camel module has been upgraded from |
|
Adds a Development Forecast section to the docs page. |
|
The JvmStatsMonitor which emits occasional status updates to the system log will now include details about the HTTP and FHIR Storage throughput across the entire cluster. |
|
When starting the Cluster Manager module, the FHIR Storage (RDBMS) module, or any other module using a database, the system logs will now include a statement describing the connection pool sizes and a few other useful troubleshooting details. |
|
Several improvements have been made to the
|
|
Ensure that $qpp-build always downloads a QPP spec file from github CMSgov if the file has not been added to the cdr binary build. This means no need for an explicit release once a QPP spec file becomes available for a new year, such as 2026. |
|
The CDA Exchange+ module now offers the option of importing a CDA document as a single FHIR document Bundle. See the documentation for more details. |
|
Added pointcut |
|
Add a new pointcut CONSENT_ACTIVE_CONSENT_RESOURCES_RESOLVE to contribute Consent resources to the Consent Module from arbitrary sources. |
|
Prior Auth CRD now generates transaction logs before and after |
|
A new processor has been added to the Camel module which provides manual commits to Kafka-based routes. This can be used to achieve guaranteed delivery of data. Documentation examples have been provided showing how to achieve this. |
|
Clinical Reasoning version bump to 3.17. Introduction of new feature that allows for containing dQM |
|
The CDA Exchange module has been deprecated, and replaced by the CDA Exchange+ module. |
|
Previously, directly accessing array |
|
Resolved a number of |
|
Fixed an issue where transaction log entries relating to performing a create/read/update/search using the JSEE Fhir API would previously always have event type |
|
Previously, the |
|
The Fhir interface, which provides access to persistence module functionality, will now be exposed to JavaScript environments in modules that extend or depend on persistence module.
Specifically, the following JS functions have now been fixed to provide access to Fhir API: |
|
Prior to this change, Gateway DELETE operations would return the OperationOutcome of the delete called on the first target, irrespective of the success/failure of the delete operation. This means that a SUCCESSFUL_DELETE_NOT_FOUND result was often returned when the resource actually was found and deleted. Now, if the resource was actually deleted on one of the targets, the OperationOutcome of that target is returned to the caller with the proper SUCCESSFUL_DELETE result so that the caller can detect the resource was successfully deleted. |
|
Prior to this change, Gateway target http headers added by FHIRGW_XXX_TARGET_PREINVOKE interceptors would persist between targets, so if the interceptor added an http-header for one target call, that header would still be present in calls to subsequent target calls. This has been corrected so each target call has an independent set of additional headers. |
|
Previously, if the payload of rest-hook subscription message exceeded the broker's maximum message size, an exception would be thrown. Now, the message is delivered successfully. |
|
Previously, HTTP 400 - Bad Request exceptions thrown in Hybrid Providers were not propagated back to Gateway Clients. Additionally, HTTP 401 - Unauthorized responses from Gateway Search targets would return the incorrect status code. These have both been fixed. |
|
Previously, when performing a Gateway Read, if two targets return the same HTTP status code but have different error messages, then only the first message was returned. This has been fixed so that all error messages are returned as issues in the Operation Outcome. Additionally, when Gateway Read targets return an Authorization exception, the OperationOutcome resource associated with the exception was returned to the client. The associated OperationOutcome resource will no longer be returned to prevent leaking target details to the client. |
|
|
|
Prior to this change, hypertext links to JSON examples would return an error page when invoked from the Web Admin documentation. This issue has been fixed. |
|
Prior to this change, exporting the Plan of Treatment section in the CDA Exchange+ module the |
|
Previously, attempting to restart the Persistence module would result in a |
|
Updated bootstrap (frontend) dependency due to vulnerabilities. |
|
Previously, the CDA Exchange+ mappings for the Note Activity entry contained some errors that were causing generated documents to fail validation. These errors have been fixed. |
|
Mapping errors in the CDA Exchange+ module that were resulting in empty |
|
Previously, when |
|
Add configuration for |
|
Fixed a regression where an OAuth token request with an invalid token would incorrectly return a 401 Unauthorized error. It now correctly returns a 400 Bad Request error. |
|
Previously, $evaluate-measure without an async header with reportType SUBJECT and a null subject failed with a 500 status code and a cryptic error message. This has been fixed with a 400 status code and a clear error message. |
|
When partition mode by URL is enabled, requests to |
|
The error message for an invalid module ID has now been improved to include the expected module ID pattern. Additionally, using a module ID with the '-' character would throw an error in the WAC, but be allowed from the .properties file. This has now been fixed by allowing module IDs with the '-' character from the Web UI. |
|
Previously in the CDA Exchange+ module when importing an |
|
Previously in the CDA Exchange+ module, when exporting |
|
Previously, environment variables similar to a configuration setting could override the property file. E.g. the |
|
The smile documentation main header navigation menu has been updated to reflect the navigation items seen on the Smile Digital Health website |
|
As of this release, the |
|
The fields |
|
Previously, the CDA Exchange+ module was not mapping the address associated with an authoring device. This address will now be captured in a contained Location resource. |
|
A previous documentation update incorrectly marked the JSON Admin API endpoints for creating, updating, viewing and deleting CDA template scripts as deprecated. These endpoints are still supported, and the deprecation warning has been removed. |
|
Previously, when invoking the |
|
Corrected a bug in the PartitionSecurityInterceptor which was causing custom default partition IDs to fail to validate. This only affected people running in CUSTOM and PATIENT_ID partitioning modes. |
|
Previously, in the |
|
Fixed demoskin html field definitions which were unaligned after bootstrap migration. |
|
Previously, running $evaluate-measures with |
|
Stopped modules used to show up as 'healthy' during health checks. This has been change so that stopped modules are 'unhealthy'. |
|
Previously, the CDA Exchange+ module would use a nullFlavor attribute to mark the absence of narrative in an otherwise empty section. This has been replaced with human readable placeholder text. |
|
Update property settings in PAS module |
|
Fixed an issue where using the $apply-codesystem-delta-add operation fails when hibernate search is enabled. |
|
Fixed gateway failure to sort when null sort fields were present. |
|
QueryDsl dependency has been changed to a new fork, and updated to 6.10.1, to remediate CVE-2024-49203. |
|
Previously, the CDA Exchange+ module would fail to import a document if one of the sections was lacking any templateId elements. This has been fixed. |
|
On the site documentation, redirect user to versioned table of contents if the page they are navigating from does not exist in the requested version. |
|
Previously, the CDA Exchange+ module might fail to import a document if it contained a Medication Activity entry where the |
|
Previously, the CDA Exchange+ module would fail to import a CDA file having a list of |
|
Previously, the CDA Exchange+ module would fail to populate the |
|
Fixed broken documentation links. |
|
The endpoints |
|
The AWS Healthlake Module has been removed from Smile CDR. Installations which have this module configured will no longer boot this module. |
|
Smile CDR stopped collecting internal metrics in 2024.02.R01 in favour of using OpenTelemetry. As of 2025.02.R01, the tables used for built-in metrics collection have been removed. |