Ideally, every representation of data in a system, and every system function, should be accessible through an open interface, so that any software that processes the data, or implements the functions, can be changed. If not, then many of the benefits of using open source and open standards may be lost.

Open standards should allow for the free interchange of data – this must include changing to use different, more effective standards as these become available; locking standards inside systems, rather than exposing all data and functions through open interfaces, also locks the system into the use of a particular set of standards.

Similarly, the use of monolithic open source ‘products’ that attempt to supply all the functions required in a system can expose the customer to many of the same limitations associated with proprietary products; the solution is focused on the capabilities of the product, not the specific requirements of the customer.

The basic building blocks of functionality in healthcare systems are similar to those of any other system – data entry, data visualisation, workflow, ordering, scheduling, booking, reporting, etc. And most of the basic requirements for data storage, data exchange, security and access control are not unique to healthcare either.

So the ultimate goal in using open system interfaces is to allow the combination of open source software from multiple suppliers, with continuous objective evaluation of the best software to use for any particular function. The open source components can be designed for general application, or specifically for healthcare, and can be small components that implement just a few functions, or larger modules implementing a whole block of features.