Skip to content

HealthIntersections/nodeserver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FHIRsmith - FHIR Server toolkit

This server provides a set of server-side services that are useful for the FHIR Community. The set of are two kinds of services:

Modules useful to anyone in the community

  • (Coming) R4/R6 interconverter
  • (Coming) tx.fhir.org server
  • SHL Server - SHL/VHL support services

Services useful the community as a whole

Build Status

CI Build Release Docker

Note: In production, this server always runs behind an nginx reverse proxy, so there's no in-build support for SSL, rate limiting etc.

Quick Start

Prerequisites

  • Node.js 16+
  • NPM or Yarn
  • Java 8+ (for FHIR validator)

Installation

# Clone the repository
git clone <repository-url>
cd fhir-server

# Install dependencies
npm install

# Create required directories
mkdir -p data logs static

# Copy example configuration
cp config.example.json config.json

# Edit configuration as needed
nano config.json

Each Module has it's own entry in the config, as described by the module.

Basic Configuration

Create a config.json file (use config-template.json):

{
  "server": {
    "port": 3000,
    "cors": {
      "origin": "*",
      "credentials": true
    }
  },
  "modules": {
    // per modules...
  }
}

Start the Server

# Development mode
npm run dev

# Production mode
npm start

The server will be available at http://localhost:{port} using the port specified in the config. In the production servers listed above, the server always sits behind an NGINX server.

Testing

npm test

You need to provide additional data files for testing:

  • (none yet)

Deployment

Docker Installation

The server is available as a Docker image:

# Pull the latest image
docker pull ghcr.io/healthintersections/nodeserver:latest

# Run with mounted volumes
docker run -d --name fhir-server \
  -p 3000:3000 \
  -v /path/to/config.json:/app/config.json \
  -v /path/to/data:/app/data \
  ghcr.io/healthintersections/nodeserver:v1.0.0

Available tags:

  • latest: Latest stable release
  • vX.Y.Z: Specific version (e.g., v1.0.0)
  • cibuild: Latest build from the main branch

Environment Variables

export PORT=3000
export NODE_ENV=production
export FHIR_SERVER_CONFIG=/path/to/config.json

Windows Installation

You can install as a windows service using...

Releases

This project follows Semantic Versioning and uses a CHANGELOG.md file to track changes.

To create a new release:

  1. Update CHANGELOG.md with your changes under a new version section
  2. Commit your changes
  3. Tag the commit with the new version: git tag vX.Y.Z
  4. Push the tag: git push origin vX.Y.Z

GitHub Actions will automatically:

  • Run tests
  • Create a GitHub Release with notes from CHANGELOG.md
  • Build and publish Docker images with appropriate tags

License

BSD-3

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

Support

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages