コンテンツにスキップ

機能概要

システム全体機能マップ

mindmap
  root((DDDS<br/>システム))
    本部機能
      アクセスログ管理
      アカウント管理
      調査票管理
      BOX API連携
      EDC連携
      バッチ処理
    コーディネータ機能
      ドナー登録
      ドナー編集
      ファイル管理
      プレビュー
    移植施設機能(死体)
      死体移植管理
        検索
        詳細表示
        登録編集
        CSV出力
        PDF出力
      調査票
    移植施設機能(生体)
      生体移植管理
        検索
        受者情報入力
        ドナー情報入力
        CSV出力
      レポート
    共通機能
      認証
      メニュー
      パスワード変更
      ログ記録

サブドメイン別機能一覧

1. 本部機能(hdqrs)

対象ユーザー: 本部管理者(ACC_TYPE_HQ) アクセス: https://hdqrs.example.com/

機能 URL 説明 使用テーブル
アクセスログ管理 /headquarter/accessLog 全ユーザーのアクセス履歴閲覧 accessLogTbl
アカウント履歴 /headquarter/accountHistory アカウント変更履歴閲覧 accountTbl
コーディネータ管理 /headquarter/cordinatorManage コーディネータアカウント管理 accountTbl, Doctortbl
移植施設管理 /headquarter/transplantManage 移植施設ユーザー管理 accountTbl, institutionMst
調査票管理 /headquarter/transplantSurvey 調査票作成・管理 T_ISHOKU_KIHON, T_DONOR
BOX連携 /boxapi/* BOXストレージ連携 -
EDC連携 /boxapi/1.0/edcupload EDCシステムデータ送信 -
バッチ処理 /headquarter/cron/* 定期バッチ実行 全テーブル

特徴: - システム全体の管理権限 - 全施設のデータ閲覧可能 - CSRF除外設定(BOX API)


2. コーディネータ機能(brnch)

対象ユーザー: コーディネータ(ACC_TYPE_CO) アクセス: https://brnch.example.com/

機能 URL 説明 使用テーブル
ドナー一覧 /cordinator/donorList ドナー情報一覧表示 T_DONOR
ドナー登録 /cordinator/donorRegist 新規ドナー情報登録 T_DONOR
ドナー編集 /cordinator/donorEdit ドナー情報編集 T_DONOR
プレビュー /cordinator/donorPreview 入力内容確認 -
ファイルアップロード /cordinator/fileUpload ドナー関連ファイルアップロード -
ファイルダウンロード /cordinator/fileDownload ドナー関連ファイルダウンロード fileDownLoadLogTbl

特徴: - ドナー情報の入力・管理に特化 - 所属地域のデータのみアクセス可能 - シンプルなUI


3. 移植施設機能(死体移植)- ddds

対象ユーザー: 移植施設ユーザー(ACC_TYPE_TP)、学会ユーザー(institution_kubun=4) アクセス: https://ddds.example.com/

死体移植管理

機能 URL 説明 使用テーブル
検索 /cadavericTransplant/search 死体移植症例検索 T_ISHOKU_KIHON
詳細表示 /cadavericTransplant/detail 症例詳細表示 T_ISHOKU_KIHON, T_ISHOKU_KIHON_*
新規登録 /cadavericTransplant/entry 新規症例登録 T_ISHOKU_KIHON, T_ISHOKU_KIHON_*
編集 /cadavericTransplant/edit 症例情報編集 T_ISHOKU_KIHON, T_ISHOKU_KIHON_*
CSV出力 /cadavericTransplant/csv 症例データCSV出力 T_ISHOKU_KIHON, T_ISHOKU_KIHON_*
PDF出力 /cadavericTransplant/pdf 症例帳票PDF出力 T_ISHOKU_KIHON, T_ISHOKU_KIHON_*

生体移植管理

機能 URL 説明 使用テーブル
検索 /livingDonorTransplant/search 生体移植症例検索 T_ISHOKU_KIHON_LIV
詳細表示 /livingDonorTransplant/detail 症例詳細表示 T_ISHOKU_KIHON_LIV, T_ISHOKU_KIHON_*_LIV
新規登録 /livingDonorTransplant/entry 新規症例登録 T_ISHOKU_KIHON_LIV
受者情報入力 /livingDonorTransplant/recipient 受者情報入力・編集 T_ISHOKU_KIHON_LIV, T_ISHOKU_KIHON_*_LIV
受者情報確認 /livingDonorTransplant/confRecipient 受者情報確認・保存 同上
ドナー情報入力 /livingDonorTransplant/donor ドナー情報入力・編集 T_DONOR_LIV, T_DONOR_*_LIV
ドナー情報確認 /livingDonorTransplant/confDonor ドナー情報確認・保存 同上
CSV出力 /livingDonorTransplant/csv 症例データCSV出力 T_ISHOKU_KIHON_LIV系
入力状況参照 /livingDonorTransplant/statusInfoTransplant 入力状況確認 T_NYURYOKUJOKYO_LIV

調査票・レポート

機能 URL 説明 使用テーブル
調査票検索 /reportTransplant/search 調査票対象症例検索 T_ISHOKU_KIHON_LIV
調査票詳細 /reportTransplant/detail 調査票内容表示 T_ISHOKU_KIHON_LIV系
CSV出力 /reportTransplant/csv 調査票CSV出力 T_ISHOKU_KIHON_LIV系
PDF出力 /reportTransplant/pdf 調査票PDF出力 T_ISHOKU_KIHON_LIV系

特徴: - 死体移植と生体移植の両方を扱う - 自施設のデータのみアクセス可能 - 学会ユーザー(institution_kubun=4)もアクセス可能


4. 移植施設機能(生体移植専用)- tracer

対象ユーザー: 生体移植専用施設(institution_kubun=3) アクセス: https://tracer.example.com/ セキュリティ: 2要素認証(2FA)必須

機能 URL 説明 使用テーブル
生体移植管理 /livingDonorTransplant/* dddsと同一機能 T_ISHOKU_KIHON_LIV系
調査票 /reportTransplant/* dddsと同一機能 T_ISHOKU_KIHON_LIV系

特徴: - 生体移植専用のサブドメイン - 2要素認証でセキュリティ強化 - データ移行時のメンテナンス機能実装済み


共通機能

認証機能

機能 URL 説明 使用テーブル
ログイン画面 / または /auth ログイン画面表示 -
ログイン処理 /auth/login 認証処理 accountTbl, Doctortbl
ログアウト /auth/logout ログアウト処理 sessionTbl
パスワード変更 /auth/changePassword パスワード変更 accountTbl

2要素認証(tracerのみ): - Cookieベースのトークン管理 - トークン有効期限: 30日

メニュー機能

機能 URL 説明 対象ユーザー
本部メニュー /headquarter/menu 本部機能メニュー 本部管理者
コーディネータメニュー /cordinator/donorList ドナー一覧(メニュー兼用) コーディネータ
移植施設メニュー /transplant/menu 移植施設機能メニュー 移植施設ユーザー

ログ機能

機能 説明 記録先
アクセスログ 全URLアクセスを記録 accessLogTbl
SQLクエリログ 実行SQLをDEBUG出力 application/logs/
アプリケーションログ エラー・警告を記録 application/logs/
ダウンロードログ ファイルダウンロードを記録 fileDownLoadLogTbl

機能別アクセス権限マトリクス

機能 本部 コーディネータ 移植施設(死体) 移植施設(生体) 学会
アクセスログ管理
アカウント管理
BOX連携
ドナー登録
死体移植管理 閲覧のみ
生体移植管理 閲覧のみ
調査票

データアクセス制御

施設コード制御

各機能は、ログインユーザーのSISETU_CD(施設コード)に基づいてデータアクセスを制御します。

例: 生体移植検索:

// application/models/TIshokuKihonLiv.php
public function search($conditions, $account) {
    // 自施設のデータのみ検索
    $this->db->where('SISETU_CD', $account->SISETU_CD);

    // 本部の場合は全施設
    if ($account->account_type_mst_id === ACC_TYPE_HQ) {
        $this->db->where('1', '1'); // 全データ
    }

    return $this->db->get(T_ISHOKU_KIHON_LIV)->result();
}

所属区分制御

application/controllers/common/Auth.php (line 136-139):

// 生体専用施設・学会のアクセス制御
if ($this->branch === APP_TRANSPLANT &&
    $this->domain !== 'ddds' &&
    in_array($account->institution_kubun, [
        INSTITUTION_KUBUN_LIVING_DONOR,    // 3: 生体専用
        INSTITUTION_KUBUN_MANAGEMENT       // 4: 学会
    ])) {
    // ddds以外からのアクセスをブロック
    show_error('アクセスが許可されていません', 403);
}

機能横断的な処理

CSVエクスポート

共通処理フロー:

sequenceDiagram
    participant User as ユーザー
    participant Controller as コントローラ
    participant Model as モデル
    participant DB as データベース

    User->>Controller: CSV出力リクエスト
    Controller->>Model: データ取得
    Model->>DB: SELECT文実行
    DB-->>Model: データ返却
    Model-->>Controller: 結果セット
    Controller->>Controller: CSV形式変換
    Controller-->>User: CSVファイルダウンロード

実装例:

// application/controllers/common/LivingDonorTransplant.php
public function csv() {
    // データ取得
    $data = $this->TIshokuKihonLiv->search($conditions, $this->account);

    // CSVヘッダー出力
    header('Content-Type: text/csv; charset=UTF-8');
    header('Content-Disposition: attachment; filename="living_transplant.csv"');

    // CSV出力
    $fp = fopen('php://output', 'w');
    $this->exportAllCsv($data, $fp);
    fclose($fp);
}

PDFエクスポート

使用ライブラリ: PDFLib 実装: /opt/services/DDDS/pdflib-ext/

PDF生成フロー: 1. データベースからデータ取得 2. PDFテンプレート読み込み 3. データ埋め込み 4. PDF生成・ダウンロード

バリデーション

共通バリデーションルール:

// application/controllers/common/LivingDonorTransplant.php
$this->form_validation->set_rules('ISYOKU_DATE', '移植日', 'required|callback_valid_date');
$this->form_validation->set_rules('HEIGHT', '身長', 'numeric|callback_valid_range[50,250]');
$this->form_validation->set_rules('WEIGHT', '体重', 'numeric|callback_valid_range[10,200]');

スコア自動計算機能

MELD/PELD/CTPスコア(肝臓移植)

実装: web/ddds/js/cadaveric_transplant/common.js

MELDスコア計算式:

// line 718
meldScore = 9.57 * Math.log(creatinine) +
            3.78 * Math.log(tbil) +
            11.2 * Math.log(ptInr) +
            6.43;

PELDスコア計算式:

// line 747
peldScore = 4.80 * Math.log(tbil) +
            18.57 * Math.log(ptInr) +
            6.87 * Math.log(alb);

計算タイミング: - 画面表示時: DBから取得した値を表示 - フィールド変更時: JavaScriptで再計算 - 保存時: 計算値をDBに保存

関連ドキュメント