from kerapu.boom.boom_parameter.BehandelKlasse import BehandelKlasse
from kerapu.boom.boom_parameter.BoomParameter import BoomParameter
from kerapu.boom.boom_parameter.DiagnoseCluster import DiagnoseCluster
from kerapu.boom.boom_parameter.DiagnoseCode import DiagnoseCode
from kerapu.boom.boom_parameter.Geslacht import Geslacht
from kerapu.boom.boom_parameter.Leeftijd import Leeftijd
from kerapu.boom.boom_parameter.SpecialismeCluster import SpecialismeCluster
from kerapu.boom.boom_parameter.SpecialismeCode import SpecialismeCode
from kerapu.boom.boom_parameter.ZorgActiviteitCluster import ZorgActiviteitCluster
from kerapu.boom.boom_parameter.ZorgActiviteitCode import ZorgActiviteitCode
from kerapu.boom.boom_parameter.ZorgInstellingCode import ZorgInstellingCode
from kerapu.boom.boom_parameter.ZorgTypeCode import ZorgTypeCode
from kerapu.boom.boom_parameter.ZorgVraagCluster import ZorgVraagCluster
from kerapu.boom.boom_parameter.ZorgVraagCode import ZorgVraagCode
# ----------------------------------------------------------------------------------------------------------------------
_boom_parameters = {}
"""
Poel met alle boomparameters
"""
# ----------------------------------------------------------------------------------------------------------------------
[documentatie]def create_boom_parameter(boom_parameter_nummer: int) -> BoomParameter:
"""
Een fabriek met hergebruik voor het maken van boomparameters. Het aanroepen van deze functie met hetzelfde
boomparameternummer zal tekens het zelfde object opleveren.
:param int boom_parameter_nummer: Het nummer van de boomparameter.
:rtype: BoomParameter
"""
if boom_parameter_nummer in _boom_parameters:
return _boom_parameters[boom_parameter_nummer]
_boom_parameters[boom_parameter_nummer] = _create_boom_parameter(boom_parameter_nummer)
return _boom_parameters[boom_parameter_nummer]
# ----------------------------------------------------------------------------------------------------------------------
def _create_boom_parameter(boom_parameter_nummer: int) -> BoomParameter:
"""
Een fabriek voor het maken van boomparameters.
:param int boom_parameter_nummer: Het nummer van de boomparameter.
:rtype: BoomParameter
"""
if boom_parameter_nummer == 100:
return Leeftijd()
if boom_parameter_nummer == 101:
return Geslacht()
if boom_parameter_nummer == 110:
return ZorgInstellingCode()
if boom_parameter_nummer == 111:
# Zorginstellingscluster 1
# Deze boomparameter wordt thans niet gebruikt door de grouper.
raise NotImplementedError('Boomparameter %d is niet geïmplementeerd.' % boom_parameter_nummer)
if boom_parameter_nummer == 112:
# Zorginstellingscluster 2
# Deze boomparameter wordt thans niet gebruikt door de grouper.
raise NotImplementedError('Boomparameter %d is niet geïmplementeerd.' % boom_parameter_nummer)
if boom_parameter_nummer == 200:
return SpecialismeCode()
if boom_parameter_nummer == 201:
return SpecialismeCluster(1)
if boom_parameter_nummer == 202:
return SpecialismeCluster(2)
if boom_parameter_nummer == 210:
return ZorgTypeCode()
if boom_parameter_nummer == 211:
# Zorgtypecluster 1
# Deze boomparameter wordt thans niet gebruikt door de grouper.
raise NotImplementedError('Boomparameter %d is niet geïmplementeerd.' % boom_parameter_nummer)
if boom_parameter_nummer == 212:
# Zorgtypecluster 2
# Deze boomparameter wordt thans niet gebruikt door de grouper.
raise NotImplementedError('Boomparameter %d is niet geïmplementeerd.' % boom_parameter_nummer)
if boom_parameter_nummer == 220:
return ZorgVraagCode()
if boom_parameter_nummer == 221:
return ZorgVraagCluster(1)
if boom_parameter_nummer == 222:
return ZorgVraagCluster(2)
if boom_parameter_nummer == 230:
return DiagnoseCode()
if boom_parameter_nummer == 231:
# ICD-diagnosecode
# Deze boomparameter wordt thans niet gebruikt door de grouper.
raise NotImplementedError('Boomparameter %d is niet geïmplementeerd.' % boom_parameter_nummer)
if 232 <= boom_parameter_nummer <= 237:
return DiagnoseCluster(boom_parameter_nummer - 231)
if boom_parameter_nummer == 241:
# Begindatum subtraject
# Deze boomparameter wordt thans niet gebruikt door de grouper.
raise NotImplementedError('Boomparameter %d is niet geïmplementeerd.' % boom_parameter_nummer)
if boom_parameter_nummer == 300:
return ZorgActiviteitCode(0)
if 301 <= boom_parameter_nummer <= 310:
return ZorgActiviteitCluster(boom_parameter_nummer - 300, 0)
if boom_parameter_nummer == 351:
return BehandelKlasse(0)
if boom_parameter_nummer == 400:
return ZorgActiviteitCode(1)
if 401 <= boom_parameter_nummer <= 410:
return ZorgActiviteitCluster(boom_parameter_nummer - 400, 1)
if boom_parameter_nummer == 451:
# Behandelklasse – som van (aantal * weegfactor 1)
# Deze boomparameter wordt thans niet gebruikt door de grouper.
# return BehandelKlasse(1)
raise NotImplementedError('Boomparameter %d is niet geïmplementeerd.' % boom_parameter_nummer)
if boom_parameter_nummer == 500:
return ZorgActiviteitCode(2)
if 501 <= boom_parameter_nummer <= 510:
return ZorgActiviteitCluster(boom_parameter_nummer - 500, 2)
if boom_parameter_nummer == 551:
# Behandelklasse – som van (aantal * weegfactor 2)
# Deze boomparameter wordt thans niet gebruikt door de grouper.
# return BehandelKlasse(1)
raise NotImplementedError('Boomparameter %d is niet geïmplementeerd.' % boom_parameter_nummer)
raise RuntimeError("Onbekende boomparameter '%s'." % boom_parameter_nummer)
# ----------------------------------------------------------------------------------------------------------------------