graph LR
    %% Virtual Model
    VW[VirtualWound]
    
    %% Virtual Fields
    VW --> wound_id[wound_id]
    VW --> region[region]
    VW --> wound_type[wound_type]
    VW --> start_date[start_date]
    VW --> end_date[end_date<br/>nullable]
    VW --> is_active[is_active]
    VW --> image_id[image_id<br/>nullable]
    VW --> patient_id[patient_id]
    VW --> specialist_id[specialist_id]
    VW --> updated_at[updated_at]
    
    %% OMOP Tables
    COND[ConditionOccurrence]
    OBS[Observation<br/>Wound Region]
    WI[WoundImage]
    
    %% Mappings to ConditionOccurrence
    wound_id --> |condition_occurrence_id<br/>KEY| COND
    patient_id --> |person_id| COND
    specialist_id --> |provider_id| COND
    wound_type --> |condition_concept_id<br/>choicemap| COND
    start_date --> |condition_start_date| COND
    end_date --> |condition_end_date| COND
    is_active --> |condition_status_concept_id<br/>choicemap| COND
    
    %% Mappings to Observation (Region)
    patient_id --> |person_id<br/>KEY| OBS
    updated_at --> |observation_date| OBS
    region --> |value_as_concept_id<br/>choicemap| OBS
    wound_id --> |observation_event_id<br/>KEY| OBS
    
    %% Mappings to WoundImage
    image_id --> |image_id| WI
    wound_id --> |wound_id<br/>KEY| WI
    
    %% Constant mappings
    CONST1[CID_NULL<br/>const] -.-> |condition_type_concept_id| COND
    CONST2[CID_WOUND_LOCATION<br/>const] -.-> |observation_concept_id<br/>KEY| OBS
    CONST3[CID_PK_CONDITION_OCCURRENCE<br/>const] -.-> |obs_event_field_concept_id| OBS
    CONST4[CID_NULL<br/>const] -.-> |observation_type_concept_id| OBS
    
    %% Styling
    classDef virtualModel fill:#e1f5ff,stroke:#01579b,stroke-width:3px
    classDef virtualField fill:#fff9c4,stroke:#f57f17,stroke-width:2px
    classDef virtualFieldNull fill:#fff9c4,stroke:#f57f17,stroke-width:2px,stroke-dasharray: 3 3
    classDef omopTable fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px
    classDef constant fill:#ffebee,stroke:#c62828,stroke-width:1px,stroke-dasharray: 5 5
    
    class VW virtualModel
    class wound_id,region,wound_type,start_date,is_active,patient_id,specialist_id,updated_at virtualField
    class end_date,image_id virtualFieldNull
    class COND,OBS,WI omopTable
    class CONST1,CONST2,CONST3,CONST4 constant