AI版産業医面談記録システムプロンプト

AI版のプロンプトです。

これをコピペしたらできるように、と指示を出したのですが、このままだと微調整が必要な感じがします。仕方ないか。


あなたは熟練した Google Apps Script (GAS) および Webアプリケーション開発者 です。 以下の要件、仕様、およびアーキテクチャ定義に基づき、Gemini AI を搭載した「産業医面談記録システム」を一から完全に構築するためのすべてのコードを出力してください。

目的: Google スプレッドシートをデータベースとし、GASのWebアプリ機能を用いた、産業医業務をDX化するシングルページアプリケーション (SPA) を作成すること。

【前提条件・環境】

  1. プラットフォーム: Google Apps Script (スタンドアロンWebアプリ)。
  2. データベース: Google スプレッドシート(単一ファイル)。
  3. UIフレームワーク: Bootstrap 5 (CDN利用)。
  4. AI機能Generative Language API (Gemini) を使用。APIキーはGASの「スクリプトプロパティ」に保存されているものとする。

【1. スプレッドシート設計要件】

以下の5つのシートが存在することを前提としたコードにしてください。

  1. Config: 設定値保存用
    • A列: Key (DOCTOR_NAME 等)
    • B列: Value
  2. Companies: 企業マスタ
    • A列: ID
    • B列: 企業名
  3. Employees: 社員マスタ
    • A列: ID
    • B列: 氏名
    • C列: 性別
    • D列: 年齢
    • E列: 企業ID
    • F列: 部署
  4. Interview_Logs: 面談履歴ログ(今回のメイン保存先)
    • 作成されるカラム数が多いため、コード内で配列として一括書き込みを行う仕様とする。
    • 主な保存項目: 日付, 企業ID, 社員ID, 面談種別, 公開用メモ, 自分用メモ(秘), そして各判定項目すべて。

【2. ファイル構成と機能要件】

以下の4つのファイルを生成してください。

① Code.gs (メインロジック)

  • 初期設定機能 (initialSetup):
    • スプレッドシートメニュー「★初期設定」から実行。
    • ダイアログで「医師氏名」を入力させ、Configシートに保存する。
  • Webアプリ起点 (doGet):
    • index.html をテンプレートとして読み込み、Webページとして返す。
  • マスタ取得 (getMasterData):
    • 企業マスタと社員マスタをJSON形式でクライアントに返す。
  • 履歴取得 (getHistory):
    • 指定された社員IDに紐づく過去の面談記録を Interview_Logs から取得して返す。
  • データ保存 (saveRecord):
    • フォームデータを受け取り、データを整形して Interview_Logs に追記。
    • 新規企業・新規社員の場合はマスタにも自動登録。
    • PDF生成PDF.gs の関数を呼び出し、生成されたPDFのBase64文字列をクライアントに返却(ドライブ保存はしない)。

② AI.gs (AI連携ロジック)

  • getAIFormData(text, interviewType) 関数:
    • 引数: text (医師のメモ), interviewType (“通常面談” or “復職面談”)
    • 処理:
      1. PropertiesService.getScriptProperties().getProperty("GEMINI_API_KEY") でAPIキーを取得。
      2. text を入力として、Gemini AI API にリクエストを送信。
      3. 【AIへの指示】: 「あなたは産業医です。以下のメモに基づき、フォームの各項目(判定、所見の有無、就業措置など)として適切な値を厳格なJSON形式で出力してください」というプロンプトを構築。
      4. 出力すべきJSONスキーマを明示し、パース可能なJSONのみを返させる。
    • 戻り値: フォームの各 name 属性に対応したキーを持つJSONオブジェクト。

③ PDF.gs (PDF生成ロジック)

  • createPdfBlob(params) 関数:
    • HTMLテンプレートリテラルを使用して、A4サイズのレポートレイアウトを構築。
    • CSSで @page { size: A4; margin: 15mm; } を指定し、きれいな帳票スタイルにする。
    • 面談種別に応じて、「面接指導結果報告書・就業上の措置に係る意見書」デザインと「職場復帰支援に関する面談記録票」デザインを切り替える。
    • Utilities.newBlob(...).getAs(MimeType.PDF) でBlobを生成して返す。

④ index.html (フロントエンドUI/UX)

  • レイアウト:
    • タイトル、データ再読込ボタン。
    • 基本情報: 日付、企業名(新規登録対応)、社員名(サジェスト機能付き)、属性。
    • 履歴表示: アコーディオン形式で過去ログを表示。「📋 コピーして入力」ボタンで内容をフォームに転記する機能。
    • 入力フォーム:
      • 面談種別(通常/復職)ラジオボタンで表示エリアを切り替え。
      • 【AI連携エリア】: 「自分用メモ(秘)」欄の横に、「✨ AIで一括作成」ボタンを配置。
        • 押下時、サーバーの getAIFormData を呼び出し、返ってきたJSONデータを各ラジオボタン・チェックボックス・テキスト欄に自動反映する。
      • 通常面談用詳細(疲労度、所見、指導区分、就業措置等)。
      • 復職面談用詳細(判定、プラン等)。
    • 保存: 「保存する」ボタンで saveRecord を呼び出し、成功時にPDFを自動ダウンロードさせる。
  • JavaScriptロジック:
    • 条件付き表示(「所見あり」の場合のみ詳細入力欄を出す等)。
    • 履歴コピー時のデータマッピング処理。
    • AI解析中のローディング表示制御。

【出力リクエスト】

上記仕様を満たす 

Code.gs, AI.gs, PDF.gs, index.html の4つのコードブロックを完全な形で出力してください。 省略せずに、そのままコピー&ペーストで動作する状態にしてください。


コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です