Non-Functional Requirements

The following are recommended non-functional requirements for the OpenHIE component software depicted in the gray box of figure 2.1 and further defined in this document. OpenHIE supports the use of technology that is appropriate for the use case and does not preclude the use of proprietary tools but rather supports the use of tools that are built to meet the needs and support the implementation. OpenHIE does require that technologies do not create a “lock-in” scenario whereby the implementer has no access to their data and as such supports an approach to an open architecture.


OpenHIE Non-Functional Requirements

Notes for system evaluation

Recommendation/ Requirement


Technologies should provide standard means of accessing data within the system that does not lock the client into proprietary data formats or storage mechanisms.

Please provide documentation on API usage.



The system should be well Documented: An OpenHIE reference system should include appropriate background, design, installation, configuration, and operational documentation to ensure it is easy to understand, maintain, and debug.

  1. Source code should have comments so that developers do not need to look anywhere else to understand the code.

  2. Configuration files should have embedded comments explaining the different options.

  3. Installation, configuration, and operational activities should be describe

Please provide links to documentation and source code Including:

  1. Source code documentation policies or examples of comment practices should be shared.

  2. Please share configuration files.

  3. Please provide installation documentation or links to scripts.

  4. Please provide links to source code.



If the system is an open source tool the system should have open, easy access to source code: A standard version control system (e.g., GitHub) should be used to ensure that source code access is fast, easy to download, compile, and execute code.

Please provide links to files and source code repository.

Also provide the git flow structure of the repository. E.g production, dev and bug branches.



The system should be built using common technology:

  1. In order to make it easy to run/configure/debug, the software should be built on popular technologies that are widely accepted.

  2. Any 3rd party libraries used by the software should be easy for a typical developer to use.

  3. Any external software/systems (like the database) should also be easy to use.

  4. It should be easy to view the contents of the database.

Please state the key programming languages and supported technology platforms.

Please list third-party libraries needed

Please provide the database entity relationship mapping diagram and documentation.



The source code should include unit tests that are based on the specific requirements of OpenHIE and that create a framework to validate functionality and that the system operates as designed.

Provide links to testing documentation



OpenHIE does not preclude the use of proprietary solutions. If an open source solution is selected it is recommended that the component would, ideally, be distributed under an OSI approved open-source license that minimizes complexity and enables an implementer community to leverage the software in a broad variety of sustainability contexts.

Please share your license



The system should take into account the IT infrastructure of low resource settings where electricity, internet and/or technical literacy may be limited.



Have a community of practices for the global good applications and ensure that there are clear directions on how to engage with the community.

Link to the community and documentation on the way to contact the leaders.



Security practices should include supporting role-based access control lists where appropriate.



It is recommended that there are security practices to notify global good application implementers when security patches are needed.



There should be a community plan for maintaining and evaluating the application for cyber security risks.



Application licenses shall be clearly stated.


Last updated