Plugins available for Firely Server

Infrastructural plugins

Name

Scheduler

Configuration

Vonk.Core.Quartz.QuartzConfiguration

License token

http://fire.ly/vonk/plugins/infra

Order

10

Description

Registers a scheduler that can run jobs periodically. You can use this yourself, but with care (you don’t want jobs slowing down the server):

  • Implement a Quartz.IJob, let’s say with class MyJob {…}

  • Have the Quartz.IScheduler injected

  • Call IScheduler.StartJob<MyJob>(TimeSpan runInterval, CancellationToken cancellationToken)

Name

Maintenance

Configuration

Vonk.Core.Infra.MaintenanceConfiguration

License token

http://fire.ly/vonk/plugins/infra

Order

20

Description

Periodically cleans the indexed values for deleted or superceded resources from the database.

Name

License

Configuration

Vonk.Core.Licensing.LicenseConfiguration

License token

http://fire.ly/vonk/plugins/infra

Order

120

Description

Registers the LicenseService that checks for a valid license. Without this plugin Firely Server does not work.

Name

Serialization

Configuration

Vonk.Core.Serialization.SerializationConfiguration

License token

http://fire.ly/vonk/plugins/infra

Order

130

Description

Registers an implementation for the ISerializationService and ISerializationSupport interfaces and actual serializers and parsers for JSON and XML.

Name

Pluggability

Configuration

Vonk.Core.Pluggability.PluggabilityConfiguration

License token

http://fire.ly/vonk/plugins/infra

Order

150

Description

Registers services to dynamically build the IModelService using registered IModelContributor implementations.

Name

Http to Vonk

Configuration

Vonk.Core.Context.Http.HttpToVonkConfiguration

License token

http://fire.ly/vonk/plugins/http

Order

1110

Description

Builds an IVonkContext out of the HttpContext. You can only access the IVonkContext in the pipeline from plugins that have a higher order.

Name

Vonk to Http

Configuration

Vonk.Core.Context.Http.VonkToHttpConfiguration

License token

http://fire.ly/vonk/plugins/http

Order

1120

Description

Translates the response in the IVonkContext to a response on the HttpContext. It honors the value of the prefer header if present. It also adds the VonkExceptionMiddleware to the pipeline as a last resort for catching exceptions.

Name

Formatter

Configuration

Vonk.Core.Context.Format.FormatConfiguration

License token

http://fire.ly/vonk/plugins/infra

Order

1130

Description

Registers an implementation of IFormatter that can write the IVonkContext.Response.Payload to the response body in the requested format. Does not add a processor to the pipeline.

Name

Long running tasks

Configuration

Vonk.Core.Infra.LongRunning.LongRunningConfiguration

License token

http://fire.ly/vonk/plugins/infra

Order

1170

Description

If Vonk processes a task that could lead to inconsistent output, all other requests are rejected by this plugin. Long running tasks are e.g. the Import of Conformance Resources and Re-indexing for new or changed SearchParameters.

Name

Compartments

Configuration

Vonk.Core.Context.Features.CompartmentsConfiguration

License token

http://fire.ly/vonk/plugins/search

Order

1210

Description

Recognizes a compartment in a compartment search on system or type level (see Search). It is added as a feature of type ICompartment to the IVonkContext.Features collection, to be used by Search later on. This ICompartment feature will limit all queries to within the specified compartment.

Name

Supported Interactions

Configuration

Vonk.Core.Context.Guards.SupportedInteractionsConfiguration

License token

http://fire.ly/vonk/plugins/infra

Order

1220

Description

Blocks interactions that are not listed as supported.

Options

SupportedInteractions, see Enable or disable interactions.

Name

Size Limits

Configuration

Vonk.Core.Context.Guards.SizeLimitsConfiguration

License token

http://fire.ly/vonk/plugins/infra

Order

1225

Description

Rejects bodies that are too large and bundles with too many entries.

Options

SizeLimits, see Protect against large input

Name

Url mapping

Configuration

Vonk.Core.Context.UrlMapping.UrlMappingConfiguration

License token

http://fire.ly/vonk/plugins/infra

Order

1235

Description

In a resource in the request, urls pointing to this instance of Firely Server are made relative. In a resource in the response, relative urls are made absolute, by adding the base url of the server. This way the server can be addressed in multiple ways (e.g. http://intranet.acme.com/fhir and https://fhir.acme.com) and still provide correct absolute urls.

Name

Default Shapes

Configuration

Vonk.Core.Context.Guards.DefaultShapesConfiguration

License token

http://fire.ly/vonk/plugins/infra

Order

4110

Description

If no sort order is given for a search, _lastUpdated:asc is added. If no count is given for a search, _count=<default count> is added.

Options

BundleOptions.DefaultCount, see Search and History.

Support for different FHIR versions

Name

FHIR R3

Configuration

Vonk.Fhir.R3.FhirR3Configuration

License token

http://fire.ly/vonk/plugins/fhirr3

Order

100

Description

Registers services to support FHIR STU3 (or R3).

Name

FHIR R3 Specification

Configuration

Vonk.Fhir.R3.FhirR3SpecificationConfiguration

License token

http://fire.ly/vonk/plugins/fhirr3

Order

112

Description

Registers an Hl7.Fhir.Specification.IStructureDefinitionSummaryProvider for FHIR STU3 (or R3).

Name

FHIR R4

Configuration

Vonk.Fhir.R4.FhirR4Configuration

License token

http://fire.ly/vonk/plugins/fhirr4

Order

101

Description

Registers services to support FHIR R4.

Name

FHIR R4 Specification

Configuration

Vonk.Fhir.R4.FhirR4SpecificationConfiguration

License token

http://fire.ly/vonk/plugins/fhirr4

Order

112

Description

Registers an Hl7.Fhir.Specification.IStructureDefinitionSummaryProvider for FHIR R4.

FHIR RESTful interactions

Name

Read

Configuration

Vonk.Core.Operations.Crud.ReadConfiguration

License token

http://fire.ly/vonk/plugins/read

Order

4410

Description

Implements FHIR instance read. It will return the Resource that matches the id and the FHIR version. If a Resource with matching id is found with another FHIR version you are notified.

Name

Create

Configuration

Vonk.Core.Operations.Crud.CreateConfiguration

License token

http://fire.ly/vonk/plugins/create

Order

4420

Description

Implements FHIR type create.

Name

Update

Configuration

Vonk.Core.Operations.Crud.UpdateConfiguration

License token

http://fire.ly/vonk/plugins/update

Order

4430

Description

Implements FHIR instance update, with support for ‘upsert’: creating a Resource with a pre-assigned id. Note that id’s must be unique across FHIR versions.

Name

Patch

Configuration

Vonk.Core.Operations.Crud.FhirPatchConfiguration

License token

http://fire.ly/vonk/plugins/update

Order

4433

Description

Implements FHIR instance patch, as specified by FHIR Patch.

Name

Delete

Configuration

Vonk.Core.Operations.Crud.DeleteConfiguration

License token

http://fire.ly/vonk/plugins/delete

Order

4440

Description

Implements FHIR instance delete. Since id’s in Firely Server must be unique across FHIR versions, the delete is issued on the provided id, regardless of the FHIR version.

Name

Index

Configuration

Vonk.Core.Repository.RepositoryIndexSupportConfiguration

License token

http://fire.ly/vonk/plugins/index

Order

141

Description

Extracts values matching Searchparameters from resources, so they can be searched on.

Name

Include

Configuration

Vonk.Core.Operations.Search.IncludeConfiguration

License token

http://fire.ly/vonk/plugins/include

Order

4210

Description

Implements _include and _revinclude. This acts on the result bundle of a search. Therefore it also works out of the box for Facade implementations, provided that the Facade implements support for the reference Searchparameters that are used in the _(rev)include.

Name

Elements

Configuration

Vonk.Core.Context.Elements.ElementsConfiguration

License token

http://fire.ly/vonk/plugins/search

Order

1240

Description

Applies the _elements parameter to the Resource that is in the response (single resource or bundle).

Name

Summary

Configuration

Vonk.Core.Context.Elements.SummaryConfiguration

License token

http://fire.ly/vonk/plugins/search

Order

1240

Description

Applies the _summary parameter to the Resource that is in the response (single resource or bundle).

Name

History

Configuration

Vonk.Core.Operations.History.HistoryConfiguration

License token

http://fire.ly/vonk/plugins/history

Order

4610

Description

Implements _history on system, type and instance level.

Options

BundleOptions, see Search and History

Name

Version Read

Configuration

Vonk.Core.Operations.History.VersionReadConfiguration

License token

http://fire.ly/vonk/plugins/history

Order

4620

Description

Implements reading a specific version of a resource (<base>/Patient/123/_history/v3).

Name

Capability

Configuration

Vonk.Core.Operations.Capability.CapabilityConfiguration

License token

http://fire.ly/vonk/plugins/capability

Order

4120

Description

Provides the CapabilityStatement on the <base>/metadata endpoint. The CapabilityStatement is tailored to the FHIR version of the request. The CapabilityStatement is built dynamically by visiting all the registered implementations of ICapabilityStatementContributor, see Capabilities.

Name

Conditional Create

Configuration

Vonk.Core.Operations.ConditionalCrud.ConditionalCreateConfiguration

License token

http://fire.ly/vonk/plugins/conditionalcreate

Order

4510

Description

Implements FHIR conditional create.

Name

Conditional Update

Configuration

Vonk.Core.Operations.ConditionalCrud.ConditionalUpdateConfiguration

License token

http://fire.ly/vonk/plugins/conditionalupdate

Order

4520

Description

Implements FHIR conditional update.

Name

Conditional Delete

Configuration

Vonk.Core.Operations.ConditionalCrud.ConditionalDeleteConfiguration

License token

http://fire.ly/vonk/plugins/conditionaldelete

Order

4530

Description

Implements FHIR conditional delete.

Options

FhirCapabilities.ConditionalDeleteOptions, see FHIR Capabilities

Name

Validation

Configuration

Vonk.Core.Operations.Validation.ValidationConfiguration

License token

http://fire.ly/vonk/plugins/validation

Order

4000

Description

Implements FHIR $validate on type and instance level for POST: POST <base>/Patient/$validate or POST <base>/Patient/123/$validate.

Name

Instance Validation

Configuration

Vonk.Core.Operations.Validation.InstanceValidationConfiguration

License token

http://fire.ly/vonk/plugins/validation

Order

4840

Description

Implements FHIR $validate on instance level for GET: GET <base>/Patient/123/$validate

Name

Structural Validation

Configuration

Vonk.Core.Operations.Validation.StructuralValidationConfiguration

License token

http://fire.ly/vonk/plugins/validation

Order

1227

Description

Validates the structure of resources sent to Firely Server (is it valid FHIR JSON or XML?).

Name

Prevalidation

Configuration

Vonk.Core.Operations.Validation.PreValidationConfiguration

License token

http://fire.ly/vonk/plugins/validation

Order

1228

Description

Validates resources sent to Firely Server against their stated profile compliance (in Resource.meta.profile). The strictness of the validation is controlled by the options.

Options

Validation, see Validation

Name

Profile filter

Configuration

Vonk.Core.Operations.Validation.ProfileFilterConfiguration

License token

http://fire.ly/vonk/plugins/validation

Order

4310

Description

Blocks resources that do not conform to a list of profiles.

Options

Validation.AllowedProfiles, see Validation

Name

Meta

Configuration

Vonk.Core.Operations.MetaOperation.MetaConfiguration

License token

http://fire.ly/vonk/plugins/meta

Order

5180

Description

Implements FHIR $meta on instance level.

Name

Meta Add

Configuration

Vonk.Core.Operations.MetaOperation.MetaAddConfiguration

License token

http://fire.ly/vonk/plugins/meta

Order

5190

Description

Implements FHIR $meta-add on instance level.

Name

Meta Delete

Configuration

Vonk.Core.Operations.MetaOperation.MetaDeleteConfiguration

License token

http://fire.ly/vonk/plugins/meta

Order

5195

Description

Implements FHIR $meta-delete on instance level.

Name

Snapshot Generation

Configuration

Vonk.Core.Operations.SnapshotGeneration.SnapshotGenerationConfiguration

License token

http://fire.ly/vonk/plugins/snapshotgeneration

Order

4850

Description

Implements FHIR $snapshot on a type level: POST <base>/administration/StructureDefinition/$snapshot.

Name

Batch

Configuration

Vonk.Core.Operations.Transaction.FhirBatchConfiguration

License token

http://fire.ly/vonk/plugins/batch

Order

3110

Description

Processes a batch Bundle by sending each entry through the rest of the processing pipeline and gathering the results.

Options

SizeLimits, see Protect against large input

Name

Transaction

Configuration

Vonk.Core.Operations.Transaction.FhirTransactionConfiguration

License token

http://fire.ly/vonk/plugins/transaction

Order

3120

Description

Process a transaction Bundle by sending each entry through the rest of the processing pipeline and gathering the results. Different from Batch, Transaction succeeds or fails as a whole. Transaction requires an implementation of Vonk.Core.Repository.IRepoTransactionService for transaction support by the underlying repository. The SQL Server and SQLite implementations provides a real one, whereas the MongoDb provides a simulated implementation, to allow you to experiment with transactions on MongoDb.

Options
Name

LastN

Configuration

Vonk.Plugin.LastN.LastNConfiguration

License token

http://fire.ly/vonk/plugins/lastn

Order

5007

Description

Implements FHIR $lastn on Observation resources.

Terminology

Name

CodeSystem Lookup

Configuration

Vonk.Plugins.Terminology.[R3|R4|R5].CodeSystemLookupConfiguration

License token

http://fire.ly/vonk/plugins/terminology

Order

5110

Description

Implements FHIR $lookup on type level requests: POST <base>/administration/CodeSystem/$lookup or GET <base>/administration/CodeSystem/$lookup?...

Name

CodeSystem FindMatches / Compose

Configuration

Vonk.Plugins.Terminology.CodeSystemFindMatchesConfiguration

License token

http://fire.ly/vonk/plugins/terminology

Order

5220

Description

Implements FHIR $compose on type level requests: POST <base>/administration/CodeSystem/$find-matches``and on instance level requests: ``POST <base>/administration/CodeSystem/[id]/$find-matches or GET <base>/administration/CodeSystem/[id]/$find-matches?...

Name

ValueSet Validate Code

Configuration

Vonk.Plugins.Terminology.ValueSetValidateCodeConfiguration

License token

http://fire.ly/vonk/plugins/terminology

Order

5120

Description

Implements FHIR $validate-code on type level requests: POST <base>/administration/ValueSet/$validate-code and instance level requests: GET <base>/administration/ValueSet/[id]/$validate-code?... and POST <base>/administration/ValueSet/[id]/$validate-code

Name

ValueSet Expand

Configuration

Vonk.Plugins.Terminology.ValueSetExpandConfiguration

License token

http://fire.ly/vonk/plugins/terminology

Order

5140

Description

Implements FHIR $expand on instance level requests: GET <base>/administration/ValueSet/[id]/$expand?... and POST <base>/administration/ValueSet/[id]/$expand and on type level requests: POST <base>/administration/ValueSet/$expand.

Name

ConceptMap Translate

Configuration

Vonk.Plugins.Terminology.ConceptMapTranslateConfiguration

License token

http://fire.ly/vonk/plugins/terminology

Order

5260

Description

Implements FHIR $translate on instance level requests: GET <base>/administration/ConceptMap/[id]/$translate?... and POST <base>/administration/ValueSet/[id]/$translate and on type level requests: POST <base>/administration/ConceptMap/$translate.

Name

CodeSystem Subsumes

Configuration

Vonk.Plugins.Terminology.CodeSystemSubsumesConfiguration

License token

http://fire.ly/vonk/plugins/terminology

Order

5280

Description

Implements FHIR $subsumes on instance level requests: GET <base>/administration/CodeSystem/[id]/$subsumes?... and on type level requests: POST <base>/administration/CodeSystem/$subsumes or GET <base>/administration/CodeSystem/$subsumes?...

Name

CodeSystem Closure

Configuration

Vonk.Plugins.Terminology.CodeSystemClosureConfiguration

License token

http://fire.ly/vonk/plugins/terminology

Order

5300

Description

Implements FHIR $closure on system level requests: POST <base>/administration/$closure

SMART on FHIR

Name

SMART on FHIR

Configuration

Vonk.Smart.SmartConfiguration.SmartConfiguration

License token

http://fire.ly/vonk/plugins/smartonfhir

Order

2000

Description

Implements SMART on FHIR authentication and authorization, see Access control and SMART.

Subscriptions

Name

Subscriptions

Configuration

Vonk.Subscriptions.SubscriptionConfiguration.SubscriptionConfiguration

License token

http://fire.ly/vonk/plugins/subscriptions

Order

3200

Description

Implements the FHIR Subscriptions framework, see Subscriptions.

Auditing

Name

Username log

Configuration

Vonk.Plugin.Audit.UsernameLoggingConfiguration

License token

http://fire.ly/vonk/plugins/audit

Order

2010

Description

Makes the user id and name from the JWT token (if present) available for logging. See Auditing for more info.

Name

Audit logging for transactions

Configuration

Vonk.Plugin.Audit.AuditTransactionConfiguration

License token

http://fire.ly/vonk/plugins/audit

Order

3100

Description

Logs requests and responses for transactions to a file. See Auditing for more info.

Name

Audit log

Configuration

Vonk.Plugin.Audit.AuditConfiguration

License token

http://fire.ly/vonk/plugins/audit

Order

3150

Description

Logs requests and responses to a file. See Auditing for more info.

Name

AuditEvent logging for transactions

Configuration

Vonk.Plugin.Audit.AuditEventTransactionConfiguration

License token

http://fire.ly/vonk/plugins/audit

Order

3160

Description

Logs requests and responses for transactions to a file. See Auditing for more info.

Name

AuditEvent logging

Configuration

Vonk.Plugin.Audit.AuditEventConfiguration

License token

http://fire.ly/vonk/plugins/audit

Order

3170

Description

Logs requests and responses to a file. See Auditing for more info.

Demo UI

Name

Demo UI

Configuration

Vonk.UI.Demo.DemoUIConfiguration.DemoUIConfiguration

License token

http://fire.ly/vonk/plugins/demoui

Order

800

Description

Provides the landing page that you see when you request the base url from a browser. If you want to provide your own landing page, replace this plugin with your own. There is an example of that, see Firely Server Plugin example - Create a new landing page.

Documents

Name

Document generation

Configuration

Vonk.Plugins.DocumentOperation.DocumentOperationConfiguration

License token

http://fire.ly/vonk/plugins/document

Order

4900

Description

Implements FHIR $document : POST <base>/Composition/$document or GET <base>/Composition/[id]/$document

Code

GitHub

Name

Document signing

Configuration

Vonk.Plugins.SignatureService.SignatureConfiguration

License token

http://fire.ly/vonk/plugins/signature

Order

4899

Description

Signs a document generated by $document.

Conversion

Name

Format conversion

Configuration

Vonk.Plugins.ConvertOperation.ConvertOperationConfiguration

License token

http://fire.ly/vonk/plugins/convert

Order

4600

Description

Implements FHIR $convert : POST <base>/$convert to convert between JSON and XML representation.

Binary

Name

Binary wrapper (Encode)

Configuration

Vonk.Plugins.BinaryWrapper.BinaryEncodeConfiguration

License token

http://fire.ly/vonk/plugins/binarywrapper

Order

1112

Description

Wraps an incoming binary format in a Binary resource for further processing by the pipeline.

Settings
"Vonk.Plugin.BinaryWrapper":{
   "RestrictToMimeTypes": ["application/pdf", "text/plain", "image/png", "image/jpeg"]
},
Name

Binary wrapper (Decode)

Configuration

Vonk.Plugins.BinaryWrapper.BinaryDecodeConfiguration

License token

http://fire.ly/vonk/plugins/binarywrapper

Order

1122

Description

Implements GET <base>/Binary/<id>, retrieve back the Binary resource in its native format.

Transformation and mapping

Name

FHIR Mapper (Transform)

Configuration

Vonk.Plugins.Transform.TransformConfiguration

License token

http://fire.ly/vonk/plugins/mapping

Order

4560

Description

Implements FHIR $transform : POST <base>/administration/StructureMap/[id]/$transform. See fhir_mapper_docs:mappingengine_index.

Name

FHIR Mapper (Convert)

Configuration

Vonk.Plugin.MappingToStructureMap.MappingToStructureMapConfiguration

License token

http://fire.ly/vonk/plugins/mapping

Order

4550

Description

Implements FHIR $convert : POST <base>/$convert to convert between FHIR Mapping Language and its StructureMap representation.

Repository implementations

Name

Memory Repository

Configuration

Vonk.Repository.MemoryConfiguration

license token

http://fire.ly/vonk/plugins/repository/memory

Order

210

Description

Implements a repository in working memory that fully supports all of the capabilities of Firely Server. This implementation is mainly used for unittesting.

Name

Memory Administration Repository

Configuration

Vonk.Repository.MemoryAdministrationConfiguration

license token

http://fire.ly/vonk/plugins/repository/memory

Order

211

Description

Implements a repository in working memory for the Administration API. This implementation is mainly used for unittesting.

Name

MongoDb Repository

Configuration

Vonk.Repository.MongoDbConfiguration

license token

http://fire.ly/vonk/plugins/repository/mongo-db

Order

230

Description

Implements a repository in MongoDb that fully supports all of the capabilities of Firely Server, except Transactions.

Name

MongoDb Administration Repository

Configuration

Vonk.Repository.MemoryAdministrationConfiguration

license token

http://fire.ly/vonk/plugins/repository/mongo-db

Order

231

Description

Implements a repository in MongoDb for the Administration API.

Name

SQLite Repository

Configuration

Vonk.Repository.SqliteConfiguration

license token

http://fire.ly/vonk/plugins/repository/sqlite

Order

240

Description

Implements a repository in SQLite that fully supports all of the capabilities of Firely Server.

Name

SQLite Administration Repository

Configuration

Vonk.Repository.SqliteAdministrationConfiguration

license token

http://fire.ly/vonk/plugins/repository/sqlite

Order

241

Description

Implements a repository in SQLite for the Administration API.

Name

SQL Server Repository

Configuration

Vonk.Repository.SqlConfiguration

license token

http://fire.ly/vonk/plugins/repository/sql-server

Order

220

Description

Implements a repository in SQL Server that fully supports all of the capabilities of Firely Server.

Name

SQL Server Administration Repository

Configuration

Vonk.Repository.SqlAdministrationConfiguration

license token

http://fire.ly/vonk/plugins/repository/sql-server

Order

221

Description

Implements a repository in SQL Server for the Administration API.

Administration API

Name

Administration API

Configuration

Vonk.Administration.Api.AdministrationOperationConfiguration

license token

http://fire.ly/vonk/plugins/administration

Order

1160

Description

Sets up a sequence of plugins for the Administration API. Administration API is different from general plugins since it branches off of the regular processing pipeline and sets up a second pipeline for the /administration endpoint.

Name

Fhir STU3 Administration services

Configuration

Vonk.Administration.FhirR3.RepositoryConfigurationR3

license token

http://fire.ly/vonk/plugins/administration/fhirr3

Order

4310

Description

Implements support services to work with FHIR STU3 conformance resources in the Administration API.

Name

Fhir R4 Administration services

Configuration

Vonk.Administration.FhirR4.RepositoryConfigurationR4

license token

http://fire.ly/vonk/plugins/administration/fhirr4

Order

4310

Description

Implements support services to work with FHIR R4 conformance resources in the Administration API.

Bulk Data

Name

Bulk Data Export

Configuration

Vonk.Plugin.BulkDataExport

license token

http://fire.ly/vonk/plugins/bulk-data-export

Order

5005

Description

Request an export of bulk data sets. See Bulk Data Export.

Name

Patient everything

Configuration

Vonk.Plugin.PatientEverything

license token

http://fire.ly/vonk/plugins/patient-everything

Order

5006

Description

Request a Patient record. See Patient $everything.