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のみ) |