from typing import List
from kerapu.boom.ZorgProductGroepVersie import ZorgProductGroepVersie
from kerapu.lbz.Subtraject import Subtraject
[documentatie]class ZorgProductGroep:
"""
Klasse voor zorgproductgroepen.
"""
# ------------------------------------------------------------------------------------------------------------------
def __init__(self, zorg_product_groep_code: str):
"""
Object constructor.
:param str zorg_product_groep_code: De zorgproductgroepcode.
"""
self._zorg_product_groep_code: str = zorg_product_groep_code
"""
De zorgproductgroepcode.
"""
self._versies: List[ZorgProductGroepVersie] = []
"""
De versies van de zorgproductgroep.
"""
# ------------------------------------------------------------------------------------------------------------------
[documentatie] def versie_toevoegen(self, versie: ZorgProductGroepVersie) -> None:
"""
Voegt een versie toe aan de lijst met versies voor dit zorgproductgroep.
:param ZorgProductGroepVersie versie: De toe te voegen versie.
"""
self._versies.append(versie)
# ------------------------------------------------------------------------------------------------------------------
[documentatie] def klim(self, subtraject: Subtraject) -> str:
"""
Bepaalt de zorgproductgroepcode van een subtraject.
:param subtraject subtraject: Het subtraject.
"""
versie = self.__get_actuele_versie(subtraject)
return versie.klim(subtraject)
# ------------------------------------------------------------------------------------------------------------------
def __get_actuele_versie(self, subtraject: Subtraject) -> ZorgProductGroepVersie:
"""
Geeft de actuele versie van dit zorgproductgroep voor een subtraject.
:param Subtraject subtraject: Het subtraject.
:rtype: ZorgProductGroepVersie
"""
for versie in self._versies:
if versie.is_actueel(subtraject):
return versie
raise RuntimeError(
"Er kan geen actuele versie van zorgproductgroep '%s' gevonden worden voor subtraject '%s" % (
self._zorg_product_groep_code, subtraject.subtraject_nummer))
# ----------------------------------------------------------------------------------------------------------------------