This is the Core component of Open Hospital: it contains the business logic and the data abstraction layer.
The Core component is used by the Java Swing desktop GUI, and by the web UI (through the API component).
After having installed Java JDK 17+ and Maven (or using the provided Maven Wrapper mvnw
), to build this project issue:
mvn package
To use the Core component in the other projects, you'll need to install it locally with:
mvn install
To run the tests simply issue:
mvn test
Note: tests are run against an in-memory database (H2).
To run tests against a MariaDB instance, see How to run DB with Docker
Then you can change src/test/resources/resources/database.properties
From:
jdbc.class=org.h2.Driver
jdbc.url=jdbc:h2:mem:myDb;MODE=MySQL;IGNORECASE=TRUE;DB_CLOSE_DELAY=-1
...
hibernate.dialect=org.hibernate.dialect.H2Dialect
hibernate.hbm2ddl.auto=update
jdbc.username=root
jdbc.password=root
To: (use .env variables):
jdbc.url=jdbc:mysql://localhost:[OH_MARIADB_PORT]/[OH_MARIADB_DATABASE]
jdbc.username=[OH_MARIADB_USER]
jdbc.password=[OH_MARIADB_PASSWORD]
Copy dotenv
into .env
and set parameters as needed, otherwise defaults will be used:
OH_MARIADB_DATABASE=oh
OH_MARIADB_ROOT_PASSWORD=root
OH_MARIADB_USER=isf
OH_MARIADB_PASSWORD=isf123
OH_MARIADB_PORT=3306
OH_DB_LANG=en # refer to sql/data_xx/ folders
Clean previous builds:
docker compose rm --stop --volumes --force
Build and run a mariadb instance at localhost:[OH_MARIADB_PORT]
:
docker-compose up
To run Open Hospital, you'll need a user interface, which is provided in the GUI and in the UI projects.
Please follow the instructions in the documentation of those repositories.
You can find the contribution guidelines in the Open Hospital wiki.
A list of open issues is available on Jira.
You can reach out to the community of contributors by joining our Slack workspace or by subscribing to our mailing list.
This project uses a consistent code style and provides definitions for use in both IntelliJ and Eclipse IDEs.
IntelliJ IDEA instructions
For IntelliJ IDEA the process for importing the code style is:
- Select Settings in the File menu
- Select Editor
- Select Code Style
- Expand the menu item and select Java
- Go to Scheme at the top, click on the setting button by the side of the drop-down list
- Select Import Scheme
- Select IntelliJ IDE code style XML
- Navigate to the location of the file which relative to the project root is:
.ide-settings/idea/OpenHospital-code-style-configuration.xml
- Select OK
- At this point the code style is stored as part of the IDE and is used for all projects opened in the editor. To restrict the settings to just this project again select the setting button by the side of the Scheme list and select Copy to Project.... If successful a notice appears in the window that reads: For current project.
Eclipse instructions
For Eclipse the process requires loading the formatting style and the import order separately.
- Select Preferences in the Window menu
- Select Java
- Select Code Style and expand the menu
- Select Formatter
- Select the Import... button
- Navigate to the location of the file which relative to the project root is:
.ide-settings/eclipse/OpenHospital-Java-CodeStyle-Formatter.xml
- Select Open
- At this point the code style is stored and is applicable to all projects opened in the IDE. To restrict the settings just to this project select Configure Project Specific Settings... in the upper right. In the next dialog select the openhospital repository and select OK. In the next dialog select the Enable project specific settings checkbox. Finally select Apply and Close.
- Back in the Code Style menu area, select Organize Imports
- Select Import...
- Navigate to the location of the file which relative to the project root is:
.ide-settings/eclipse/OpenHospital.importorder
- Select Open
- As with the formatting styles the import order is applicable to all projects. In order to change it just for this project repeat the same steps as above for Configure Project Specific Settings...