Refreshing Multi-User Object Hiding, and Performance?
These are my relationships:
Patient -----< Evaluation -----< ChiefComplaint
where Evaluation::fkPatient = Patient::pkPatient and ChiefComplaint::fkEvaluation = Evaluation::pkEvaluation.
Evaluation -----< ChiefComplaintPopover (a second occurrence of ChiefComplaint)
where ChiefComplaintPopover::fkPatient = Evaluation::fkPatient.
The Evaluation layout has a portal showing ChiefComplaint records related to that Evaluation. A popover has a portal showing ChiefComplaintPopover records which allows the user to see all of the current and past chief complaints for the patient from the current or past evaluations.
The popover button should be hidden if no chief complaint records exist for the patient. It's hiding calculation is:
ExecuteSQL ( " SELECT fkPHIPatient FROM ChiefComplaint WHERE fkPHIPatient = ? "; ""; ""; Evaluation::fkPHIPatient ) = ""
Question # 1: If user 1 deletes the last chief complaint record for a patient, or creates the first one, what's the fastest way to refresh the hiding state calculation on user 2's layout and update the hiding state of their popover button?
Question # 2: The Evaluation layout has multiple occurrences of the same group of objects (portal, popover button, portal on popover) for the different elements of the evaluation. Does this approach create performance concerns since each calculation involves a SQL SELECT call?