Medical Research Skills for Claude Code, Codex, Cursor & Copilot
58 项开源技能,覆盖完整的医学研究全生命周期。由医生构建,基于真实出版物测试。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
うえまつ産業医事務所(Mestate LLC)の産業保健活動 統合管理システム。 稼働中の「ストレスチェックWeb」と将来同じSupabaseプロジェクトを共用します(開発中は別の無料プロジェクトを使用)。 • 技術: Next.js 14 (App Router) + Supabase (Auth / Postgres / RLS) + Vercel • 設計原則: RLS+最小権限 / 危険操作はSECURITY DEFINER RPC+監査ログ / 10名未満の集計非表示 / 年度は4月始まり / セッションCookie+20分自動ログアウト セットアップ手順(開発用・無料Supabaseプロジェクト)查看完整 README ↗
うえまつ産業医事務所(Mestate LLC)の産業保健活動 統合管理システム。 稼働中の「ストレスチェックWeb」と将来同じSupabaseプロジェクトを共用します(開発中は別の無料プロジェクトを使用)。
| フェーズ | 内容 | 状態 |
|---|---|---|
| Phase 1 | 基盤(認証・ロール・企業共用)+ 安全衛生委員会議事録(作成・共有・添付・印刷/PDF) | ✅ 実装済み |
| Phase 2 | 面談管理(予定・実施記録・非公開メモ・意見書PDF) | ✅ 実装済み |
| Phase 3 | 健康診断結果(CSV取込・有所見・就業判定・経年・個人票・報告書サマリ・受診勧奨通知書) | ✅ 実装済み |
| Phase 4 | 統合ビュー・ダッシュボード・集計・ストレスチェック連携 | ✅ 実装済み(本番はstresリポジトリの hm-stress-link.sql で接続) |
| Phase 5 | 従業員カルテ(書類共有・産業医文書作成・履歴集約) | ✅ 実装済み |
supabase/dev_setup/0000_dev_base.sql …… 開発用のみ(companies / profiles の代替を作成)supabase/dev_setup/0001_dev_fix_recursion.sql …… 開発用のみ(RLS修正パッチ。0000を最新版で実行した場合は不要)supabase/dev_setup/0002_dev_stress_mock.sql …… 開発用のみ(ストレスチェック連携モック)supabase/migrations/0101_hm_phase1.sql …… Phase 1 本体supabase/migrations/0102_hm_phase2.sql …… Phase 2 面談管理supabase/migrations/0103_hm_phase3.sql …… Phase 3 健康診断結果supabase/migrations/0104_hm_checkup_bulk_delete.sql …… 健診記録の一括削除RPCsupabase/migrations/0106_hm_phase5_karte.sql …… Phase 5 従業員カルテsupabase/migrations/0107_hm_company_info.sql …… 企業補足情報(住所等)supabase/migrations/0108_hm_interview_pre_info.sql …… 面談の事前情報欄supabase/migrations/0109_hm_patrols_person_link.sql …… 産業医巡視記録・面談とカルテの連携supabase/migrations/0110_hm_minutes_settings.sql …… 議事録の企業別デフォルト設定supabase/migrations/0111_hm_hygiene_patrols.sql …… 衛生管理者巡視記録(チェックリスト)supabase/migrations/0112_hm_hygiene_defaults.sql …… 衛生管理者氏名のデフォルト設定supabase/migrations/0113_hm_env_patrol_files.sql …… 作業環境測定・巡視記録の写真添付supabase/migrations/0114_hm_bulk_work_judgment.sql …… 就業判定の一括入力supabase/migrations/0117_hm_judgment_setup.sql …… 健診結果の自動判定一式(判定区分2026年4月1日改定)supabase/migrations/0118_hm_followup_defaults.sql …… 事後措置の既定値を総合判定に連動supabase/migrations/0119_hm_checkup_person_link.sql …… 健診結果の生年月日・カルテ紐付けsupabase/migrations/0120_hm_interview_type_followup.sql …… 面談種別に復職後フォローアップ面談を追加supabase/migrations/0121_hm_work_judgment_pending.sql …… 就業判定に「判定保留」を追加・医師の意見の更新RPCsupabase/migrations/0122_hm_office_info.sql …… 産業医事務所の情報(帳票・CSV記載用)0000_dev_base.sql の末尾コメントに沿って、テストユーザー(office / company)とテスト企業を作成.env.local.example をコピーして .env.local を作成し、開発用プロジェクトの
Settings > API から URL と anon key を設定:
NEXT_PUBLIC_SUPABASE_URL=...
NEXT_PUBLIC_SUPABASE_ANON_KEY=...
npm install
npm run dev
ストレスチェックWeb(hironoriuematsu-byte/stres)と同じSupabaseプロジェクトに同居し、
ストレスチェックのデータは読み取りのみ参照します。依存の向きは
健康管理Web → ストレスチェックWeb の一方向のみです。
詳細はストレスチェックWeb側の連携仕様書を参照してください。
適用は次の順序で行います(すべて本番のSQL Editorで1回だけ実行)。
| # | 実行するもの | リポジトリ |
|---|---|---|
| 1 | supabase/migrations/0016_hm_link.sql | stres(profilesの別名列・companies.hm_enabled を追加) |
| 2 | supabase/migrations/0101〜0104, 0106〜0114, 0117〜0122 | kenko-kanri(本リポジトリ) |
| 3 | supabase/hm-stress-link.sql | stres(連携用の読み取り関数3つ) |
| 4 | Vercel環境変数 NEXT_PUBLIC_KENKO_URL=https://kenko.mestate.jp を設定 | stres側のVercel |
| 5 | 企業管理で対象企業の「健康管理Web」にチェック | ストレスチェックWebの画面 |
注意点:
dev_setup/ 配下のSQLは絶対に実行しない(本番にはcompanies/profilesが既にあるため)supabase/hm-stress-link.sql を使う
(本リポジトリの旧テンプレート 0105_... は削除済み)NEXT_PUBLIC_STRESS_URL=https://stres.mestate.jp を設定するkenko-kanri-khaki.vercel.app)は更新されないため、残っていれば削除する。利用者には https://kenko.mestate.jp を案内するprofiles の user_id / name / emp_id / dept は列名を変更しない
(0016の別名列の定義が壊れるため)企業ごとに Google Meet の常設ルーム(Meet の「スペース」)を1つ用意し、健康管理Webにログインしている産業医事務所と、その企業の事業者担当者だけが「面談ルームに入る」から入室できる。リンクは作り直さない限り変わらない。
| 項目 | 内容 |
|---|---|
| ルーム | 企業ごとに Meet のスペースを1つ(Meet REST API spaces.create) |
| 認証 | サービスアカウント+ドメイン全体の委任で、産業医の Workspace アカウント(GOOGLE_MEET_OWNER_EMAIL)として操作。主催者は産業医。npm 追加なし(Node の crypto で JWT 署名) |
| スコープ | meetings.space.created, meetings.space.readonly |
| アクセス種別 | TRUSTED(既定): 企業側(Workspace 外)は「参加をリクエスト」→ 産業医が承認。GOOGLE_MEET_ACCESS_TYPE=OPEN で承認不要 |
| 対象企業の限定 | hm_meet_rooms.enabled。office がオン/オフ。company は RLS で自社の有効なルームのみ読める |
| 入室 | RPC hm_meet_enter(company_id) が権限確認 → hm_meet_entries に記録 → hm_log_access → リンクを返す |
| 在室表示 | API Route が spaces.get の activeConference → participants を取得。30秒ごとにポーリング(タブ表示中のみ) |
| 開催履歴 | conferenceRecords から開始・終了時刻(参加者名は含めない) |
| APIなしでも | Meet リンクを手入力で登録可(在室表示・開催履歴なし) |
supabase/migrations/0146_hm_meet_rooms.sql を実行https://www.googleapis.com/auth/meetings.space.created,https://www.googleapis.com/auth/meetings.space.readonly を登録GOOGLE_SERVICE_ACCOUNT_EMAIL / GOOGLE_SERVICE_ACCOUNT_PRIVATE_KEY / GOOGLE_MEET_OWNER_EMAIL(任意で GOOGLE_MEET_ACCESS_TYPE)→ Redeployhm_ 接頭辞(hm_minutes, hm_minute_files, hm_interviews, hm_interview_opinions, hm_access_logs など)interview_requests(高ストレス申出)との連携はhm_interviews.interview_request_idで受け口のみ用意(本番スキーマ確認後に接続)0101_ からの番号付きSQLファイルで管理し、SQL Editorで手動実行results 等)は読み取り専用で参照(Phase 4)hm-files(非公開・企業別RLS)hm_access_logs は削除・変更不可(閲覧はofficeのみ)| ロール | 権限 |
|---|---|
| office | 産業医事務所。全企業・全機能。議事録の削除(論理削除・理由必須・ログ記録)はofficeのみ |
| company | 企業側担当者。自社の議事録の作成・閲覧・添付 |
| employee | 従業員。「従業員に公開」された自社議事録の閲覧のみ |
| jimu | 本システムは対象外(ストレスチェックWebのみ) |