This project has moved and is read-only. For the latest updates, please go here.

Installing the MEDIC CR on OpenSUSE 13.2

There have been several requests to illustrate the installation of the MEDIC client registry on Linux, this tutorial will illustrate this process and guide you through the setup procedure.


Let's start off with a warning: The MEDIC CR is not officially supported on LINUX, most of the components will work and the software is quite stable under mono, however this environment does not undergo thorough testing

There are a few features which will not work under mono, namely:

  1. Any WCF interfaces including FHIR, HL7v3 or the Administrative interface. This is because there is a bug in the way that Mono loads WCF configuration data
  2. FHIR does not work as the HL7.FHIR.API.DLL file can't be loaded by Mono (we're checking into this)
  3. Notifications in HL7v3, that is noftifications originating from the CR bound to an HL7v3 endpoint
  4. The administrative interface

Acquire the Linux Distribution

You can download the mediccr-1.1.2-msil.tar.bz2 package from CodePlex, download the tarball to a directory and extract it. This tutorial will place it in /opt/mediccr-1.1.2-msil

$ su
# cd /opt
# tar xvf ~user/Downloads/mediccr-1.1.2-msil.tar.bz2

Install pre-requisites

The MEDIC CR requires PostgreSQL 9.0 or higher and Mono 3.8 or better. To install these:

# zypper install postgresql-server postgresql postgresql-contrib mono-complete
# insserv postgresql

Configure PostgreSQL

First, we want to configure access to the PostgreSQL server, this can be done by editing the pg_hba.conf file as follows:

# su - postgres
$ vi data/pg_hba.conf

Ensure the following entries exist:

host	all	all	md5
host	all	all	::1/128		md5

Next, we’ll create the database:

$ psql

#=> CREATE USER cr WITH PASSWORD ‘changeit’;
#=> \connect cr
#=> CREATE EXTENSION fuzzystrmatch;
#=> \q
$ exit
# rcpostgresql start

Configure the CR


First, you’ll have to ensure that the user running X-Windows has access to the installation directory, or you’ll have to be running X-Windows as root. To configure the application, the easiest way is to run the GUI configuration tool :

$ mono Configurator.exe

This will launch the service configuration tool, on my test machine this window looks like this:


I’m going to use the “easy configuration” which will perform a default setup of the client registry. You can perform a more advanced configuration (follow the advanced configuration tutorial) however to simply test the CR the easy way works:


Pressing configure will configure the client registry components:


You may also be prompted to install updates into the schemas created by the configuration tool:


Finally, if all succeeds, the configuration tool will be displayed. There are a few more things to configure:

  1. You must “un-configure” the Administrative Interface
  2. You cannot configure Everest (there is an issue with the Mono WCF configuration loading in Linux)

I recommend configuring HL7v2 to receive PIX/PDQ messages. You’ll need to install a TLS certificate into the mono security store if you want to secure the transport, this tutorial will use an unsecured port.


Finally, to test, run the client registry in console mode, I recommend following the log generated with tail to see output, otherwise you’ll be prompted with:

sudo mono ClientRegistry.exe --console
MARC-HI Service Host Console v1.1.2.0
Copyright (C) 2010-2015, Mohawk College of Applied Arts and Technology
Press any key to stop...

You can, of course, create an init script to keep this process running on boot.

Last edited Sep 8, 2015 at 7:10 PM by jf03cg, version 2