def show
authorize :inspect, :timeline?
params[:audit_config] ||= {}
if params[:detail_config].nil? && params[:event_names].nil? &&
params[:show_pii].nil?
default_details = TimelineRecords::DEFAULT_DETAILS_CONFIG
default_events_selected =
TimelineRecords::DEFAULT_DETAILS_CONFIG.keys.append(:audits)
new_params =
params.to_unsafe_h.merge(
"detail_config" => default_details,
"event_names" => default_events_selected
)
redirect_to inspect_timeline_patient_path(new_params) and return
end
audit_config = {
include_associated_audits:
params[:audit_config][:include_associated_audits],
include_filtered_audit_changes:
params[:audit_config][:include_filtered_audit_changes]
}
@event_names = params[:event_names] || []
record_access_log_entry
@patient_timeline =
TimelineRecords.new(
@patient,
details_config:,
audit_config:,
show_pii:
).load_timeline_events(@event_names)
@no_events_message = true if @patient_timeline.empty?
if @compare_patient == :invalid_patient
@invalid_patient_id = true
elsif @compare_patient
@compare_patient_timeline =
TimelineRecords.new(
@compare_patient,
details_config:,
audit_config:,
show_pii:
).load_timeline_events(@event_names)
@no_events_compare_message = true if @compare_patient_timeline.empty?
end
end