create view clin.v_hx_family as -- those not linked to another patient as relative select vpi.pk_patient as pk_patient, vpi.pk_health_issue as pk_health_issue, chxf.clin_when as clin_when, chxf.modified_when as modified_when, chxf.modified_by as modified_by, chxf.fk_encounter as pk_encounter, chxf.fk_episode as pk_episode, chxf.narrative as relationship, chxf.soap_cat as soap_cat, chxf.pk as pk_clin_hx_family, chxf.fk_hx_family_item as pk_hx_family_item, null::integer as pk_narrative_condition, null::integer as pk_relative_identity, hxfi.name_relative as name_relative, hxfi.dob_relative as dob_relative, hxfi.condition as condition, hxfi.age_noted as age_noted, hxfi.age_of_death as age_of_death, hxfi.is_cause_of_death as is_cause_of_death from clin.v_pat_items vpi, clin.clin_hx_family chxf, clin.hx_family_item hxfi, v_basic_person vbp where vpi.pk_item = chxf.pk_item and hxfi.pk = chxf.fk_hx_family_item and hxfi.fk_narrative_condition is null and hxfi.fk_relative is null UNION -- those linked to another patient as relative select vpi.pk_patient as pk_patient, vpi.pk_health_issue as pk_health_issue, chxf.clin_when as clin_when, chxf.modified_when as modified_when, chxf.modified_by as modified_by, chxf.fk_encounter as pk_encounter, chxf.fk_episode as pk_episode, chxf.narrative as relationship, chxf.soap_cat as soap_cat, chxf.pk as pk_clin_hx_family, chxf.fk_hx_family_item as pk_hx_family_item, null::integer as pk_narrative_condition, hxfi.fk_relative as pk_relative_identity, vbp.firstnames || ' ' || vbp.lastnames as name_relative, vbp.dob as dob_relative, hxfi.condition as condition, hxfi.age_noted as age_noted, hxfi.age_of_death as age_of_death, hxfi.is_cause_of_death as is_cause_of_death from clin.v_pat_items vpi, clin.clin_hx_family chxf, clin.hx_family_item hxfi, v_basic_person vbp where vpi.pk_item = chxf.pk_item and hxfi.pk = chxf.fk_hx_family_item and hxfi.fk_narrative_condition is null and hxfi.fk_relative = v_basic_person.pk_identity UNION -- those linked to a condition of another patient being a relative select vpn.pk_patient as pk_patient, vpn.pk_health_issue as pk_health_issue, chxf.clin_when as clin_when, chxf.modified_when as modified_when, chxf.modified_by as modified_by, chxf.fk_encounter as pk_encounter, chxf.fk_episode as pk_episode, chxf.narrative as relationship, chxf.soap_cat as soap_cat, chxf.pk as pk_clin_hx_family, chxf.fk_hx_family_item as pk_hx_family_item, hxfi.fk_narrative_condition as pk_narrative_condition, vpn.pk_patient as pk_relative_identity, vbp.firstnames || ' ' || vbp.lastnames as name_relative, vbp.dob as dob_relative, vpn.narrative as condition, hxfi.age_noted as age_noted, hxfi.age_of_death as age_of_death, hxfi.is_cause_of_death as is_cause_of_death from clin.clin_hx_family chxf, clin.hx_family_item hxfi, v_basic_person vbp, clin.v_pat_narrative vpn where hxfi.pk = chxf.fk_hx_family_item and hxfi.fk_narrative_condition = vpn.pk_narrative and hxfi.fk_relative is null and vbp.pk_identity = vpn.pk_patient ;