Skip to content

AD1306/org.hl7.fhir.validator-wrapper

 
 

Repository files navigation

validator-wrapper

This project contains the CLI, Desktop GUI, and Standalone Validation Server for the FHIR Validator

CI Status (master) Website Docker Image
Build Status Docker Status

Warning

This project is still not "officially" released, and may contain errors/bugs/dragons/smooth-jazz. During this initial period, your patience is greatly appreciated.

The validator CLI will still be generated and hosted as normal within the hapifhir/core.hl7.fhir.core for now. Be advised that on release of v1.0 of the this project, we will stop publishing the cli as part of the core, and users will be expected to download the cli jar from the latest release of this project.

CI/CD

All integration and delivery done on Azure pipelines. Azure project can be viewed here.

Docker

Docker image for the fullstack website is stored on DockerHub, and can be downloaded and run locally.

Updates to the docker image are triggered through the Azure Pipelines CI/CD.

Building Locally

This project uses the gradle build tool to build. In particular, we take advantage of Gradle's Kotlin DSL as an alternative syntax to the traditional Groovy DSL.

To generate the jar containing all resources locally:

  1. Ensure you have Gradle installed on your system
  2. Generate the Gradle Wrapper files locally by running the command gradle wrapper --gradle-version=6.7
  3. Build the project by running the command ./gradlew build
  4. This will generate three jar files in the /build/libs/ directory. The only one we care about is validator-wrapper-jvm-{$project-version}.jar

Running the jar

There are three possible ways this jar can be utilized:

As a full-stack hosted server:

Execute the jar by providing the argument '-startServer'. This boots the Ktor validation back end and KotlinJS front-end. Refer to the jvmMain/resources/application.conf file in the resources directory to view the different deployment flavours available. These deployment types can be set through the environment variable ENVIRONMENT. If no such environment variable is set, the application will default to a dev type deployment.

As a locally run, short-lived, 'desktop' application:

Execute the jar by providing the argument '-gui'. This boots the Ktor server locally on the port 8080, and starts a wrapped instance of the KotlinJS front end within a Chromium web window to appear as a desktop application. This wrapped website should mimic all the same functionality of the full KotlinJS website in the full-stack hosted server. Once the Chromium browser window is closed, the local Ktor server is also shutdown.

As the traditional validator cli:

We realize that for many users, the cli is still the primary way in which validation is performed, so we've made it possible to still execute this jar, as done previously, from the command line. All validator cli functionality remains as detailed on the confluence wiki.

N.B. If you attempt to run this as both a full-stack server and a locally hosted application (by including both the startServer and -gui commands from the cli, the full-stack server takes priority, and the desktop version will not be booted.

TODO / Known Issues

  1. Manual entry validation is a little screwy, bad inputs will cause website to hang and results are not displayed in an intuitive way
  2. Localization is not enabled...yet
Have you found an issue not listed above? Do you have a feature request? Great! Submit it here and we'll try to fix it as soon as possible.

Maintenance

This project is maintained by Grahame Grieve and Mark Iantorno on behalf of the FHIR community.

About

CLI, Desktop GUI, and Standalone Server for the FHIR Validator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Kotlin 99.4%
  • Dockerfile 0.6%