Medical Research Skills for Claude Code, Codex, Cursor & Copilot
의사가 만든 58개 오픈소스 스킬로 의료 연구 전 과정을 지원
Tamanu는 무료 오픈소스 전자건강기록으로 데스크톱·모바일에서 외래·입원·응급·검사·영상까지 지원
Tamanu is a free, open-source electronic health record for desktop and mobile, covering outpatient, inpatient, emergency, lab and imaging care.
건강JavaScript · TypeScriptGitHub @beyondessential온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
A patient-level electronic health records system for mobile and desktop.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗This is a monorepo
| Package | Runbook | Description |
|---|---|---|
| @tamanu/central-server | central-server runbook | The central server, which facility server and mobile client instances communicate with to synchronise data |
| @tamanu/facility-server | facility-server runbook | The facility server, which the app communicates with |
| @tamanu/web-frontend | web runbook | The web app |
| mobile | mobile runbook | The mobile app |
| @tamanu/shared | N/A | Shared code monolith among Tamanu components |
| @tamanu/build-tooling | N/A | Shared build tooling code |
First, clone the repo via git:
$ git clone [email protected]:beyondessential/tamanu.git
For MacBook ARM64 users, some dependencies cannot be compiled, it is recommended to switch to X86_64 for python v3. If insist, please install python v2:
$ brew install pyenv
$ pyenv install --list
$ pyenv install 2.7.18
$ pyenv versions
$ pyenv global 2.7.18
Put eval "$(pyenv init --path)" in ~/.zprofile (or ~/.bash_profile or ~/.zshrc)
Install dependencies with npm:
$ cd tamanu
$ npm install
Build all packages:
$ npm run build
Run the Tamanu components (in different terminals):
$ npm run central-start-dev
$ npm run facility-start-dev
$ npm run web-start-dev
You'll need to install postgres and configure databases for central and facility.
The modules use config, which helps manage different configurations easily. Each module has a
config/ directory, with several files in it. The base configuration is in config/default.json5,
and the values there will be used unless overridden by a more specific configuration (for eg
config/development.json5).
The local configuration (config/local.json5) will always take highest precedence and should not
be checked into version control. This file should contain the information for database configuration,
local credentials, etc.
The config docs have more info on how that works.
Run:
brew install postgres
brew services start postgres
Install the PostgreSQL server. Open pgAdmin and add a new database tamanu-facility
Install PostgreSQL from your package manager
By default, the Central server will not run migrations automatically. To enable automatic migrations, set db.syncOnStartup to true within your local configuration (see the Config section above).
central-server/config/local.example as new file config/local.json5.tamanu-central or any customised name, new db can be with or without owner.config/local.json5 db config.npm install
npm run --workspace central-server setup-dev # If it doesn't work, go for 'Pull data from remote'
npm run central-start-dev
psql -U [DB_USERNAME] -d tamanu-central < [Path to tamanu-central-dev.sql]
The Tamanu web app needs a Facility server running to operate correctly. For local development, this can just be another process on the same host.
central-serverfacility-server/config/local.example as new file config/local.json5.tamanu-facility or any customised name, new db can be with or without owner.config/local.json5 db config.$ npm run facility-start-dev
This will start a build & watch process on the Facility server and the shared directory.
If you're working on backend functionality, it's much, much quicker and easier to drive development with testing. You can set up predictable test data rather than having to click through a bunch of UI screens every time, and the live-reload turnaround is way faster than the web version. (this is in addition to the fact that any backend functionality should have tests against it anyway)
The Facility server uses sequelize to manage database connections, and uses postgres exclusively.
As soon as you have postgres available, set the appropriate connection variables in your local.json5.
Once there is a Facility server up and running, run this to start the Electron app for development.
$ npm run web-start-dev