コンテンツにスキップ

プログラムファイル詳細

概要

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+

関連ドキュメント