コンテンツにスキップ

運用フロー

概要

DDDSシステムにおける臓器移植の運用フローを、ステータス遷移とデータベース書き込みタイミングを含めて解説します。

生体移植共通フロー

基本フロー

stateDiagram-v2
    [*] --> 新規登録: レシピエント情報登録
    新規登録 --> 移植前評価: 基本情報入力完了
    移植前評価 --> ドナー評価: ドナー情報登録
    ドナー評価 --> 移植実施: 移植手術実施
    移植実施 --> 経過観察1年目: 移植完了
    経過観察1年目 --> 経過観察2年目: 1年後フォロー完了
    経過観察2年目 --> 経過観察3年目: 2年後フォロー完了
    経過観察3年目 --> 経過観察5年目: 3年後フォロー完了
    経過観察5年目 --> 完了: 5年後フォロー完了
    完了 --> [*]

    note right of 新規登録
        DB: T_ISHOKU_KIHON_LIV
        Status: 0 (未入力)
    end note

    note right of 移植実施
        DB: T_ISHOKU_KIHON_*_LIV
        Status: 1 (入力中)
    end note

    note right of 完了
        Status: 9 (完了)
    end note

データ書き込みタイミング

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

    User->>Screen: レシピエント情報入力
    Screen->>Controller: POST /livingDonorTransplant/recipient
    Controller->>Controller: バリデーション
    Controller->>Screen: 確認画面表示
    User->>Screen: 登録確認
    Screen->>Controller: POST /livingDonorTransplant/confRecipient

    Controller->>Model: T_ISHOKU_KIHON_LIV::insert()
    Model->>DB: INSERT INTO T_ISHOKU_KIHON_LIV
    DB-->>Model: SEITAI_ISYOKU_ID取得
    Model-->>Controller: 登録完了

    Controller->>Model: T_ISHOKU_KIHON_*_LIV::insert()
    Model->>DB: INSERT INTO T_ISHOKU_KIHON_LIVER_LIV等
    DB-->>Model: OK
    Model-->>Controller: 登録完了

    Controller->>Model: T_NYURYOKUJOKYO_LIV::insert()
    Model->>DB: INSERT INTO T_NYURYOKUJOKYO_LIV
    DB-->>Model: OK
    Model-->>Controller: 登録完了

    Controller-->>Screen: 登録完了メッセージ
    Screen-->>User: 登録完了表示

肝臓移植運用フロー

詳細フロー

flowchart TD
    START([開始]) --> INPUT_RECIPIENT[レシピエント基本情報入力]

    INPUT_RECIPIENT --> DB_KIHON_LIV[(T_ISHOKU_KIHON_LIV<br/>SEITAI_ISYOKU_ID生成<br/>Status: 0)]

    DB_KIHON_LIV --> INPUT_LIVER[肝臓移植詳細入力]

    INPUT_LIVER --> CALC_SCORES[スコア自動計算<br/>MELD/PELD/CTP]

    CALC_SCORES --> DB_LIVER[(T_ISHOKU_KIHON_LIVER_LIV<br/>MELD_SCORE<br/>PELD_SCORE<br/>CTP_SCORE)]

    DB_LIVER --> INPUT_DONOR[ドナー情報入力]

    INPUT_DONOR --> DB_DONOR_LIV[(T_DONOR_LIV<br/>DONOR_A_ID生成)]

    DB_DONOR_LIV --> DB_DONOR_LIVER[(T_DONOR_LIVER_LIV<br/>ドナー詳細情報)]

    DB_DONOR_LIVER --> TRANSPLANT[移植手術実施]

    TRANSPLANT --> UPDATE_STATUS1[(T_NYURYOKUJOKYO_LIV<br/>Status: 1 → 2<br/>受者・ドナー入力完了)]

    UPDATE_STATUS1 --> FOLLOW_3M{3ヶ月後<br/>フォロー}

    FOLLOW_3M --> DB_LIVING_R_3M[(T_LIVING_R_LIV<br/>KIROKU_DATE: +3ヶ月<br/>SEIKA_STATUS<br/>SURVIVAL_STATUS)]

    DB_LIVING_R_3M --> REJECTION_CHECK{拒絶反応<br/>あり?}

    REJECTION_CHECK -->|あり| DB_REJECTION[(T_REJECTION_R_LIV<br/>拒絶反応記録)]
    REJECTION_CHECK -->|なし| COMPLICATION_CHECK

    DB_REJECTION --> COMPLICATION_CHECK{合併症<br/>あり?}

    COMPLICATION_CHECK -->|あり| DB_COMPLICATION[(T_GAPPEI_R_LIV<br/>合併症記録)]
    COMPLICATION_CHECK -->|なし| LAB_TEST

    DB_COMPLICATION --> LAB_TEST[血液検査実施]

    LAB_TEST --> DB_LAB[(T_KENSA_R_LIV<br/>検査値記録)]

    DB_LAB --> IMMUNOSUPPRESSION[免疫抑制剤記録]

    IMMUNOSUPPRESSION --> DB_IMMUNO[(T_IJI_MENEKI_YOKUSEI_R_LIV<br/>薬剤情報)]

    DB_IMMUNO --> FOLLOW_6M{6ヶ月後<br/>フォロー}

    FOLLOW_6M --> DB_LIVING_R_6M[(T_LIVING_R_LIV<br/>KIROKU_DATE: +6ヶ月)]

    DB_LIVING_R_6M --> FOLLOW_1Y{1年後<br/>フォロー}

    FOLLOW_1Y --> DB_LIVING_R_1Y[(T_LIVING_R_LIV<br/>KIROKU_DATE: +1年)]

    DB_LIVING_R_1Y --> UPDATE_STATUS2[(T_NYURYOKUJOKYO_LIV<br/>Status: 2 → 3<br/>1年フォロー完了)]

    UPDATE_STATUS2 --> FOLLOW_2Y{2年後<br/>フォロー}

    FOLLOW_2Y --> DB_LIVING_R_2Y[(T_LIVING_R_LIV<br/>KIROKU_DATE: +2年)]

    DB_LIVING_R_2Y --> FOLLOW_3Y{3年後<br/>フォロー}

    FOLLOW_3Y --> DB_LIVING_R_3Y[(T_LIVING_R_LIV<br/>KIROKU_DATE: +3年)]

    DB_LIVING_R_3Y --> FOLLOW_5Y{5年後<br/>フォロー}

    FOLLOW_5Y --> DB_LIVING_R_5Y[(T_LIVING_R_LIV<br/>KIROKU_DATE: +5年)]

    DB_LIVING_R_5Y --> UPDATE_STATUS_COMPLETE[(T_NYURYOKUJOKYO_LIV<br/>Status: 3 → 9<br/>完了)]

    UPDATE_STATUS_COMPLETE --> AMED_OUTPUT[AMED要約データ生成]

    AMED_OUTPUT --> DB_AMED[(AMED_LIVER<br/>要約データ)]

    DB_AMED --> END([完了])

    style DB_KIHON_LIV fill:#e1f5ff
    style DB_LIVER fill:#e1f5ff
    style DB_DONOR_LIV fill:#ffe1e1
    style DB_DONOR_LIVER fill:#ffe1e1
    style DB_LIVING_R_3M fill:#e8f5e9
    style DB_REJECTION fill:#fff9c4
    style DB_COMPLICATION fill:#fff9c4
    style DB_LAB fill:#f3e5f5
    style DB_IMMUNO fill:#f3e5f5
    style UPDATE_STATUS1 fill:#ffebee
    style UPDATE_STATUS2 fill:#ffebee
    style UPDATE_STATUS_COMPLETE fill:#ffebee
    style DB_AMED fill:#e0f2f1

ドナー追跡フロー

flowchart TD
    START([ドナー情報登録完了]) --> DONOR_FOLLOW_3M{3ヶ月後<br/>フォロー}

    DONOR_FOLLOW_3M --> DB_LIVING_D_3M[(T_LIVING_D_LIV<br/>KIROKU_DATE: +3ヶ月<br/>SURVIVAL_STATUS)]

    DB_LIVING_D_3M --> DONOR_COMPLICATION{合併症<br/>あり?}

    DONOR_COMPLICATION -->|あり| DB_DONOR_COMPLICATION[(T_GAPPEI_D_LIV<br/>合併症記録)]
    DONOR_COMPLICATION -->|なし| DONOR_LAB

    DB_DONOR_COMPLICATION --> DONOR_LAB[血液検査実施]

    DONOR_LAB --> DB_DONOR_LAB[(T_KENSA_D_LIV<br/>検査値記録)]

    DB_DONOR_LAB --> DONOR_FOLLOW_1Y{1年後<br/>フォロー}

    DONOR_FOLLOW_1Y --> DB_LIVING_D_1Y[(T_LIVING_D_LIV<br/>KIROKU_DATE: +1年)]

    DB_LIVING_D_1Y --> DONOR_FOLLOW_5Y{5年後<br/>フォロー}

    DONOR_FOLLOW_5Y --> DB_LIVING_D_5Y[(T_LIVING_D_LIV<br/>KIROKU_DATE: +5年)]

    DB_LIVING_D_5Y --> END([完了])

    style DB_LIVING_D_3M fill:#ffe1e1
    style DB_DONOR_COMPLICATION fill:#fff9c4
    style DB_DONOR_LAB fill:#f3e5f5

腎臓移植運用フロー

詳細フロー

flowchart TD
    START([開始]) --> INPUT_RECIPIENT[レシピエント基本情報入力]

    INPUT_RECIPIENT --> DB_KIHON_LIV[(T_ISHOKU_KIHON_LIV<br/>SEITAI_ISYOKU_ID生成<br/>Status: 0)]

    DB_KIHON_LIV --> INPUT_KIDNEY[腎臓移植詳細入力]

    INPUT_KIDNEY --> DIALYSIS_INFO[透析情報入力<br/>透析期間・透析方法]

    DIALYSIS_INFO --> DB_KIDNEY[(T_ISHOKU_KIHON_KIDNEY_LIV<br/>TOSEKI_KIKAN<br/>TOSEKI_HOHO)]

    DB_KIDNEY --> INPUT_DONOR[ドナー情報入力]

    INPUT_DONOR --> DONOR_SIDE[摘出側指定<br/>R: 右 / L: 左]

    DONOR_SIDE --> DB_DONOR_LIV[(T_DONOR_LIV<br/>DONOR_A_ID生成)]

    DB_DONOR_LIV --> DB_DONOR_KIDNEY[(T_DONOR_KIDNEY_LIV<br/>DONOR_SIDE<br/>DONOR_CR<br/>DONOR_EGFR)]

    DB_DONOR_KIDNEY --> TRANSPLANT[移植手術実施]

    TRANSPLANT --> UPDATE_STATUS1[(T_NYURYOKUJOKYO_LIV<br/>Status: 1 → 2)]

    UPDATE_STATUS1 --> FOLLOW_1M{1ヶ月後<br/>フォロー}

    FOLLOW_1M --> KIDNEY_FUNCTION[腎機能検査]

    KIDNEY_FUNCTION --> DB_LAB_CR[(T_KENSA_R_LIV<br/>KENSA_NAME: '血清Cr'<br/>KENSA_VALUE)]

    DB_LAB_CR --> DB_LAB_PROTEIN[(T_KENSA_R_LIV<br/>KENSA_NAME: '尿蛋白'<br/>KENSA_VALUE)]

    DB_LAB_PROTEIN --> DB_LIVING_R_1M[(T_LIVING_R_LIV<br/>KIROKU_DATE: +1ヶ月<br/>SEIKA_STATUS)]

    DB_LIVING_R_1M --> REJECTION_CHECK{拒絶反応<br/>あり?}

    REJECTION_CHECK -->|あり| DB_REJECTION[(T_REJECTION_R_LIV<br/>拒絶反応記録)]
    REJECTION_CHECK -->|なし| FOLLOW_3M

    DB_REJECTION --> FOLLOW_3M{3ヶ月後<br/>フォロー}

    FOLLOW_3M --> DB_LIVING_R_3M[(T_LIVING_R_LIV<br/>KIROKU_DATE: +3ヶ月)]

    DB_LIVING_R_3M --> FOLLOW_6M{6ヶ月後<br/>フォロー}

    FOLLOW_6M --> DB_LIVING_R_6M[(T_LIVING_R_LIV<br/>KIROKU_DATE: +6ヶ月)]

    DB_LIVING_R_6M --> FOLLOW_1Y{1年後<br/>フォロー}

    FOLLOW_1Y --> DB_LIVING_R_1Y[(T_LIVING_R_LIV<br/>KIROKU_DATE: +1年)]

    DB_LIVING_R_1Y --> UPDATE_STATUS2[(T_NYURYOKUJOKYO_LIV<br/>Status: 2 → 3)]

    UPDATE_STATUS2 --> FOLLOW_2Y{2年後}
    FOLLOW_2Y --> DB_LIVING_R_2Y[(T_LIVING_R_LIV<br/>+2年)]
    DB_LIVING_R_2Y --> FOLLOW_3Y{3年後}
    FOLLOW_3Y --> DB_LIVING_R_3Y[(T_LIVING_R_LIV<br/>+3年)]
    DB_LIVING_R_3Y --> FOLLOW_5Y{5年後}
    FOLLOW_5Y --> DB_LIVING_R_5Y[(T_LIVING_R_LIV<br/>+5年)]

    DB_LIVING_R_5Y --> UPDATE_STATUS_COMPLETE[(T_NYURYOKUJOKYO_LIV<br/>Status: 9 完了)]

    UPDATE_STATUS_COMPLETE --> AMED_OUTPUT[AMED要約データ生成]

    AMED_OUTPUT --> DB_AMED[(AMED_KIDNEY<br/>要約データ)]

    DB_AMED --> END([完了])

    style DB_KIHON_LIV fill:#e1f5ff
    style DB_KIDNEY fill:#e1f5ff
    style DB_DONOR_LIV fill:#ffe1e1
    style DB_DONOR_KIDNEY fill:#ffe1e1
    style DB_LAB_CR fill:#f3e5f5
    style DB_LAB_PROTEIN fill:#f3e5f5
    style UPDATE_STATUS1 fill:#ffebee
    style UPDATE_STATUS2 fill:#ffebee
    style UPDATE_STATUS_COMPLETE fill:#ffebee
    style DB_AMED fill:#e0f2f1

心臓移植運用フロー(死体移植)

詳細フロー

flowchart TD
    START([JOTからドナー情報受信]) --> DONOR_MATCH[ドナー・レシピエントマッチング]

    DONOR_MATCH --> DB_DONOR[(T_DONOR<br/>JOT_ID<br/>ドナー基本情報)]

    DB_DONOR --> INPUT_RECIPIENT[レシピエント情報入力]

    INPUT_RECIPIENT --> DB_KIHON[(T_ISHOKU_KIHON<br/>SITAI_ISYOKU_ID生成<br/>JOT_ID紐付け)]

    DB_KIHON --> INPUT_HEART[心臓移植詳細入力]

    INPUT_HEART --> DB_HEART[(T_ISHOKU_KIHON_HEART<br/>心機能データ<br/>EF, LVEDD等)]

    DB_HEART --> TRANSPLANT[移植手術実施]

    TRANSPLANT --> UPDATE_STATUS1[(T_NYURYOKUJOKYO<br/>Status: 1 → 2)]

    UPDATE_STATUS1 --> FOLLOW_1M{1ヶ月後}

    FOLLOW_1M --> CARDIAC_FUNCTION[心機能検査]

    CARDIAC_FUNCTION --> DB_LAB[(検査値記録<br/>EF, BNP等)]

    DB_LAB --> REJECTION_CHECK{拒絶反応<br/>あり?}

    REJECTION_CHECK -->|あり| BIOPSY[心筋生検実施]
    REJECTION_CHECK -->|なし| FOLLOW_3M

    BIOPSY --> DB_REJECTION[(拒絶反応記録)]

    DB_REJECTION --> FOLLOW_3M{3ヶ月後}

    FOLLOW_3M --> FOLLOW_6M{6ヶ月後}
    FOLLOW_6M --> FOLLOW_1Y{1年後}
    FOLLOW_1Y --> UPDATE_STATUS2[(Status: 2 → 3)]
    UPDATE_STATUS2 --> FOLLOW_2Y{2年後}
    FOLLOW_2Y --> FOLLOW_3Y{3年後}
    FOLLOW_3Y --> FOLLOW_5Y{5年後}
    FOLLOW_5Y --> UPDATE_STATUS_COMPLETE[(Status: 9 完了)]

    UPDATE_STATUS_COMPLETE --> END([完了])

    style DB_DONOR fill:#ffe1e1
    style DB_KIHON fill:#e1f5ff
    style DB_HEART fill:#e1f5ff
    style UPDATE_STATUS1 fill:#ffebee
    style UPDATE_STATUS2 fill:#ffebee
    style UPDATE_STATUS_COMPLETE fill:#ffebee

肺移植運用フロー(生体移植)

詳細フロー

flowchart TD
    START([開始]) --> INPUT_RECIPIENT[レシピエント基本情報入力]

    INPUT_RECIPIENT --> DB_KIHON_LIV[(T_ISHOKU_KIHON_LIV)]

    DB_KIHON_LIV --> INPUT_LUNG[肺移植詳細入力]

    INPUT_LUNG --> RESPIRATORY_FUNCTION[呼吸機能検査<br/>FEV1, FVC等]

    RESPIRATORY_FUNCTION --> DB_LUNG[(T_ISHOKU_KIHON_LUNG_LIV<br/>呼吸機能データ)]

    DB_LUNG --> INPUT_DONOR1[ドナー1情報入力<br/>右肺提供]

    INPUT_DONOR1 --> DB_DONOR1[(T_DONOR_LIV<br/>DONOR_A_ID=1)]

    DB_DONOR1 --> INPUT_DONOR2[ドナー2情報入力<br/>左肺提供]

    INPUT_DONOR2 --> DB_DONOR2[(T_DONOR_LIV<br/>DONOR_A_ID=2)]

    DB_DONOR2 --> DB_DONOR_LUNG1[(T_DONOR_LUNG_LIV<br/>ドナー1詳細)]

    DB_DONOR_LUNG1 --> DB_DONOR_LUNG2[(T_DONOR_LUNG_LIV<br/>ドナー2詳細)]

    DB_DONOR_LUNG2 --> TRANSPLANT[移植手術実施]

    TRANSPLANT --> UPDATE_STATUS1[(T_NYURYOKUJOKYO_LIV<br/>Status: 1 → 2)]

    UPDATE_STATUS1 --> FOLLOW_1W{1週間後}

    FOLLOW_1W --> XRAY_CT[胸部X線・CT検査]

    XRAY_CT --> DB_IMAGE[(画像検査記録)]

    DB_IMAGE --> RESPIRATORY_TEST[呼吸機能検査]

    RESPIRATORY_TEST --> DB_LAB[(T_KENSA_R_LIV<br/>FEV1, SpO2等)]

    DB_LAB --> REJECTION_CHECK{急性拒絶<br/>あり?}

    REJECTION_CHECK -->|あり| BRONCHOSCOPY[気管支鏡検査]
    REJECTION_CHECK -->|なし| FOLLOW_1M

    BRONCHOSCOPY --> DB_REJECTION[(T_REJECTION_R_LIV)]

    DB_REJECTION --> FOLLOW_1M{1ヶ月後}

    FOLLOW_1M --> FOLLOW_3M{3ヶ月後}
    FOLLOW_3M --> FOLLOW_6M{6ヶ月後}
    FOLLOW_6M --> FOLLOW_1Y{1年後}
    FOLLOW_1Y --> UPDATE_STATUS2[(Status: 2 → 3)]
    UPDATE_STATUS2 --> CHRONIC_CHECK{慢性拒絶<br/>チェック}

    CHRONIC_CHECK -->|BOS疑い| DB_BOS[(閉塞性細気管支炎<br/>記録)]
    CHRONIC_CHECK -->|正常| FOLLOW_2Y

    DB_BOS --> FOLLOW_2Y{2年後}
    FOLLOW_2Y --> FOLLOW_3Y{3年後}
    FOLLOW_3Y --> FOLLOW_5Y{5年後}
    FOLLOW_5Y --> UPDATE_STATUS_COMPLETE[(Status: 9 完了)]

    UPDATE_STATUS_COMPLETE --> END([完了])

    style DB_KIHON_LIV fill:#e1f5ff
    style DB_LUNG fill:#e1f5ff
    style DB_DONOR1 fill:#ffe1e1
    style DB_DONOR2 fill:#ffe1e1
    style UPDATE_STATUS1 fill:#ffebee
    style UPDATE_STATUS2 fill:#ffebee
    style UPDATE_STATUS_COMPLETE fill:#ffebee

ステータス定義

入力状況ステータス(T_NYURYOKUJOKYO_LIV/T_NYURYOKUJOKYO)

Status 状態 説明
0 未入力 基本情報のみ登録
1 入力中 受者またはドナー情報入力中
2 入力完了 移植実施、経過観察開始
3 1年フォロー完了 1年後フォロー完了
4 2年フォロー完了 2年後フォロー完了
5 3年フォロー完了 3年後フォロー完了
9 完了 5年フォロー完了、データ確定

生着状態(SEIKA_STATUS)

Code 状態 説明
1 良好 グラフト機能正常
2 低下 グラフト機能低下
3 喪失 グラフト喪失
9 不明 追跡不能

生存状態(SURVIVAL_STATUS)

Code 状態 説明
1 生存 生存確認
2 死亡 死亡確認
9 不明 追跡不能

DB書き込みトリガー

自動書き込み

タイミング テーブル カラム
レコード作成時 全テーブル CREATED_AT NOW()
レコード更新時 全テーブル UPDATED_AT NOW()
新規移植登録 T_ISHOKU_KIHON_LIV SEITAI_ISYOKU_ID AUTO_INCREMENT
ドナー登録 T_DONOR_LIV DONOR_A_ID AUTO_INCREMENT

手動書き込み(画面操作)

タイミング テーブル 操作
受者情報確認ボタン T_ISHOKU_KIHON_LIV, T_ISHOKU_KIHON_*_LIV INSERT/UPDATE
ドナー情報確認ボタン T_DONOR_LIV, T_DONOR_*_LIV INSERT/UPDATE
経過観察データ保存 T_LIVING_R_LIV, T_LIVING_D_LIV INSERT/UPDATE
検査値入力保存 T_KENSA_R_LIV, T_KENSA_D_LIV INSERT
合併症登録 T_GAPPEI_R_LIV, T_GAPPEI_D_LIV INSERT

バッチ処理

タイミング テーブル 処理内容
日次バッチ AMED_LIVER, AMED_KIDNEY 要約データ生成
月次バッチ T_NYURYOKUJOKYO_LIV ステータス自動更新チェック

関連ドキュメント