From 0e528b2cecbc19c8f3866f6b5ddc773aa82f3142 Mon Sep 17 00:00:00 2001 From: tplocic-neti Date: Thu, 10 Oct 2024 14:46:21 +0100 Subject: [PATCH] SPS complaince --- src/hooks/useCDP.js | 18 ++++-- .../components/ProviderComplianceAllocator.js | 63 ++++++------------- .../components/StackedBarGraph.js | 4 +- 3 files changed, 34 insertions(+), 51 deletions(-) diff --git a/src/hooks/useCDP.js b/src/hooks/useCDP.js index 74f5277..24c99f3 100644 --- a/src/hooks/useCDP.js +++ b/src/hooks/useCDP.js @@ -2,6 +2,7 @@ import { useCallback, useEffect, useMemo, useState } from 'react'; import { api } from '../utils/api'; import { useFetch } from './fetch'; import { difference } from 'lodash'; +import { format } from 'date-fns'; const CDP_API = `https://cdp.allocator.tech`; @@ -132,7 +133,7 @@ const useCDP = () => { const nonCompliantMetric = data?.results[0]?.histogram?.results; const compliantMetric = data?.results[2]?.histogram?.results; const partiallyCompliantMetric = data?.results[1]?.histogram?.results; - const weeks = nonCompliantMetric.map(item => item.week) + const weeks = nonCompliantMetric.map(item => item.week)?.sort((a, b) => new Date(a) - new Date(b)); const differedWeeks = difference(weeks, compliantMetric.map(item => item.week), partiallyCompliantMetric.map(item => item.week)); @@ -142,11 +143,20 @@ const useCDP = () => { for (let week of weeks) { const nonCompliant = nonCompliantMetric.find(item => item.week === week); - const compliant = compliantMetric.find(item => item.week === week); - console.log('compliant', compliant?.results?.filter(value => value.valueFromExclusive >= 80)) + const nonCompliantCount = nonCompliant?.total; const partiallyCompliant = partiallyCompliantMetric.find(item => item.week === week); + const partiallyCompliantCount = partiallyCompliant?.results?.filter(item => item.valueFromExclusive >= 80)?.reduce((acc, item) => acc + item.count, 0); + const compliant = compliantMetric.find(item => item.week === week); + const compliantCount = compliant?.results?.filter(item => item.valueFromExclusive >= 80)?.reduce((acc, item) => acc + item.count, 0); + chartData.push({ - week + name: `w${format(new Date(week), 'ww yyyy')}`, + nonCompliant: nonCompliantCount - partiallyCompliantCount - compliantCount, + nonCompliantName: 'Non compliant', + partiallyCompliant: partiallyCompliantCount, + partiallyCompliantName: 'Partially compliant', + compliant: compliantCount, + compliantName: 'Compliant', }); } diff --git a/src/pages/ComplianceDashboardPage/components/ProviderComplianceAllocator.js b/src/pages/ComplianceDashboardPage/components/ProviderComplianceAllocator.js index ff0144e..4af05c5 100644 --- a/src/pages/ComplianceDashboardPage/components/ProviderComplianceAllocator.js +++ b/src/pages/ComplianceDashboardPage/components/ProviderComplianceAllocator.js @@ -25,7 +25,6 @@ const ProviderComplianceAllocator = ({setCurrentElement}) => { data, isLoading } = useCDP().getProviderComplianceAllocator() - // console.log(chartData) const chartData = useMemo(() => { return data; @@ -41,54 +40,28 @@ const ProviderComplianceAllocator = ({setCurrentElement}) => {
-

Work in progress

+
+
+
+ What are those metrics? +
+
+
    +
  • SP have retrievability score above average
  • +
  • SP have at least 3 clients
  • +
  • SP biggest client accounts for less than 30%
  • +
+
+
+
+ +
+
+
- // return
- //
- //
- //
- //
SP Compliance
- //
- //
- //
- //
- //
- //
- //
- //
- // Total allocators - //
- //
- // {data?.count} - //
- //
- // This data shows allocators which clients made at least one deal - //
- //
- //
- //
- // What are those metrics? - //
- //
- //
    - //
  • SP have retrievability score above average
  • - //
  • SP have at least 3 clients
  • - //
  • SP biggest client accounts for less than 30%
  • - //
- //
- //
- //
- // - //
- //
- // - //
- //
- //
- } export default ProviderComplianceAllocator; diff --git a/src/pages/ComplianceDashboardPage/components/StackedBarGraph.js b/src/pages/ComplianceDashboardPage/components/StackedBarGraph.js index d8a9e1a..f1812f0 100644 --- a/src/pages/ComplianceDashboardPage/components/StackedBarGraph.js +++ b/src/pages/ComplianceDashboardPage/components/StackedBarGraph.js @@ -23,11 +23,11 @@ const StackedBarGraph = ({ data, scale = 'linear', isLoading, color }) => {
{payload.name}
{ dataKeys.map((key, index) => { - const value = payload[`group${index}`]; + const value = payload[`group${index}`] ?? payload[key]; if (!value) { return null; } - const name = payload[`group${index}Name`]; + const name = payload[`group${index}Name`] ?? payload[`${key}Name`] ?? key; return
{name} - {value} providers