# 06_case_photo_report.md(完全版) # 写真/画像報告書生成設計 ## 1. 概要 本仕様書は、案件管理システムにおける**写真/画像報告書の自動生成機能**を定義する。 - 現場写真、ドライブレコーダ画像をアップロードし、説明文を付与 - 自動レイアウトでPowerPoint形式の報告書を生成 - 出力はPPTXおよびPDF(オプション) --- ## 2. 機能概要 ### 2.1 処理フロー ``` 写真/画像をアップロード ↓ 各画像にタイトル・説明・撮影日等を付与 ↓ レイアウトテンプレートを選択(1枚/ページ or 2枚/ページ) ↓ 「報告書生成」ボタンでPowerPoint出力 ↓ ダウンロード or 案件ファイルとして保存 ``` ### 2.2 対象種別 | 種別 | 説明 | |------|------| | 現場写真 | 事故現場、車両、状況等の写真 | | ドライブレコーダ画像 | ドライブレコーダから抽出した静止画 | | その他証拠画像 | 書類、診断書、物証等 | --- ## 3. 画像アップロード機能 ### 3.1 UI ``` ┌─────────────────────────────────────────────────────────────────┐ │ 写真/画像アップロード │ ├─────────────────────────────────────────────────────────────────┤ │ 画像ファイル: [ファイル選択] (複数選択可) │ │ │ │ 共通情報(オプション) │ │ 撮影日: [2025-10-19] 撮影者: [真柴 直也] │ │ 撮影場所: [京都市伏見区三栖町3丁目819番地] │ │ │ │ [アップロード] │ ├─────────────────────────────────────────────────────────────────┤ │ アップロード済み画像 │ │ ┌─────────────────────────────────────────────────────────────┐ │ │ │ [画像1] [画像2] ...│ │ │ │ タイトル: _______________ タイトル: _______________ │ │ │ │ 説明: __________________ 説明: __________________ │ │ │ │ 撮影日: [2025-10-19] 撮影日: [2025-10-19] │ │ │ │ [編集] [削除] [順序変更] [編集] [削除] [順序変更] │ │ │ └─────────────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────┘ ``` ### 3.2 アップロードAPI **エンドポイント**: `POST /master/api/upload_image.php` **リクエスト**: multipart/form-data - `case_id`: 案件ID - `type`: "photo" / "driving_recorder" / "other" - `file`: 画像ファイル(JPEG, PNG) - `title`: タイトル(オプション) - `description`: 説明(オプション) - `shooting_date`: 撮影日(オプション) - `photographer`: 撮影者(オプション) - `location`: 撮影場所(オプション) - `timestamp`: 撮影時刻(ドラレコ用、オプション) - `speed`: 速度(ドラレコ用、オプション) **レスポンス**: ```json { "success": true, "image_id": "img_001", "file_path": "/data/cases/L01R0709001A/files/img_001.jpg" } ``` --- ## 4. メタデータ管理 ### 4.1 画像データ構造(案件JSON内) ```json { "evidence": { "photos": [ { "id": "img_001", "filename": "現場写真_001.jpg", "title": "松本車の京都府道124号へ右折進入時の視界", "description": "", "shooting_date": "2025-10-19", "photographer": "真柴 直也", "location": "京都市伏見区三栖町3丁目819番地", "order": 1 } ], "driving_recorder": [ { "id": "dr_001", "filename": "ドラレコ_001.jpg", "title": "松本車、京都府道124号三栖向納所線を西進", "description": "", "timestamp": "2024-10-18 16:45:17", "speed": 11.5, "order": 1 } ] } } ``` ### 4.2 メタデータ編集機能 - 各画像のタイトル、説明、撮影日等を後から編集可能 - 表示順序をドラッグ&ドロップで変更可能 - 画像の削除機能 --- ## 5. レイアウトテンプレート ### 5.1 テンプレート種類 | テンプレート | 説明 | 用途 | |-------------|------|------| | 1枚/ページ | 1ページに1枚の画像(大) | 詳細説明が必要な写真 | | 2枚/ページ | 1ページに2枚の画像(横並び) | 複数写真を効率的に配置 | | 4枚/ページ | 1ページに4枚の画像(2x2) | サムネイル的な一覧 | ### 5.2 スライド構成 ``` 【表紙】 ┌─────────────────────────────────────────────────────────────────┐ │ 現場写真報告書 │ │ │ │ 案件番号: L01R0709001A │ │ 撮影日: 令和7年10月19日・11月4日 │ │ 撮影者: 本社 調査部 真柴 直也 │ │ 撮影場所: 京都市伏見区三栖町3丁目819番地 │ └─────────────────────────────────────────────────────────────────┘ 【各スライド(1枚/ページ)】 ┌─────────────────────────────────────────────────────────────────┐ │ │ │ ① │ │ [画像] │ │ │ │ ① 松本車の京都府道124号へ右折進入時の視界 │ │ 撮影日: 令和7年10月19日 │ │ │ └─────────────────────────────────────────────────────────────────┘ 【各スライド(2枚/ページ)】 ┌─────────────────────────────────────────────────────────────────┐ │ │ │ ① 松本車の右折進入時 ② 松本車走行開始時 │ │ [画像] [画像] │ │ 撮影日: 令和7年10月19日 撮影日: 令和7年10月19日 │ │ │ └─────────────────────────────────────────────────────────────────┘ ``` --- ## 6. PowerPoint出力機能 ### 6.1 出力仕様 | 項目 | 仕様 | |------|------| | ファイル形式 | .pptx(PowerPoint 2007以降) | | 用紙サイズ | A4横(横置き) | | フォント | 游明朝(タイトル)、游ゴシック(本文) | | 画像解像度 | アップロード画像の原寸(自動リサイズ) | | ファイル名 | `[案件番号]_現場写真報告書.pptx` | ### 6.2 生成方法 - サーバー側でPHPライブラリ(PhpOffice/PHPPowerPoint)を使用して生成 - または、フロントエンドでテンプレートベースの生成(JavaScript) **推奨**: サーバー側生成(一貫性、権限管理、保存の容易さ) ### 6.3 生成API **エンドポイント**: `POST /master/api/generate_photo_report.php` **リクエスト**: ```json { "case_id": "L01R0709001A", "type": "photos", // "photos" / "driving_recorder" / "all" "layout": "2perpage" // "1perpage" / "2perpage" / "4perpage" } ``` **レスポンス**: ```json { "success": true, "file_path": "/data/cases/L01R0709001A/reports/L01R0709001A_現場写真報告書.pptx", "download_url": "/data/cases/L01R0709001A/reports/L01R0709001A_現場写真報告書.pptx" } ``` --- ## 7. ドライブレコーダ画像の特殊処理 ### 7.1 メタデータ抽出 - ドライブレコーダ画像から埋め込みメタデータ(日時、速度、位置情報)を自動抽出(可能な場合) - 抽出した情報をタイトルや説明に自動反映 ### 7.2 時系列ソート - 撮影時刻(timestamp)に基づいて自動ソート - ユーザーが手動で順序変更可能 ### 7.3 表示例 ``` 2024/10/18 16:45:17 11.5km/h ① 松本車、京都府道124号三栖向納所線を西進 2024/10/18 16:45:20 ② 対向のプリウスが待機開始、田中車視界に入り始める ``` --- ## 8. 印刷仕様 - `02_print_spec.md` に準拠する - 紙印刷:A4横、天綴じ(奇数ページ天25mm、偶数ページ地25mm) - PDF出力:15mm均等余白 --- ## 9. 日付表示 - `03_ui_design/01_design_guideline.md` の日付表記ルールに準拠する - 撮影日:和暦(令和7年10月19日) - 表紙の撮影日:和暦(令和7年10月19日・11月4日) --- ## 10. UIデザイン - `03_ui_design/01_design_guideline.md` に準拠する - アイコン不使用、テキストのみ --- ## 11. エラーハンドリング | エラー | 表示メッセージ | 対応 | |--------|--------------|------| | 画像なし | 画像がアップロードされていません | アップロードを促す | | 画像ファイル破損 | 画像ファイルが破損している可能性があります | 再アップロードを促す | | 生成失敗 | 報告書の生成に失敗しました | 再試行を促す、エラーログ出力 | --- ## 12. 関連仕様書 | # | 仕様書 | 内容 | |---|--------|------| | 1 | `01_case_management.md` | 案件管理全体設計 | | 2 | `02_case_data_structure.md` | 案件データ構造 | | 4 | `04_case_input_screens.md` | 入力画面設計 | | 7 | `07_case_document_generate.md` | 報告書自動生成設計 | | 10 | `10_case_export.md` | 出力仕様 | --- ## 13. 改訂履歴 | 日付 | 版 | 担当 | 内容 | 理由・影響範囲 | |------|----|------|------|--------------| | 2026-03-24 | 1.0 | 案件管理担当 | 初版作成 | 写真/画像報告書生成機能の定義 | | 2026-03-27 | 1.1 | 案件管理担当 | 印刷仕様、日付表示を共通仕様参照に修正 | 共通仕様との整合性確保 |