Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

README update suggestion #89

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
102 changes: 62 additions & 40 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,60 +1,82 @@
OpenElis
========
## OpenElis

[![Build and Publish OpenELIS](https://github.com/Bahmni/OpenElis/actions/workflows/build_publish_openelis.yml/badge.svg)](https://github.com/Bahmni/OpenElis/actions/workflows/build_publish_openelis.yml)

[![Build and Publish OpenELIS Demo DB](https://github.com/Bahmni/OpenElis/actions/workflows/build_publish_openelis_demoDB.yml/badge.svg)](https://github.com/Bahmni/OpenElis/actions/workflows/build_publish_openelis_demoDB.yml)

[![Build and Publish OpenELIS Fresh DB](https://github.com/Bahmni/OpenElis/actions/workflows/build_publish_openelis_freshDB.yml/badge.svg)](https://github.com/Bahmni/OpenElis/actions/workflows/build_publish_openelis_freshDB.yml)

forked from OpenElis_v3.1_r2013_02_21 branch in svn
Forked from the `OpenElis_v3.1_r2013_02_21` branch in SVN.

*Requirements to build OpeneLIS*
* `java` version <= "1.7"
* `ant` version <= "1.9.1"
* `ruby` version == "3.1" and `gem install compass`
### Prerequisites

*To build OpenElis run*
* `ant dist` Creates OpenELIS War
* `ant setupDB test test-only dist` Creates clinlims database in postgres, runs tests, and then creates OpenELIS War
* `./scripts/vagrant-deploy.sh` Create OpenELIS War and deploys it to your vagrant's tomcat
* `./scripts/vagrant-database.sh` Runs Liquibase migration script in your vagrant
This project requires specific versions of tools to build and run OpenElis:

## Bahmni OpenELIS (bahmni-lab) docker image
Docker images for [OpenELIS](https://hub.docker.com/r/bahmni/openelis/tags) and it's [database](https://hub.docker.com/r/bahmni/openelis-db/tags) are built using [Github Actions](/.github/workflows).
- **Java**: Version ≤ 1.7
- **Ant**: Version ≤ 1.9.1
- **Ruby**: Version = 3.1 (also requires `gem install compass`)

Resources to build the following docker images can be found in the [package](/package) directory.
1. bahmni/openelis
2. bahmni/openelis-db:fresh
3. bahmni/openelis-db:demo
### Installation Steps

Transifex Configuration
===========================
Transifex is a web based translation platform where one can do the translations and can be pulled into the codebase.
[Link](http://docs.transifex.com/client/config/#transifexrc) to setup the Transifex Client
#### Option 1: Manual Installation

* `tx pull -a` downloads the property files
Run the following commands to build OpenElis:

For more information please refer this [link](https://bahmni.atlassian.net/wiki/display/BAH/Translating+Bahmni)
1. To create the OpenELIS WAR file:
```bash
ant dist
```
2. To set up the database, run tests, and create the WAR file:
```bash
ant setupDB test test-only dist
```
3. To create and deploy to Vagrant's Tomcat:
```bash
./scripts/vagrant-deploy.sh
```
4. To run Liquibase migration script in Vagrant:
```bash
./scripts/vagrant-database.sh
```

Technical issues with the codebase
======================================
### Docker Images

- Transaction and Hibernate session management
- Pagination handled via HttpSession
- Code duplication in various places (need examples here)
- ResultValidationPaging, ResultsPaging and AnalyzerResultsPaging. Same copy-pasted code with very minor difference.
Docker images for OpenElis and its database are built using GitHub Actions.

Functional changes made by us
=============================
- The order should contain the panel along with the tests. Hence making panel more than convenience tool for selecting multiple tests.
- AtomFeed based integration with OpenMRS and OpenERP
- REST endpoint for Patient, LabResults
- [bahmni/openelis](https://hub.docker.com/r/bahmni/openelis/tags)
- [bahmni/openelis-db:fresh](https://hub.docker.com/r/bahmni/openelis-db/tags)
- [bahmni/openelis-db:demo](https://hub.docker.com/r/bahmni/openelis-db/tags)

- Added functionality to validate test results by a particular accession number. Also you can see items to be validated across all test sections.
Resources for building these images can be found in the [package directory](/package).

Technical improvements
======================
- Added ant buld
- Shortcircuited all calls to Session.clear
### Transifex Configuration

Transifex is a web-based translation platform for managing translations. To set up the Transifex Client, follow the [documentation](http://docs.transifex.com/client/config/#transifexrc).

- To pull property files:
```bash
tx pull -a
```
Refer to the [Bahmni Translating Guide](https://bahmni.atlassian.net/wiki/display/BAH/Translating+Bahmni) for more details.

### Functional Changes

The following functional improvements have been made:

- Orders now contain panels along with tests, making the panel more than a convenience tool for selecting multiple tests.
- Integration with OpenMRS and OpenERP using AtomFeed.
- Added REST endpoints for Patient and LabResults.
- Introduced functionality to validate test results by accession number, along with a view for items needing validation across sections.

### Technical Improvements

- Added Ant build support.
- Optimized calls to `Session.clear`.

### Known Issues

- Transaction and Hibernate session management challenges.
- Pagination handled via `HttpSession`.
- Code duplication in the following areas:
- ResultValidationPaging, ResultsPaging, and AnalyzerResultsPaging (same copy-pasted code with minor differences).