プログラムファイル詳細¶
概要¶
DDDSシステムのプログラムファイル構成と各ファイルの役割を記載します。
ディレクトリ構造¶
/opt/services/DDDS/
├── application/ # CodeIgniterアプリケーション
│ ├── config/ # 設定ファイル
│ ├── controllers/ # コントローラ
│ ├── models/ # モデル
│ ├── views/ # ビュー
│ ├── helpers/ # ヘルパー
│ ├── hooks/ # フック
│ ├── libraries/ # ライブラリ
│ └── logs/ # ログ
├── system/ # CodeIgniterシステム
├── web/ # 公開ディレクトリ
│ ├── ddds/ # dddsサブドメイン用
│ │ ├── css/ # CSS
│ │ ├── js/ # JavaScript
│ │ └── index.php # エントリポイント
│ └── hdqrs/ # hdqrsサブドメイン用
├── docs/ # ドキュメント(本ディレクトリ)
├── docker/ # Docker設定
├── pdflib-ext/ # PDFLib拡張
└── tracer-data-migration/ # データ移行スクリプト
コントローラ(Controllers)¶
共通コントローラ(common/)¶
| ファイル | 行数 | 役割 | 使用テーブル | 対象ユーザー |
|---|---|---|---|---|
| Auth.php | 500+ | 認証・ログイン・ログアウト | accountTbl, Doctortbl, sessionTbl | 全ユーザー |
| CadavericTransplant.php | 3000+ | 死体移植管理 | T_ISHOKU_KIHON系 | 移植施設・学会 |
| LivingDonorTransplant.php | 8000+ | 生体移植管理 | T_ISHOKU_KIHON_LIV系 | 移植施設・学会 |
| ReportTransplant.php | 2000+ | 調査票・レポート | T_ISHOKU_KIHON_LIV系 | 移植施設・学会 |
Auth.php¶
場所: application/controllers/common/Auth.php
主要メソッド:
| メソッド | 行数 | 機能 | URL | HTTPメソッド |
|---|---|---|---|---|
__construct() |
25-60 | コンストラクタ、ドメイン判定 | - | - |
index() |
80-100 | ログイン画面表示 | / または /auth |
GET |
login() |
110-200 | ログイン処理 | /auth/login |
POST |
logout() |
210-230 | ログアウト処理 | /auth/logout |
GET/POST |
changePassword() |
240-280 | パスワード変更 | /auth/changePassword |
GET/POST |
重要な処理: - line 136-139: 学会ユーザーアクセス制御 - line 167: ブランチチェック - line 180: 2FA検証(tracerのみ)
使用テーブル: - accountTbl: アカウント情報 - Doctortbl: 医師情報 - sessionTbl: セッション管理
関連ファイル: - application/views/common/login.php: ログイン画面 - application/hooks/Transplant_MyClasses.php: 認証フック
LivingDonorTransplant.php¶
場所: application/controllers/common/LivingDonorTransplant.php
主要メソッド:
| メソッド | 行数 | 機能 | URL | HTTPメソッド |
|---|---|---|---|---|
__construct() |
27-77 | コンストラクタ | - | - |
index() |
87-89 | トップページ | /livingDonorTransplant/ |
GET |
search() |
98-120 | 検索画面表示 | /livingDonorTransplant/search |
GET |
postSearch() |
130-200 | 検索実行 | /livingDonorTransplant/postSearch |
POST |
detail() |
210-280 | 詳細表示 | /livingDonorTransplant/detail |
GET |
entry() |
290-350 | 新規登録画面 | /livingDonorTransplant/entry |
GET |
confEntry() |
360-420 | 登録確認 | /livingDonorTransplant/confEntry |
POST |
recipient() |
430-600 | 受者情報入力 | /livingDonorTransplant/recipient |
GET/POST |
confRecipient() |
610-800 | 受者情報確認・保存 | /livingDonorTransplant/confRecipient |
POST |
donor() |
810-1000 | ドナー情報入力 | /livingDonorTransplant/donor |
GET/POST |
confDonor() |
1010-1200 | ドナー情報確認・保存 | /livingDonorTransplant/confDonor |
POST |
csv() |
1500-1700 | CSV出力 | /livingDonorTransplant/csv |
GET |
exportAllCsv() |
1710-2000 | CSV出力処理 | - | - |
重要な処理:
- line 50-77: MCD(マスタコード)の読み込み
- line 219, 242: isset() チェック追加(バグ修正)
- line 1565: UPDATE文実行
- line 1963: T_ISHOKU_KIHON_LIV INSERT
- line 2065: T_ISHOKU_KIHON_LIVER_LIV INSERT
- line 2119: T_DONOR_LIV INSERT
使用テーブル: - T_ISHOKU_KIHON_LIV - T_ISHOKU_KIHON_LIVER_LIV - T_ISHOKU_KIHON_KIDNEY_LIV - T_ISHOKU_KIHON_LUNG_LIV - T_DONOR_LIV - T_DONOR_LIVER_LIV - T_DONOR_KIDNEY_LIV - T_DONOR_LUNG_LIV - T_NYURYOKUJOKYO_LIV - T_TRACER_IKO
関連ファイル: - application/views/common/living_donor_transplant/: ビュー - application/models/TIshokuKihonLiv.php: モデル - web/ddds/js/cadaveric_transplant/common.js: JavaScript
本部コントローラ(headquarter/)¶
| ファイル | 行数 | 役割 | 使用テーブル | 対象ユーザー |
|---|---|---|---|---|
| Menu.php | 100 | メニュー表示 | - | 本部管理者 |
| AccessLog.php | 300 | アクセスログ管理 | accessLogTbl | 本部管理者 |
| AccountHistory.php | 200 | アカウント履歴 | accountTbl | 本部管理者 |
| CordinatorManage.php | 500 | コーディネータ管理 | accountTbl, Doctortbl | 本部管理者 |
| TransplantManage.php | 500 | 移植施設管理 | accountTbl, institutionMst | 本部管理者 |
| TransplantSurvey.php | 1000 | 調査票管理 | T_ISHOKU_KIHON系 | 本部管理者 |
コーディネータコントローラ(cordinator/)¶
| ファイル | 行数 | 役割 | 使用テーブル | 対象ユーザー |
|---|---|---|---|---|
| DonorList.php | 200 | ドナー一覧 | T_DONOR | コーディネータ |
| DonorRegist.php | 300 | ドナー登録 | T_DONOR | コーディネータ |
| DonorEdit.php | 400 | ドナー編集 | T_DONOR | コーディネータ |
| DonorPreview.php | 150 | プレビュー | - | コーディネータ |
| FileUpload.php | 200 | ファイルアップロード | - | コーディネータ |
| FileDownload.php | 150 | ファイルダウンロード | fileDownLoadLogTbl | コーディネータ |
移植施設コントローラ(transplant/)¶
| ファイル | 行数 | 役割 | 使用テーブル | 対象ユーザー |
|---|---|---|---|---|
| Menu.php | 150 | メニュー表示 | - | 移植施設・学会 |
| FacilityItem.php | 200 | 施設項目管理 | institutionMst | 移植施設 |
モデル(Models)¶
生体移植モデル¶
| ファイル | 行数 | 対応テーブル | 主要メソッド |
|---|---|---|---|
| TIshokuKihonLiv.php | 500 | T_ISHOKU_KIHON_LIV | search(), insert(), update(), delete() |
| TIshokuKihonLiverLiv.php | 300 | T_ISHOKU_KIHON_LIVER_LIV | insert(), update(), get() |
| TIshokuKihonKidneyLiv.php | 300 | T_ISHOKU_KIHON_KIDNEY_LIV | insert(), update(), get() |
| TIshokuKihonLungLiv.php | 300 | T_ISHOKU_KIHON_LUNG_LIV | insert(), update(), get() |
| TDonorLiv.php | 400 | T_DONOR_LIV | insert(), update(), get() |
| TNyuryokujokyoLiv.php | 200 | T_NYURYOKUJOKYO_LIV | insert(), update(), get() |
TIshokuKihonLiv.php¶
場所: application/models/TIshokuKihonLiv.php
主要メソッド:
| メソッド | 行数 | 機能 | 引数 | 戻り値 |
|---|---|---|---|---|
search() |
50-150 | 検索 | $conditions, $account | array |
insert() |
160-200 | 挿入 | $data | int (ID) |
update() |
210-250 | 更新 | $id, $data | bool |
delete() |
260-280 | 削除 | $id | bool |
getById() |
290-310 | ID検索 | $id | object |
重要な処理:
- line 219: isset($conditions['input_status_recipent']) チェック
- line 242: isset($conditions['input_status_donor']) チェック
死体移植モデル¶
| ファイル | 行数 | 対応テーブル | 主要メソッド |
|---|---|---|---|
| TIshokuKihon.php | 400 | T_ISHOKU_KIHON | search(), insert(), update() |
| Tdonor.php | 300 | T_DONOR | insert(), update(), get() |
マスタモデル¶
| ファイル | 行数 | 対応テーブル | 主要メソッド |
|---|---|---|---|
| Mcd.php | 200 | mcd_mst | getAll(), getByCodeType() |
| Institutionmst.php | 150 | institutionMst | getAll(), getByCode() |
| Accounttbl.php | 300 | accountTbl | authenticate(), insert(), update() |
| Doctortbl.php | 200 | Doctortbl | getByAccountId() |
ビュー(Views)¶
生体移植ビュー¶
| ファイル | 行数 | 機能 | URL |
|---|---|---|---|
| living_donor_transplant/search/index.php | 300 | 検索画面 | /livingDonorTransplant/search |
| living_donor_transplant/entry/index.php | 1000+ | 新規登録画面 | /livingDonorTransplant/entry |
| living_donor_transplant/accordion/recipient_info.php | 500 | 受者情報アコーディオン | - |
| living_donor_transplant/accordion/donor_info.php | 500 | ドナー情報アコーディオン | - |
| living_donor_transplant/accordion/short_term_prognosis.php | 300 | 短期予後アコーディオン | - |
| living_donor_transplant/accordion/blood_tests.php | 200 | 血液検査アコーディオン | - |
living_donor_transplant/entry/index.php¶
場所: application/views/common/living_donor_transplant/entry/index.php
重要な修正:
- line 202-203: var_dump($info); 削除(デバッグコード)
- line 242-243: var_dump($key); 削除(デバッグコード)
- PHP変数スコープの問題修正(foreach内の$key)
共通ビュー¶
| ファイル | 行数 | 機能 | URL |
|---|---|---|---|
| common/login.php | 200 | ログイン画面 | / |
| transplant/menu.php | 150 | メニュー画面 | /transplant/menu |
transplant/menu.php¶
場所: application/views/transplant/menu.php
重要な修正:
- line 8-17: INSTITUTION_KUBUN_MANAGEMENT 追加(学会ユーザー対応)
JavaScript¶
主要JavaScriptファイル¶
| ファイル | 行数 | 機能 | 使用画面 |
|---|---|---|---|
| web/ddds/js/cadaveric_transplant/common.js | 2000+ | 移植共通処理、スコア計算 | 死体・生体移植 |
| web/ddds/js/living_donor_transplant/search.js | 500 | 検索処理 | 生体移植検索 |
| web/ddds/js/modal.js | 300 | モーダルダイアログ | 全画面 |
common.js¶
場所: web/ddds/js/cadaveric_transplant/common.js
主要機能:
| 機能 | 行数 | 説明 |
|---|---|---|
| MELDスコア計算 | 718 | 9.57 * log(Cr) + 3.78 * log(TBil) + 11.2 * log(PT-INR) + 6.43 |
| PELDスコア計算 | 747 | 4.80 * log(TBil) + 18.57 * log(PT-INR) + 6.87 * log(Alb) |
| CTPスコア計算 | 800+ | Child-Pugh分類に基づく計算 |
| 日付バリデーション | 500-600 | 日付形式チェック |
| 数値バリデーション | 650-700 | 数値範囲チェック |
設定ファイル(Config)¶
| ファイル | 行数 | 役割 |
|---|---|---|
| application/config/config.php | 500 | 基本設定(CSRF、セッション) |
| application/config/database.php | 100 | DB接続設定 |
| application/config/routes.php | 150 | ルーティング設定 |
| application/config/hooks.php | 200 | フック設定 |
| application/config/constants.php | 100 | 定数定義 |
| application/config/MY_Config.php | 50 | カスタム設定(ブランチ判定) |
フック(Hooks)¶
| ファイル | 行数 | 役割 |
|---|---|---|
| application/hooks/Transplant_MyClasses.php | 100 | 移植施設用認証フック |
| application/hooks/Headquarter_MyClasses.php | 100 | 本部用認証フック |
| application/hooks/Cordinator_MyClasses.php | 100 | コーディネータ用認証フック |
| application/hooks/MyClasses.php | 150 | 共通フック(アクセスログ) |
| application/hooks/QueryLogger.php | 100 | SQLクエリログ |
ヘルパー(Helpers)¶
| ファイル | 行数 | 役割 |
|---|---|---|
| application/helpers/maintenance_helper.php | 100 | メンテナンスモード制御 |
maintenance_helper.php¶
場所: application/helpers/maintenance_helper.php
主要関数:
| 関数 | 行数 | 機能 |
|---|---|---|
guardTracerLiving() |
20-50 | 生体移植メンテナンスガード |
getTracerLivingMaintenanceInfo() |
60-80 | メンテナンス情報取得 |
データ移行スクリプト¶
| ファイル | 言語 | 行数 | 役割 | 対象テーブル |
|---|---|---|---|---|
| tracer-data-migration/backend/kan.py | Python | 2400 | 肝臓データ移行 | T_ISHOKU_KIHON_LIVER_LIV系 |
| tracer-data-migration/backend/jin.py | Python | 1800 | 腎臓データ移行 | T_ISHOKU_KIHON_KIDNEY_LIV系 |
ファイルサマリー¶
| 分類 | ファイル数 | 総行数概算 |
|---|---|---|
| コントローラ | 20 | 20,000 |
| モデル | 30 | 8,000 |
| ビュー | 100+ | 30,000 |
| JavaScript | 15 | 5,000 |
| 設定ファイル | 10 | 1,500 |
| フック・ヘルパー | 6 | 800 |
| データ移行 | 2 | 4,200 |
| 合計 | 183+ | 69,500+ |