From b03093b0566eccd36486a512267139bcd01bbc00 Mon Sep 17 00:00:00 2001 From: Jonathan Henrique Maia de Moraes Date: Mon, 7 Dec 2020 23:34:44 -0300 Subject: [PATCH] Remove control diagrams from analytic dashboard --- .../live/components/card/card_header_menu.ex | 9 +- .../dashboard_live/data/dashboard_data.ex | 4 +- .../data/dashboard_data/analytic.ex | 91 ++++----- .../data/dashboard_data/morbidity.ex | 174 +++++++++++++++++- .../dashboard_live/data/section_data.ex | 4 +- ...te_compulsory_analytic_control_diagrams.ex | 2 +- .../immediate_compulsory_analytic_history.ex | 2 +- .../immediate_compulsory_analytic_region.ex | 2 +- .../immediate_compulsory_analytic_summary.ex | 2 +- ...ly_compulsory_analytic_control_diagrams.ex | 2 +- .../weekly_compulsory_analytic_history.ex | 2 +- .../weekly_compulsory_analytic_region.ex | 2 +- .../weekly_compulsory_analytic_summary.ex | 2 +- .../morbidity/morbidity_summary.ex | 7 +- .../fragments/analytic_dashboard.ex | 124 +------------ .../templates/layout/root.html.leex | 2 +- ...nfo.exs => 20201117192144_create_info.exs} | 0 ..._info.exs => 20201117193205_seed_info.exs} | 0 ...xs => 20201117193418_add_info_indexes.exs} | 0 19 files changed, 231 insertions(+), 200 deletions(-) rename priv/repo/migrations/{30201117192144_create_info.exs => 20201117192144_create_info.exs} (100%) rename priv/repo/migrations/{30201117193205_seed_info.exs => 20201117193205_seed_info.exs} (100%) rename priv/repo/migrations/{30201117193418_add_info_indexes.exs => 20201117193418_add_info_indexes.exs} (100%) diff --git a/lib/health_board_web/live/components/card/card_header_menu.ex b/lib/health_board_web/live/components/card/card_header_menu.ex index db2b1c8..0ab9b93 100644 --- a/lib/health_board_web/live/components/card/card_header_menu.ex +++ b/lib/health_board_web/live/components/card/card_header_menu.ex @@ -1,6 +1,7 @@ defmodule HealthBoardWeb.LiveComponents.CardHeaderMenu do use Surface.Component, slot: "header" + alias HealthBoardWeb.Router.Helpers, as: Routes alias Phoenix.LiveView prop card_id, :atom, required: true @@ -17,14 +18,14 @@ defmodule HealthBoardWeb.LiveComponents.CardHeaderMenu do @spec render(map()) :: LiveView.Rendered.t() def render(assigns) do ~H""" -
+

{{ @card.name }}

- +
@@ -62,4 +63,8 @@ defmodule HealthBoardWeb.LiveComponents.CardHeaderMenu do
""" end + + defp dashboard_path(socket, dashboard_id, filters) do + Routes.dashboard_path(socket, :index, dashboard_id, Enum.to_list(filters)) + end end diff --git a/lib/health_board_web/live/live_views/dashboard_live/data/dashboard_data.ex b/lib/health_board_web/live/live_views/dashboard_live/data/dashboard_data.ex index 8546566..bb7be75 100644 --- a/lib/health_board_web/live/live_views/dashboard_live/data/dashboard_data.ex +++ b/lib/health_board_web/live/live_views/dashboard_live/data/dashboard_data.ex @@ -7,8 +7,8 @@ defmodule HealthBoardWeb.DashboardLive.DashboardData do @spec assign(map) :: map def assign(%{dashboard: dashboard, data: data, filters: filters, root_pid: root_pid}) do dashboard.sections - |> Task.async_stream(&fetch_section_data(&1, data, filters, root_pid), timeout: 60_000) - |> Enum.reduce(%{}, fn {:ok, {k, v}}, map -> Map.put(map, k, v) end) + |> Enum.map(&fetch_section_data(&1, data, filters, root_pid)) + |> Enum.into(%{}) rescue _error -> [] end diff --git a/lib/health_board_web/live/live_views/dashboard_live/data/dashboard_data/analytic.ex b/lib/health_board_web/live/live_views/dashboard_live/data/dashboard_data/analytic.ex index 6e282f5..53bde03 100644 --- a/lib/health_board_web/live/live_views/dashboard_live/data/dashboard_data/analytic.ex +++ b/lib/health_board_web/live/live_views/dashboard_live/data/dashboard_data/analytic.ex @@ -2,18 +2,22 @@ defmodule HealthBoardWeb.DashboardLive.DashboardData.Analytic do alias HealthBoard.Contexts alias HealthBoard.Contexts.Demographic.YearlyPopulations alias HealthBoard.Contexts.Info.DataPeriods - alias HealthBoard.Contexts.Morbidities.{WeeklyMorbidities, YearlyMorbidities} - alias HealthBoard.Contexts.Mortalities.{WeeklyDeaths, YearlyDeaths} + alias HealthBoard.Contexts.Morbidities.YearlyMorbidities + alias HealthBoard.Contexts.Mortalities.YearlyDeaths alias HealthBoardWeb.DashboardLive.CommonData @spec fetch(map()) :: map() def fetch(%{data: data, filters: filters} = dashboard_data) do - filters = fetch_default_filters(filters) - data = fetch_location_data(data, filters) + {data, filters} = fetch_location_data(data, fetch_default_filters(filters)) data - |> async_stream(filters) - |> Enum.reduce(data, fn {:ok, {key, value}}, data -> Map.put(data, key, value) end) + |> fetch_yearly_deaths(filters) + |> fetch_yearly_morbidities(filters) + |> fetch_yearly_populations(filters) + |> fetch_locations_year_deaths(filters) + |> fetch_locations_year_morbidities(filters) + |> fetch_locations_year_populations(filters) + |> fetch_data_periods() |> update(dashboard_data) |> Map.put(:filters, filters) end @@ -28,9 +32,14 @@ defmodule HealthBoardWeb.DashboardLive.DashboardData.Analytic do end defp fetch_location_data(data, filters) do - data - |> Map.put(:location, CommonData.location(filters)) - |> fetch_locations() + location = CommonData.location(filters) + + data = + data + |> Map.put(:location, CommonData.location(filters)) + |> fetch_locations() + + {data, Map.put(filters, :location, location.name)} end defp fetch_locations(%{location: location} = data) do @@ -44,102 +53,66 @@ defmodule HealthBoardWeb.DashboardLive.DashboardData.Analytic do |> Map.put(:locations_ids, Enum.map(locations, & &1.id)) end - defp async_stream(data, filters) do - [ - fn -> {:yearly_deaths, fetch_yearly_deaths(data, filters)} end, - fn -> {:yearly_morbidities, fetch_yearly_morbidities(data, filters)} end, - fn -> {:yearly_populations, fetch_yearly_populations(data, filters)} end, - fn -> {:locations_year_deaths, fetch_locations_year_deaths(data, filters)} end, - fn -> {:locations_year_morbidities, fetch_locations_year_morbidities(data, filters)} end, - fn -> {:locations_year_populations, fetch_locations_year_populations(data, filters)} end, - fn -> {:weekly_deaths, fetch_weekly_deaths(data, filters)} end, - fn -> {:weekly_morbidities, fetch_weekly_morbidities(data, filters)} end, - fn -> {:data_periods, fetch_data_periods(data)} end - ] - |> Task.async_stream(& &1.(), timeout: 10_000) - end - - defp fetch_yearly_deaths(%{location: %{id: location_id}}, filters) do + defp fetch_yearly_deaths(%{location: %{id: location_id}} = data, filters) do %{from_year: from_year, to_year: to_year} = filters [location_id: location_id, from_year: from_year, to_year: to_year] |> YearlyDeaths.list_by() |> Enum.map(&Map.take(&1, [:context, :location_id, :year, :total])) + |> update(:yearly_deaths, data) end - defp fetch_yearly_morbidities(%{location: %{id: location_id}}, filters) do + defp fetch_yearly_morbidities(%{location: %{id: location_id}} = data, filters) do %{from_year: from_year, to_year: to_year} = filters [location_id: location_id, from_year: from_year, to_year: to_year] |> YearlyMorbidities.list_by() |> Enum.map(&Map.take(&1, [:context, :location_id, :year, :total])) + |> update(:yearly_morbidities, data) end - defp fetch_yearly_populations(%{location: %{id: location_id}}, filters) do + defp fetch_yearly_populations(%{location: %{id: location_id}} = data, filters) do %{from_year: from_year, to_year: to_year} = filters [location_id: location_id, from_year: from_year, to_year: to_year] |> YearlyPopulations.list_by() |> Enum.map(&Map.take(&1, [:location_id, :year, :total])) + |> update(:yearly_populations, data) end - defp fetch_locations_year_deaths(%{locations_ids: locations_ids}, filters) do + defp fetch_locations_year_deaths(%{locations_ids: locations_ids} = data, filters) do %{year: year} = filters [year: year, locations_ids: locations_ids] |> YearlyDeaths.list_by() |> Enum.map(&Map.take(&1, [:context, :location_id, :year, :total])) + |> update(:locations_year_deaths, data) end - defp fetch_locations_year_morbidities(%{locations_ids: locations_ids}, filters) do + defp fetch_locations_year_morbidities(%{locations_ids: locations_ids} = data, filters) do %{year: year} = filters [year: year, locations_ids: locations_ids] |> YearlyMorbidities.list_by() |> Enum.map(&Map.take(&1, [:context, :location_id, :year, :total])) + |> update(:locations_year_morbidities, data) end - defp fetch_locations_year_populations(%{locations_ids: locations_ids}, filters) do + defp fetch_locations_year_populations(%{locations_ids: locations_ids} = data, filters) do %{year: year} = filters [year: year, locations_ids: locations_ids] |> YearlyPopulations.list_by() |> Enum.map(&Map.take(&1, [:location_id, :year, :total])) + |> update(:locations_year_populations, data) end - defp fetch_weekly_deaths(%{location: %{id: location_id}}, filters) do - %{from_year: from_year, to_year: to_year} = filters - - [ - location_id: location_id, - from_year: from_year, - to_year: to_year, - order_by: [asc: :context, asc: :year, asc: :week] - ] - |> WeeklyDeaths.list_by() - |> Enum.map(&Map.take(&1, [:context, :location_id, :year, :week, :total])) - |> Enum.group_by(& &1.context) - end - - defp fetch_weekly_morbidities(%{location: %{id: location_id}}, filters) do - %{from_year: from_year, to_year: to_year} = filters - - [ - location_id: location_id, - from_year: from_year, - to_year: to_year, - order_by: [asc: :context, asc: :year, asc: :week] - ] - |> WeeklyMorbidities.list_by() - |> Enum.map(&Map.take(&1, [:context, :location_id, :year, :week, :total])) - |> Enum.group_by(& &1.context) - end - - defp fetch_data_periods(%{location: %{id: location_id}}) do + defp fetch_data_periods(%{location: %{id: location_id}} = data) do [location_id: location_id, data_contexts: [Contexts.data_context!(:morbidity), Contexts.data_context!(:deaths)]] |> DataPeriods.list_by() |> Enum.group_by(& &1.data_context) |> group_data_periods_by_context() + |> update(:data_periods, data) end defp group_data_periods_by_context(data_periods_per_data_context) do diff --git a/lib/health_board_web/live/live_views/dashboard_live/data/dashboard_data/morbidity.ex b/lib/health_board_web/live/live_views/dashboard_live/data/dashboard_data/morbidity.ex index 55378eb..43477d9 100644 --- a/lib/health_board_web/live/live_views/dashboard_live/data/dashboard_data/morbidity.ex +++ b/lib/health_board_web/live/live_views/dashboard_live/data/dashboard_data/morbidity.ex @@ -1,6 +1,176 @@ defmodule HealthBoardWeb.DashboardLive.DashboardData.Morbidity do + alias HealthBoard.Contexts + alias HealthBoard.Contexts.Demographic.YearlyPopulations + alias HealthBoard.Contexts.Info.DataPeriods + alias HealthBoard.Contexts.Morbidities.{WeeklyMorbidities, YearlyMorbidities} + alias HealthBoard.Contexts.Mortalities.{WeeklyDeaths, YearlyDeaths} + alias HealthBoardWeb.DashboardLive.CommonData + @spec fetch(map()) :: map() - def fetch(dashboard_data) do - dashboard_data + def fetch(%{data: data, filters: filters} = dashboard_data) do + {data, filters} = fetch_location_data(data, fetch_default_filters(filters)) + + data + |> fetch_yearly_deaths(filters) + |> fetch_yearly_morbidities(filters) + |> fetch_yearly_population(filters) + |> fetch_locations_year_deaths(filters) + |> fetch_locations_year_morbidities(filters) + |> fetch_locations_year_populations(filters) + |> fetch_weekly_deaths(filters) + |> fetch_weekly_morbidities(filters) + |> fetch_data_periods(filters) + |> update(dashboard_data) + |> Map.put(:filters, filters) + end + + defp fetch_default_filters(filters) do + current_year = Date.utc_today().year + + filters + |> Map.put(:year, current_year) + |> Map.put(:to_year, current_year) + |> Map.put(:from_year, 2000) + |> Map.put_new(:morbidity_context, 100_000) + end + + defp fetch_location_data(data, filters) do + location = CommonData.location(filters) + + data = + data + |> Map.put(:location, CommonData.location(filters)) + |> fetch_locations() + + {data, Map.put(filters, :location, location.name)} + end + + defp fetch_locations(%{location: location} = data) do + locations = + location + |> CommonData.locations() + |> Enum.sort(&(&1.name <= &2.name)) + + data + |> Map.put(:locations, locations) + |> Map.put(:locations_ids, Enum.map(locations, & &1.id)) + end + + defp fetch_yearly_deaths(%{location: %{id: location_id}} = data, filters) do + %{from_year: from_year, to_year: to_year, morbidity_context: context} = filters + + yearly_deaths = + [location_id: location_id, from_year: from_year, to_year: to_year, context: context] + |> YearlyDeaths.list_by() + |> Enum.map(&Map.take(&1, [:year, :total])) + + %{total: year_deaths} = Enum.find(yearly_deaths, %{total: 0}, &(&1.year == to_year)) + + data + |> Map.put(:yearly_deaths, yearly_deaths) + |> Map.put(:year_deaths, year_deaths) + end + + defp fetch_yearly_morbidities(%{location: %{id: location_id}} = data, filters) do + %{from_year: from_year, to_year: to_year, morbidity_context: context} = filters + + yearly_morbidities = + [location_id: location_id, from_year: from_year, to_year: to_year, context: context] + |> YearlyMorbidities.list_by() + |> Enum.map(&Map.take(&1, [:year, :total])) + + %{total: year_morbidity} = Enum.find(yearly_morbidities, %{total: 0}, &(&1.year == to_year)) + + data + |> Map.put(:yearly_morbidities, yearly_morbidities) + |> Map.put(:year_morbidity, year_morbidity) + end + + defp fetch_yearly_population(%{location: %{id: location_id}} = data, filters) do + %{from_year: from_year, to_year: to_year} = filters + + yearly_population = + [location_id: location_id, from_year: from_year, to_year: to_year] + |> YearlyPopulations.list_by() + |> Enum.map(&Map.take(&1, [:year, :total])) + + %{total: year_population} = Enum.find(yearly_population, %{total: 0}, &(&1.year == to_year)) + + data + |> Map.put(:yearly_population, yearly_population) + |> Map.put(:year_population, year_population) + end + + defp fetch_locations_year_deaths(%{locations_ids: locations_ids} = data, filters) do + %{year: year, morbidity_context: context} = filters + + [year: year, locations_ids: locations_ids, context: context] + |> YearlyDeaths.list_by() + |> Enum.map(&Map.take(&1, [:location_id, :total])) + |> update(:locations_year_deaths, data) + end + + defp fetch_locations_year_morbidities(%{locations_ids: locations_ids} = data, filters) do + %{year: year, morbidity_context: context} = filters + + [year: year, locations_ids: locations_ids, context: context] + |> YearlyMorbidities.list_by() + |> Enum.map(&Map.take(&1, [:location_id, :total])) + |> update(:locations_year_morbidities, data) + end + + defp fetch_locations_year_populations(%{locations_ids: locations_ids} = data, filters) do + %{year: year, morbidity_context: context} = filters + + [year: year, locations_ids: locations_ids, context: context] + |> YearlyPopulations.list_by() + |> Enum.map(&Map.take(&1, [:location_id, :total])) + |> update(:locations_year_populations, data) + end + + defp fetch_weekly_deaths(%{location: %{id: location_id}} = data, filters) do + %{from_year: from_year, to_year: to_year, morbidity_context: context} = filters + + [ + location_id: location_id, + from_year: from_year, + to_year: to_year, + context: context, + order_by: [asc: :context, asc: :year, asc: :week] + ] + |> WeeklyDeaths.list_by() + |> Enum.map(&Map.take(&1, [:year, :week, :total])) + |> update(:weekly_deaths, data) + end + + defp fetch_weekly_morbidities(%{location: %{id: location_id}} = data, filters) do + %{from_year: from_year, to_year: to_year, morbidity_context: context} = filters + + [ + location_id: location_id, + from_year: from_year, + to_year: to_year, + context: context, + order_by: [asc: :context, asc: :year, asc: :week] + ] + |> WeeklyMorbidities.list_by() + |> Enum.map(&Map.take(&1, [:year, :week, :total])) + |> update(:weekly_morbidities, data) + end + + defp fetch_data_periods(%{location: %{id: location_id}} = data, filters) do + %{morbidity_context: context} = filters + + [ + location_id: location_id, + data_contexts: [Contexts.data_context!(:morbidity), Contexts.data_context!(:deaths)], + context: context + ] + |> DataPeriods.list_by() + |> update(:data_periods, data) + end + + defp update(data, key \\ :data, dashboard_data) do + Map.put(dashboard_data, key, data) end end diff --git a/lib/health_board_web/live/live_views/dashboard_live/data/section_data.ex b/lib/health_board_web/live/live_views/dashboard_live/data/section_data.ex index caedee8..0d58cd5 100644 --- a/lib/health_board_web/live/live_views/dashboard_live/data/section_data.ex +++ b/lib/health_board_web/live/live_views/dashboard_live/data/section_data.ex @@ -18,8 +18,8 @@ defmodule HealthBoardWeb.DashboardLive.SectionData do @spec assign(map) :: map def assign(%{section: %{cards: section_cards}, data: data, filters: filters, root_pid: root_pid}) do section_cards - |> Task.async_stream(&fetch_card_data(&1, data, filters, root_pid), timeout: 60_000) - |> Enum.reduce(%{}, fn {:ok, {k, v}}, map -> Map.put(map, k, v) end) + |> Enum.map(&fetch_card_data(&1, data, filters, root_pid)) + |> Enum.into(%{}) rescue _error -> [] end diff --git a/lib/health_board_web/live/live_views/dashboard_live/data/section_data/analytic/immediate/immediate_compulsory_analytic_control_diagrams.ex b/lib/health_board_web/live/live_views/dashboard_live/data/section_data/analytic/immediate/immediate_compulsory_analytic_control_diagrams.ex index 4e82b12..058d97b 100644 --- a/lib/health_board_web/live/live_views/dashboard_live/data/section_data/analytic/immediate/immediate_compulsory_analytic_control_diagrams.ex +++ b/lib/health_board_web/live/live_views/dashboard_live/data/section_data/analytic/immediate/immediate_compulsory_analytic_control_diagrams.ex @@ -1,6 +1,6 @@ defmodule HealthBoardWeb.DashboardLive.SectionData.ImmediateCompulsoryAnalyticControlDiagrams do @data_keys ~w[data_periods weekly_deaths weekly_morbidities yearly_populations]a - @filter_keys ~w[from_year morbidity_context to_year]a + @filter_keys ~w[from_year location morbidity_context to_year]a @spec fetch(map()) :: map() def fetch(%{data: data, filters: filters} = section_data) do diff --git a/lib/health_board_web/live/live_views/dashboard_live/data/section_data/analytic/immediate/immediate_compulsory_analytic_history.ex b/lib/health_board_web/live/live_views/dashboard_live/data/section_data/analytic/immediate/immediate_compulsory_analytic_history.ex index 4d15f0e..3dbca59 100644 --- a/lib/health_board_web/live/live_views/dashboard_live/data/section_data/analytic/immediate/immediate_compulsory_analytic_history.ex +++ b/lib/health_board_web/live/live_views/dashboard_live/data/section_data/analytic/immediate/immediate_compulsory_analytic_history.ex @@ -1,6 +1,6 @@ defmodule HealthBoardWeb.DashboardLive.SectionData.ImmediateCompulsoryAnalyticHistory do @data_keys ~w[yearly_deaths yearly_morbidities yearly_populations]a - @filter_keys ~w[from_year morbidity_contexts to_year]a + @filter_keys ~w[from_year location morbidity_contexts to_year]a @spec fetch(map()) :: map() def fetch(%{data: data, filters: filters} = section_data) do diff --git a/lib/health_board_web/live/live_views/dashboard_live/data/section_data/analytic/immediate/immediate_compulsory_analytic_region.ex b/lib/health_board_web/live/live_views/dashboard_live/data/section_data/analytic/immediate/immediate_compulsory_analytic_region.ex index af254c7..c5677be 100644 --- a/lib/health_board_web/live/live_views/dashboard_live/data/section_data/analytic/immediate/immediate_compulsory_analytic_region.ex +++ b/lib/health_board_web/live/live_views/dashboard_live/data/section_data/analytic/immediate/immediate_compulsory_analytic_region.ex @@ -1,6 +1,6 @@ defmodule HealthBoardWeb.DashboardLive.SectionData.ImmediateCompulsoryAnalyticRegion do @data_keys ~w[locations locations_year_deaths locations_year_morbidities locations_year_populations]a - @filter_keys ~w[morbidity_contexts year]a + @filter_keys ~w[location morbidity_contexts year]a @spec fetch(map()) :: map() def fetch(%{data: data, filters: filters} = section_data) do diff --git a/lib/health_board_web/live/live_views/dashboard_live/data/section_data/analytic/immediate/immediate_compulsory_analytic_summary.ex b/lib/health_board_web/live/live_views/dashboard_live/data/section_data/analytic/immediate/immediate_compulsory_analytic_summary.ex index d4bd731..2519998 100644 --- a/lib/health_board_web/live/live_views/dashboard_live/data/section_data/analytic/immediate/immediate_compulsory_analytic_summary.ex +++ b/lib/health_board_web/live/live_views/dashboard_live/data/section_data/analytic/immediate/immediate_compulsory_analytic_summary.ex @@ -1,6 +1,6 @@ defmodule HealthBoardWeb.DashboardLive.SectionData.ImmediateCompulsoryAnalyticSummary do @data_keys ~w[data_periods yearly_deaths yearly_morbidities yearly_populations]a - @filter_keys ~w[morbidity_context year]a + @filter_keys ~w[location morbidity_context year]a @spec fetch(map()) :: map() def fetch(%{data: data, filters: filters} = section_data) do diff --git a/lib/health_board_web/live/live_views/dashboard_live/data/section_data/analytic/weekly/weekly_compulsory_analytic_control_diagrams.ex b/lib/health_board_web/live/live_views/dashboard_live/data/section_data/analytic/weekly/weekly_compulsory_analytic_control_diagrams.ex index 5b42a58..62fc9b0 100644 --- a/lib/health_board_web/live/live_views/dashboard_live/data/section_data/analytic/weekly/weekly_compulsory_analytic_control_diagrams.ex +++ b/lib/health_board_web/live/live_views/dashboard_live/data/section_data/analytic/weekly/weekly_compulsory_analytic_control_diagrams.ex @@ -1,6 +1,6 @@ defmodule HealthBoardWeb.DashboardLive.SectionData.WeeklyCompulsoryAnalyticControlDiagrams do @data_keys ~w[data_periods weekly_deaths weekly_morbidities yearly_populations]a - @filter_keys ~w[from_year morbidity_context to_year]a + @filter_keys ~w[from_year location morbidity_context to_year]a @spec fetch(map()) :: map() def fetch(%{data: data, filters: filters} = section_data) do diff --git a/lib/health_board_web/live/live_views/dashboard_live/data/section_data/analytic/weekly/weekly_compulsory_analytic_history.ex b/lib/health_board_web/live/live_views/dashboard_live/data/section_data/analytic/weekly/weekly_compulsory_analytic_history.ex index bdf92d6..f59e359 100644 --- a/lib/health_board_web/live/live_views/dashboard_live/data/section_data/analytic/weekly/weekly_compulsory_analytic_history.ex +++ b/lib/health_board_web/live/live_views/dashboard_live/data/section_data/analytic/weekly/weekly_compulsory_analytic_history.ex @@ -1,6 +1,6 @@ defmodule HealthBoardWeb.DashboardLive.SectionData.WeeklyCompulsoryAnalyticHistory do @data_keys ~w[yearly_deaths yearly_morbidities yearly_populations]a - @filter_keys ~w[from_year morbidity_contexts to_year]a + @filter_keys ~w[from_year location morbidity_contexts to_year]a @spec fetch(map()) :: map() def fetch(%{data: data, filters: filters} = section_data) do diff --git a/lib/health_board_web/live/live_views/dashboard_live/data/section_data/analytic/weekly/weekly_compulsory_analytic_region.ex b/lib/health_board_web/live/live_views/dashboard_live/data/section_data/analytic/weekly/weekly_compulsory_analytic_region.ex index d8193c6..8ed4b33 100644 --- a/lib/health_board_web/live/live_views/dashboard_live/data/section_data/analytic/weekly/weekly_compulsory_analytic_region.ex +++ b/lib/health_board_web/live/live_views/dashboard_live/data/section_data/analytic/weekly/weekly_compulsory_analytic_region.ex @@ -1,6 +1,6 @@ defmodule HealthBoardWeb.DashboardLive.SectionData.WeeklyCompulsoryAnalyticRegion do @data_keys ~w[locations locations_year_deaths locations_year_morbidities locations_year_populations]a - @filter_keys ~w[morbidity_contexts year]a + @filter_keys ~w[location morbidity_contexts year]a @spec fetch(map()) :: map() def fetch(%{data: data, filters: filters} = section_data) do diff --git a/lib/health_board_web/live/live_views/dashboard_live/data/section_data/analytic/weekly/weekly_compulsory_analytic_summary.ex b/lib/health_board_web/live/live_views/dashboard_live/data/section_data/analytic/weekly/weekly_compulsory_analytic_summary.ex index 2c71f2f..87c061a 100644 --- a/lib/health_board_web/live/live_views/dashboard_live/data/section_data/analytic/weekly/weekly_compulsory_analytic_summary.ex +++ b/lib/health_board_web/live/live_views/dashboard_live/data/section_data/analytic/weekly/weekly_compulsory_analytic_summary.ex @@ -1,6 +1,6 @@ defmodule HealthBoardWeb.DashboardLive.SectionData.WeeklyCompulsoryAnalyticSummary do @data_keys ~w[data_periods yearly_deaths yearly_morbidities yearly_populations]a - @filter_keys ~w[morbidity_context year]a + @filter_keys ~w[location morbidity_context year]a @spec fetch(map()) :: map() def fetch(%{data: data, filters: filters} = section_data) do diff --git a/lib/health_board_web/live/live_views/dashboard_live/data/section_data/morbidity/morbidity_summary.ex b/lib/health_board_web/live/live_views/dashboard_live/data/section_data/morbidity/morbidity_summary.ex index 3677a99..dd21027 100644 --- a/lib/health_board_web/live/live_views/dashboard_live/data/section_data/morbidity/morbidity_summary.ex +++ b/lib/health_board_web/live/live_views/dashboard_live/data/section_data/morbidity/morbidity_summary.ex @@ -1,6 +1,11 @@ defmodule HealthBoardWeb.DashboardLive.SectionData.MorbiditySummary do + @data_keys ~w[data_periods year_deaths year_morbidity year_population]a + @filter_keys ~w[year location morbidity_context]a + @spec fetch(map()) :: map() - def fetch(section_data) do + def fetch(%{data: data, filters: filters} = section_data) do section_data + |> Map.put(:data, Map.take(data, @data_keys)) + |> Map.put(:filters, Map.take(filters, @filter_keys)) end end diff --git a/lib/health_board_web/live/live_views/dashboard_live/fragments/analytic_dashboard.ex b/lib/health_board_web/live/live_views/dashboard_live/fragments/analytic_dashboard.ex index 6996ab3..48593e5 100644 --- a/lib/health_board_web/live/live_views/dashboard_live/fragments/analytic_dashboard.ex +++ b/lib/health_board_web/live/live_views/dashboard_live/fragments/analytic_dashboard.ex @@ -1,7 +1,7 @@ defmodule HealthBoardWeb.DashboardLive.Fragments.AnalyticDashboard do use Surface.Component - alias HealthBoardWeb.DashboardLive.Fragments.AnalyticDashboard.{ControlDiagrams, History, Region, Summary} + alias HealthBoardWeb.DashboardLive.Fragments.AnalyticDashboard.{History, Region, Summary} alias HealthBoardWeb.LiveComponents.{Card, Grid, Section, SectionHeader} alias Phoenix.LiveView @@ -64,128 +64,6 @@ defmodule HealthBoardWeb.DashboardLive.Fragments.AnalyticDashboard do :weekly_compulsory_death_rate_table ]}} /> - - - - """ else diff --git a/lib/health_board_web/templates/layout/root.html.leex b/lib/health_board_web/templates/layout/root.html.leex index dffa3f8..6a5ab73 100644 --- a/lib/health_board_web/templates/layout/root.html.leex +++ b/lib/health_board_web/templates/layout/root.html.leex @@ -39,7 +39,7 @@
    <%= for %{name: name, id: card_id} <- section.cards do %>
  • - + <%= name %>
  • diff --git a/priv/repo/migrations/30201117192144_create_info.exs b/priv/repo/migrations/20201117192144_create_info.exs similarity index 100% rename from priv/repo/migrations/30201117192144_create_info.exs rename to priv/repo/migrations/20201117192144_create_info.exs diff --git a/priv/repo/migrations/30201117193205_seed_info.exs b/priv/repo/migrations/20201117193205_seed_info.exs similarity index 100% rename from priv/repo/migrations/30201117193205_seed_info.exs rename to priv/repo/migrations/20201117193205_seed_info.exs diff --git a/priv/repo/migrations/30201117193418_add_info_indexes.exs b/priv/repo/migrations/20201117193418_add_info_indexes.exs similarity index 100% rename from priv/repo/migrations/30201117193418_add_info_indexes.exs rename to priv/repo/migrations/20201117193418_add_info_indexes.exs