# ASIS 전체 ERD

`ASIS` Oracle 스키마는 물리적 외래키가 없으므로 아래 ERD는 업무상 연관을 나타내는 논리 ERD입니다.

```mermaid
erDiagram
    cm_code_group["cm_code_group<br/>(공통_코드그룹)"] {
        number code_group_id PK
        string group_code
        string group_name
    }
    cm_code["cm_code<br/>(공통_코드정보)"] {
        number code_id PK
        string code_group_code
        string code_value
        string code_name
    }
    cm_department["cm_department<br/>(공통_부서정보)"] {
        number dept_id PK
        string dept_code
        string dept_name
    }
    cm_staff["cm_staff<br/>(공통_직원정보)"] {
        number staff_id PK
        string staff_no
        string staff_name
        string dept_code
    }
    cm_patient["cm_patient<br/>(공통_환자정보)"] {
        number patient_id PK
        string patient_no
        string patient_name
        datetime birth_date
    }
    cm_patient_insurance["cm_patient_insurance<br/>(공통_환자보험)"] {
        number patient_insurance_id PK
        number patient_id
        string patient_no
        string payer_name
    }
    cm_room["cm_room<br/>(공통_병실정보)"] {
        number room_id PK
        string room_code
        string room_name
        string dept_code
    }

    gn_appointment["gn_appointment<br/>(일반_예약정보)"] {
        number appointment_id PK
        string appointment_no
        string patient_no
        string dept_code
        string doctor_no
        datetime appointment_at
    }
    gn_checkin["gn_checkin<br/>(일반_체크인정보)"] {
        number checkin_id PK
        string appointment_no
        string patient_no
        datetime checked_in_at
    }
    gn_waiting_queue["gn_waiting_queue<br/>(일반_대기열)"] {
        number queue_id PK
        string patient_no
        string dept_code
        number queue_no
    }
    gn_patient_notice["gn_patient_notice<br/>(일반_환자안내알림)"] {
        number notice_id PK
        string patient_no
        string notice_type_cd
        datetime sent_at
    }

    ad_encounter["ad_encounter<br/>(원무_내원정보)"] {
        number encounter_id PK
        string encounter_no
        string patient_no
        string appointment_no
        string dept_code
    }
    ad_admission["ad_admission<br/>(원무_입원정보)"] {
        number admission_id PK
        string encounter_no
        string patient_no
        string room_code
    }
    ad_order_charge["ad_order_charge<br/>(원무_오더청구내역)"] {
        number order_charge_id PK
        string encounter_no
        string charge_code
        string source_no
    }
    ad_bill["ad_bill<br/>(원무_청구서)"] {
        number bill_id PK
        string bill_no
        string encounter_no
        string patient_no
    }
    ad_payment["ad_payment<br/>(원무_수납정보)"] {
        number payment_id PK
        string bill_no
        string patient_no
        number payment_amount
    }
    ad_insurance_claim["ad_insurance_claim<br/>(원무_보험청구)"] {
        number claim_id PK
        string bill_no
        string patient_no
        string payer_code
    }

    cl_vital_sign["cl_vital_sign<br/>(진료_바이탈사인)"] {
        number vital_sign_id PK
        string encounter_no
        string patient_no
        datetime measured_at
    }
    cl_clinical_note["cl_clinical_note<br/>(진료_진료기록)"] {
        number note_id PK
        string encounter_no
        string patient_no
        string author_no
    }
    cl_diagnosis["cl_diagnosis<br/>(진료_진단정보)"] {
        number diagnosis_id PK
        string encounter_no
        string patient_no
        string icd_code
    }
    cl_medication_order["cl_medication_order<br/>(진료_투약오더)"] {
        number medication_order_id PK
        string order_no
        string encounter_no
        string patient_no
        string medication_code
    }
    cl_procedure_order["cl_procedure_order<br/>(진료_처치오더)"] {
        number procedure_order_id PK
        string order_no
        string encounter_no
        string patient_no
        string procedure_code
    }

    cs_specimen["cs_specimen<br/>(진료지원_검체정보)"] {
        number specimen_id PK
        string specimen_no
        string patient_no
        string encounter_no
        string order_no
    }
    cs_lab_order["cs_lab_order<br/>(진료지원_검사오더)"] {
        number lab_order_id PK
        string lab_order_no
        string encounter_no
        string patient_no
        string procedure_order_no
        string specimen_no
    }
    cs_lab_result["cs_lab_result<br/>(진료지원_검사결과)"] {
        number lab_result_id PK
        string lab_order_no
        string analyte_code
    }
    cs_imaging_order["cs_imaging_order<br/>(진료지원_영상오더)"] {
        number imaging_order_id PK
        string imaging_order_no
        string encounter_no
        string patient_no
        string procedure_order_no
    }
    cs_imaging_result["cs_imaging_result<br/>(진료지원_영상판독결과)"] {
        number imaging_result_id PK
        string imaging_order_no
        string report_status_cd
    }
    cs_dispense["cs_dispense<br/>(진료지원_조제정보)"] {
        number dispense_id PK
        string dispense_no
        string order_no
        string patient_no
    }

    cm_code_group ||--o{ cm_code : logical
    cm_department ||--o{ cm_staff : logical
    cm_department ||--o{ cm_room : logical
    cm_patient ||--o{ cm_patient_insurance : logical

    cm_patient ||--o{ gn_appointment : logical
    cm_staff ||--o{ gn_appointment : logical
    cm_department ||--o{ gn_appointment : logical
    gn_appointment ||--o{ gn_checkin : logical
    cm_patient ||--o{ gn_checkin : logical
    cm_patient ||--o{ gn_waiting_queue : logical
    cm_department ||--o{ gn_waiting_queue : logical
    cm_patient ||--o{ gn_patient_notice : logical

    gn_appointment ||--o{ ad_encounter : logical
    cm_patient ||--o{ ad_encounter : logical
    cm_department ||--o{ ad_encounter : logical
    ad_encounter ||--o{ ad_admission : logical
    cm_room ||--o{ ad_admission : logical
    ad_encounter ||--o{ ad_order_charge : logical
    ad_encounter ||--o| ad_bill : logical
    ad_bill ||--o{ ad_payment : logical
    ad_bill ||--o{ ad_insurance_claim : logical

    ad_encounter ||--o{ cl_vital_sign : logical
    ad_encounter ||--o{ cl_clinical_note : logical
    ad_encounter ||--o{ cl_diagnosis : logical
    ad_encounter ||--o{ cl_medication_order : logical
    ad_encounter ||--o{ cl_procedure_order : logical

    cl_procedure_order ||--o{ cs_specimen : logical
    cs_specimen ||--o{ cs_lab_order : logical
    cl_procedure_order ||--o{ cs_lab_order : logical
    cs_lab_order ||--o{ cs_lab_result : logical
    cl_procedure_order ||--o{ cs_imaging_order : logical
    cs_imaging_order ||--o| cs_imaging_result : logical
    cl_medication_order ||--o{ cs_dispense : logical
```
