医療・臨床分析プロダクト
医療・臨床分析画面の開発
医療・臨床分析プロダクトの画面開発とアクセシビリティ・性能改善、開発環境の改善、バックエンド作業をあわせて担当しています。
- 長い分析プロセスで条件設定から結果確認まで続けられるよう、入力・実行・結果・レポート画面とECharts・Plotlyベースの比較チャートを開発しました。
- 画面サイズが変わった場合やエラー後に再入場した場合でも作業を続けられるよう、企画書になかったレスポンシブ・エラー・再入場時の動作を提案し、企画・デザイン・バックエンド担当者と決めて反映しました。
- 入力項目が多い画面で反復入力とマウス移動の負担を減らすため、キーボードのTab移動とimport機能を追加しました。
- 画像リクエストとUI修正範囲を減らすため、画像ベースのUIを共通コンポーネントへ置き換え、静的画像を画面サイズ別WebPへ変換するビルド処理を追加しました。計算上の画像転送量は約95%減り、別途行ったLighthouse比較ではLCPが1.3秒から1.0秒、Speed Indexが3.4秒から0.7秒へ短縮しました。
- 同じ疾患一覧を画面ごとに再取得しないよう、直接取得コードを共通TanStack Query hookへ置き換え、キャッシュと再取得の基準を一か所で管理しました。
AI開発ツールの活用経験
- AIが医療・臨床用語と画面動作を独自に解釈しないよう、プロジェクト指示、作業別Skill、実行Hook、PRルールをリポジトリに置き、CodexとClaudeが参照できるようにしました。
- 非開発職もドメイン資料を理解しやすいよう、企画・履歴文書をMarkdownへ移し、Codex・Claudeから検索できるローカルLLM WikiベースのMCPサーバーを開発・配布しました。
開発環境とバックエンド運用
技術スタック
Next.js
React
TypeScript
Tailwind CSS
Radix UI
TanStack Query
Zustand
React Hook Form
ECharts
Plotly
Vitest
Playwright
axe-core
GitHub Actions
Husky
Docker
Python
Django
Django REST Framework
PostgreSQL
Codex
Claude
MCP
- ViteとNext.js Pages Routerに分かれ、構造と書き方が異なっていた4つのフロントエンドプロジェクトの構造とデプロイフローを統一し、既存コードを共通コーディング規約に合わせて修正しました。
- 手動DockerデプロイをGitHub Actionsへ移す作業を主導し、デプロイ後にバックエンドのHTTP応答やコンテナ状態に異常があればActions Summaryとログを残すようにしました。
- 型・テスト・ビルドエラーがリモートブランチへ上がらないよう、Husky pre-commit・pre-pushにtypecheck・test・buildを接続しました。
- サービスエラーをプロダクト・環境・リクエスト単位で追跡するため、3つのバックエンドでログを業務DBから分離し、環境・サービス・リクエストID別に保存しました。Adminにはログ照会とフロントエンドエラー報告APIを追加し、フロントエンドのエラー種別をサーバーログへ関連付けられるようマッピングしました。
