diff --git a/mocks/fixtures/zorgned-jzd-aanvragen.json b/mocks/fixtures/zorgned-jzd-aanvragen.json index dfb77793f8..c4cff38658 100644 --- a/mocks/fixtures/zorgned-jzd-aanvragen.json +++ b/mocks/fixtures/zorgned-jzd-aanvragen.json @@ -5752,6 +5752,136 @@ } ] }, + { + "identificatie": "2717112", + "regeling": { + "identificatie": "WMO", + "omschrijving": "WMO" + }, + "hulpvraag": { + "datumRegistratie": "2024-08-29" + }, + "datumAanmelding": "2024-08-29", + "datumAanvraag": "2024-08-29", + "beschikking": { + "beschikkingNummer": 300989920, + "datumAfgifte": "2024-08-29", + "beschikteProducten": [ + { + "identificatie": "1213392", + "product": { + "identificatie": "07A09", + "productCode": "07A09", + "productsoortCode": "DBS", + "omschrijving": "PGB: dagbesteding samenwerken" + }, + "productCategorie": { + "code": "07", + "omschrijving": "Dagbesteding" + }, + "resultaat": "toegewezen1", + "toegewezenProduct": { + "datumEindeGeldigheid": "2024-10-31", + "actueel": false, + "omvang": { + "volume": 1, + "eenheid": { + "code": "82", + "omschrijving": "Stuks (output)" + }, + "frequentie": { + "code": "4", + "omschrijving": "Per maand" + }, + "omschrijving": "1 stuks (output) per maand" + }, + "leveringsvorm": "pgb", + "leverancier": { + "identificatie": "73731545", + "agbcode": "73731545", + "omschrijving": "Carehouse - Leveo Care (afgewezen)" + }, + "toewijzingen": [], + "betrokkenen": ["123123123123"] + } + } + ] + }, + "documenten": [ + { + "documentidentificatie": "B2814508", + "omschrijving": "Besluit: Naam in Inkijk-API", + "omschrijvingclientportaal": "Besluit: Naam in Inkijk-API", + "datumDefinitief": "2024-08-29T16:48:11.997" + } + ] + }, + { + "identificatie": "2717111", + "regeling": { + "identificatie": "WMO", + "omschrijving": "WMO" + }, + "hulpvraag": { + "datumRegistratie": "2024-08-29" + }, + "datumAanmelding": "2024-08-29", + "datumAanvraag": "2024-08-29", + "beschikking": { + "beschikkingNummer": 300989920, + "datumAfgifte": "2024-08-29", + "beschikteProducten": [ + { + "identificatie": "1213392", + "product": { + "identificatie": "07A09", + "productCode": "07A09", + "productsoortCode": "DBS", + "omschrijving": "PGB: dagbesteding samenwerken" + }, + "productCategorie": { + "code": "07", + "omschrijving": "Dagbesteding" + }, + "resultaat": "toegewezen", + "toegewezenProduct": { + "datumIngangGeldigheid": "2024-11-01", + "datumEindeGeldigheid": "2025-10-31", + "datumCheck": "2026-08-18", + "actueel": true, + "omvang": { + "volume": 1, + "eenheid": { + "code": "82", + "omschrijving": "Stuks (output)" + }, + "frequentie": { + "code": "4", + "omschrijving": "Per maand" + }, + "omschrijving": "1 stuks (output) per maand" + }, + "leveringsvorm": "pgb", + "leverancier": { + "identificatie": "73731545", + "agbcode": "73731545", + "omschrijving": "Carehouse - Leveo Care (huidig)" + }, + "toewijzingen": [], + "betrokkenen": ["123123123123"] + } + } + ] + }, + "documenten": [ + { + "documentidentificatie": "B2814508", + "omschrijving": "Besluit: Naam in Inkijk-API", + "omschrijvingclientportaal": "Besluit: Naam in Inkijk-API", + "datumDefinitief": "2024-08-29T16:48:11.997" + } + ] + }, { "identificatie": "2701419", "regeling": { diff --git a/src/client/pages/ZorgDetail/ZorgDetail.tsx b/src/client/pages/ZorgDetail/ZorgDetail.tsx index 1fb7c2233e..2f0bafaf9b 100644 --- a/src/client/pages/ZorgDetail/ZorgDetail.tsx +++ b/src/client/pages/ZorgDetail/ZorgDetail.tsx @@ -4,7 +4,7 @@ import { useParams } from 'react-router-dom'; import { WMOVoorzieningFrontend } from '../../../server/services/wmo/wmo-config-and-types'; import { AppRoutes } from '../../../universal/config/routes'; import { isError, isLoading } from '../../../universal/helpers/api'; -import { ThemaIcon } from '../../components'; +import { ErrorAlert, ThemaIcon } from '../../components'; import { Datalist } from '../../components/Datalist/Datalist'; import DocumentListV2 from '../../components/DocumentList/DocumentListV2'; import { ThemaTitles } from '../../config/thema'; @@ -28,6 +28,15 @@ function WMODetailContent({ voorziening }: WMODetailContentProps) { <> {!!rows.length && ( + {voorziening?.disclaimer && ( + + {voorziening.disclaimer} + + )} {voorziening?.documents.length > 0 && ( fetchWmo 1`] = ` "supplier": "HVO Querido", "title": "Logeeropvang Respijt", }, + { + "dateDecision": "2024-08-29T16:48:11.997", + "dateDecisionFormatted": "29 augustus 2024", + "decision": "Toegewezen", + "documents": [ + { + "datePublished": "2024-08-29T16:48:11.997", + "id": "B2814508", + "title": "Besluit: Naam in Inkijk-API", + "url": "http://bff-api-host/api/v1/services/wmo/document/123-123-123-123", + }, + ], + "id": "3271828893", + "isActual": true, + "itemTypeCode": "DBS", + "link": { + "title": "Meer informatie", + "to": "/zorg-en-ondersteuning/voorziening/3271828893", + }, + "status": "Besluit genomen", + "statusDate": "2024-08-29T16:48:11.997", + "statusDateFormatted": "29 augustus 2024", + "steps": [ + { + "datePublished": "", + "description": "

Uw aanvraag is ontvangen.

", + "documents": [], + "id": "status-step-0", + "isActive": false, + "isChecked": true, + "isVisible": true, + "status": "Aanvraag ontvangen", + }, + { + "datePublished": "2024-08-29", + "description": "

Uw aanvraag is in behandeling.

", + "documents": [], + "id": "status-step-1", + "isActive": false, + "isChecked": true, + "isVisible": true, + "status": "In behandeling", + }, + { + "datePublished": "2024-08-29T16:48:11.997", + "description": "

U krijgt PGB: dagbesteding samenwerken per 01 november 2024.

+

In de brief leest u meer over dit besluit. De brief staat bovenaan deze pagina.

+ ", + "documents": [], + "id": "status-step-3", + "isActive": true, + "isChecked": true, + "isVisible": true, + "status": "Besluit genomen", + }, + { + "datePublished": "", + "description": "

+ Uw recht op PGB: dagbesteding samenwerken stopt op 31 oktober 2025. +

+ +

Wilt u verlenging aanvragen, dan moet u dat 8 weken voor 31 oktober 2025 doen.

+

Kijk in uw besluit of op amsterdam.nl/pgb voor meer informatie.

+ ", + "documents": [], + "id": "status-step-4", + "isActive": false, + "isChecked": false, + "isVisible": true, + "status": "Einde recht", + }, + ], + "supplier": "Carehouse - Leveo Care (huidig)", + "title": "PGB: dagbesteding samenwerken", + }, { "dateDecision": "2024-08-29T16:48:11.997", "dateDecisionFormatted": "29 augustus 2024", @@ -239,6 +314,81 @@ exports[`Transform api items > fetchWmo 1`] = ` "supplier": "Carehouse - Leveo Care", "title": "PGB: dagbesteding meewerken (toegewezen)", }, + { + "dateDecision": "2024-08-29T16:48:11.997", + "dateDecisionFormatted": "29 augustus 2024", + "decision": "Toegewezen1", + "documents": [ + { + "datePublished": "2024-08-29T16:48:11.997", + "id": "B2814508", + "title": "Besluit: Naam in Inkijk-API", + "url": "http://bff-api-host/api/v1/services/wmo/document/123-123-123-123", + }, + ], + "id": "759557662", + "isActual": true, + "itemTypeCode": "DBS", + "link": { + "title": "Meer informatie", + "to": "/zorg-en-ondersteuning/voorziening/759557662", + }, + "status": "Besluit genomen", + "statusDate": "2024-08-29T16:48:11.997", + "statusDateFormatted": "29 augustus 2024", + "steps": [ + { + "datePublished": "", + "description": "

Uw aanvraag is ontvangen.

", + "documents": [], + "id": "status-step-0", + "isActive": false, + "isChecked": true, + "isVisible": true, + "status": "Aanvraag ontvangen", + }, + { + "datePublished": "2024-08-29", + "description": "

Uw aanvraag is in behandeling.

", + "documents": [], + "id": "status-step-1", + "isActive": false, + "isChecked": true, + "isVisible": true, + "status": "In behandeling", + }, + { + "datePublished": "2024-08-29T16:48:11.997", + "description": "

U krijgt geen PGB: dagbesteding samenwerken.

+

In de brief leest u meer over dit besluit. De brief staat bovenaan deze pagina.

+ ", + "documents": [], + "id": "status-step-3", + "isActive": false, + "isChecked": true, + "isVisible": true, + "status": "Besluit genomen", + }, + { + "datePublished": "", + "description": "

+ Uw recht op PGB: dagbesteding samenwerken stopt op 31 oktober 2024. +

+ +

Wilt u verlenging aanvragen, dan moet u dat 8 weken voor 31 oktober 2024 doen.

+

Kijk in uw besluit of op amsterdam.nl/pgb voor meer informatie.

+ ", + "documents": [], + "id": "status-step-4", + "isActive": false, + "isChecked": false, + "isVisible": true, + "status": "Einde recht", + }, + ], + "supplier": "Carehouse - Leveo Care (afgewezen)", + "title": "PGB: dagbesteding samenwerken", + }, { "dateDecision": "2024-08-26T11:40:46.087", "dateDecisionFormatted": "26 augustus 2024", diff --git a/src/server/services/wmo/wmo-config-and-types.ts b/src/server/services/wmo/wmo-config-and-types.ts index d1dcd0bc84..0316f9a447 100644 --- a/src/server/services/wmo/wmo-config-and-types.ts +++ b/src/server/services/wmo/wmo-config-and-types.ts @@ -26,6 +26,7 @@ export interface WMOVoorzieningFrontend extends ZaakDetail { statusDate: string; statusDateFormatted: string; supplier: string | null; // Leverancier + disclaimer?: string; } export const DOCUMENT_TITLE_MEER_INFORMATIE_STARTS_WITH = 'Verzoek:'; // Documents starting with this token correspond to the 'meer informatie' step. diff --git a/src/server/services/wmo/wmo.test.ts b/src/server/services/wmo/wmo.test.ts index c66d3558fb..7ffb519aa7 100644 --- a/src/server/services/wmo/wmo.test.ts +++ b/src/server/services/wmo/wmo.test.ts @@ -1,6 +1,6 @@ import Mockdate from 'mockdate'; -import { fetchWmo, forTesting } from './wmo'; +import { fetchWmo, forTesting, getDisclaimer } from './wmo'; import ZORGNED_AANVRAGEN_WMO from '../../../../mocks/fixtures/zorgned-jzd-aanvragen.json'; import { remoteApi } from '../../../testing/utils'; import { jsonCopy } from '../../../universal/helpers/utils'; @@ -102,4 +102,77 @@ describe('Transform api items', () => { `); }); }); + + describe('getDisclaimer', () => { + const baseAanvraag: ZorgnedAanvraagTransformed = { + titel: 'Test Voorziening', + isActueel: true, + datumEindeGeldigheid: null, + datumIngangGeldigheid: null, + datumAanvraag: '2024-01-01', + datumBesluit: '2024-01-01', + datumBeginLevering: '2024-01-01', + datumEindeLevering: '2024-01-01', + datumToewijzing: '2024-01-01', + datumOpdrachtLevering: '2024-01-01', + leverancier: 'Test Leverancier', + leveringsVorm: 'Test LeveringsVorm', + productsoortCode: 'Test ProductSoortCode', + productIdentificatie: 'Test ProductIdentificatie', + resultaat: 'toegewezen', + betrokkenen: [], + documenten: [], + id: 'test-id', + }; + + const baseAanvragen = [baseAanvraag]; + + it('should return undefined when no matching conditions', () => { + const result = getDisclaimer(baseAanvraag, baseAanvragen); + expect(result).toBeUndefined(); + }); + + it('hasActueelMatch', () => { + const aanvraag = { + ...baseAanvraag, + datumEindeGeldigheid: '2024-10-31', + isActueel: false, + }; + + const aanvragen = [ + aanvraag, + { + ...baseAanvraag, + datumIngangGeldigheid: '2024-11-01', + }, + ]; + + const result = getDisclaimer(aanvraag, aanvragen); + expect(result).toBe( + 'Door een fout staat dit hulpmiddel ten onrechte bij Eerdere en afgewezen voorzieningen. Kijk bij "Huidige voorzieningen" of in de brief bovenaan.' + ); + }); + + it('hasNietActueelMatch', () => { + const aanvraag = { + ...baseAanvraag, + datumIngangGeldigheid: '2024-11-01', + isActueel: true, + }; + + const aanvragen = [ + aanvraag, + { + ...baseAanvraag, + datumEindeGeldigheid: '2024-10-31', + isActueel: false, + }, + ]; + + const result = getDisclaimer(aanvraag, aanvragen); + expect(result).toMatch( + 'Dit hulpmiddel staat per ongeluk ook bij "Eerdere en afgewezen voorzieningen". Daar vindt u het originele besluit met de juiste datums.' + ); + }); + }); }); diff --git a/src/server/services/wmo/wmo.ts b/src/server/services/wmo/wmo.ts index e56f52ae5a..af9f8b3e49 100644 --- a/src/server/services/wmo/wmo.ts +++ b/src/server/services/wmo/wmo.ts @@ -127,6 +127,9 @@ function transformVoorzieningenForFrontend( status: getLatestStatus(lineItems), statusDate: getLatestStatusDate(lineItems), statusDateFormatted: getLatestStatusDate(lineItems, true), + ...(getDisclaimer(aanvraag, aanvragen) && { + disclaimer: getDisclaimer(aanvraag, aanvragen), + }), }; voorzieningenFrontend.push(voorzieningFrontend); @@ -138,6 +141,42 @@ function transformVoorzieningenForFrontend( return voorzieningenFrontend; } +export function getDisclaimer( + detailAanvraag: ZorgnedAanvraagTransformed, + aanvragen: ZorgnedAanvraagTransformed[] +): string | undefined { + const datumEindeGeldigheid = '2024-10-31'; + const datumIngangGeldigheid = '2024-11-01'; + + const hasNietActueelMatch = + detailAanvraag.isActueel && + detailAanvraag.datumIngangGeldigheid === datumIngangGeldigheid && + aanvragen.some( + (aanvraag) => + aanvraag.datumEindeGeldigheid === datumEindeGeldigheid && + aanvraag.titel === detailAanvraag.titel && + !aanvraag.isActueel + ); + + const hasActueelMatch = + !detailAanvraag.isActueel && + detailAanvraag.datumEindeGeldigheid === datumEindeGeldigheid && + aanvragen.some( + (aanvraag) => + aanvraag.datumIngangGeldigheid === datumIngangGeldigheid && + aanvraag.titel === detailAanvraag.titel && + aanvraag.isActueel + ); + + if (hasNietActueelMatch) { + return 'Dit hulpmiddel staat per ongeluk ook bij "Eerdere en afgewezen voorzieningen". Daar vindt u het originele besluit met de juiste datums.'; + } else if (hasActueelMatch) { + return 'Door een fout staat dit hulpmiddel ten onrechte bij Eerdere en afgewezen voorzieningen. Kijk bij "Huidige voorzieningen" of in de brief bovenaan.'; + } + + return undefined; +} + export async function fetchWmo( requestID: RequestID, authProfileAndToken: AuthProfileAndToken diff --git a/src/server/services/zorgned/__snapshots__/zorgned-service.test.ts.snap b/src/server/services/zorgned/__snapshots__/zorgned-service.test.ts.snap index acb1444c36..f8e575e76d 100644 --- a/src/server/services/zorgned/__snapshots__/zorgned-service.test.ts.snap +++ b/src/server/services/zorgned/__snapshots__/zorgned-service.test.ts.snap @@ -2,6 +2,35 @@ exports[`zorgned-service > transformZorgnedAanvragen 1`] = ` [ + { + "betrokkenen": [ + "123123123123", + ], + "datumAanvraag": "2024-08-29", + "datumBeginLevering": null, + "datumBesluit": "2024-08-29", + "datumEindeGeldigheid": "2025-10-31", + "datumEindeLevering": null, + "datumIngangGeldigheid": "2024-11-01", + "datumOpdrachtLevering": null, + "datumToewijzing": null, + "documenten": [ + { + "datePublished": "2024-08-29T16:48:11.997", + "id": "B2814508", + "title": "Besluit: Naam in Inkijk-API", + "url": "", + }, + ], + "id": "3271828893", + "isActueel": true, + "leverancier": "Carehouse - Leveo Care (huidig)", + "leveringsVorm": "PGB", + "productIdentificatie": "07A09", + "productsoortCode": "DBS", + "resultaat": "toegewezen", + "titel": "PGB: dagbesteding samenwerken", + }, { "betrokkenen": [ "123123123", @@ -1735,5 +1764,34 @@ exports[`zorgned-service > transformZorgnedAanvragen 1`] = ` "resultaat": "afgewezen", "titel": "dagbesteding meewerken", }, + { + "betrokkenen": [ + "123123123123", + ], + "datumAanvraag": "2024-08-29", + "datumBeginLevering": null, + "datumBesluit": "2024-08-29", + "datumEindeGeldigheid": "2024-10-31", + "datumEindeLevering": null, + "datumIngangGeldigheid": null, + "datumOpdrachtLevering": null, + "datumToewijzing": null, + "documenten": [ + { + "datePublished": "2024-08-29T16:48:11.997", + "id": "B2814508", + "title": "Besluit: Naam in Inkijk-API", + "url": "", + }, + ], + "id": "759557662", + "isActueel": false, + "leverancier": "Carehouse - Leveo Care (afgewezen)", + "leveringsVorm": "PGB", + "productIdentificatie": "07A09", + "productsoortCode": "DBS", + "resultaat": "toegewezen1", + "titel": "PGB: dagbesteding samenwerken", + }, ] `;