Skip to content
This repository has been archived by the owner on Apr 30, 2021. It is now read-only.


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time



Medserve is an experimental FHIR server prototype which serves up Medication, Substance and Organisation resources built from terminology and other data sources. At present it serves a set of Medication resources which are built from AMT with PBS data blended in. Future plans involve importing TGA data, dm+d and RxNorm.

Medserve is currently not part of any production infrastructure.

Medserve has been built to explore the idea of presenting medicines terminologies (AMT, dm+d, RxNorm...etc) via a common API (FHIR). This is intended to make it easier

  • to implement each individually through an API rather than starting from native file formats and building supporting infrastructure
  • and to implement multiple medicines terminologies because there is a common API to each of them

Feedback is very much appreciated to help guide where this project should go - please raise an issue with any feedback on the concept, implementation, API etc.

How to run it

You can run Medserve from prebuilt Docker images on Docker Hub built from master by CircleCI. There is a Docker Compose file in the ./server directory you can use to start up Medserve with its website and Polecat browser.

Building it yourself

Building the containers yourself isn't hard. Prequisites include the JDK (obviously), Maven and Docker.

Clone the repository and run

mvn install -Dsynd.client.secret=your_client_secret -Dsynd.cache.dir=/path/to/keep/terminology/files

This will build and locally install the Docker images, you will need a set of client credentials to download content from the NCTS as this process will download the latest version of AMT and the PBS. Refer to for more details on getting client credentials.

You'll also need to specify where to download these files to, which if available between runs will be consulted before new files are downloaded and can speed up the process.

To make execution easier (if you're not too paranoid) you can set these values into environment variables - e.g.

export SYND_CACHE_DIR=/path/to/keep/terminology/files
export SYND_CLIENT_ID=your_client_id
export SYND_CLIENT_SECRET=your_client_secret

Then you can simply run

mvn install


The API exposed is currently best described by the Postman collection


FHIR Medication server that makes it easy to make medicines terminology content available as a local service.




Code of conduct





No releases published


No packages published

Contributors 4