Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ontbrekende functionaliteiten met expand voor veel gebruikte informatiebehoeften #2443

Open
EduardWitteveen opened this issue Apr 9, 2024 · 7 comments

Comments

@EduardWitteveen
Copy link
Collaborator

Vanuit Open Zaakbrug ben ik blij om te zien dat de standaard nu de expand functionaliteit bevat!
Mooi snel als functie en nog sneller omdat ik niet meer zoveel vragen hoef te stellen.
Zo scheelt het me substantieel veel bij de rol/roltypen, helaas krijg ik niet overals alle informatie terug.

Om de volgende redenen kan ik de expand nog niet goed uit te nutten:

  1. Bij het opvragen van alle statussen van een zaak moet ik toch weer veel calls moet doen, het veld status bevat alleen de huidige status. Wij hebben eigenlijk altijd alle statussen nodig, zou het niet handig zijn om deze net als bijvoorbeeld bij de rollen deze terug te geven? Minder voorkomend, maar wel mogelijk geldt ditzelfde voor resultaat.
  2. Graag wil ik bij een een zaak weten welke documenten daar bij horen, ik had verwacht dat er een GET /enkelvoudiginformatieobjecten?overigeobjectinformatieobject=zaakurl&expand=* zou zijn om in één keer deze allemaal op te halen, met de benodigde (meta-)data

Op dit moment maakt dat het ontbreken van onderstaande functionaliteiten in de Open Zaakbrug ( https://github.com/Sudwest-Fryslan/OpenZaakBrug/tree/feature-expand ) het niet heel veel sneller, ook verwacht ik deze bevindingen bij MijnZaken van het OWC ons ook uitdagingen gaan geven in de zaakoverzichts-schermen.

Zie ik wat over het hoofd of is het wellicht een idee om de standaard hierop aan te passen?

@HenriKorver
Copy link
Collaborator

HenriKorver commented Apr 12, 2024

  1. Graag wil ik bij een een zaak weten welke documenten daar bij horen, ik had verwacht dat er een GET /enkelvoudiginformatieobjecten?overigeobjectinformatieobject=zaakurl&expand=* zou zijn om in één keer deze allemaal op te halen, met de benodigde (meta-)data.

Zie issues #1891 en #2370 waar ook de wens wordt geuit om in de Documenten API (DRC) de resource objectinformatiobjecten te kunnen expanden op het veld "informatieobject". Om dit op te lossen is PR #2371 ingediend, zie redoc voor de uitgewerkte OAS. Helaas worden er geen nieuwe features uitgerold totdat de nieuwe product owner is benoemd. Voor nu heb ik dit issue geparkeerd.

@HenriKorver
Copy link
Collaborator

  1. Bij het opvragen van alle statussen van een zaak moet ik toch weer veel calls moet doen, het veld status bevat alleen de huidige status. Wij hebben eigenlijk altijd alle statussen nodig, zou het niet handig zijn om deze net als bijvoorbeeld bij de rollen deze terug te geven? Minder voorkomend, maar wel mogelijk geldt ditzelfde voor resultaat.

Bij het endpoint /statussen kun je wel meerdere statussen tegelijk bij een zaak opvragen maar daar is geen expand. Is dat wat je wilt: dat we daar ook de expand toevoegen?

@EduardWitteveen
Copy link
Collaborator Author

Om wat duidelijkheid en extra context te geven:

  • Binnen Open Zaakbrug wil ik alle statusinformatie teruggeven die er nu en in het verleden is geweest. Dit is nodig bij een: "ZDS 1.1 geefZaakdetails_Lv01" zoals wij dit hebben geimplementeerd in de Open Zaakbrug
  • Ook bij een zaken overzicht in een MijnZaken portaal zie je dat er in het overzicht vaak de overige statussen worden getoond.
  • Waarschijnlijk wil je het ook bij een KCC applicatie terug zien.

In de huidige opzet neemt het aantal requests toe naarmate er meer statussen zijn, want elke keer ook het statustype ophalen. Vanuit de Open Zaakbrug is belangrijk dat het aantal requests niet toeneemt met het aantal voorkomen van een bepaald attribuut/relatie, daarnaast heb ik het liefste zo weinig mogelijk calls' want hoe minder hoe beter (en elke keer kost het weer ~100/~150 ms oid)

Wanneer deze informatie in één keer terug kan komen bij de zaak dan heb je maar één call nodig, vanuit het aantal requests bekeken voor mijn het mooiste. Bij het toevoegen van de expand op statussen zou er in ieder geval voor zorgden dat de tijd niet meer op basis van het aantal statussen toeneemt en is waarschijnlijk meer in lijn met de andere uitgangspunten, dus dat zou ook mooi schelen.

@EduardWitteveen
Copy link
Collaborator Author

Bij het gebruik van een /zaken?expand=*&bronorganisatie=823288444&rol__betrokkeneIdentificatie__natuurlijkPersoon__inpBsn=111111110 is het minder handig zijn om alle zaakurl's te verzamelen en deze dan los te bevragen op /statussen?expand=status.statustype&zaak=/zaken/api/v1/zaken/a4cfdc46-44c5-4433-86a2-d1eaccf73c51,/zaken/api/v1/zaken/794e9cc9-186c-487f-b365-3872e5f2ff4a,...,... Idealer zou zijn om bijvoorbeeld een statussen en statussen.statustype aan de expand op /zaken? toe te voegen.

nb: op https://vng-realisatie.github.io/gemma-zaken/standaard/zaken/redoc-1.5.1#tag/statussen/operation/status_list staat: "URL-referentie naar de ZAAK.", maar ik ga er vanuit dat dit meerderen mogen zijn op basis van de titel: "Alle STATUSsen bij ZAAKen opvragen." Dat zou betekenen dat de toelichting zou moeten lezen: "URL-referentie naar de ZAAK/ZAKEN."

@HenriKorver
Copy link
Collaborator

HenriKorver commented May 7, 2024

maar ik ga er vanuit dat dit meerderen mogen zijn op basis van de titel: "Alle STATUSsen bij ZAAKen opvragen.

Dat is niet het geval: je kunt maar op één zaak filteren bij het /statussen endpoint. Dus we kunnen helaas het /statussen endpoint niet als workaround gebruiken voor jouw case. De beste oplossing is inderdaad om een extra attribuut "statussen" toe te voegen aan Zaak waarin je alle statussen die bij de zaak zijn gezet kunt teruggeven in de vorm van een array. Op deze manier kan je alle query parameters van het /zaken endpoint hergebruiken voor je bevragingen. Het nieuwe veld Zaak.statussen heeft dan dezelfde werking als de velden Zaak.rollen, Zaak.deelzaken, etc. Op het veld Zaak.statussen zal dan vanzelfsprekend het expand-mechanisme van toepassing zijn.

@HenriKorver HenriKorver added the Prio ZH Prioriteit zeer hoog label May 7, 2024
@EduardWitteveen
Copy link
Collaborator Author

EduardWitteveen commented May 7, 2024

Bedankt.

Voor de volledigheid nog enige kerngetallen, zoals hieronder zichtbaar: onze aandacht ligt vooral bij de documenten.
Het toenemen van de tijd met het aantal voorkomen is niet wenselijk en bij de documenten heeft dit de grootste invloed.

Eventueel kan ik nog kerngetallen generen op basis van gebruik op basis van functie (aanmaken-zaak/aanmaken-document/raadplegen-zaak/opvragen-document/... etc).

1 - Statussen: zds-geefZaakdetails_Lv01 (met 3-maal een status)

		GET to: /catalogussen?rsin=823288444 took 52 milliseconds
		GET to: /zaken?expand=zaaktype,status,status.statustype,resultaat,resultaat.resultaattype,rollen,rollen.roltype&identificatie=190010837&bronorganisatie=823288444 took 806 milliseconds
		GET to: /statussen?zaak=/zaken/a7debc1d-d55d-4608-88ed-9223c68f4a53 took 64 milliseconds
		GET to: /statustypen/8c4355fa-0e23-4c65-9f7d-c3e576b38214 took 53 milliseconds
		GET to: /statustypen/9740a4cb-f6e3-4c80-8ef1-be5ebb6c405d took 50 milliseconds
		GET to: /statustypen/79bc972d-235f-4197-9d75-3deb171dadbc took 51 milliseconds
	Totaal: 1076 milliseconds

2 - Documenten bij Zaak: zds-geefLijstZaakdocumenten_Lv01 (met 2-maal een document)

	Variant 1:
		GET to: /catalogussen?rsin=823288444 took 54 milliseconds
		GET to: /zaken?expand=zaaktype,status,status.statustype,resultaat,resultaat.resultaattype,rollen,rollen.roltype&identificatie=190010837&bronorganisatie=823288444 took 1031 milliseconds
		GET to: /zaakinformatieobjecten/69d50cc0-4656-458e-81ff-f497d440ba40 took 90 milliseconds
		GET to: /zaakinformatieobjecten/7f4d9327-0343-446c-b326-8f55fd0ed2ed took 79 milliseconds
		GET to: /objectinformatieobjecten?object=https://test.openzaak.nl/zaken/api/v1/zaken/a7debc1d-d55d-4608-88ed-9223c68f4a53 took 51 milliseconds
		GET to: /enkelvoudiginformatieobjecten/0ca1624d-a7d5-411a-8c24-f2496c431c14?expand=informatieobjecttype took 360 milliseconds
		GET to: /enkelvoudiginformatieobjecten/6d5f376f-fe04-43f5-ab15-829fe9e667fd?expand=informatieobjecttype took 357 milliseconds
	Totaal: 2022 milliseconds

	Variant 2:
		GET to: /catalogussen?rsin=823288444 took 53 milliseconds
		GET to: /zaken?expand=zaaktype,status,status.statustype,resultaat,resultaat.resultaattype,rollen,rollen.roltype,zaakinformatieobjecten&identificatie=190010837&bronorganisatie=823288444 took 1223 milliseconds
		GET to: /enkelvoudiginformatieobjecten/0ca1624d-a7d5-411a-8c24-f2496c431c14?expand=informatieobjecttype took 328 milliseconds
		GET to: /enkelvoudiginformatieobjecten/6d5f376f-fe04-43f5-ab15-829fe9e667fd?expand=informatieobjecttype took 494 milliseconds
	Totaal: 2098 milliseconds

nb-1: Dat de GET zaken qua tijd verschilt tussen getZaakDetails() en geefLijstZaakDocumenten() is volgens mij minder relevant, vermoed iets met mijn debug instellingen.
nb-2: Expand zou wellicht iets minder types kunnen bij de zaken?expand=.... :-)

@EduardWitteveen
Copy link
Collaborator Author

Voor de beeldvorming een tabel om aan te geven hoe vaak zds-functies in productie worden aangeroepen en hoeveel tijd deze nemen. Dit geeft een beeld van het gebruik van de zgw-call's die worden gebruikt door de Open Zaakbrug.

De aantallen en tijd van de zgw-calls heb ik niet vermeld, omdat deze niet representatief zijn. De Open Zaakbrug gebruikt een work-around bij de GeefLijstZaakdocumenten door daar met sql het query uit te voeren op de database en dus geen zgw-api-call te doen. Desgewenst kan ik deze aanleveren.

ZDS-Functie Aantal keren Seconden gemiddeld Alleen ZGW
GeefLijstZaakdocumenten 367.322 0,34 3.843
UpdateZaak 123.870 1,54
VoegZaakdocumentToe 99.795 10,10
GenereerDocumentIdentificatie 94.645 0,02
GeefZaakdocumentLezen 90.846 1,75
GeefZaakDetails-ZaakId 66.863 1,29
CreeerZaak 39.601 2,68
GenereerZaakIdentificatie 37.945 0,03
ActualiseerZaakStatus 23.932 2,79
GeefZaakDetails-Bsn 3.590 10,02
GeefZaakdocumentBewerken 41 3,67
UpdateZaakdocument 22 7,04
CancelCheckout 7 2,94

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

2 participants