Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions input/images-source/component.plantuml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
@startuml


interface "FHIR RESTful API" as api

component "FHIR Validation Service" as validator
note right
HAPI FHIR Plain Server
end note

component "NHS England Terminology Server" as onto
note right
Used for validating SNOMED Terminology
end note

component "Inbuilt Terminology Server" as internal
note right
**CommonCodeSystemsTerminologyService**

Pre loaded with FHIR Profiles, ValueSets
and CodeSystems from supplied FHIR Packages
end note

interface "FHIR RESTful API" as Facade
note right
**TerminologyServiceValidationSupport**

Facade which handles Onto Server
authentication
end note

interface "FHIR RESTful API" as AWSFacade
note right
**AWSValidationSupport**

Facade which handles Cognito
authentication
end note

component AWSFHIRWorks
note right
Repository of FHIR Questionnsaire's
end note


api -- validator
validator -- Facade
validator -- internal
validator -- AWSFacade
Facade -- onto
AWSFacade -- AWSFHIRWorks

@enduml
Binary file added input/images/component-diagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
13 changes: 13 additions & 0 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,16 @@ The configuration is aimed at supporting different use cases. For example the la

See [Environmental Variables](environment-variables.md) for configuration options.

## Architecture

The Validator is based on [HAPI FHIR Instance Validator](https://hapifhir.io/hapi-fhir/docs/validation/instance_validator.html), which is exposed using a [HAPI FHIR Plain Server](https://hapifhir.io/hapi-fhir/docs/server_plain/server_types.html) which gives an FHIR RESTful API to a [FHIR $validate operation](https://www.hl7.org/fhir/resource-operation-validate.html).
This API is documented via [OpenAPI Specification (swagger)](https://swagger.io/specification/) as part of the service [here](http://lb-fhir-validator-924628614.eu-west-2.elb.amazonaws.com/swagger-ui/index.html)

![validator component diagram](./input/images/component-diagram.png)

The validation configuration is composed of:

- `DefaultProfileValidationSupport` - which includes base FHIR CodeSystems and ValueSets
- `CommonCodeSystemsTerminologyService` - which includes UK Core and NHS England FHIR NPM packages
- A customised version of `TerminologyServiceValidationSupport` to handle the security mechanism of NHS England's Terminology Server
- `AWSValidationSupport` a custom class to enable validation of FHIR QuestionnaireResponse using FHIR Questionnaire's stored a AWS FHIRWorks server.
Loading