factis research develops software products for the health care and social services market. We also contribute to various open source projects.


Our product factis is a mobile application for guiding home care nurses and tracking time and procedures for each client. Our customers in Germany, Switzerland and Luxembourg are mainly nursing services, but the software is also successfully being employed by facilities for outpatient care of children and disabled people. factis consists of a mobile application running on ordinary cell phones and a web application for online controlling, evaluation of service quality and reporting. The design and development of factis is joint effort of factis research and Lohmann & Birkner Mobile Services GmbH.

Checkpad MED

Checkpad MED is an electronic health record for the iPad. It provides doctors mobile access to all relevant medical information such as images, letters, surgery reports, and patient data. The Checkpad MED product consists of an iPad application and several server components for data synchronization and import. The design and development of Checkpad MED is joint effort of factis research and Lohmann & Birkner Health Care Consulting GmbH.

Open Source Projects

factis research puts an emphasis on open standards and open source solutions. Hence, we publish many of our internal projects as open source software.


Roundtrip allows the definition of bidirectional (de-)serialization specifications. The specification is succinct, bidirectional, and supports extensibility with respect to the output format (e.g. plain text, XML, HL7, or HTTP). Further, the programmer retains full control over the serialization format and the shape of the data types being serialized.

There are implementations of roundtrip for Haskell and Scala. The Haskell version consists of three packages: roundtrip (hackage, darcs repository), roundtrip-string (hackage, darcs repository), and roundtrip-xml (hackage, darcs repository). A preliminary tutorial is also available. The Scala version is still under development and only avaible in source form.[1]


xmlgen is a Haskell library for high-performance XML generation. Its source code is available on github, see this blog article for further documentation.


HTF (Haskell Test Framework) is a test framework that allows the definition of unit tests, QuickCheck properties, and shell-based tests in a uniform and convenient way. HTF uses a custom preprocessor that collects test definitions automatically. Furthermore, the preprocessor allows HTF to report failing test cases with exact file name and line number information. The source code is available,[1] a blog article documents the main features of HTF.


DPM (Darcs Patch Manager) is a tool that simplifies working with the revision control system darcs. It is most effective when used in an environment where developers do not push their patches directly to the main repository but where patches undergo a reviewing process before they are actually applied. To simplify patch reviewing, DPM also provides an integration for the reviewing tool rietveld. We use DPM for nearly all our projects. Source code is available, a blog article describes DPM in greater detail.

[1] We mainly use the revision control system darcs. For accessing a darcs repository, use the command darcs get --set-scripts-executable REPO_URL