Skip to main content

Frequently Asked Questions

Welcome to Open Healthcare Network! This FAQ section addresses common questions and provides solutions to help you get started smoothly.

Project Overview

What are the main components of the Open Healthcare Network?

The Open Healthcare Network consists of two core repositories:

What plugins are available?

PluginBackendFrontend
ABDM (Ayushman Bharat Digital Mission)care_abdmcare_abdm_fe
HCX (Health Claims Exchange)care_hcxcare_hcx_fe
Scribe (Voice Assistant)care_scribecare_scribe_fe
TeleICU Devices (Remote ICU Monitoring Integration)care_teleicu_devicescare_teleicu_devices_fe
LiveKit (Real-time Communication)care_livekitcare_livekit_fe
Ayushma (AI Assistant)ayushmaayushma_fe

Backend Setup

How do I load initial data for development?

You can load development and test fixtures in two ways:

  1. Using make:
make load-fixtures
  1. Using Docker directly:
docker compose exec backend bash -c "python manage.py load_fixtures"

How do I load location-specific government organization data?

To load data for a specific state (e.g., Kerala), use:

docker compose exec backend bash -c "python manage.py load_govt_organization --state kerala --load-districts --load-local-bodies --load-wards"

How do I create a superuser account?

To create a superuser for accessing the Django admin interface:

docker compose exec backend bash -c "python manage.py createsuperuser"

Follow the prompts to enter username, email, and password.

How do I fix permission and role issues?

If you encounter access or permission issues, run:

python manage.py sync_permissions_roles

This ensures that user roles are correctly mapped to permissions.

What should I do if the backend container is unhealthy?

  1. Check the logs for error messages:
docker logs <container_name>
# Example:
docker logs care-backend-1
  1. Open the Django shell for debugging:
docker exec -it <container_name> python manage.py shell
# Example:
docker exec -it care-backend-1 python manage.py shell
  1. Rebuild and restart the services:
make teardown
make up

Frontend Setup

What Node.js version is required?

The frontend projects require Node.js 22. Use nvm to install and switch versions:

nvm install 22
nvm use 22

To verify the active Node version:

node -v

Note: Always sync with the latest develop branch before starting frontend work.

How do I resolve dependency installation issues?

If you see peer dependency warnings or install failures:

  1. Try installing with legacy peer deps:
npm install --legacy-peer-deps
  1. If issues persist:
npm cache clean --force
rm -rf node_modules
npm install

How do I fix API connection issues?

  1. Ensure the backend server is running
  2. Check your .env file in the frontend project:
REACT_CARE_API_URL=http://127.0.0.1:9000

How do I fix build errors?

If you encounter TypeScript errors or linting issues:

npm run lint-fix

What should I do if Cypress tests are failing?

Cypress test failures are often specific to individual PRs and may not indicate a broader issue with your local setup. If you encounter failing Cypress tests:

  1. Check if tests pass locally:

    npm run cypress:run
  2. Run tests in interactive mode for debugging:

    npm run cypress:open
  3. If tests fail consistently, discuss the issue in the Slack community - the community can help identify if it's a known issue or specific to your PR.

Note: Many Cypress failures are flaky tests that pass on retry. If tests fail in CI but pass locally, it's often a timing or environment issue rather than a code problem.

Plugin Setup

How do I set up a plugin?

Most plugins follow this pattern in plug_config.py:

plugin_name = Plug(
name="plugin_name",
package_name="git+https://github.com/ohcnetwork/plugin_repo.git",
version="@master", # or specific version
configs={}, # plugin-specific settings
)
plugs = [plugin_name]

How do I develop plugins locally?

  1. Update plug_config.py:
plugin_name = Plug(
name="plugin_name",
package_name="/app/plugin_folder",
version="",
configs={},
)
  1. In plugs/manager.py, install in editable mode:
subprocess.check_call(
[sys.executable, "-m", "pip", "install", "-e", *packages]
)
  1. Rebuild and restart the containers:
make re-build
make up

What should I do if a plugin isn't loading?

For backend plugins:

  • Ensure the plugin name matches the Django app name
  • Verify the path or repository URL is correct
  • Check that all required environment variables are configured

For frontend plugins:

  • Verify you're using the correct Node.js version
  • In care_fe/.env, ensure the plugin is added to REACT_ENABLED_APPS:
REACT_ENABLED_APPS="ohcnetwork/plugin_name_fe@localhost:5173"
  • Make sure the plugin dev server is running on the expected port

Learning Resources

What learning resources are available?

  1. Docker and Container Technology

  2. OHC School Courses