Release notes Vonk

Release 0.7.2.1

Fix

  1. Delete on /administration was broken.

Release 0.7.2.0

Database

  1. Fixes 2 and 3 require a reindex for specific searchparameters, if these parameters are relevant to you.

Features and fixes

  1. Fix: Reject a search containing a modifier that is incorrect or not supported.
  2. Fix: The definition for searchparameter Encounter.length was unclear. We added the correct definition from FHIR R4 to the errata.zip, so it works for STU3 as well. If this is relevant for you, you may want to reindex for this searchparameter. See Rebuild the search index for specific searchparameters, just for ‘Encounter.length’.
  3. Fix: Error “Unable to index for element of type ‘base64Binary’”. This type of element is now correctly indexed. One known searchparameter that encounters this type is Device.udi-carrier. If this is relevant to you, you may want to reindex for this searchparameter. See Rebuild the search index for specific searchparameters, just for ‘Device.udi-carrier’.
  4. Fix: Validation would fail on references between contained resources. See also fix #423 in the release notes for the FHIR API.
  5. Fix: E-tag was missing from the response on a delete interaction.
  6. Fix: An invalid mimetype in the _format parameter (like _format=application/foobar) returned response code 400 instead of 415.
  7. Fix: If a subscription errors upon execution, not only set the status to error, but also state the reason in Subscription.error for the user to inspect.
  8. Fix: Search on /Observation?value-string:missing=false did not work. As did the missing modifier on other searchparameters on value[x] elements.
  9. Feature: After /administration/importResources (see Load Conformance Resources on demand), return an OperationOutcome detailing the results of the operation.
  10. Feature: Upon usage of a wrong value for _summary, state the possible, correct values in the OperationOutcome.
  11. Feature: Allow for multiple deletes with a Conditional Delete, see Create, read, update, delete.
  12. Feature: The version of Vonk is included in the log file, at startup.
  13. Configuration: Add Vonk.Smart to the PipelineOptions by default, so the user only needs to set the SmartAuthorizationOptions.Enabled to true.
  14. Upgrade: We upgraded to the latest C# driver for MongoDb (from 2.4.4 to 2.7.0).

Release 0.7.1.1

Fix

Spinning up a Docker container would crash the container because there was no data directory for SQlite (the default repository). This has been solved now: Vonk will create the data directory when it does not exist.

Release 0.7.1.0

Attention

Fix nr. 8 requires a reindex/searchparameters with include=Resource._id,Resource._lastUpdated,Resource._tag. Please review Re-indexing for new or changed SearchParameters on how to perform a reindex and the cautions that go with it. Also note the changes to reindexing in fix nr. 1.

Database

  1. We added support for SQLite! See Using SQLite for details.
  2. We also made SQLite the default setting for both the main Vonk database and the Vonk Administration API.
  3. With the introduction of SQLite we advise running the Administration API on SQLite. In the future we will probably deprecate running the Administration API on any of the other databases.
  4. Support for CosmosDB is expanded, though there are a few limitations.

Facade

  1. If you rejected the value for the _id searchparameter in your repository, Vonk would report an InternalServerError. Now it reports the actual message of your ArgumentException.

Features and fixes

  1. We sped up Re-indexing for new or changed SearchParameters. The request will be responded to immediately, while Vonk starts the actual reindex asynchronously and with many threads in parallel. Users are guarded against unreliable results by blocking other requests for the duration of the reindex. Reindexing is still not to be taken lightly. It is a very heavy operation that may take very long to complete. See Re-indexing for new or changed SearchParameters for details.
  2. A really large bundle could lead Vonk (or more specifically: the validator in Vonk) to a StackOverflow. You can now set limits to the size of incoming data to avoid this.
  3. Reindexing is supported on CosmosDB, but it is less optimized than on MongoDB.
  4. Using _include or _revinclude would yield an OperationOutcome if there are no search results to include anything on. Fixed that to return 404 as it should.
  5. Using the :not modifier could return false positives.
  6. A batch or transaction with an entry having a value for IfModifiedSince would fail.
  7. History could not be retrieved for a deleted resource. Now it can.
  8. Reindex would ignore the generic searchparameters defined on Resource (_id, _lastUpdated, _tag). Because id and lastUpdated are also stored apart from the search index, this was really only a problem for _tag. If you rely on the _tag searchparameter you need to reindex just for the searchparameter ``Resource._tag``.
  9. Vonk logs its configuration at startup. See Log of your configuration for details.

Release 0.7.0.0

Database

  1. Indexes on the SQL Server repository were updated to improve performance. They will automatically be applied with AutoUpdateDatabase.

Facade

  1. Release 0.7.0.0 is compatible again with Facade solutions built on the packages with versions 0.6.2, with a few minor changes. Please review the Vonk.Facade.Starter project for an example of the necessary adjustments. All the differences can be seen in this file comparison.
  2. Fix: The SMART authorization failed when you don’t support all the resourcetypes. It will now take into account the limited set of supported resourcetypes.
  3. Fix: Vonk.Facade.Relational.RelationalQueryFactory would lose a _count argument.
  4. Documentation: We added documentation on how to implement Create, Update and Delete in a facade on a relational database. See Enable changes to the repository. This is also added to the example Facade solution on GitHub.

Features and fixes

  1. Feature: Vonk FHIR Components has been released. You can now add libraries with your own components through configuration.
  2. Feature: Through Vonk FHIR Components you can replace the landing page with one in your own style. We provided an example on how to do that.
  3. Feature: You can now start Vonk from within another directory than the Vonk binaries directory, e.g. c:\programs>dotnet .\vonk\vonk.server.dll.
  4. Feature: You can configure the maximum number of entries allowed in a Batch or Transaction, to avoid overloading Vonk. See Batch and transaction.
  5. Upgrade: We upgraded the FHIR .NET API to version 0.96.0, see their release notes for details. Mainly #599 affects Vonk, since it provides the next…
  6. Fix: Under very high load the FhirPath engine would have concurrency errors. The FhirPath engine is used to extract the search parameters from the resources. This has been fixed.
  7. Fix: Search on a frequently used tag took far too long on a SQL Server repository.
  8. Fix: The Patient.deceased search parameter from the specification had an error in its FhirPath expression. We put a corrected version in the errata.zip.
  9. Fix: Several composite search parameters on Observation are defined incorrectly in the specification, as is reported in GForge issue #16001. Until the specification itself is corrected, we provide corrections in the errata.zip.
  10. Fix: Relative references in a resource that start with a forward slash (like /Patient/123) could not be searched on.
  11. Fix: System wide search within a compartment looked for the pattern <base>/Patient/123/?_tag=bla. Corrected this to <base>/Patient/123/*?_tag=bla
  12. Fix: When loading Simplifier resources, Vonk can now limit this to the changes since the previous import, because the Simplifier FHIR endpoint supports _lastUpdated.
  13. Fix: Conformance resources are always loaded into the Administration API when running on a Memory repository. Or actually, always if there are no StructureDefinitions in the Administration database. To enable this change, imported files are no longer moved to the AdministrationOptions.ImportedDirectory.
  14. Fix: Re-indexing for new or changed SearchParameters would stop if a resource was encountered that could not properly be indexed. It will now continue working and report any errors afterwards in an OperationOutcome.
  15. Fix: The terms and privacy statement on the default landing page have been updated.
  16. Fix: When searching on a search parameter of type date, with an argument precision to the minute (but not seconds), Vonk would reject the argument. It is now accepted.
  17. Fix: DateTime fields are always normalized to UTC before they are stored. This was already the case on MongoDb, and we harmonized SQL and Memory to do the same. There is no need to reindex for this change.
  18. Fix: When you use accents or Chinese characters in the url for a search, Vonk gives an error.
  19. Fix: A reverse chained search on MongoDb sometimes failed with an Internal Server Error.

Release 0.6.5.0

Attention

This version changes the way conformance resources are loaded from zip files and/or directories at startup. They are no longer loaded only in memory, but are added to the Administration API’s database. You will notice a delay at first startup, when Vonk is loading these resources into the database. See Feature #1 below.

Attention

2018-06-07: We updated the Database actions for 0.6.5.0, you should always perform a reindex, see right below.

Database

  1. Feature 2, 4 and 14 below require a reindex/all, both for MongoDB and SQL Server.

Facade

  1. Release 0.6.5.0 is not released on NuGet, so the latest NuGet packages have version 0.6.2-beta. Keep an eye on it for the next release…

Features and fixes

  1. Feature: Run Vonk from you Simplifier project! See Use Vonk FHIR Server with your Simplifier artifacts for details.
  2. Feature: Vonk supports Microsoft Azure CosmosDB, see Using Microsoft Azure CosmosDB. This required a few small changes to the MongoDB implementation (the share the drivers), so please reindex your MongoDB database: reindex/all.
  3. Feature: Configuration to restrict support for ResourceTypes, SearchParameters and CompartmentDefinitions, see Restrict supported resources and SearchParameters.
  4. Feature: Errata.zip: collection of corrected search parameters (e.g. that had a faulty expression in the FHIR Core specification), see Errata to the specification
  5. Upgrade: FHIR .NET API 0.95.0 (see 0.95.0 (DSTU2, STU3 and R4) (released 20170412))
  6. Fix: a search on _id:missing=true was not processed correctly.
  7. Fix: better distinction of reasons to reject updates (error codes 400 vs. 422, see RESTful API specification
  8. Fix: recognize _format=text/xml and return xml (instead of the default json)
  9. Fix: handling of the :not modifier in token searches (include resource that don’t have a value at all).
  10. Fix: handling of the :not modifier in searches with choice arguments
  11. Fix: fullUrl in return bundles cannot be version specific.
  12. Fix: evaluate _count=0 correctly (it was ignored).
  13. Fix: correct error message on an invalid _include (now Vonk tells you which resourcetypes are considered for evaluating the used searchparameter).
  14. Fix: indexing of Observation.combo-value-quantity failed for UCUM code for Celcius. This fix requires a reindex/all on this searchparameter.
  15. Fix: total count in history bundle.
  16. Fix: on vonk.fire.ly we disabled validating all input, so you can now create or update resources also if the relevant profiles are not loaded (this was neccessary for Crucible, since it references US Core profiles, that are not present by default).
  17. Fix: timeout of Azure Web App on first startup of Vonk - Vonk’s first startup takes some time due to import of the specification (see Default Conformance Resources). Since Azure Web Apps are allowed a startup time of about 3 minutes, it failed if the web app was on a low level service plan. Vonk will now no longer await this import. It will finish startup quickly, but until the import is finished it will return a 423 ‘Locked’ upon every request.
  18. Fix: improved logging on the import of conformance resources at startup (see Import of Conformance Resources).

Release 0.6.4.0

Attention

This version changes the way conformance resources are loaded from zip files and/or directories at startup. They are no longer loaded only in memory, but are added to the Administration API’s database. You will notice a delay at first startup, when Vonk is loading these resources into the database. See Feature #1 below.

Database

  1. Fix #9 below requires a reindex/all.

Facade

  1. Release 0.6.4.0 is not released on NuGet, so the latest NuGet packages have version 0.6.2-beta. This release is targeted towards the Administration API and Terminology, both of which are not (yet) available in Facade implementations. We are working on making the features of the Administration API available to Facade implementers in an easy way.

Features and fixes

  1. Feature: Make all loaded conformance resources available through the Administration API.

    Previously:

    • Only SearchParameter and CompartmentDefinition resources could be loaded from ZIP files and directories;
    • And those could not be read from the Administration API.

    Now:

    • The same set of (conformance) resourcetypes can be read from all sources (ZIP, directory, Simplifier);
    • They are all loaded into the Administration database and can be read and updated through the Administration API.

    Refer to Controlling the Conformance Resources for details.

  2. Feature: Experimental support for Terminology operations $validate-code, $expand, $lookup, $compose.

  3. Feature: Support for Compartment Search.

  4. Feature: Track timing of major dependencies in Azure Application Insights.

  5. Feature: Log settings can be overridden in 4 levels, just as the appsettings. The logsettings.json file will not be overwritten anymore by a Vonk distribution.

  6. Fix: The check for allowed profiles is no longer applied to the Administration API. Previously setting AllowedProfiles to e.g. [http://mycompany.org/fhir/StructureDefinition/mycompany-patient] would prohibit you to actually create or update the related StructureDefinition in the Administration API.

  7. Fix: When posting any other resourcetype than the supported conformance resources to the Administration API, Vonk now returns a 501 (Not Implemented).

  8. Fix: Support search on Token with only a system (e.g. <base>/Observation?code=http://loinc.org|)

  9. Fix: Support search on Token with a fixed system, e.g. <base>/Patient?gender=http://hl7.org/fhir/codesystem-administrative-gender.html|female. This fix requires a reindex/all.

  10. Fix: Reindex could fail when a Reference Searchparameter has no targets.

  11. Fix: Vonk works as Data Server on ClinFHIR, with help of David Hay.

  12. Fix: Clearer error messages in the log on configuration errors.

  13. Fix: Loading conformance resources from disk in Docker.

Documentation

  1. We added documentation on using IIS or NGINX as reverse proxies for Vonk.
  2. We added documentation on running Vonk on Azure Web App Services.

Release 0.6.2.0

Attention

The loading of appsettings is more flexible. After installing a new version you can simply paste your previous appsettings.json in the Vonk directory. Vonk’s default settings are now in appsettings.default.json. see Vonk settings for details.

Database

No changes

Features and fixes

  1. Feature: Conditional References in Transactions are resolved.
  2. Feature: More flexible support for different serializers (preparing for ndjson in Bulkdata)
  3. Feature: Improved handling on missing settings or errors in the Vonk settings.
  4. Feature: Improved logging, including Dependency Tracking on Azure Application Insights, see Azure Application Insights
  5. Feature: SearchParameter and CompartmentDefinition are now also imported from Simplifier, so both Simplifier import and the Administration API support the same set of conformance resources: StructureDefinition, SearchParameter, CompartmentDefinition, ValueSet and CodeSystem. See Conformance resources.
  6. Feature: Loading of appsettings is more flexible, see Vonk settings.
  7. Feature: Added documentation on running Vonk behind IIS or NGINX: Deploy Vonk on a reverse proxy.
  8. Performance: Improvement in speed of validation, especially relevant if you are Validating incoming resources.
  9. Fix: If you try to load a SearchParameter (see Load Conformance Resources from disk) that cannot be parsed correctly, Vonk puts an error about that in the log.
  10. Fix: Results from _include and _revinclude are now marked with searchmode: Include (was incorrectly set to ‘Match’ before)
  11. Fix: _format as one of the parameters in a POST Search is correctly evaluated.
  12. Fix: No more errors in the log about a Session being closed before the request has finished (“Error closing the session. System.OperationCanceledException: The operation was canceled.”)
  13. Fix: Subscription.status is evaluated correctly upon create or update on the Administration API
  14. Fix: Token search with only a system is supported (Observation.code=somesystem|)
  15. Fix: On validation errors like ‘Cannot resolve reference Organization/Organization-example26”’ are now suppressed since the validator is set not to follow these references.
  16. Fix: New Firely logo in SVG format - looks better
  17. Fix: Creating resources with duplicate canonical url’s on the Administration API is prohibited, see Controlling the Conformance Resources.
  18. Fix: If a Compartment filter is used on a parameter that is not implemented, Vonk will return an error, see Compartments.

Release 0.6.1.0

Name change from Furore to Firely

Release 0.6.0.0

Attention

Database

  1. The MongoDB implementation got a new index. It will be created automatically upon startup.

Features and fixes

  1. Feature: Access control based on SMART on FHIR.
  2. Feature: Vonk can also load CompartmentDefinition resources. See Controlling the Conformance Resources for instructions.
  3. Feature: ValueSet and CodeSystem resources can be loaded into the administration endpoint, and loaded from Simplifier. See Controlling the Conformance Resources for instructions.
  4. Feature: Be lenient on trailing slashes in the url.
  5. Feature: OperationOutcome is now at the top of a Bundle result. For human readers this is easier to spot any errors or warnings.
  6. Fix: In the settings for SQL Server it was possible to specify the name of the Schema to use for the Vonk tables. That was actually not evaluated, so we removed the option for it. It is fixed to ‘vonk’.
  7. Fix: The OperationOutcome of the Reset operation could state both an error and overall success.
  8. Fix: If you did not set the CertificatePassword in the appsettings, Vonk would report a warning even if the password was not needed.
  9. Fix: Loading conformance resources in the SQL Server implementation could lead to an error.
  10. Fix: Clearer error messages if the body of the request is mandatory but empty.
  11. Fix: Clearer error message if the Content-Type is missing.
  12. Fix: GET on [base]/ would return the UI regardless of the Accept header. Now if you specify a FHIR mimetype in the Accept header, it will return the result of a system wide search.
  13. Fix: In rare circumstances a duplicate logical id could be created.
  14. Fix: GET [base]/metadat would return status code 200 (OK). But it should return a 400 and an OperationOutcome stating that ‘metadat’ is not a supported resourcetype.

Documentation

  1. We consolidated documentation on loading conformance resources into Controlling the Conformance Resources.