The below provides information to developers on the specific deployment details of the Reference Implementation

Introduction

The Care Connect Reference Implementation (CCRI) is a web application that provides a working example of a FHIR Interface to key Care Connect profiles. CCRI provides a public interface of FHIR, HAPI-FHIR, and JSON and has been implemented using Java and the Spring Framework with persistence provided by a MySQL database.

CCRI has been published as a set of Docker images which can be started as a set of containers to provide an example FHIR

Docker has been chosen as it provides an industry standard environment which can be run on a wide variety of platforms (Windows, MacOS, Linux, etc). The Docker images can also be deployed on Cloud environments.

Purpose of Instructions

The instructions provide a technical introduction to the architecture of Care Connect Reference Implementation (CCRI). The aim being to provide sufficient information so that the application can be downloaded and run in a local Docker environment.

The instructions are intended to be read alongside access to the source code for CCRI which can be found in GitHub at http://github.com/nhsconnect/careconnect-reference-implementation. The application can be deployed from this source code or by installing the pre-packaged Docker images. This reference implementation can be used either as a foundation for your own implementation of a FHIR API Service accessing information stored in a variety of repositories or just as a source of reference to understand how to develop a FHIR API Service.

Architectural Overview

CCRI is deployed onto a Docker environment using Docker Compose. Docker Compose allows us to define & deploy multiple, coupled Docker images.

The diagram shows the relationship between the 2 groups of components which are deployed onto Docker.

  1. CCRI Core The core services consist of the CCRI Server, CCRI Gateway and the MySQL Database. These services run as a group and are connected via a Docker network, ccrinet. These components are defined in the docker-compose.yaml file.

High level architectural view



  1. ELK Log Monitoring (Optional) An example of logging and monitoring is provided by the ELK (Elasticsearch, Logstack, and Kibana) stack which extracts the information from the log files generated by the services in the CCRI Module. These services run as a group and are connected via a Docker network, ccrielknet. These components are defined in the docker-compose-elk.yaml file.

Audit options



Installation

The installation instructions provide a technical introduction to the architecture of Care Connect Reference Implementation (CCRI). The aim being to provide sufficient information so that the application can be downloaded and run in a local Docker environment.

Prerequisites

  1. Installation of Docker & Docker Compose
  2. Creation of a docker-compose file.
    Sample docker-compose files are shown in (Administration Scripts) and the latest versions of these files can be downloaded from … [Administration Scripts].
  3. Definition of environment variables
  4. Upload Sample Data

Installation of Docker & Docker Compose

Follow the instructions for the appropriate operating system on https://docs.docker.com/engine/installation/ to install Docker (minimum version 17.06.0) on the computer which will act as the CCRI Server. Docker Community Edition (CE) is sufficient for our requirements.

Docker Compose will be automatically installed as part of Docker for Mac, and Docker for Windows. Docker Compose will needed to be installed independently on Linux, (see https://docs.docker.com/compose/install/ )

Current Version

Check out Versions for more information about the current released version, downloading options, use and future verions.

Contribute

This site is structured around Care Connect stakeholders including API users, developers and architects. Please get involved in the journey.

guide Engage Clinical scenarios User stories Case Studies Benefits Clinical inspiration Explore Impl Guide Resource Profiles API definitions Search parameters Value sets Design & Build Build APIs Search Ex. Code examples Validation tools Security examples Test Test data Security tests Reference servers Secure store Example data Assure Automated tests Test Reports Test Evidence Conformance reports Assurance checklist Deploy (Pilot) API harness Warranted environment IG / IS Spine comms Record locator Deploy (Live) Registry Monitor Support Conformance statement Extensions