These are the links accompanying the session "Let's Build - Vonk Plugins" and "Let's Build - Vonk FHIR Facade" at FHIR DevDays 2019 Amsterdam.
- .NET Core SDK: https://dotnet.microsoft.com/download/dotnet-core/2.2 (look for 2.2.3)
- Visual Studio trial edition: https://visualstudio.microsoft.com/ (Community Edition)
- Hello DevDays example: https://gitlab.com/fhir/vonk.testplugins.git
- Vonk Documentation on plugins: http://docs.simplifier.net/vonk/plugins/plugins.html
- Template for a plugin: https://github.com/FirelyTeam/Vonk.Plugin.ExampleOperation
- Plugin with implementation of $document: https://github.com/FirelyTeam/Vonk.Plugin.DocumentOperation
- Specification of $document: http://hl7.org/fhir/R4/composition-operation-document.html
- Facade Starter project: https://github.com/FirelyTeam/Vonk.Facade.Starter
- Vonk Documentation on Facades: http://docs.simplifier.net/vonk/facade/facade.html
- Vonk homepage: http://fire.ly/vonk
- Vonk documentation: http://docs.simplifier.net/vonk
- Vonk public test server: https://vonk.fire.ly
- Download Vonk: https://simplifier.net/vonk
- Docker: docker pull simplifier/vonk
-
Setup the prerequisits for building a Plugin:
- Visual Studio
- .NET Core 2.2
- Vonk FHIR Server + evaluation license
- Clone Vonk.Plugins.ExampleOperation
-
Make the example plugin run in your own Vonk instance.
-
Create a service that counts the number of individual resources returned by Vonk, by any operation.
- Bundles should be counted for the number of resources in them - except on GET /Bundle[/id]
- Note that you should count resources inside transaction responses as well.
-
Implement a custom operation $counters on the system level (so on 'GET /$counters').
- It should return a Parameters resource with 1 out parameter named 'count' having the number of resources from the service above.
-
Setup the prerequisits for building a Facade:
- Visual Studio
- .NET Core 2.2
- Vonk FHIR Server + evaluation license
- SQL Server database (can be the local db that comes with Visual Studio)
- Clone Vonk.Facade.Starter
-
Implement search Patient by name.
- Add it to the PatientQueryFactory
- Add it to the SupportedModel
- Search in both first and last name
-
Now try a search on Observation by Patient.name:
GET <base>/Observation?patient.name=Davis
-
Implement search Observation by component-value-quantity.
Questions, interested? Email [email protected]