Legend
A new feature | |
An existing feature has changed | |
A bug fix | |
A performance improvement | |
A security issue has been corrected |
Released | 2018-11-12 |
Codename | Food |
HAPI FHIR | Smile CDR 2018.11.R01 is based on HAPI FHIR 3.6.0, and includes all changes and fixes included in this version. Please see the HAPI FHIR ChangeLog for details about what has changed. |
The HL7 v2.x transaction processor now maps |
|
Previously, transaction processing time was only visible from the Transaction Log summary view in the Web Admin Console. It is now also visible from the Transaction Log event view. |
|
Authentication scripts now support a JavaScript based callback script that can be used to add additional processing rules to the authentication. See the Callback Script Documentation for more information. |
|
Whem mapping HL7 v2.x ORC segments, the value for |
|
HL7 v2.x Sending Endpoint MLLP connections may now have the send timeout configured, so that sending to an endpoint which is slow to reply does not cause an error. |
|
When viewing HL7 v2.x Sending Endpoint deliveries in the transaction log, the ID of the triggering resource as well as the ID of the triggering subscription are now shown in the transactiong log. |
|
HL7 v2.x inbound and outbound processors now know how to handle Observations (OBX segment) having structured numeric values (HL7 v2.x SN datatype, mapping to Quantity and Ratio datatypes in FHIR). |
|
A new configuration property has been added to SMART/OIDC client definitions called |
|
The FHIR Gateway and FHIR Hybrid Providers modules are now both able to support arbitrary extended operations (i.e. operations such as |
|
The FHIR Gateway module now allows FHIR $operations to be called through the gateway. |
|
Support for the SMART on FHIR Cross-Organizational Data Access Profile has been added to the SMART Outbound Security Module. |
|
The JSON Admin API "Set configuration options for the given module" option has an input parameter named "name" that is equivalent to the parameter named "key" on all other operations. This has been renamed for consistency (although the previous parameter name will remain functional as well for now in order to reduce the burden on upgrading). |
|
A variable called |
|
A new route has been added to the CDA Exchange Module endpoint for creating / updating template scripts with body type application/javascript. This allows a user to directly copy and paste their JavaScript template into their request body without needing to escape any special characters. |
|
Navigations buttons have been added to the Transaction Log viewer in the Web Admin Console. These buttons may be used to move directly to the previous or next entry in the Transaction Log. |
|
A new FHIR operation called |
|
The HL7 v2.x outbound message mapper can now use MessageHeader resources stored in the repository in order to populate the |
|
The HL7 v2.x outbound message mapper can now use NamingSystem resources in the repository to populate HL7 v2.x identifier fields with appropriate values based on naming systems found in FHIR identifiers. See NamingSystem Mapping for information on how this works. |
|
A new configuration flag has been added to the database settings for the Cluster Manager and FHIR Storage modules called |
|
The Smile CDR CLI |
|
The inbound HL7 v2.x transaction processor now maps |
|
The inbound HL7 v2.x transaction processor now maps additional NK1 fields to FHIR, including |
|
The inbound HL7 v2.x transaction processor was mapping |
|
The inbound HL7 v2.x transaction processor now maps |
|
The inbound HL7 v2.x transaction processor includes a new configuration item for handling of |
|
The inbound HL7 v2.x transaction processor now maps |
|
The inbound HL7 v2.x transaction processor now maps |
|
Previously, the inbound HL7 v2.x transaction processor would map the value of |
|
The inbound HL7 v2.x transaction processor now maps non-standard ZXT segments to FHIR. One or more of these optional segments can be appended to any message structure. The general purpose for ZXT segments is to populate fields and extensions in FHIR that the inbound HL7 v2.x transaction processor doesn't already handle. Provided a declared value type, a value, and a path, the processor will populate FHIR accordingly. |
|
When following documentation links to anchor tags, the desired content no longer hides under the webpage header. |
|
For repetitions where |
|
User logout events from the SMART Outbound Security module were not being added to the audit log. This has been corrected. |
|
In the FHIR Gateway Endpoint module, if a client requested a search using an invalid search parameter, a meaningless error (!MESSAGE!) was returned to the client. This has been corrected. |
|
Under some circumstances, database credentials were being added to the Smile CDR logfile. This has been corrected. |
|
When using pinned host mode, if no port was specified in the pinned host definition, the port would default to 80. This works for HTTP, but causes weirdness for HTTPS. This has been corrected. |
|
The SMART Outbound Security logout endpoint did not work when a custom context path has been specified. This has been corrected. |
|
When accessing services with very high concurrency, occasional requests at the start of the day could fail with a database concurrency error. This has been corrected. |
|
When mapping RAS_O17 messages to FHIR, the inbound HL7 v2.x transaction processor was incorrectly reading RXR segments from the ENCODING group instead of the ADMINISTRATION groups such that |
|
When operating under heavy load, the first system access on a given day by a specific user could occasionally cause a failure due to concurrent database access. This has been corrected. |
Released | 2018-09-17 |
Codename | Economist |
HAPI FHIR | Smile CDR 2018.09.R01 is based on HAPI FHIR 3.5.0, and includes all changes and fixes included in this version. Please see the HAPI FHIR ChangeLog for details about what has changed. |
As of the 2018.09 release, database migration is performed using the smileutil migrate-database
command. See the command documentation for more information.
Released | 2018-05-29 |
Codename | Dromedário |
HAPI FHIR | Smile CDR 2018.05.R01 is based on HAPI FHIR 3.4.0, and includes all changes and fixes included in this version. Please see the HAPI FHIR ChangeLog for details about what has changed. |
This release introduces several database schema enhancements.
The following upgrade script should be executed on the cluster manager database.
drop table CDR_FHIR_SEARCHPARAM;
The following upgrade script should be executed on any persistence module databases.
alter table TRM_CODESYSTEM_VER drop column RES_VERSION_ID;
alter table TRM_CODESYSTEM_VER drop constraint IDX_CSV_RESOURCEPID_AND_VER;
update HFJ_RESOURCE set SP_INDEX_STATUS = null;
A new configuration option has been added to FHIR REST servers that allows the suppression of any identifying information about the server platform and version. This option removes the |
|
Additional fields have been added to the Smile CDR user manager and user data models for storing a default EHR launch context for a specific user. These fields can be used to supply a value to be returned by the SMART Outbound Security module when a client requests EHR Launch context scopes such as |
|
The user manager now has an additional field for the user's email address, and an additional field for capturing notes about the user. The email will be exported as a claim in any ID tokens generated by Smile CDR OpenID Connect server modules. |
|
It is now possible for an administrator to set minimum password requirements for users setting their own password. |
|
A new command has been added to the smileutil (CLI) tool called synchronize-fhir-servers. This command can be used to synchronize all resources from a source FHIR server into a target FHIR server. |
|
When processing inbound (to Smile CDR) HL7 v2.x transactions, any received messages that are of an unknown type will now be ignored. Previously unknown message types caused a processing error, and an HL7 |
|
When processing inbound HL7 v2.x messages, if the message was rejected because of missing mandatory fields or other business rules, the rejection reason was added to the transaction log (i.e. visible in the Web Admin Console) but not added to the system log (i.e. visible in smile.log). It is now logged in both places. |
|
Periodic log entries showing queue sizes for subscription queues now include speed statistics showing throughput in and out of the queues. |
|
A new security module called Scripted Inbound Security has been added. This module allows security decisions to be made using a customer-supplied script, meaning that external authentication providers can be called. The results of the external authentication can then be translated into Smile CDR user session permissions, SMART scopes, etc. |
|
A new module called Hybrid Providers Endpoint has been added. This module allows the creation of custom Resource Providers (code which implements individual FHIR operations such as |
|
ID Tokens generated by the SMART Outbound Security module now contain an |
|
Latency graphs in the Web Admin Console (such as the FHIR endpoint latency graph) have been split so that the maximum latency and the average latency now appear on separate graphs. This makes it much easier to identify trends in average latency, since previously the "maximum" curve often drowned out the other two. |
|
The end-user visible web pages provided by the SMART Outbound Security module (i.e. the Login page and the Approval page) can now be skinned rather than displaying a Smile CDR branded page. |
|
Added route to the JSON Admin API endpoint for creating new module instances at {module_id}/{node_id}/create |
|
When displaying the OAuth2 scope approval (confirmation) page, if only some scopes are listed in the client definition as "auto approve", these scopes will no longer appear as checkboxes for the user to approve. |
|
A help button has been added to properties in the Web Admin Console that brings up the related property definition. This makes it easier to cross reference settings between the Web Admin Console and the properties file that is used to initialize settings. |
|
A new FHIR operation called |
|
The Smile CLI Tool (smileutil) has been harmonized so that it also provides the features and commands of the HAPI FHIR CLI tool. |
|
A new configuration item has been added to HTTP server modules (such as FHIR REST Endpoints or the Web Admin Console) called |
|
A new FHIR operation ($upload-external-code-system) has been enabled in Smile CDR that enables uploading of external terminology code systems such as LOINC and SNOMED CT. In addition, a command has been added to the Smile CLI Tool (smileutil) that can be used to invoke this operation from the command line. |
|
Significant improvements have been made to the FHIR terminology services support for the LOINC code system. This includes complete support for LOINC properties and components (including the ability to search and filter based on these) as well as support for LOINC's various ValueSets (e.g. the Top 2000+ Lab Observations) and ConceptMaps (e.g. the RadLex to LOINC map). |
|
The JavaScript Execution Environment now provides a new method within the FHIR API that facilitates terminology mapping. It is called |
|
Any HTTP servers will now have a special [monitoring endpoint](/docs/monitoring/monitoring_basics.html#endpoint-health] that can be used by monitoring systems and network infrastucture to detect whether the server is currently operational. |
|
It is now possible to access system environment variables and Java system properties from the Smile CDR configuration property file. See Variable Substitution for more information. |
|
Minor layout improvements have been made to the Web Admin Console. |
|
Smile CDR will now ignore any Authorization header containing an empty username and password. This is a workaround that allows the current version of Forge to upload conformance resources into Smile CDR despite sending an invalid Autohrization header. |
|
The |
|
smileutil now includes two new commands. One is for importing and populating a |
|
A new short-term cache has been added to the Local Inbound Security module that will optionally cache successful authentication credentials for a very short period of time (3s) in order to avoid repeated expensive password checks when many requests are received in a short period of time. This can cause a dramatic performance increase on endpoints secured using HTTP Basic Auth, where the username and password must be checked for every request. |
|
An optimization has been made to the way that resource counts are calculated and loaded into generated |
|
OpenID Connect Access tokens and ID tokens issued by the SMART Outbound security module will use the user's username as the |
|
The CPU usage graph in the Web Admin Console had breaks for |
|
Restarting a Persistence module did not correctly shut down ActiveMQ message channels (used internally for Subscription processing), causing a degradation in subscription processing and occasional errors in the logs due to the partially closed channels. This has been corrected. |
|
MedicationAdministration resources created by processing RAS^O17 messages did not have the |
|
In the Web Admin Console, exceptions are showing up while clicking on certain links/ buttons if user has fewer permissions. This has been corrected. |
|
The SMART Outbound Security module "login" and "approve" pages were scaled badly on mobile devices, appearing small and hard to read. This has been corrected. |
|
In the SMART Outbound Security module, the |
|
While updating a user, giving a username that already exists shows an exception on admin web. This has now been fixed. |
|
The Web Admin Console failed to come back up if it was restarted from within itself (i.e. if the "restart module" button was clicked on the Web Admin Console module itself). This has been corrected. |
|
Search Parameters with status set to draft or disabled via the Web Admin Console now properly synchronize with server. |
|
A regression in Smile CDR 2018-03-R01 was fixed when operating in a clustered setup. With this regression, any settings that were changed on modules on the master node did not automatically propagate to the equivalent module on any clone nodes until the entire node was restarted. This has been corrected. |
|
When automatically deleting expired OAuth2 authentication codes, access tokens, and refresh tokens, a bunch of noisy constraint exceptions were shown in the system logs and this sometimes delayed clearing these tokens. This has been corrected. |
|
If a client performed an OAuth2 authentication against the SMART Outbound Security module, and then subsequently performed an identical authentication within a short period of time, some attributes (specifically EHR Launch Context claims) would not be returned in the second generated grant. This has been corrected. |
|
When working in clustered mode, the SMART Outbound Security module OAuth2 token granting process sometimes failed when used from a clone node. This has been fixed. |
|
Editing a Search Parameter through the Web Admin Console now properly adds to that Search Parameter's history instead of creating a new one. |
|
An issue was fixed in some module types where web content sprayed across nodes in a cluster very quickly would result in CSRF errors during login. |
|
When multiple clients/threads tried to update the same resource at the exact same time, an HTTP 500 error with a nondescriptive message was returned to the client. This has been replaced with an HTTP 409 (Conflict) and a descriptive error message. |
|
An occasional crash was fixed when exchanging a refresh token for an access token for the second time (i.e. on the second time that the refresh token gets used). |
|
Redundant link to home in the Runtime dropdown menu has been removed from the Web Admin Console. |
Released | 2018-03-29 |
Codename | Crouton |
This release removes a code directory from the classes
directory in the Smile CDR installation. When upgrading, please delete the ca
directory (and all of its subdirectories) that is found within the classes
directory. All other contents should be left alone.
When upgrading to this release, there are several database schema changes which must be made. Please ensure to back up your database prior to upgrading. The snippets shown below are for Postgres 9.4+. Please contact us if you require a migration script for another platform.
The following (Postgres) snippet should be executed on your cluster manager database.
ALTER TABLE cdr_module_cfg_prop ADD COLUMN value_extended TEXT;
The following (Postgres) snippet should be executed on any persistence module databases.
DROP TABLE hfj_search_result;
DROP TABLE hfj_search_include;
DROP TABLE hfj_search;
ALTER TABLE hfj_resource DROP COLUMN res_text;
ALTER TABLE hfj_resource DROP COLUMN res_encoding;
ALTER TABLE hfj_res_ver ALTER COLUMN res_encoding DROP NOT NULL;
ALTER TABLE hfj_res_ver ALTER COLUMN res_text DROP NOT NULL;
Web Admin Console now provides the option for users to change their password. |
|
A new option has been added to CLI |
|
Incoming HL7 v2.3 |
|
Custom search parameters are now supported on DSTU2 endpoints (previously only STU3/R4 endpoints would index custom search parameters). |
|
The inbound HL7 v2.x transaction processor now maps |
|
A new configuration property has been added to the persistence module that allows the generation of server-assigned IDs to be done using sequential numbers (as was previously the case, and remains the default) or using randomly generated UUIDs. The latter is useful in architectures where data will be replicated from one CDR to another separate CDR instance. |
|
SMART Outbound Security module now optionally allows the signing JWKS file to be specified as a text string containing the raw JWKS file instead of as a resource path. |
|
A new security module called SMART Inbound Security has been added. This module assumes the existence of an external SMART on FHIR Authorization Server (i.e. an OpenID Connect server that is not a part of Smile CDR), and it will validate and use Access Tokens granted by that server. |
|
The SMART Outbound Security module has received a number of enhancements in order to more fully support the SMART on FHIR specification including:
|
|
A new configuration item has been added to the persistence module that allows users to disable the automatic reindexing of resources following a |
|
The HL7 v2.x ORU^R01 inbound processor now processes and maps several new fields:
|
|
HL7 v2.x ORU^R01 inbound processor will now accept messages without a populated |
|
When processing HL7 v2.x inbound ORU feeds, |
|
The smileutil command |
|
A new configuration property has been added to the FHIR Persistence module types that allows Lucene indexing to be completely disabled. This can have a positive impact on storage space and performance on servers that don't require any kind of fulltext searching or large codesystem expansions. |
|
FHIR DSTU2 repositories now support the ability to create and use custom |
|
A new configuration item has been added that prevents the transaction log from storing transaction bodies in the database. |
|
Experimental support for multitenancy has been added. This feature is new, and remains unsuitable for production use but it has been added in order to begin testing it. A future release will add functionality and remove it from experimental status. |
|
A new experimental feature has been added to the FHIR Endpoint modules called "Versioned API Mode", which allows the client to request a specific version of FHIR in the response and the server will automatically return the correct version. |
|
A new module type called ETL Import module has been added. This module allows data to be imported from CSV extracts and converted into FHIR resources, then saved in a persistence module. This module uses a newly developed JavaScript mapping API for converting CSV rows into FHIR resources. In addition, a JSON Admin API ETL Import Endpoint has been added, as well as a smileutil command that can be used to automate processing. |
|
When using |
|
A new configuration item has been added to the Persistence module configuration called |
|
The Smile CDR code for actually starting the system was packaged in a directory called |
|
Status graphs on the Web Admin Console (e.g. CPU usage, throughput, etc.) have been updated to use the Chart.JS graphing library. This change doesn't have much impact on the user experience – although the graphs are a bit more fun to interact with – but it should set the stage for more graph features in the future. |
|
Two new configuration properties have been added to database configuration pool settings:
|
|
In Module Config web and json, users now have the option to archive and reinstate a module when required. |
|
When a browser is used to access a FHIR Endpoint with Syntax Highlighting enabled, the resulting page is nicely formatted and coloured for easy reading. As of this release, the formatted page includes response headers and line numbers. It also allows a user to click on links and create links that include highlighted line numbers in the response. |
|
The validator used for DSTU3 validation has been upgraded significantly, and it now supports many advanced |
|
In the Web Admin Console, exceptions keep showing up while clicking on certain links/ buttons if user has fewer permissions. This has been corrected. |
|
Accessing root url ("/") via an HTTP GET on FHIR endpoint was returning HTTP 500 (Internal Server Error). This has been corrected to return an HTTP 400 (Bad Request) which is the correct behaviour for this request. |
|
HL7 v2.x inbound SPM segment processor incorrectly labelled segment identifiers mapped from |
|
When performing a |
|
A crash was fixed in the JSON resource parser when parsing extensions on repeatable elements (e.g. |
|
Two configuration properties for the HL7 v2.x Inbound Processor module called |
|
A regression in Smile CDR 2017.11.R01 was fixed where the repository would not index for |
|
A crash was fixed in FHIRWeb Console. When deleting a resource directly from within the console, the deletion succeeded but the resulting page in the console showed a nonspecific error message. |
|
By default, the issuer URL for a Smart Outbound Security module was configured for HTTPS when it should be HTTP. This has been corrected. |
|
By default, the authorizing endpoint for a Smart Outbound Security module was |
|
If a user had write permissions for a given resource, they were not permitted to perform |
|
When the server was returning a multi-page search result where the client did not explicitly request an encoding via the |
|
Searches using a combination of the |
|
A bug was fixed where resources containing indexed fields with Korean text (e.g. a |