Build the code
The developers guide has chapters on building the source code, configuring and deploying the application. Technical overviews of code generation (coming soon) and how to build new applications is briefly described.
This document is primarily written for developers who want to be able to work on any part of PatientOS. You should have a good understanding of Object Oriented Programming, and Java as it is the main programming language used in the project.
Scope of this document
This document will try to answer the following questions:
- How is the source code organized?
- Which technologies are used?
- Where do I start?
- How do the components work together?
- How do I contribute code?
Java is used throughout PatientOS, from the server to the client. The client is Swing though you will find only a moderate amount of Swing specific code in the source as the client is dynamically generated at runtime based upon database settings.
These database settings define the complex hierarchy of forms, menus, toolbars, controls, buttons and everything else that makes up an application. It would very time consuming to enter these settings manually into the database and so PatientOS actually comes with prebuilt tools to create applications, dialogs, forms, tables and much more.
PatientOS is a multithreaded application. You should understand what that means and how both Java and Swing typically handles this complexity. For the most part the framework will insulate you from having to deal with threads but it is helpful to know before working directly on any of the common Swing components
The PatientOS framework and application design is very heavy on the Facade, Mediator, and a few other patterns.