Felicity is the Next Generation LIMS Software for the modern Medical Laboratory.
Find a file
2023-04-07 17:52:19 +02:00
.idea added string based snowflake id 2023-03-19 17:21:32 +02:00
.vscode initialited hl7 integration translations 2022-12-20 10:10:00 +02:00
deploy-scripts restructures backend 2023-04-07 17:52:19 +02:00
felicity restructures backend 2023-04-07 17:52:19 +02:00
migrations restructures backend 2023-04-07 17:52:19 +02:00
public restructures backend 2023-04-07 17:52:19 +02:00
scripts restructures backend 2023-04-07 17:52:19 +02:00
services nginx dev working 2023-02-27 00:46:31 +02:00
traefik-public-certificates nginx dev working 2023-02-27 00:46:31 +02:00
types restructures backend 2023-04-07 17:52:19 +02:00
webapp restructures backend 2023-04-07 17:52:19 +02:00
.deepsource.toml Add .deepsource.toml 2022-01-29 04:36:04 +00:00
.gitignore .gitignore is now working 2022-02-08 18:23:19 +02:00
al_revision.sh restructures backend 2023-04-07 17:52:19 +02:00
al_upgrade.sh restructures backend 2023-04-07 17:52:19 +02:00
alembic.ini restructures backend 2023-04-07 17:52:19 +02:00
apollo.config.js restructures backend 2023-04-07 17:52:19 +02:00
dc.dev.yaml docker dev now working" 2023-02-26 23:26:07 +02:00
dc.nginx.dev.yaml nginx dev working 2023-02-27 00:46:31 +02:00
dc.nginx.prod.yaml nginx dev working 2023-02-27 00:46:31 +02:00
dc.traefik.dev.yaml nginx dev working 2023-02-27 00:46:31 +02:00
dc.traefik.prod.yaml nginx dev working 2023-02-27 00:46:31 +02:00
Dockerfile restructures backend 2023-04-07 17:52:19 +02:00
Dockerfile.frontend restructures backend 2023-04-07 17:52:19 +02:00
Dockerfile.frontend-prod restructures backend 2023-04-07 17:52:19 +02:00
env restructures backend 2023-04-07 17:52:19 +02:00
env.local restructures backend 2023-04-07 17:52:19 +02:00
env.production restructures backend 2023-04-07 17:52:19 +02:00
example.env completed anaysis interims 2022-02-23 12:35:43 +02:00
felicity.iml added reflex rules 2022-02-05 21:36:45 +02:00
felicity.sh restructures backend 2023-04-07 17:52:19 +02:00
index.html restructures backend 2023-04-07 17:52:19 +02:00
merged-output.pdf restructures backend 2023-04-07 17:52:19 +02:00
mypy.ini restructures backend 2023-04-07 17:52:19 +02:00
package.json restructures backend 2023-04-07 17:52:19 +02:00
pnpm-lock.yaml restructures backend 2023-04-07 17:52:19 +02:00
postcss.config.js restructures backend 2023-04-07 17:52:19 +02:00
prestart.sh restructures backend 2023-04-07 17:52:19 +02:00
Procfile restructures backend 2023-04-07 17:52:19 +02:00
pyproject.toml restructures backend 2023-04-07 17:52:19 +02:00
pytest.ini restructures backend 2023-04-07 17:52:19 +02:00
README.md updated project readme2 2022-11-06 12:17:59 +02:00
requirements.txt restructures backend 2023-04-07 17:52:19 +02:00
runserver.sh restructures backend 2023-04-07 17:52:19 +02:00
runtests.sh restructures backend 2023-04-07 17:52:19 +02:00
runtime.txt restructures backend 2023-04-07 17:52:19 +02:00
runuvicorn.sh restructures backend 2023-04-07 17:52:19 +02:00
tailwind.config.js restructures backend 2023-04-07 17:52:19 +02:00
tsconfig.json restructures backend 2023-04-07 17:52:19 +02:00
vite.config.js restructures backend 2023-04-07 17:52:19 +02:00
worker-prestart.sh restructures backend 2023-04-07 17:52:19 +02:00
worker-start.sh restructures backend 2023-04-07 17:52:19 +02:00

FELICITY LIMS (under active development)

Screenshot1

A next generation open source laboratory information management system for clinical/medical laboratories.

Descritpion

The Felicity LIMS project aims to create a Laboratory Information Management System (LIMS) that tracks the complete laboratory workflow providing all the functionalities of a Laboratory Information Management System.

Felicity strives to promote an accurate flow of sample and associated experimental data to and through a laboratory to produce information that is used to make conclusions and critical decisions.

Felicity LIMS will ensure that sufficient metadata is captured and clinical laboratory personnel can track the lifecycle of a biospecimen in the laboratory from receipt to dispacth.

Felicity Backend is developed in Python using the FastAPI framework and strawberry GraphQL. Felicity FrontEnd is developed in VueJs, URQL, and Tailwind CSS.

Felicity is the quality of being good, pleasant, or desirable.

Main Features

  • Sample status tracking
  • Flexible batched sample workflow
  • Quality Control - LJ Charts etc
  • Reporting
  • Highly customizable and extensible
  • Customizable Role based permissions

Installation

Direct

Backend Installation

using poetry

Fist install Poetry Then follow instructions below

git clone https://github.com/aurthurm/felicity.git
cd felicity
cd backend/felicity_lims
poetry install
bash felicity.sh &
using anaconda

Fist install Miniconda Then follow instructions below

conda create -n felicity python=3.9
conda activate felicity
git clone https://github.com/aurthurm/felicity.git
cd felicity
cd backend/felicity_lims
pip install -r requirements.txt
bash felicity.sh &

Frontend Installation

Install NodeJs Install Yarn Then follow instructions below

cd felicity/frontent/vite
yarn install
# for production mode
yarn build
yarn start
# for development mode
yarn dev

Docker

This method uses Docker and docker-compose which handles the details of installing dependencies for you. On your Linux command line, run:

git clone https://github.com/aurthurm/felicity.git
cd felicity
docker-compose up -d

Loadtest

Start the application with gunicorn and experiment with various workers

gunicorn --workers 4 --bind 0.0.0.0:8000 -k uvicorn.workers.UvicornWorker --reload felicity.main:flims

Experiment with various -c and --rps values

sudo npm install -g loadtest
loadtest --data '{"query": "query{clientAll{items{uid name code district{uid name email emailCc province{uid name code country{uid name}}}}}}"}' -c 4 --rps 500  http://localhost:8000/felicity-gql -T 'application/json'
loadtest --data '{"query": "query getAllSamples{sampleAll(pageSize:10 afterCursor:\"\" status:\"\" text:\"\" clientUid:0 sortBy:[\"uid\"]){totalCount pageInfo{hasNextPage hasPreviousPage endCursor startCursor __typename}items{uid analysisRequest{uid clientRequestId patient{uid firstName lastName clientPatientId gender dateOfBirth age ageDobEstimated consentSms __typename}client{uid name __typename}__typename}sampleType{uid name __typename}sampleId priority status analyses{uid name sortKey __typename}profiles{uid name __typename}rejectionReasons{uid reason __typename}__typename}__typename}}"}' -c 10 --rps 10000  http://localhost:8000/felicity-gql -T 'application/json'

The application seems to be very performant even without using a load balancer and caching.

Other projects

- Felicity Docs - Built with Laboratory QMS in Mind but can be used anywhere for document management
- Felicity Stocker - Medical Laboratory Inventory Management system
- Felicity Request - Requests and Approvals (e-Requisitions)
- Felicity Grind - Team Works, Project Management Tool, Issue Tracker
- Felicity Field - Survey Data Collection Tool, Forms ,Analytics etc

Contact