{"id":13552983,"url":"https://github.com/openmrs/openmrs-core","last_synced_at":"2026-10-19T10:18:53.857Z","repository":{"id":4082118,"uuid":"5187976","full_name":"openmrs/openmrs-core","owner":"openmrs","description":"OpenMRS API and web application code","archived":false,"fork":false,"pushed_at":"2026-10-08T13:44:45.000Z","size":246251,"stargazers_count":1937,"open_issues_count":308,"forks_count":4426,"subscribers_count":147,"default_branch":"master","last_synced_at":"2026-10-08T17:41:02.262Z","etag":null,"topics":["ehr","emr","health","healthcare","hospital","java","medical-records","openmrs","openmrs-community"],"latest_commit_sha":null,"homepage":"http://openmrs.org","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openmrs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE.md","maintainers":null,"copyright":null,"agents":null,"claude":null,"gemini":null,"cursor":null,"copilot":null,"dco":null,"cla":null,"disclosure":null}},"created_at":"2012-07-26T04:54:29.000Z","updated_at":"2026-10-08T14:20:18.000Z","dependencies_parsed_at":"2026-09-28T18:25:07.883Z","dependency_job_id":null,"html_url":"https://github.com/openmrs/openmrs-core","commit_stats":{"total_commits":10981,"total_committers":474,"mean_commits":"23.166666666666668","dds":0.7783444130771332,"last_synced_commit":"884a51cb00d6e74006cdd95067d3cad376638c5f"},"previous_names":[],"tags_count":232,"template":false,"template_full_name":null,"purl":"pkg:github/openmrs/openmrs-core","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openmrs%2Fopenmrs-core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openmrs%2Fopenmrs-core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openmrs%2Fopenmrs-core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openmrs%2Fopenmrs-core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openmrs","download_url":"https://codeload.github.com/openmrs/openmrs-core/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openmrs%2Fopenmrs-core/sbom","scorecard":{"id":14061,"data":{"date":"2025-08-04","repo":{"name":"github.com/openmrs/openmrs-core","commit":"21ffb0a8039772620711d07aefcf3b8275ff998f"},"scorecard":{"version":"v5.2.1-28-gc1d103a9","commit":"c1d103a9bb9f635ec7260bf9aa0699466fa4be0e"},"score":6.1,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#packaging"}},{"name":"Code-Review","score":7,"reason":"Found 18/25 approved changesets -- score normalized to 7","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#cii-best-practices"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#license"}},{"name":"Security-Policy","score":9,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Warn: One or no descriptive hints of disclosure, vulnerability, and/or timelines in security policy","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#security-policy"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#dangerous-workflow"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#signed-releases"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/build-2.x.yaml:1","Info: topLevel permissions set to 'read-all': .github/workflows/build.yaml:14","Info: topLevel 'actions' permission set to 'read': .github/workflows/codeql-analysis.yml:24","Info: topLevel 'contents' permission set to 'read': .github/workflows/codeql-analysis.yml:25","Warn: topLevel 'security-events' permission set to 'write': .github/workflows/codeql-analysis.yml:26","Info: topLevel permissions set to 'read-all': .github/workflows/scorecard.yml:16","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#token-permissions"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#branch-protection"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#binary-artifacts"}},{"name":"SAST","score":10,"reason":"SAST tool detected","details":["Info: SAST configuration detected: CodeQL","Info: SAST configuration detected: Sonar","Info: all commits (25) are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#sast"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-2.x.yaml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/openmrs/openmrs-core/build-2.x.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-2.x.yaml:33: update your workflow using https://app.stepsecurity.io/secureworkflow/openmrs/openmrs-core/build-2.x.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build-2.x.yaml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/openmrs/openmrs-core/build-2.x.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yaml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/openmrs/openmrs-core/build.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yaml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/openmrs/openmrs-core/build.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/openmrs/openmrs-core/codeql-analysis.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/openmrs/openmrs-core/codeql-analysis.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:57: update your workflow using https://app.stepsecurity.io/secureworkflow/openmrs/openmrs-core/codeql-analysis.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:64: update your workflow using https://app.stepsecurity.io/secureworkflow/openmrs/openmrs-core/codeql-analysis.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:78: update your workflow using https://app.stepsecurity.io/secureworkflow/openmrs/openmrs-core/codeql-analysis.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/scorecard.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/openmrs/openmrs-core/scorecard.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/scorecard.yml:35: update your workflow using https://app.stepsecurity.io/secureworkflow/openmrs/openmrs-core/scorecard.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/scorecard.yml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/openmrs/openmrs-core/scorecard.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/scorecard.yml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/openmrs/openmrs-core/scorecard.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/stale.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/openmrs/openmrs-core/stale.yml/master?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:15","Warn: containerImage not pinned by hash: Dockerfile:62","Warn: containerImage not pinned by hash: Dockerfile:108","Info:   0 out of  14 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   3 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":3,"reason":"7 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-4gg5-vx3j-xwc7","Warn: Project is vulnerable to: GHSA-735f-pc8j-v9w8","Warn: Project is vulnerable to: GHSA-g5ww-5jh7-63cx","Warn: Project is vulnerable to: GHSA-h4h5-3hr4-j3g2","Warn: Project is vulnerable to: GHSA-m6vm-37g8-gqvh","Warn: Project is vulnerable to: GHSA-4265-ccf5-phj5","Warn: Project is vulnerable to: GHSA-4g9r-vxhx-9pgx"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-14T15:19:15.020Z","repository_id":4082118,"created_at":"2025-08-14T15:19:15.020Z","updated_at":"2025-08-14T15:19:15.020Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":344872684,"owners_count":38354716,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-10-03T21:59:58.778Z","status":"online","status_checked_at":"2026-10-19T02:00:06.414Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ehr","emr","health","healthcare","hospital","java","medical-records","openmrs","openmrs-community"],"created_at":"2024-08-01T12:02:14.738Z","updated_at":"2026-10-19T10:18:53.851Z","avatar_url":"https://github.com/openmrs.png","language":"Java","funding_links":[],"categories":["Java","java","企业软件开发"],"sub_categories":["文件同步"],"readme":"\u003cimg src=\"https://talk.openmrs.org/uploads/default/original/2X/f/f1ec579b0398cb04c80a54c56da219b2440fe249.jpg\" alt=\"OpenMRS\"/\u003e\n\n[![Build Status](https://github.com/openmrs/openmrs-core/actions/workflows/build.yaml/badge.svg?branch=master)](https://github.com/openmrs/openmrs-core/actions/workflows/build.yaml) [![Coverage Status](https://codecov.io/gh/openmrs/openmrs-core/branch/master/graph/badge.svg)](https://app.codecov.io/gh/openmrs/openmrs-core) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=openmrs_openmrs-core\u0026amp;metric=alert_status)](https://sonarcloud.io/summary/new_code?id=openmrs_openmrs-core)\n\napi: [![API](https://snyk.io/test/github/openmrs/openmrs-core/badge.svg?targetFile=api%2Fpom.xml)](https://snyk.io/test/github/openmrs/openmrs-core?targetFile=api%2Fpom.xml)\ntest: [![test](https://snyk.io/test/github/openmrs/openmrs-core/badge.svg?targetFile=test%2Fpom.xml)](https://snyk.io/test/github/openmrs/openmrs-core?targetFile=test%2Fpom.xml)\ntools: [![tools](https://snyk.io/test/github/openmrs/openmrs-core/badge.svg?targetFile=tools%2Fpom.xml)](https://snyk.io/test/github/openmrs/openmrs-core?targetFile=tools%2Fpom.xml)\nweb: [![web](https://snyk.io/test/github/openmrs/openmrs-core/badge.svg?targetFile=web%2Fpom.xml)](https://snyk.io/test/github/openmrs/openmrs-core?targetFile=web%2Fpom.xml)\nwebapp: [![webapp](https://snyk.io/test/github/openmrs/openmrs-core/badge.svg?targetFile=webapp%2Fpom.xml)](https://snyk.io/test/github/openmrs/openmrs-core?targetFile=webapp%2Fpom.xml)\nDPGA: [![DPG Badge](https://img.shields.io/badge/Verified-DPG-3333AB?logo=data:image/svg%2bxml;base64,PHN2ZyB3aWR0aD0iMzEiIGhlaWdodD0iMzMiIHZpZXdCb3g9IjAgMCAzMSAzMyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE0LjIwMDggMjEuMzY3OEwxMC4xNzM2IDE4LjAxMjRMMTEuNTIxOSAxNi40MDAzTDEzLjk5MjggMTguNDU5TDE5LjYyNjkgMTIuMjExMUwyMS4xOTA5IDEzLjYxNkwxNC4yMDA4IDIxLjM2NzhaTTI0LjYyNDEgOS4zNTEyN0wyNC44MDcxIDMuMDcyOTdMMTguODgxIDUuMTg2NjJMMTUuMzMxNCAtMi4zMzA4MmUtMDVMMTEuNzgyMSA1LjE4NjYyTDUuODU2MDEgMy4wNzI5N0w2LjAzOTA2IDkuMzUxMjdMMCAxMS4xMTc3TDMuODQ1MjEgMTYuMDg5NUwwIDIxLjA2MTJMNi4wMzkwNiAyMi44Mjc3TDUuODU2MDEgMjkuMTA2TDExLjc4MjEgMjYuOTkyM0wxNS4zMzE0IDMyLjE3OUwxOC44ODEgMjYuOTkyM0wyNC44MDcxIDI5LjEwNkwyNC42MjQxIDIyLjgyNzdMMzAuNjYzMSAyMS4wNjEyTDI2LjgxNzYgMTYuMDg5NUwzMC42NjMxIDExLjExNzdMMjQuNjI0MSA5LjM1MTI3WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==)](https://digitalpublicgoods.net/r/openmrs)\n\nOpenMRS is a patient-based medical record system focusing on giving providers a free customizable electronic medical record system (EMR).\n\nThe mission of OpenMRS is to improve health care delivery in resource-constrained environments by coordinating a global community that creates a robust, scalable, user-driven, open source medical record system platform.\n\n#### Table of Contents\n\n1. [Build](#build)\n   1. [Prerequisites](#prerequisites)\n   2. [Build Command](#build-command)\n   3. [Deploy](#deploy)\n2. [Docker build](#docker-build)\n3. [Navigating the repository](#navigating-the-repository)\n4. [Software Development Kit](#software-development-kit)\n5. [Extending OpenMRS with Modules](#extending-openmrs-with-modules)\n6. [Documentation](#documentation)\n   1. [Developer guides](#developer-guides)\n   2. [Wiki](#wiki)\n   3. [Website](#website)\n7. [Contributing](#contributing)\n   1. [Code](#code)\n   2. [Code Reviews](#code-reviews)\n   3. [Translation](#translation)\n8. [Issues](#issues)\n9. [Community](#community)\n10. [Support](#support)\n11. [License](#license)\n\n## Build\n\n### Prerequisites\n\n#### Java\n\nOpenMRS is a Java application which is why you need to install a Java JDK.\n\nIf you want to build the master branch you will need a Java JDK of minimum version 8.\n\n#### Maven\n\nInstall the build tool [Maven](https://maven.apache.org/).\n\nYou need to ensure that Maven uses the Java JDK needed for the branch you want to build.\n\nTo do so execute\n\n```bash\nmvn -version\n```\n\nwhich will tell you what version Maven is using. Refer to the [Maven docs](https://maven.apache.org/configure.html) if you need to configure Maven.\n\n#### Git\n\nInstall the version control tool [git](https://git-scm.com/) and clone this repository with\n\n```bash\ngit clone https://github.com/openmrs/openmrs-core.git\n```\n\n### Build Command\n\nAfter you have taken care of the [Prerequisites](#prerequisites)\n\nExecute the following\n\n```bash\ncd openmrs-core\n./mvnw clean package\n```\n\nThis will generate the OpenMRS application in `webapp/target/openmrs.war`, which you will have to deploy to an application server such as [Tomcat](https://tomcat.apache.org/) or [Jetty](https://jetty.org/).\n\n### Deploy\n\nFor development purposes you can simply deploy the `openmrs.war` into the application server jetty via\n\n```bash\ncd openmrs-core/webapp\n../mvnw jetty:run\n```\n\nTo run Jetty on a custom port, use the `jetty.http.port` property:\n\n```bash\n../mvnw -Djetty.http.port=8081 jetty:run\n```\n\nTo run on Cargo, use the `cargo:run` command:\n\n```bash\n../mvnw cargo:run\n```\n\nTo run Cargo on a custom port, use the `cargo.servlet.port` property:\n\n```bash\n../mvnw -Dcargo.servlet.port=8081 cargo:run\n```\n\nIf all goes well (check the console output) you can access the OpenMRS application at `localhost:8080/openmrs`.\n\nRefer to [Getting Started as a Developer](https://wiki.openmrs.org/display/docs/Getting+Started+as+a+Developer) for some more information\non useful Maven commands and build options.\n\n## Docker build\n\nDocker builds are still a work in progress. We appreciate any feedback and improvements to the process.\n\nThe only prerequisite needed is Docker.\n\nIn order to build a development version run:\n\n```bash\ndocker compose build\n```\n\nIt calls `mvn install` by default. If you would like to customize mvn build arguments you can do so by running:\n\n```bash\ndocker compose build --build-arg MVN_ARGS='install -DskipTests'\n```\n\nIt is also possible to use the built dev image to run jetty:\n\n```bash\ndocker compose up\n```\n\nIn order to build a production version run:\n\n```bash\ndocker compose -f docker-compose.yml build\n```\n\nIt first builds the dev image and then an image with Tomcat and openmrs.war.\nIt has no dev dependencies.\n\nThe production version can be run with:\n\n```bash\ndocker compose -f docker-compose.yml up\n```\n\nIf you want to debug, you need to run a development version and connect your debugger to port 8000, which is exposed by default.\n\nUnfortunately, at this point any code changes require full restart and rebuild of the docker container. To speed up the process,\nplease use:\n\n```bash\ndocker compose build --build-arg MVN_ARGS='install -DskipTests'\ndocker compose up\n```\n\nWe are working towards providing support for Spring Boot auto-reload feature, which will be documented here once ready.\n\nIt is also possible to deploy an image built by our CI, which is published at\n[OpenMRS Core on Docker Hub](https://hub.docker.com/r/openmrs/openmrs-core).\n\nYou can run any tag available with:\n\n```bash\nTAG=nightly docker compose -f docker-compose.yml up\n```\n\nIt is also possible to run a development version of an image with:\n\n```bash\nTAG=dev docker compose up\n```\n\nAll development versions contain dev suffix. The cache suffix is for use by our CI.\n\n### Running with ElasticSearch\n\nOpenMRS can run with ElasticSearch backend instead of the in-built Lucene index. You can run it with:\n\n```bash\ndocker compose -f docker-compose.yml -f docker-compose.override.yml -f docker-compose.es.yml up\n```\n\nIf you change backend, you need to rebuild the search index by going to Legacy UI -\u003e Administration -\u003e Search Index. Alternatively, you can rebuild the search index using the `searchindexupdate` REST endpoint.\n\n### Running with Grafana\n\nOpenMRS can run with Grafana for monitoring logs. You can run it with:\n\n```bash\ndocker compose -f docker-compose.yml -f docker-compose.override.yml -f docker-compose.grafana.yml up\n```\n\nGrafana will be available at http://localhost:3000. Use admin as username and see docker-compose.grafana.yml for the initial password.\n\n### Scheduler Dashboard\n\nThe scheduler dashboard can be accessed at http://localhost:9000 by default (user: admin / password: Admin123). It is enabled by default when running `docker compose up` command. It is configured in `docker-compose.override.yml`.\n\nIf you want to enable it in other environments, you need to set the following properties in `openmrs-runtime.properties`:\n\n```bash\njobrunr.dashboard.enabled=true\njobrunr.dashboard.password=someStrongPassword\n```\n\n## Navigating the repository\n\nThe project tree is set up as follows:\n\n\u003ctable\u003e\n \u003ctr\u003e\n  \u003ctd\u003eapi/\u003c/td\u003e\n  \u003ctd\u003eJava and resource files for building the java api jar file.\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n  \u003ctd\u003etools/\u003c/td\u003e\n  \u003ctd\u003eMeta code used during compiling and testing. Does not go into any released binary (like doclets).\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n  \u003ctd\u003eweb/\u003c/td\u003e\n  \u003ctd\u003eJava and resource files that are used in the webapp/war file.\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n  \u003ctd\u003ewebapp/\u003c/td\u003e\n  \u003ctd\u003efiles used in building the war file (contains JSP files on older versions).\u003c/td\u003e\n \u003c/tr\u003e\n \u003ctr\u003e\n  \u003ctd\u003epom.xml\u003c/td\u003e\n  \u003ctd\u003eThe main maven file used to build and package OpenMRS.\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/table\u003e\n\n## Software Development Kit\n\nFor rapid development of modules and the OpenMRS Platform code, see the\n[OpenMRS SDK documentation](https://wiki.openmrs.org/display/docs/OpenMRS+SDK).\n\n## Extending OpenMRS with Modules\n\nOpenMRS has a modular architecture that allows developers to extend the OpenMRS core functionality by creating modules that can easily be added or removed to meet the needs of a specific implementation.\n\nBefore creating your own module, go to the [OpenMRS Module Repository](https://addons.openmrs.org/) and see if there is already a module for your specific use case. If so, deploy and try it. If functionality is missing, work with the module's developers to add the feature.\n\nIf you haven't found what you were looking for, refer to the [Module - wiki](https://wiki.openmrs.org/display/docs/Modules) to learn how you can create a new module.\n\n## Documentation\n\n### Developer guides\n\nIf you want to contribute please refer to these resources\n\n* [Getting Started as a Developer](https://openmrs.atlassian.net/wiki/spaces/docs/pages/25477022/Getting+Started+as+a+Developer)\n* [How To Configure Your IDE](https://openmrs.atlassian.net/wiki/spaces/Archives/pages/25506949/How-To+Setup+And+Use+Your+IDE)\n* [How To Make a Pull Request](https://wiki.openmrs.org/display/docs/Pull+Request+Tips)\n\n### Wiki\n\nIf you are looking for detailed guides on how to install, configure, contribute and\nextend OpenMRS, visit [the OpenMRS Wiki](https://wiki.openmrs.org).\n\n### Website\n\nFor more information about OpenMRS as an organization, check\n[the OpenMRS website](https://openmrs.org).\n\n## Contributing\n\nContributions are very welcome. We can definitely use your help!\n\nOpenMRS organizes the privileges of its contributors in developer stages which\nare documented [here](https://wiki.openmrs.org/display/RES/OpenMRS+Developer+Stages).\n\nRead the following sections to find out where you could help.\n\n### Code\n\nCheck out our [contributing guidelines](CONTRIBUTING.md), read through the [Developer guides](#developer-guides).\n\nAfter you've read up :eyeglasses: [grab an introductory issue](https://openmrs.atlassian.net/wiki/x/a8GEAQ) that is `Ready For Work`.\n\n### Code Reviews\n\nIf you do not have time to develop but have experience with OpenMRS or reviewing\ncode, your help with code reviews would be greatly appreciated!\n\nRead [the code review guide](https://openmrs.atlassian.net/wiki/x/-r_EAQ) and get started reviewing pull requests!\n\n### Translation\n\nWe use [Transifex](https://explore.transifex.com/openmrs/OpenMRS/) to manage our translations.\n\nThe `messages.properties` file in this repository is our single source of\ntruth. It contains key, value pairs for the English language which is the\ndefault.\n\nTransifex fetches updates to this file every night so they can be translated\non the Transifex website. At any time, we can pull new translations from Transifex\nback into this repository. Other languages, such as Spanish, will then be in\nthe `messages_es.properties` file.\n\nIf you would like to know how to help with translations, see\n[the OpenMRS translation guide](https://om.rs/translate).\n\n## Issues\n\nIf you want to help fix existing issues or have found a bug to report, please go to\n[the OpenMRS issue tracker](https://issues.openmrs.org).\n\n## Community\n\n[![OpenMRS Talk](https://img.shields.io/badge/OpenMRS_Talk-F26522?logo=discourse\u0026logoColor=white)](https://talk.openmrs.org)\n[![OpenMRS Slack](https://img.shields.io/badge/OpenMRS_Slack-4A154B)](https://slack.openmrs.org/)\n[![OpenMRS Wiki](https://img.shields.io/badge/openmrs-wiki-5B57A6.svg?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNjAiIGhlaWdodD0iMTQyIiB2aWV3Qm94PSIwIDAgMTYwIDE0MiI%2BPHBhdGggY2xhc3M9InN0MCIgZD0iTTExMy42MTUgOTQuNDk0Yy0yLjAxNi0zLjk3NC00LjQwNS03Ljk5LTcuMi0xMi4wNzctMi0yLjkzLTQuMTQ1LTUuNzc4LTYuMzg3LTguNTY3LS45MS0xLjEzNi0uNTMtMi41NDguMTY3LTMuMjUuNjg4LS43MDUgMS4zOC0xLjQxIDIuMDc2LTIuMTIgOS41OC05Ljc3IDE5LjQ5LTE5Ljg3MyAyNy4wOS0zMC43ODcgOC4wOC0xMS42MSAxMi41Ni0yMi42MjQgMTMuNjktMzMuOTU0LjEyLTEuMTQtLjQtMi4zNS0xLjMyLTMuMDUtLjYtLjQ2LTEuMzMtLjctMi4wNy0uNy0uNDEgMC0uODIuMDctMS4yMS4yMi03LjM3IDIuODItMTQuODUgNC45Ni0yMS42OCA2LjU1LTEuMzkuMzItMi41MSAxLjM2LTIuOTggMi42LTQuOTggMTMuNjMtMTcuNjggMjYuNjEtMzEuMDEgNDAuMi0uNTMuNTEtMS4yOCAxLjE4LTIuNSAxLjE4cy0xLjk2LS42NS0yLjUtMS4xOGMtMTMuMzMtMTMuNTktMjYuMDMtMjYuNTItMzEtNDAuMTUtLjQ2LTEuMjQtMS41OS0yLjI4LTIuOTgtMi42QzM2Ljk0IDUuMjIgMjkuNDUgMi45IDIyLjEuMDhjLS4zOTgtLjE1LS44MS0uMjI1LTEuMjItLjIyNS0uNzQgMC0xLjQ3LjI0LTIuMDcuNy0uOTQuNzE4LTEuNDQgMS44NzItMS4zMiAzLjA0OCAxLjEzIDExLjMzMiA1LjYgMjIuNDggMTMuNjg0IDM0LjA5IDcuNiAxMC45MTUgMTcuNTEgMjEuMDE3IDI3LjA5IDMwLjc4NyAxNy42NSAxNy45OTQgMzQuMzMgMzQuOTk3IDM1Ljc5IDU0LjcxMy4xMyAxLjc4IDEuNjIgMy4xNTggMy40IDMuMTU4aDIwLjc0Yy45NCAwIDEuODMtLjM4IDIuNDctMS4wNi42NS0uNjcuOTktMS41OC45NC0yLjUyLS4xOC0zLjcxLS43Mi03LjQyLTEuNTktMTEuMTZoLjAxYy0uMDI4LS4xMS0uMDQ3LS4yMi0uMDQ3LS4zMyAwLS43NS41ODgtMS4zOCAxLjM1Ny0xLjM4LjA3IDAgLjEzLjAyLjIuMDMgMTYuOTMgMi40OCAyNy42MzYgNi40NCAyNy42NSAxMC44di4wMWMwIDQuMTEtOS42MjMgMTAuMzEtMjUuMjY2IDE0Ljg1bC0uMDA1LjAxYy0xLjM5LjQtMi40MDYgMS42Ni0yLjQwNiAzLjE1IDAgMS44MSAxLjQ5MyAzLjI4IDMuMzQgMy4yOC4yNTUgMCAuNS0uMDMuNzQtLjA4IDIxLjAyNi00Ljg2IDM0Ljk2NS0xMy4wMzQgMzQuOTY1LTIyLjI2MiAwLTEwLjk1NC0xOC44NC0yMC43NC00Ni45LTI1LjE1MnpNNTguMDEgODMuODA2Yy0uNDI1LS40NDQtMS4yNzctMS4wMzgtMi40MjItMS4wMzgtMS41NDcgMC0yLjQ2NiAxLTIuODEyIDEuNTMtMi4yNjQgMy40NDQtNC4yNCA2Ljg0My01Ljk0NiAxMC4yMDhDMTguODEgOTguOTI0IDAgMTA4LjcgMCAxMTkuNjVjMCA5LjIzNyAxMy44NCAxNy4zOTQgMzQuOTA1IDIyLjI1NS4wMDMuMDAyLjAyMyAwIC4wMyAwIC4yNS4wNTguNTA0LjA5NS43Ny4wOTUgMS44NDYgMCAzLjM0LTEuNDcgMy4zNC0zLjI4IDAtMS40ODctMS4wMTctMi43My0yLjQtMy4xM2wtLjAxLS4wMjJjLTE1LjY0NS00LjU0LTI1LjI3LTEwLjc0NC0yNS4yNy0xNC44NTJ2LS4wMWMuMDE3LTQuMzUzIDEwLjY5My04LjMwNiAyNy41OC0xMC43ODcuMDYyLS4wMS4xMi0uMDIuMTgyLS4wMi43NzUgMCAxLjM2OC42MyAxLjM2OCAxLjM5IDAgLjExLS4wMi4yMy0uMDQ2LjMzbC4wMS4wMWMtLjg3IDMuNzEtMS40IDcuNDEtMS41OCAxMS4xMS0uMDUuOTMuMjkgMS44NS45NCAyLjUzLjY0LjY3IDEuNTQgMS4wNiAyLjQ4IDEuMDZoMjAuNzRjMS43OCAwIDMuMjgtMS40IDMuNDEtMy4xNy40NS02LjA3IDIuMzUtMTIuMTUgNS43OC0xOC41NCAxLjE5LTIuMjEuMjYtNC4yOS0uNDItNS4xOC0zLjQyLTQuNDMtNy41OS05LjE2LTEzLjgxLTE1LjY1eiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik03Ny44NjggMzIuNTc4Yy44Mi43OTggMS43NS45NDcgMi4zOS45NDdoLjAwNmMuNjQyIDAgMS41Ny0uMTQ4IDIuMzktLjk0NiA3LjMxMy03LjExIDExLjI0Mi0xNS40IDEyLjEwMy0xNy43MS4xMjUtLjM0LjI1Mi0uNzMuMjUyLTEuMjYgMC0xLjg0LTEuNTQtMy4xNi0zLjE0LTMuMTYtMS4zMyAwLTUuMS4zOS0xMS41OS4zOWgtLjA1Yy02LjUgMC0xMC4yNy0uMzktMTEuNTktLjM5LTEuNjEgMC0zLjE0IDEuMzEtMy4xNCAzLjE1IDAgLjUzLjEzLjkyLjI1IDEuMjYuODYgMi4zIDQuNzkgMTAuNTkgMTIuMSAxNy43eiIgZmlsbD0iI2ZmZiIvPjwvc3ZnPg%3D%3D)](https://wiki.openmrs.org)\n\n## Support\n\nTalk to us on [OpenMRS Talk](https://talk.openmrs.org/)\n\n## License\n\n[MPL 2.0 w/ HD](LICENSE) © [OpenMRS Inc.](https://openmrs.org/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenmrs%2Fopenmrs-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenmrs%2Fopenmrs-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenmrs%2Fopenmrs-core/lists"}