BusinessRuler

Inleiding

Terwijl eenvoudige logica middels SQL goed te realiseren is, op een declaratieve manier, schiet SQL te kort naarmate de logica complexer en veel omvattener wordt ..
Met de businessruler kan op eenvoudige wijze de logica gerealiseerd worden door de Business zelf en hoeft er geen techneut aan te pas te komen.

In datawarehouses wordt middels ETL de data getransformeerd naar business-data. In de ETL zit dus feitelijk de business-logica.

De businesruler wordt daarom ook gezien als een ETL-proces waarbij de SQL niet zorgdraagt voor de resultaat-data maar het redeneerproces.

  • Het redeneerproces krijgt middels GRIP_ETL zijn redeneer-data
  • de redeneerscript zorgt voor de resultaat-data
  • het redeneerscript draait op eenvoudige beslissingstabellen, door de business te begrijpen.
  • GRIP_ETL zorgt ervoor dat de resultaat-data teruggevoerd wordt naar het datamodel van het datawarehouse.

OPZET voor rijksvaccinatie-programma deel1




# Aandachtspunten:
# 1. kind wordt overgenomen als 6,5 maanden oud (=> SV1: schema 2; SV2: schema 2) 
#    nu wordt (eerste) vaccinatie aangeleverd met vaccinatiedatum waarop dit kind 5 maanden oud is.. (hoort bij schema=1)
#    Oplossing: in proces C schema alsnog wijzigen en aanlevering goedkeuren. Op basis hiervan de 2de prik berekenen als eerste prik volledig.
#               echter: met terugwerkende kracht een tweede prik aanleveren wordt afgekeurd!  



# Done: als Pneu schema gelijk 4 wordt, dan datum_vanaf 0 maken => tabel 4. 
# Done: aanpassen Datum_vanaf en Vroegste_datum_vanaf voor SV1: DKTP_Hib_HepB  als schema = 0 of 1.  => tabel 3
                                                     voor SV2: Pneu als schema = 0.                  => tabel 4
# NOG: controle op correcte jobdatum. 20210008 wordt ook geaccepteerd, maar is 2021-00-08...
# NOG: doelvariabele multivalued maken, waardoor Aanpassen_schema_DKTP_Hib_HepB_en_Pneu weer kan verdwijnen. 

# NOG: als geboortedatum van client ligt na jobdatum van proces dan foutmelding voor deze client. 



Attribute: Jobdatum  Type: Integer
Equals: 20211201



SQLite_database: "Database/RIVM RVP V3.db"


Table 0: Verwerkt personen voor vaccinatie
If:                                              | 0| 1| 2| 3| 4| 5|
'Volgende Client in RVP-database'                | Y| Y| Y| Y| Y| N| 
Client.Datum_instroom_RVP = "0000-00-00"         | Y| N| N| N| N| -|
'Aanpassing schema voor DKTP_Hib_HepB'           | -| Y| Y| N| N| -|
'Aanpassing schema voor Pneu'                    | -| Y| N| Y| N| -| 
Then:                                                            
Actie is Opvoeren_schema_voor_instromer          | X|  |  |  |  |  |                                                                 
Actie is Aanpassen_schema_DKTP_Hib_HepB_en_Pneu  |  | X|  |  |  |  |
Actie is Aanpassen_schema_DKTP_Hib_HepB          |  |  | X|  |  |  |
Actie is Aanpassen_schema_Pneu                   |  |  |  | X|  |  |
Actie is Geen_aanpassing                         |  |  |  |  | X|  |
Actie is Verwerking_beeindigd                    |  |  |  |  |  | X|
# .......

Proposition: 'Volgende Client in RVP-database'
Obtain_instance_from_database_view: Client


rTable 1: Bepaal aanpassen schema DKTP_Hib_HepB
If:                                                                | 0|
Client.DKTP_Hib_HepB_Datum_vanaf = "0000-00-00"                    | N|
Client.DKTP_Hib_HepB_Datum_registratie = "0000-00-00"              | Y|
Client.DKTP_Hib_HepB_Schema <> DKTP_Hib_HepB_Schema_DT             | Y|
Then:                                                            
'Aanpassing schema voor DKTP_Hib_HepB'                             | X|
# .......


rTable 2: Bepaal aanpassen schema Pneu
If:                                                                | 0|
Client.Pneu_Datum_vanaf = "0000-00-00"                             | N|
Client.Pneu_Datum_registratie = "0000-00-00"                       | Y|
Client.Pneu_Schema <> Pneu_Schema_DT                               | Y|
Then:                                                            
'Aanpassing schema voor Pneu'                                      | X|
# .......




Database_view: Client
With_attributes:
Clientid, Naam, Geslacht, Geboortedatum, Datum_instroom_RVP, 
DKTP_Hib_HepB_Schema, DKTP_Hib_HepB_Datum_vanaf, DKTP_Hib_HepB_Datum_registratie, 
Pneu_Schema, Pneu_Datum_vanaf, Pneu_Datum_registratie
Query:
SELECT a.Clientid as Clientid,
       a.Naam as Naam,
       a.Geslacht as Geslacht,
       a.Geboortedatum as Geboortedatum,
       a.Datum_instroom_RVP as Datum_instroom_RVP,
       b.Schema AS DKTP_Hib_HepB_Schema,
       b.Datum_vanaf as DKTP_Hib_HepB_Datum_vanaf,
       b.Datum_registratie AS DKTP_Hib_HepB_Datum_registratie,
       c.Schema AS Pneu_Schema,
       c.Datum_vanaf AS Pneu_Datum_vanaf,
       c.Datum_registratie AS Pneu_Datum_registratie
  FROM Client AS a
LEFT JOIN 
     (select clientid, schema, datum_vanaf, datum_registratie
      from serie_vaccin
      where serie_vaccin_info_id = 1 and
            volgnr = 1 ) as b
      on a.clientid = b.clientid
LEFT JOIN 
     (select clientid, schema, datum_vanaf, datum_registratie
      from serie_vaccin
      where serie_vaccin_info_id = 2 and
            volgnr = 1 ) as c
      on a.clientid = c.clientid
 LIMIT 1 OFFSET %s
With_arguments: Client.auto_index

# Serie_Vaccin_Info_id: 1=DKTP_Hib_HepB ; 2=Pneu



Attribute: Nuldatum  Type: Integer
Equals: 0


Attribute: Client.Geboortedatum  Type: Text

Attribute: Datumwaarop14dagen     Type: Integer
Equals: to_integer(fdatum(Client.Geboortedatum) + fdeltadagen(14))

Attribute: Datumwaarop4weken     Type: Integer
Equals: to_integer(fdatum(Client.Geboortedatum) + fdeltaweken(4))

Attribute: Datumwaarop10weken     Type: Integer
Equals: to_integer(fdatum(Client.Geboortedatum) + fdeltaweken(10))

Attribute: Datumwaarop3maanden   Type: Integer
Equals: to_integer(fdatum(Client.Geboortedatum) + fdeltamaanden(3))

Attribute: Datumwaarop6maanden   Type: Integer
Equals: to_integer(fdatum(Client.Geboortedatum) + fdeltamaanden(6))

Attribute: Datumwaarop14maanden   Type: Integer
Equals: to_integer(fdatum(Client.Geboortedatum) + fdeltamaanden(14))

Attribute: Datumwaarop1jaar       Type: Integer
Equals: to_integer(fdatum(Client.Geboortedatum) + fdeltajaren(1))

Attribute: Datumwaarop2jaar       Type: Integer
Equals: to_integer(fdatum(Client.Geboortedatum) + fdeltajaren(2))

Attribute: Datumwaarop4jaar       Type: Integer
Equals: to_integer(fdatum(Client.Geboortedatum) + fdeltajaren(4))

Attribute: Datumwaarop9jaar       Type: Integer
Equals: to_integer(fdatum(Client.Geboortedatum) + fdeltajaren(9))

Attribute: Datumwaarop14jaar      Type: Integer
Equals: to_integer(fdatum(Client.Geboortedatum) + fdeltajaren(14))

Attribute: Client.Geslacht       Type: Text

Attribute: Datumwaarop12jaaralsvrouw  Type: Integer
Equals: to_integer(fdatum(Client.Geboortedatum) + fdeltajaren(12)) if Client.Geslacht == "V" else 0

Attribute: Datumwaarop12jaarplus6maandenalsvrouw  Type: Integer
Equals: to_integer(fdatum(Client.Geboortedatum) + fdeltajaren(12) + fdeltamaanden(6)) if Client.Geslacht == "V" else 0


## Overbodige tussenstappen; gaan weer verdwijnen...
Attribute: DKTP_Hib_HepB_Schema_DT    Type: Integer
Equals:    DKTP_Hib_HepB_Schema
Attribute: Pneu_Schema_DT             Type: Integer
Equals:    Pneu_Schema
## Type kan worden afgeleid van de conclusie: <var.> = 1 ; 1.0 ; "1A" 


# Serie vaccin-id's
Attribute: DKTP_Hib_HepB_id   Type: Integer
Equals: 1 
Attribute: Pneu_id            Type: Integer
Equals: 2 

# Losse vaccin-id's
Attribute: BMR_id             Type: Integer
Equals: 1 
Attribute: MenACWY_id         Type: Integer
Equals: 2 
Attribute: HPV_id             Type: Integer
Equals: 3

# Vaccin-Onderdelen-id's
Attribute: D_id               Type: Integer
Equals: 1 
Attribute: K_id               Type: Integer
Equals: 2 
Attribute: T_id               Type: Integer
Equals: 3 
Attribute: P_id               Type: Integer
Equals: 4 
Attribute: Hib_id             Type: Integer
Equals: 5
Attribute: HepB_id            Type: Integer
Equals: 6



-- Overbodige tussenstappen; gaan weer verdwijnen----
Attribute: Datum_vanaf_SV1_DT  Type: Integer
Equals: Datum_vanaf_SV1
Attribute: Vroegste_datum_vanaf_SV1_DT  Type: Integer
Equals: Vroegste_datum_vanaf_SV1
Attribute: Datum_vanaf_SV2_DT  Type: Integer
Equals: Datum_vanaf_SV2
Attribute: Vroegste_datum_vanaf_SV2_DT  Type: Integer
Equals: Vroegste_datum_vanaf_SV2
-----------------------------------------------------


GoalAttribute: Actie
Repeat_until: Verwerking_beeindigd

Case: Verwerking_beeindigd
Print: "Verwerking beeindigd"


Case: Opvoeren_schema_voor_instromer
Print: "Schema opgevoerd voor: %s met id: %s."          Client.Naam Client.Clientid
>SQL:  "UPDATE Client " 
-SQL:  "   SET Datum_instroom_RVP =  %s "               Jobdatum
<SQL:  " WHERE Clientid = %s "                          Client.Clientid

>SQL:  "INSERT INTO Serie_Vaccin (Clientid, Serie_Vaccin_Info_id, Volgnr, Schema, Datum_vanaf, Vroegste_datum_vanaf, Interval_verkort)  "
-SQL:  "VALUES (%s, %s, 1, "                            Client.Clientid  DKTP_Hib_HepB_id
-SQL:  "        %s, "                                   DKTP_Hib_HepB_Schema_DT
<SQL:  "        %s, %s, 0) "                            Datum_vanaf_SV1_DT  Vroegste_datum_vanaf_SV1_DT

>SQL:  "INSERT INTO Serie_Vaccin (Clientid, Serie_Vaccin_Info_id, Volgnr, Schema, Datum_vanaf, Vroegste_datum_vanaf, Interval_verkort)  "
-SQL:  "VALUES (%s, %s, 6, "                            Client.Clientid  DKTP_Hib_HepB_id
-SQL:  "        0, "                                   
<SQL:  "        %s, %s, 0) "                            Datumwaarop4jaar   Datumwaarop4jaar

>SQL:  "INSERT INTO Serie_Vaccin (Clientid, Serie_Vaccin_Info_id, Volgnr, Schema, Datum_vanaf, Vroegste_datum_vanaf, Interval_verkort)  "
-SQL:  "VALUES (%s, %s, 7, "                            Client.Clientid  DKTP_Hib_HepB_id
-SQL:  "        0, "                                   
<SQL:  "        %s, %s, 0) "                            Datumwaarop9jaar   Datumwaarop9jaar


>SQL:  "INSERT INTO Serie_Vaccin (Clientid, Serie_Vaccin_Info_id, Volgnr, Schema, Datum_vanaf, Vroegste_datum_vanaf, Interval_verkort)  "
-SQL:  "VALUES (%s, %s, 1, "                            Client.Clientid  Pneu_id
-SQL:  "        %s, "                                   Pneu_Schema_DT
<SQL:  "        %s, %s, 0) "                            Datum_vanaf_SV2_DT  Vroegste_datum_vanaf_SV2_DT


>SQL:  "INSERT INTO Serie_Vaccin_Onderdeel (Clientid, Serie_Vaccin_Info_id, Volgnr, Vaccin_Onderdeel_Info_id, Datum_vanaf, Vroegste_datum_vanaf) "
<SQL:  "VALUES (%s, %s, 1, %s, %s, %s)"                 Client.Clientid DKTP_Hib_HepB_id    D_id     Datum_vanaf_SV1_DT  Vroegste_datum_vanaf_SV1_DT 
>SQL:  "INSERT INTO Serie_Vaccin_Onderdeel (Clientid, Serie_Vaccin_Info_id, Volgnr, Vaccin_Onderdeel_Info_id, Datum_vanaf, Vroegste_datum_vanaf) "
<SQL:  "VALUES (%s, %s, 1, %s, %s, %s)"                 Client.Clientid DKTP_Hib_HepB_id    K_id     Datum_vanaf_SV1_DT  Vroegste_datum_vanaf_SV1_DT
>SQL:  "INSERT INTO Serie_Vaccin_Onderdeel (Clientid, Serie_Vaccin_Info_id, Volgnr, Vaccin_Onderdeel_Info_id, Datum_vanaf, Vroegste_datum_vanaf) "
<SQL:  "VALUES (%s, %s, 1, %s, %s, %s)"                 Client.Clientid DKTP_Hib_HepB_id    T_id     Datum_vanaf_SV1_DT  Vroegste_datum_vanaf_SV1_DT
>SQL:  "INSERT INTO Serie_Vaccin_Onderdeel (Clientid, Serie_Vaccin_Info_id, Volgnr, Vaccin_Onderdeel_Info_id, Datum_vanaf, Vroegste_datum_vanaf) "
<SQL:  "VALUES (%s, %s, 1, %s, %s, %s)"                 Client.Clientid DKTP_Hib_HepB_id    P_id     Datum_vanaf_SV1_DT  Vroegste_datum_vanaf_SV1_DT
>SQL:  "INSERT INTO Serie_Vaccin_Onderdeel (Clientid, Serie_Vaccin_Info_id, Volgnr, Vaccin_Onderdeel_Info_id, Datum_vanaf, Vroegste_datum_vanaf) "
<SQL:  "VALUES (%s, %s, 1, %s, %s, %s)"                 Client.Clientid DKTP_Hib_HepB_id    Hib_id   Datum_vanaf_SV1_DT  Vroegste_datum_vanaf_SV1_DT 
>SQL:  "INSERT INTO Serie_Vaccin_Onderdeel (Clientid, Serie_Vaccin_Info_id, Volgnr, Vaccin_Onderdeel_Info_id, Datum_vanaf, Vroegste_datum_vanaf) "
<SQL:  "VALUES (%s, %s, 1, %s, %s, %s)"                 Client.Clientid DKTP_Hib_HepB_id    HepB_id  Datum_vanaf_SV1_DT  Vroegste_datum_vanaf_SV1_DT

>SQL:  "INSERT INTO Serie_Vaccin_Onderdeel (Clientid, Serie_Vaccin_Info_id, Volgnr, Vaccin_Onderdeel_Info_id, Datum_vanaf, Vroegste_datum_vanaf) "
<SQL:  "VALUES (%s, %s, 6, %s, %s, %s)"                 Client.Clientid DKTP_Hib_HepB_id    D_id Datumwaarop4jaar Datumwaarop4jaar 
>SQL:  "INSERT INTO Serie_Vaccin_Onderdeel (Clientid, Serie_Vaccin_Info_id, Volgnr, Vaccin_Onderdeel_Info_id, Datum_vanaf, Vroegste_datum_vanaf) "
<SQL:  "VALUES (%s, %s, 6, %s, %s, %s)"                 Client.Clientid DKTP_Hib_HepB_id    K_id Datumwaarop4jaar Datumwaarop4jaar
>SQL:  "INSERT INTO Serie_Vaccin_Onderdeel (Clientid, Serie_Vaccin_Info_id, Volgnr, Vaccin_Onderdeel_Info_id, Datum_vanaf, Vroegste_datum_vanaf) "
<SQL:  "VALUES (%s, %s, 6, %s, %s, %s)"                 Client.Clientid DKTP_Hib_HepB_id    T_id Datumwaarop4jaar Datumwaarop4jaar
>SQL:  "INSERT INTO Serie_Vaccin_Onderdeel (Clientid, Serie_Vaccin_Info_id, Volgnr, Vaccin_Onderdeel_Info_id, Datum_vanaf, Vroegste_datum_vanaf) "
<SQL:  "VALUES (%s, %s, 6, %s, %s, %s)"                 Client.Clientid DKTP_Hib_HepB_id    P_id Datumwaarop4jaar Datumwaarop4jaar
>SQL:  "INSERT INTO Serie_Vaccin_Onderdeel (Clientid, Serie_Vaccin_Info_id, Volgnr, Vaccin_Onderdeel_Info_id, Datum_vanaf, Vroegste_datum_vanaf) "
<SQL:  "VALUES (%s, %s, 6, %s, %s, %s)"                 Client.Clientid DKTP_Hib_HepB_id    Hib_id      Nuldatum   Nuldatum
>SQL:  "INSERT INTO Serie_Vaccin_Onderdeel (Clientid, Serie_Vaccin_Info_id, Volgnr, Vaccin_Onderdeel_Info_id, Datum_vanaf, Vroegste_datum_vanaf) "
<SQL:  "VALUES (%s, %s, 6, %s, %s, %s)"                 Client.Clientid DKTP_Hib_HepB_id    HepB_id     Nuldatum   Nuldatum

>SQL:  "INSERT INTO Serie_Vaccin_Onderdeel (Clientid, Serie_Vaccin_Info_id, Volgnr, Vaccin_Onderdeel_Info_id, Datum_vanaf, Vroegste_datum_vanaf) "
<SQL:  "VALUES (%s, %s, 7, %s, %s, %s)"                 Client.Clientid DKTP_Hib_HepB_id    D_id Datumwaarop9jaar Datumwaarop9jaar 
>SQL:  "INSERT INTO Serie_Vaccin_Onderdeel (Clientid, Serie_Vaccin_Info_id, Volgnr, Vaccin_Onderdeel_Info_id, Datum_vanaf, Vroegste_datum_vanaf) "
<SQL:  "VALUES (%s, %s, 7, %s, %s, %s)"                 Client.Clientid DKTP_Hib_HepB_id    K_id        Nuldatum   Nuldatum
>SQL:  "INSERT INTO Serie_Vaccin_Onderdeel (Clientid, Serie_Vaccin_Info_id, Volgnr, Vaccin_Onderdeel_Info_id, Datum_vanaf, Vroegste_datum_vanaf) "
<SQL:  "VALUES (%s, %s, 7, %s, %s, %s)"                 Client.Clientid DKTP_Hib_HepB_id    T_id Datumwaarop9jaar Datumwaarop9jaar
>SQL:  "INSERT INTO Serie_Vaccin_Onderdeel (Clientid, Serie_Vaccin_Info_id, Volgnr, Vaccin_Onderdeel_Info_id, Datum_vanaf, Vroegste_datum_vanaf) "
<SQL:  "VALUES (%s, %s, 7, %s, %s, %s)"                 Client.Clientid DKTP_Hib_HepB_id    P_id Datumwaarop9jaar Datumwaarop9jaar
>SQL:  "INSERT INTO Serie_Vaccin_Onderdeel (Clientid, Serie_Vaccin_Info_id, Volgnr, Vaccin_Onderdeel_Info_id, Datum_vanaf, Vroegste_datum_vanaf) "
<SQL:  "VALUES (%s, %s, 7, %s, %s, %s)"                 Client.Clientid DKTP_Hib_HepB_id    Hib_id      Nuldatum   Nuldatum
>SQL:  "INSERT INTO Serie_Vaccin_Onderdeel (Clientid, Serie_Vaccin_Info_id, Volgnr, Vaccin_Onderdeel_Info_id, Datum_vanaf, Vroegste_datum_vanaf) "
<SQL:  "VALUES (%s, %s, 7, %s, %s, %s)"                 Client.Clientid DKTP_Hib_HepB_id    HepB_id     Nuldatum   Nuldatum


>SQL:  "INSERT INTO Los_Vaccin (Clientid, Los_Vaccin_Info_id, Volgnr, Datum_vanaf) "
<SQL:  "VALUES (%s, %s, 1, %s)"                                       Client.Clientid   BMR_id       Datumwaarop14maanden  
>SQL:  "INSERT INTO Los_Vaccin (Clientid, Los_Vaccin_Info_id, Volgnr, Datum_vanaf) "
<SQL:  "VALUES (%s, %s, 1, %s)"                                       Client.Clientid   MenACWY_id   Datumwaarop14maanden
>SQL:  "INSERT INTO Los_Vaccin (Clientid, Los_Vaccin_Info_id, Volgnr, Datum_vanaf) "
<SQL:  "VALUES (%s, %s, 2, %s)"                                       Client.Clientid   BMR_id       Datumwaarop9jaar
>SQL:  "INSERT INTO Los_Vaccin (Clientid, Los_Vaccin_Info_id, Volgnr, Datum_vanaf) "
<SQL:  "VALUES (%s, %s, 1, %s)"                                       Client.Clientid   HPV_id       Datumwaarop12jaaralsvrouw
>SQL:  "INSERT INTO Los_Vaccin (Clientid, Los_Vaccin_Info_id, Volgnr, Datum_vanaf) "
<SQL:  "VALUES (%s, %s, 2, %s)"                                       Client.Clientid   HPV_id       Datumwaarop12jaarplus6maandenalsvrouw
>SQL:  "INSERT INTO Los_Vaccin (Clientid, Los_Vaccin_Info_id, Volgnr, Datum_vanaf) "
<SQL:  "VALUES (%s, %s, 2, %s)"                                       Client.Clientid   MenACWY_id   Datumwaarop14jaar



Case: Aanpassen_schema_DKTP_Hib_HepB
Print: "Schema aangepast voor: %s met id: %s."          Client.Naam Client.Clientid
Print: "-- Schema DKTP_Hib_HepB gewijzigd van %s naar %s." Client.DKTP_Hib_HepB_Schema    DKTP_Hib_HepB_Schema_DT 
>SQL:  "UPDATE Serie_Vaccin " 
-SQL:  "   SET Schema = %s  "                           DKTP_Hib_HepB_Schema_DT
-SQL:  " WHERE Clientid = %s "                          Client.Clientid
-SQL:  "   AND Serie_Vaccin_Info_id = %s "              DKTP_Hib_HepB_id
<SQL:  "   AND Volgnr = 1 "                          


Case: Aanpassen_schema_Pneu
Print: "Schema aangepast voor: %s met id: %s."          Client.Naam Client.Clientid
Print: "-- Schema Pneu          gewijzigd van %s naar %s." Client.Pneu_Schema             Pneu_Schema_DT
>SQL:  "UPDATE Serie_Vaccin " 
-SQL:  "   SET Schema = %s  "                           Pneu_Schema_DT
-SQL:  " WHERE Clientid = %s "                          Client.Clientid
-SQL:  "   AND Serie_Vaccin_Info_id = %s "              Pneu_id
<SQL:  "   AND Volgnr = 1 "      


Case: Aanpassen_schema_DKTP_Hib_HepB_en_Pneu
Print: "Schema aangepast voor: %s met id: %s."          Client.Naam Client.Clientid
Print: "-- Schema DKTP_Hib_HepB gewijzigd van %s naar %s." Client.DKTP_Hib_HepB_Schema    DKTP_Hib_HepB_Schema_DT        
Print: "-- Schema Pneu          gewijzigd van %s naar %s." Client.Pneu_Schema             Pneu_Schema_DT
>SQL:  "UPDATE Serie_Vaccin " 
-SQL:  "   SET Schema = %s  "                           DKTP_Hib_HepB_Schema_DT
-SQL:  " WHERE Clientid = %s "                          Client.Clientid
-SQL:  "   AND Serie_Vaccin_Info_id = %s "              DKTP_Hib_HepB_id
<SQL:  "   AND Volgnr = 1 "            

>SQL:  "UPDATE Serie_Vaccin " 
-SQL:  "   SET Schema = %s  "                           Pneu_Schema_DT
-SQL:  " WHERE Clientid = %s "                          Client.Clientid
-SQL:  "   AND Serie_Vaccin_Info_id = %s "              Pneu_id
<SQL:  "   AND Volgnr = 1 "      


Case: Geen_aanpassing 
Print: "Schema niet opgevoerd of aangepast voor: %s met id: %s."     Client.Naam Client.Clientid




Table 3: Bepaal schema voor DKTP_Hib_HepB op draaidatum
If:                                                          | 0| 1| 2| 3| 4|
Jobdatum < Datumwaarop10weken                                | Y| N| N| N| N|
Jobdatum < Datumwaarop6maanden                               | -| Y| N| N| N| 
Jobdatum < Datumwaarop1jaar                                  | -| -| Y| N| N|
Jobdatum < Datumwaarop2jaar                                  | -| -| -| Y| N|
Then:                                   
DKTP_Hib_HepB_Schema = 0                                     | X|  |  |  |  | 
DKTP_Hib_HepB_Schema = 1                                     |  | X|  |  |  |
DKTP_Hib_HepB_Schema = 2                                     |  |  | X|  |  |
DKTP_Hib_HepB_Schema = 3                                     |  |  |  | X|  |
DKTP_Hib_HepB_Schema = 4                                     |  |  |  |  | X|
Datum_vanaf_SV1 = Datumwaarop10weken                         | X|  |  |  |  |
Datum_vanaf_SV1 = Datumwaarop3maanden                        |  | X|  |  |  |
Datum_vanaf_SV1 = Jobdatum                                   |  |  | X| X| X|
Vroegste_datum_vanaf_SV1 = Datumwaarop4weken                 | X|  |  |  |  |
Vroegste_datum_vanaf_SV1 = Datumwaarop10weken                |  | X|  |  |  |
Vroegste_datum_vanaf_SV1 = Jobdatum                          |  |  | X| X| X|
# .......
# Schema-nummers DKTP-HIB-HEPB:
# 0 (=1B) - eerste prik vanaf 4 weken (indicatie vervroegd) of 6 weken tot 10 weken; totaal: 4.
# 1 (=1A) - eerste prik vanaf 10 weken (indicatie vervroegd) of 3 maand; totaal: 3.
# 2       - eerste prik vanaf 6 maand tot 1 jaar: totaal: 4.
# 3       - eerste prik vanaf 1 jaar tot 2 jaar: totaal: 3.
# 4       - eerste prik vanaf 2 jaar tot 18 jaar: totaal: 3.


Table 4: Bepaal schema voor Pneu op draaidatum
If:                                                          | 0| 1| 2| 3|
Jobdatum < Datumwaarop6maanden                               | Y| N| N| N|
Jobdatum < Datumwaarop1jaar                                  | -| Y| N| N|
Jobdatum < Datumwaarop2jaar                                  | -| -| Y| N|
Then:                                       
Pneu_Schema = 1                                              | X|  |  |  |
Pneu_Schema = 2                                              |  | X|  |  |
Pneu_Schema = 3                                              |  |  | X|  |
Pneu_Schema = 4                                              |  |  |  | X|
Datum_vanaf_SV2 = Datumwaarop3maanden                        | X|  |  |  |
Datum_vanaf_SV2 = Jobdatum                                   |  | X| X|  |
Datum_vanaf_SV2 = Nuldatum                                   |  |  |  | X|
Vroegste_datum_vanaf_SV2 = Datumwaarop4weken                 | X|  |  |  |
Vroegste_datum_vanaf_SV2 = Jobdatum                          |  | X| X|  |
Vroegste_datum_vanaf_SV2 = Nuldatum                          |  |  |  | X|
# .......
# 1=3xPneu, 2=3xPneu (ander intervalschema), 3=2xPneu, 4=0xPneu

OPZET voor rijksvaccinatie-programma deel2




# Serievaccin 1 = DKTP_Hib_HepB - DKTP - DTP  met volgnummers 1-4 of 1-3 en 6 (DKTP, 4jaar),7 (DTP, 9 jaar). 
# (SV1)           Volgnummers 1, 6 en 7 worden direct bij overname vastgelegd.
#                 Gegevens bij volgnr 1 kunnen worden gewijzigd als gevolg van wijzigen schema. 
# Serievaccin 2 = Pneu (met volgnummers 1-3, afhankelijk van schema)
# (SV2)           Gegevens bij volgnr 1 kunnen worden gewijzigd als gevolg van wijzigen schema.




SQLite_database: "Database/RIVM RVP V3.db"


Table 0: 
If:                                              | 0| 1|
'Volgende vaccinatie registratie'                | Y| N|
Then:                                                
Evaluatie is Verwerking_beeindigd                |  | X|
# .......


Proposition: 'Volgende vaccinatie registratie'
Obtain_instance_from_database_view: Vaccinatie


Database_view: Vaccinatie
With_attributes:
Clientid, Omschrijving, Datum_registratie, Statusid
Query:
SELECT *
  FROM vaccinatie
 WHERE statusid = 1
 LIMIT 1
End_Query


Attribute: Vaccinatie.Datum_registratie          Type: Text

Attribute: Vaccinatie_Datum_registratie          Type: Integer
Equals:    to_integer(fdatum(Vaccinatie.Datum_registratie))

# Equals: to_integer(fdatum(Vaccinatie.Datum_registratie))
# datumtext_to_integer(Vaccinatie.Datum_registratie)


Attribute: Jobdatum  Type: Integer
Equals: Vaccinatie_Datum_registratie

# Vaccinatie_Datum_registratie
# 20211129   <= of handmatig..



Attribute: Vaccinatie_Bevat_D_  
Equals: strcontains(Vaccinatie.Omschrijving, "D")  

Attribute: Vaccinatie_Bevat_K_  
Equals: strcontains(Vaccinatie.Omschrijving, "K")  

Attribute: Vaccinatie_Bevat_T_  
Equals: strcontains(Vaccinatie.Omschrijving, "T")  

Attribute: Vaccinatie_Bevat_P_  
Equals: strcontains(Vaccinatie.Omschrijving, "P") 



## Overbodige tussenstappen; gaan weer verdwijnen...
Attribute: D_Reden_DT       Type: Integer
Equals:    D_Reden
Attribute: K_Reden_DT       Type: Integer
Equals:    K_Reden
Attribute: T_Reden_DT       Type: Integer
Equals:    T_Reden
Attribute: P_Reden_DT       Type: Integer
Equals:    P_Reden
Attribute: Hib_Reden_DT     Type: Integer
Equals:    Hib_Reden
Attribute: HepB_Reden_DT    Type: Integer
Equals:    HepB_Reden

Attribute: Pneu_Reden_DT    Type: Integer
Equals:    Pneu_Reden

Attribute: BMR_Reden_DT     Type: Integer
Equals:    BMR_Reden
Attribute: MenACWY_Reden_DT Type: Integer
Equals:    MenACWY_Reden
Attribute: HPV_Reden_DT     Type: Integer
Equals:    HPV_Reden
## Type kan worden afgeleid van de conclusie: <var.> = 1 ; 1.0 ; "1A" 


# Serie vaccin-id's
Attribute: DKTP_Hib_HepB_id   Type: Integer
Equals: 1 
Attribute: Pneu_id            Type: Integer
Equals: 2 

# Losse vaccin-id's
Attribute: BMR_id             Type: Integer
Equals: 1 
Attribute: MenACWY_id         Type: Integer
Equals: 2 
Attribute: HPV_id             Type: Integer
Equals: 3

# Vaccin-Onderdelen-id's
Attribute: D_id               Type: Integer
Equals: 1 
Attribute: K_id               Type: Integer
Equals: 2 
Attribute: T_id               Type: Integer
Equals: 3 
Attribute: P_id               Type: Integer
Equals: 4 
Attribute: Hib_id             Type: Integer
Equals: 5
Attribute: HepB_id            Type: Integer
Equals: 6





############# Database Views voor losse vaccins. ##########################
1. BMR        14 maand; volgnr = 1 (combi-enting; met MenACWY1, maar kan ook met DKTP(-Hib)-HepB); 9 jaar; volgnr = 2
2. MenACWY    14 maand; volgnr = 1 (combi-enting; met BMR, maar kan ook met DKTP(-Hib)-HepB);     14 jaar; volgnr = 2
3. HPV        12/13 jaar; volgnr = 1; half jaar later: volgnr = 2 (alleen V)

nb. een los vaccin kan ook bestaan uit onderdelen, maar dat komt op dit moment niet voor.
nb. de mogelijkheid van combinatie-entingen wordt in een ander proces bepaald! 


Proposition: 'Openstaand los vaccin BMR'
Obtain_instance_from_database_view: Los_Vaccin_BMR

Database_view: Los_Vaccin_BMR
With_attributes:
Clientid, Los_Vaccin_Info_id, Volgnr, Datum_vanaf, Datum_registratie
Query:
SELECT *
  FROM Los_Vaccin
 WHERE Clientid = %s AND 
       Los_Vaccin_Info_id = 1 AND
       Datum_vanaf <> '0000-00-00' AND        
       Datum_vanaf <= %s  AND 
       Datum_registratie = '0000-00-00'
 ORDER BY Volgnr
 LIMIT 1
With_arguments: Vaccinatie.Clientid, Jobdatum



Proposition: 'Openstaand los vaccin MenACWY'
Obtain_instance_from_database_view: Los_Vaccin_MenACWY

Database_view: Los_Vaccin_MenACWY
With_attributes:
Clientid, Los_Vaccin_Info_id, Volgnr, Datum_vanaf, Datum_registratie
Query:
SELECT *
  FROM Los_Vaccin
 WHERE Clientid = %s AND 
       Los_Vaccin_Info_id = 2 AND
       Datum_vanaf <> '0000-00-00' AND        
       Datum_vanaf <= %s  AND 
       Datum_registratie = '0000-00-00'
 ORDER BY Volgnr
 LIMIT 1
With_arguments: Vaccinatie.Clientid, Jobdatum


Proposition: 'Openstaand los vaccin HPV'
Obtain_instance_from_database_view: Los_Vaccin_HPV

Database_view: Los_Vaccin_HPV
With_attributes:
Clientid, Los_Vaccin_Info_id, Volgnr, Datum_vanaf, Datum_registratie
Query:
SELECT *
  FROM Los_Vaccin
 WHERE Clientid = %s AND 
       Los_Vaccin_Info_id = 3 AND
       Datum_vanaf <> '0000-00-00' AND        
       Datum_vanaf <= %s  AND 
       Datum_registratie = '0000-00-00'
 ORDER BY Volgnr
 LIMIT 1
With_arguments: Vaccinatie.Clientid, Jobdatum



############# Database Views voor serie vaccins. ##########################
1. DKTP-HIB-HEPB      volgnummers 1-3 of 1-4 (afhankelijk van schema); volgnr 6 = DKTP (4 jaar); volgnr 7 = DTP (9 jaar). 
2. Pneu               volgnummers 1 of 1,2 of 1,2,3 (afhankelijk van schema). 

nb. voor serievaccins worden vaccinaties met volgnummers 2, 3 en 4 pas geregistreerd als de vorige vaccinatie volledig heeft plaatsgevonden. 


Proposition: 'Openstaand serievaccin Pneu'
Obtain_instance_from_database_view: Serie_Vaccin_Pneu

Database_view: Serie_Vaccin_Pneu
With_attributes:
Clientid, Serie_Vaccin_Info_id, Volgnr, Schema, Datum_vanaf, Vroegste_datum_vanaf, Datum_registratie, Interval_verkort
Query:
SELECT *
  FROM Serie_Vaccin
 WHERE Clientid = %s AND 
       Serie_Vaccin_Info_id = 2 AND
       Datum_vanaf <> '0000-00-00' AND               
       Vroegste_datum_vanaf <= %s  AND 
       Datum_registratie = '0000-00-00'
 ORDER BY Volgnr
 LIMIT 1
With_arguments: Vaccinatie.Clientid, Jobdatum


# SV1 = Serie_Vaccin 1 = serievaccin DKTP-HIB-HEPB

Proposition: 'Openstaand serievaccin DKTP-HIB-HEPB'
Obtain_instance_from_database_view: SV1

Database_view: SV1
With_attributes:
Clientid, Serie_Vaccin_Info_id, Volgnr, Schema, Datum_vanaf, Vroegste_datum_vanaf, Datum_registratie, Interval_verkort
Query:
SELECT *
  FROM Serie_Vaccin
 WHERE Clientid = %s AND 
       Serie_Vaccin_Info_id = 1 AND
       Datum_vanaf <> '0000-00-00' AND               
       Vroegste_datum_vanaf <= %s  AND 
       Datum_registratie = '0000-00-00'
 ORDER BY Volgnr
 LIMIT 1
With_arguments: Vaccinatie.Clientid, Jobdatum



Proposition: 'Onderdeel D van toepassing'
Obtain_instance_from_database_view: Onderdeel_D

Database_view: Onderdeel_D
With_attributes:
Clientid, Serie_Vaccin_Info_id, Volgnr, Vaccin_Onderdeel_Info_id,Datum_vanaf,Vroegste_datum_vanaf,Datum_registratie 
Query:
SELECT *
  FROM Serie_Vaccin_Onderdeel
 WHERE Clientid = %s                AND 
       Serie_Vaccin_Info_id = 1     AND 
       Volgnr = %s                  AND
       Vaccin_Onderdeel_Info_id = 1 AND
       Datum_vanaf <> '0000-00-00'
 ORDER BY Volgnr
 LIMIT 1
With_arguments: Vaccinatie.Clientid, SV1.Volgnr



Proposition: 'Onderdeel K van toepassing'
Obtain_instance_from_database_view: Onderdeel_K

Database_view: Onderdeel_K
With_attributes:
Clientid, Serie_Vaccin_Info_id, Volgnr, Vaccin_Onderdeel_Info_id,Datum_vanaf,Vroegste_datum_vanaf,Datum_registratie 
Query:
SELECT *
  FROM Serie_Vaccin_Onderdeel
 WHERE Clientid = %s                AND 
       Serie_Vaccin_Info_id = 1     AND 
       Volgnr = %s                  AND
       Vaccin_Onderdeel_Info_id = 2 AND
       Datum_vanaf <> '0000-00-00'
 ORDER BY Volgnr
 LIMIT 1
With_arguments: Vaccinatie.Clientid, SV1.Volgnr


Proposition: 'Onderdeel T van toepassing'
Obtain_instance_from_database_view: Onderdeel_T

Database_view: Onderdeel_T
With_attributes:
Clientid, Serie_Vaccin_Info_id, Volgnr, Vaccin_Onderdeel_Info_id,Datum_vanaf,Vroegste_datum_vanaf,Datum_registratie 
Query:
SELECT *
  FROM Serie_Vaccin_Onderdeel
 WHERE Clientid = %s                AND 
       Serie_Vaccin_Info_id = 1     AND 
       Volgnr = %s                  AND
       Vaccin_Onderdeel_Info_id = 3 AND
       Datum_vanaf <> '0000-00-00'
 ORDER BY Volgnr
 LIMIT 1
With_arguments: Vaccinatie.Clientid, SV1.Volgnr


Proposition: 'Onderdeel P van toepassing'
Obtain_instance_from_database_view: Onderdeel_P

Database_view: Onderdeel_P
With_attributes:
Clientid, Serie_Vaccin_Info_id, Volgnr, Vaccin_Onderdeel_Info_id,Datum_vanaf,Vroegste_datum_vanaf,Datum_registratie 
Query:
SELECT *
  FROM Serie_Vaccin_Onderdeel
 WHERE Clientid = %s                AND 
       Serie_Vaccin_Info_id = 1     AND 
       Volgnr = %s                  AND
       Vaccin_Onderdeel_Info_id = 4 AND
       Datum_vanaf <> '0000-00-00'
 ORDER BY Volgnr
 LIMIT 1
With_arguments: Vaccinatie.Clientid, SV1.Volgnr



Proposition: 'Onderdeel Hib van toepassing'
Obtain_instance_from_database_view: Onderdeel_Hib

Database_view: Onderdeel_Hib
With_attributes:
Clientid, Serie_Vaccin_Info_id, Volgnr, Vaccin_Onderdeel_Info_id,Datum_vanaf,Vroegste_datum_vanaf,Datum_registratie 
Query:
SELECT *
  FROM Serie_Vaccin_Onderdeel
 WHERE Clientid = %s                AND 
       Serie_Vaccin_Info_id = 1     AND 
       Volgnr = %s                  AND
       Vaccin_Onderdeel_Info_id = 5 AND
       Datum_vanaf <> '0000-00-00'
 ORDER BY Volgnr
 LIMIT 1
With_arguments: Vaccinatie.Clientid, SV1.Volgnr


Proposition: 'Onderdeel HepB van toepassing'
Obtain_instance_from_database_view: Onderdeel_Hib

Database_view: Onderdeel_HepB
With_attributes:
Clientid, Serie_Vaccin_Info_id, Volgnr, Vaccin_Onderdeel_Info_id,Datum_vanaf,Vroegste_datum_vanaf,Datum_registratie 
Query:
SELECT *
  FROM Serie_Vaccin_Onderdeel
 WHERE Clientid = %s                AND 
       Serie_Vaccin_Info_id = 1     AND 
       Volgnr = %s                  AND
       Vaccin_Onderdeel_Info_id = 6 AND
       Datum_vanaf <> '0000-00-00'
 ORDER BY Volgnr
 LIMIT 1
With_arguments: Vaccinatie.Clientid, SV1.Volgnr


Attribute: Onderdeel_D.Datum_vanaf                    Type: Text
Attribute: Onderdeel_D.Vroegste_datum_vanaf           Type: Text
Attribute: Onderdeel_K.Datum_vanaf                    Type: Text
Attribute: Onderdeel_K.Vroegste_datum_vanaf           Type: Text
Attribute: Onderdeel_T.Datum_vanaf                    Type: Text
Attribute: Onderdeel_T.Vroegste_datum_vanaf           Type: Text
Attribute: Onderdeel_P.Datum_vanaf                    Type: Text
Attribute: Onderdeel_P.Vroegste_datum_vanaf           Type: Text
Attribute: Onderdeel_Hib.Datum_vanaf                  Type: Text
Attribute: Onderdeel_Hib.Vroegste_datum_vanaf         Type: Text
Attribute: Onderdeel_HepB.Datum_vanaf                 Type: Text
Attribute: Onderdeel_HepB.Vroegste_datum_vanaf        Type: Text
Attribute: Serie_Vaccin_Pneu.Datum_vanaf              Type: Text
Attribute: Serie_Vaccin_Pneu.Vroegste_datum_vanaf     Type: Text
Attribute: Los_Vaccin_BMR.Datum_vanaf                 Type: Text
Attribute: Los_Vaccin_MenACWY.Datum_vanaf             Type: Text
Attribute: Los_Vaccin_HPV.Datum_vanaf                 Type: Text




########## DKTP-HIB-HEPB ##################################################################################

Schema-nummers DKTP-HIB-HEPB:
0 (=1B) - eerste prik vanaf 4 weken (indicatie vervroegd) of 6 weken tot 10 weken; totaal: 4.
1 (=1A) - eerste prik vanaf 10 weken (indicatie vervroegd) of 3 maand; totaal: 3.
2       - eerste prik vanaf 6 maand tot 1 jaar: totaal: 4.
3       - eerste prik vanaf 1 jaar tot 2 jaar: totaal: 3.
4       - eerste prik vanaf 2 jaar tot 18 jaar: totaal: 3.

en als los vaccin (= serievaccin met volgnummers 6 en 7:
DKTP       4 jaar    (vervalt als DKTP(-Hib)-HepB na 2de verjaardag)
DTP        9 jaar    (vervalt als DKTP(-Hib)-HepB na 6de verjaardag, anders combi-enting met BMR2)


########## D-registratie ##################################


Table 1: Verwerk D-registratie 
If:                                                                          | 0| 1| 2| 3| 4| 5| 6| 
Vaccinatie_Bevat_D_ = 1                                                      | Y| Y| Y| Y| Y| Y| N| 
'Openstaand serievaccin DKTP-HIB-HEPB'                                       | Y| Y| Y| Y| Y| N| -| 
'Onderdeel D van toepassing'                                                 | Y| Y| Y| Y| N| -| -|
Onderdeel_D.Datum_registratie = "0000-00-00"                                 | Y| Y| Y| N| -| -| -| 
Vaccinatie_Datum_registratie >= to_int(Onderdeel_D.Datum_vanaf)              | Y| N| N| -| -| -| -|
Vaccinatie_Datum_registratie >= to_int(Onderdeel_D.Vroegste_datum_vanaf)     | -| Y| N| -| -| -| -|
Then:                                                                                           
Evaluatie is D-OK                                                            | X| X|  |  |  |  |  |
Interval_verkort = 1                                                         |  | X|  |  |  |  |  |
DKTP-HIB-HEPB_Onderdeel_geregistreerd = 1                                    | X| X|  |  |  |  |  |
Evaluatie is D-NOK                                                           |  |  | X| X| X| X|  |
D_Reden = 1                                                                  |  |  | X|  |  |  |  |
D_Reden = 2                                                                  |  |  |  | X|  |  |  |
D_Reden = 3                                                                  |  |  |  |  | X|  |  |
D_Reden = 4                                                                  |  |  |  |  |  | X|  |
# .......


########## K-registratie ##################################


Table 2: Verwerk K-registratie 
If:                                                                          | 0| 1| 2| 3| 4| 5| 6|
Vaccinatie_Bevat_K_ = 1                                                      | Y| Y| Y| Y| Y| Y| N| 
'Openstaand serievaccin DKTP-HIB-HEPB'                                       | Y| Y| Y| Y| Y| N| -| 
'Onderdeel K van toepassing'                                                 | Y| Y| Y| Y| N| -| -|
Onderdeel_K.Datum_registratie = "0000-00-00"                                 | Y| Y| Y| N| -| -| -| 
Vaccinatie_Datum_registratie >= to_int(Onderdeel_K.Datum_vanaf)              | Y| N| N| -| -| -| -|
Vaccinatie_Datum_registratie >= to_int(Onderdeel_K.Vroegste_datum_vanaf)     | -| Y| N| -| -| -| -|
Then:                                                                                           
Evaluatie is K-OK                                                            | X| X|  |  |  |  |  |
Interval_verkort = 1                                                         |  | X|  |  |  |  |  |
DKTP-HIB-HEPB_Onderdeel_geregistreerd = 1                                    | X| X|  |  |  |  |  |
Evaluatie is K-NOK                                                           |  |  | X| X| X| X|  |
K_Reden = 1                                                                  |  |  | X|  |  |  |  |
K_Reden = 2                                                                  |  |  |  | X|  |  |  |
K_Reden = 3                                                                  |  |  |  |  | X|  |  |
K_Reden = 4                                                                  |  |  |  |  |  | X|  |
# .......


########## T-registratie ##################################


Table 3: Verwerk T-registratie 
If:                                                                          | 0| 1| 2| 3| 4| 5| 6| 
Vaccinatie_Bevat_T_  = 1                                                     | Y| Y| Y| Y| Y| Y| N| 
'Openstaand serievaccin DKTP-HIB-HEPB'                                       | Y| Y| Y| Y| Y| N| -| 
'Onderdeel T van toepassing'                                                 | Y| Y| Y| Y| N| -| -|
Onderdeel_T.Datum_registratie = "0000-00-00"                                 | Y| Y| Y| N| -| -| -| 
Vaccinatie_Datum_registratie >= to_int(Onderdeel_T.Datum_vanaf)              | Y| N| N| -| -| -| -|
Vaccinatie_Datum_registratie >= to_int(Onderdeel_T.Vroegste_datum_vanaf)     | -| Y| N| -| -| -| -|
Then:                                                                                           
Evaluatie is T-OK                                                            | X| X|  |  |  |  |  |
Interval_verkort = 1                                                         |  | X|  |  |  |  |  |
DKTP-HIB-HEPB_Onderdeel_geregistreerd = 1                                    | X| X|  |  |  |  |  |
Evaluatie is T-NOK                                                           |  |  | X| X| X| X|  |
T_Reden = 1                                                                  |  |  | X|  |  |  |  |
T_Reden = 2                                                                  |  |  |  | X|  |  |  |
T_Reden = 3                                                                  |  |  |  |  | X|  |  |
T_Reden = 4                                                                  |  |  |  |  |  | X|  |
# .......


########## P-registratie ##################################


Table 4: Verwerk P-registratie 
If:                                                                          | 0| 1| 2| 3| 4| 5| 6| 
Vaccinatie_Bevat_P_ = 1                                                      | Y| Y| Y| Y| Y| Y| N| 
'Openstaand serievaccin DKTP-HIB-HEPB'                                       | Y| Y| Y| Y| Y| N| -| 
'Onderdeel P van toepassing'                                                 | Y| Y| Y| Y| N| -| -|
Onderdeel_P.Datum_registratie = "0000-00-00"                                 | Y| Y| Y| N| -| -| -| 
Vaccinatie_Datum_registratie >= to_int(Onderdeel_P.Datum_vanaf)              | Y| N| N| -| -| -| -|
Vaccinatie_Datum_registratie >= to_int(Onderdeel_P.Vroegste_datum_vanaf)     | -| Y| N| -| -| -| -|
Then:                                                                                           
Evaluatie is P-OK                                                            | X| X|  |  |  |  |  |
Interval_verkort = 1                                                         |  | X|  |  |  |  |  |
DKTP-HIB-HEPB_Onderdeel_geregistreerd = 1                                    | X| X|  |  |  |  |  |
Evaluatie is P-NOK                                                           |  |  | X| X| X| X|  |
P_Reden = 1                                                                  |  |  | X|  |  |  |  |
P_Reden = 2                                                                  |  |  |  | X|  |  |  |
P_Reden = 3                                                                  |  |  |  |  | X|  |  |
P_Reden = 4                                                                  |  |  |  |  |  | X|  |
# .......



########## Hib-registratie ##################################


Table 5: Verwerk Hib-registratie 
If:                                                                          | 0| 1| 2| 3| 4| 5| 6| 
Vaccinatie.Omschrijving = "Hib"                                              | Y| Y| Y| Y| Y| Y| N| 
'Openstaand serievaccin DKTP-HIB-HEPB'                                       | Y| Y| Y| Y| Y| N| -| 
'Onderdeel Hib van toepassing'                                               | Y| Y| Y| Y| N| -| -|
Onderdeel_Hib.Datum_registratie = "0000-00-00"                               | Y| Y| Y| N| -| -| -| 
Vaccinatie_Datum_registratie >= to_int(Onderdeel_Hib.Datum_vanaf)            | Y| N| N| -| -| -| -|
Vaccinatie_Datum_registratie >= to_int(Onderdeel_Hib.Vroegste_datum_vanaf)   | -| Y| N| -| -| -| -|
Then:                                                                                           
Evaluatie is Hib-OK                                                          | X| X|  |  |  |  |  |
Interval_verkort = 1                                                         |  | X|  |  |  |  |  |
DKTP-HIB-HEPB_Onderdeel_geregistreerd = 1                                    | X| X|  |  |  |  |  |
Evaluatie is Hib-NOK                                                         |  |  | X| X| X| X|  |
Hib_Reden = 1                                                                |  |  | X|  |  |  |  |
Hib_Reden = 2                                                                |  |  |  | X|  |  |  |
Hib_Reden = 3                                                                |  |  |  |  | X|  |  |
Hib_Reden = 4                                                                |  |  |  |  |  | X|  |
# .......



########## HepB-registratie ##################################


Table 6: Verwerk HepB-registratie 
If:                                                                          | 0| 1| 2| 3| 4| 5| 6| 
Vaccinatie.Omschrijving = "HepB"                                             | Y| Y| Y| Y| Y| Y| N| 
'Openstaand serievaccin DKTP-HIB-HEPB'                                       | Y| Y| Y| Y| Y| N| -| 
'Onderdeel HepB van toepassing'                                              | Y| Y| Y| Y| N| -| -|
Onderdeel_HepB.Datum_registratie = "0000-00-00"                              | Y| Y| Y| N| -| -| -| 
Vaccinatie_Datum_registratie >= to_int(Onderdeel_HepB.Datum_vanaf)           | Y| N| N| -| -| -| -|
Vaccinatie_Datum_registratie >= to_int(Onderdeel_HepB.Vroegste_datum_vanaf)  | -| Y| N| -| -| -| -|
Then:                                                                                           
Evaluatie is HepB-OK                                                         | X| X|  |  |  |  |  |
Interval_verkort = 1                                                         |  | X|  |  |  |  |  |
DKTP-HIB-HEPB_Onderdeel_geregistreerd = 1                                    | X| X|  |  |  |  |  |
Evaluatie is HepB-NOK                                                        |  |  | X| X| X| X|  |
HepB_Reden = 1                                                               |  |  | X|  |  |  |  |
HepB_Reden = 2                                                               |  |  |  | X|  |  |  |
HepB_Reden = 3                                                               |  |  |  |  | X|  |  |
HepB_Reden = 4                                                               |  |  |  |  |  | X|  |
# .......



########## Pneu ###########################################################################################

Schema-nummers Pneu:
1 - eerste prik vanaf 4 weken (indicatie vervroegd?) of 3 maand; totaal: 3.
2 - eerste prik vanaf 6 maand tot 1 jaar: totaal: 3 (ander intervalschema).
3 - eerste prik vanaf 1 jaar tot 2 jaar: totaal: 2.
4 - eerste prik vanaf 2 jaar tot 18 jaar: totaal: 0.


########## Pneu-registratie ##################################


Table 7: Verwerk Pneu-registratie (als onderdeel van serieel vaccin)
If:                                                                              | 0| 1| 2| 3| 4| 
Vaccinatie.Omschrijving = "Pneu"                                                 | Y| Y| Y| Y| N| 
'Openstaand serievaccin Pneu'                                                    | Y| Y| Y| N| -| 
Vaccinatie_Datum_registratie >= to_int(Serie_Vaccin_Pneu.Datum_vanaf)            | Y| N| N| -| -|
Vaccinatie_Datum_registratie >= to_int(Serie_Vaccin_Pneu.Vroegste_datum_vanaf)   | -| Y| N| -| -|
Then:                                                                                         
Evaluatie is Pneu-OK                                                             | X| X|  |  |  |
Interval_verkort = 1                                                             |  | X|  |  |  |
Pneu_geregistreerd = 1                                                           | X| X|  |  |  |
Evaluatie is Pneu-NOK                                                            |  |  | X| X|  |
Pneu_Reden = 1                                                                   |  |  | X|  |  |
Pneu_Reden = 2                                                                   |  |  |  | X|  |
# .......



########## Losse vaccins ##################################################################################

BMR1       14 maand  (combi-enting; met MenACWY1, maar kan ook met DKTP(-Hib)-HepB)
MenACWY1   14 maand  (combi-enting; met BMR1, maar kan ook met DKTP(-Hib)-HepB)
BMR2       9 jaar
HPV1       12/13 jaar (alleen v)
HPV2       12/13 jaar (alleen v) half jaar na HPV1
MenACWY2   14 jaar

Al verwerkt in comb
DKTP       4 jaar    (vervalt als DKTP(-Hib)-HepB na 2de verjaardag)
DTP        9 jaar    (vervalt als DKTP(-Hib)-HepB na 6de verjaardag, anders combi-enting met BMR2)




########## BMR-registratie ##################################

Table 8: Verwerk registratie van los vaccin BMR
If:                                                                              | 0| 1| 2| 3| 
Vaccinatie.Omschrijving = "BMR"                                                  | Y| Y| Y| N| 
'Openstaand los vaccin BMR'                                                      | Y| Y| N| -| 
Vaccinatie_Datum_registratie >= to_int(Los_Vaccin_BMR.Datum_vanaf)               | Y| N| -| -|
Then:                                                                                      
Evaluatie is BMR-OK                                                              | X|  |  |  |
Evaluatie is BMR-NOK                                                             |  | X| X|  |
BMR_Reden = 1                                                                    |  | X|  |  |
BMR_Reden = 2                                                                    |  |  | X|  |
# .......



########## MenACWY-registratie ##################################

Table 9: Verwerk registratie van los vaccin MenACWY
If:                                                                              | 0| 1| 2| 3| 
Vaccinatie.Omschrijving = "MenACWY"                                              | Y| Y| Y| N| 
'Openstaand los vaccin MenACWY'                                                  | Y| Y| N| -| 
Vaccinatie_Datum_registratie >= to_int(Los_Vaccin_MenACWY.Datum_vanaf)           | Y| N| -| -|
Then:                                                                                      
Evaluatie is MenACWY-OK                                                          | X|  |  |  |
Evaluatie is MenACWY-NOK                                                         |  | X| X|  |
MenACWY_Reden = 1                                                                |  | X|  |  |
MenACWY_Reden = 2                                                                |  |  | X|  |
# .......



########## HPV-registratie ##################################

Table 10: Verwerk registratie van los vaccin HPV
If:                                                                              | 0| 1| 2| 3| 
Vaccinatie.Omschrijving = "HPV"                                                  | Y| Y| Y| N| 
'Openstaand los vaccin HPV'                                                      | Y| Y| N| -| 
Vaccinatie_Datum_registratie >= to_int(Los_Vaccin_HPV.Datum_vanaf)               | Y| N| -| -|
Then:                                                                                      
Evaluatie is HPV-OK                                                              | X|  |  |  |
Evaluatie is HPV-NOK                                                             |  | X| X|  |
HPV_Reden = 1                                                                    |  | X|  |  |
HPV_Reden = 2                                                                    |  |  | X|  |
# .......


########## Opvoeren volgende registratie voor serievaccin DKTP-HIB-HEPB ################################

Schema-nummers DKTP-HIB-HEPB:
0 (=1B) - eerste prik vanaf 4 weken (indicatie vervroegd) of 6 weken tot 10 weken; totaal: 4.
1 (=1A) - eerste prik vanaf 10 weken (indicatie vervroegd) of 3 maand; totaal: 3.
2       - eerste prik vanaf 6 maand tot 1 jaar: totaal: 4.
3       - eerste prik vanaf 1 jaar tot 2 jaar: totaal: 3.
4       - eerste prik vanaf 2 jaar tot 18 jaar: totaal: 3.


Database_view: Check_SV1
With_attributes:
Aantal_openstaande_onderdelen
Query:
SELECT COUNT(*) AS Aantal_openstaande_onderdelen
  FROM Serie_Vaccin AS a
  LEFT JOIN Serie_Vaccin_Onderdeel AS b
    ON (a.Clientid = b.Clientid and a.Serie_Vaccin_Info_id = b.Serie_Vaccin_Info_id and a.Volgnr=b.Volgnr)
 WHERE a.Clientid = %s
   AND  b.Serie_Vaccin_Info_id = 1
   AND  b.Volgnr =  %s 
   AND  b.Datum_vanaf <> '0000-00-00' 
   AND  b.Datum_registratie = '0000-00-00'
With_arguments: Vaccinatie.Clientid, SV1.Volgnr



rTable 11: Controle compleetheid huidige serievaccin DKTP-HIB-HEPB
If:                                                                              | 0| 1| 2| 3|
DKTP-HIB-HEPB_Onderdeel_geregistreerd = 1                                        | Y| Y| Y| Y| 
Check_SV1.Aantal_openstaande_onderdelen = 0                                      | Y| Y| Y| Y|
SV1.Schema in [0,2]                                                              | Y| Y| N| N|
SV1.Schema in [1,3,4]                                                            | -| -| Y| Y|
SV1.Volgnr <= 3                                                                  | Y| N| -| -|
SV1.Volgnr <= 2                                                                  | -| -| Y| N|
Then:                                                                                      
Evaluatie is Opvoeren_volgende_vaccinatie_DKTP-HIB-HEPB                          | X|  | X|  |
Evaluatie is Afsluiten_huidige_vaccinatie_DKTP-HIB-HEPB                          | X| X| X| X|
# .......



########## Opvoeren volgende registratie voor serievaccin PNEU ################################
Schema-nummers Pneu:
1 - eerste prik vanaf 4 weken (indicatie vervroegd?) of 3 maand; totaal: 3.
2 - eerste prik vanaf 6 maand tot 1 jaar: totaal: 3 (ander intervalschema).
3 - eerste prik vanaf 1 jaar tot 2 jaar: totaal: 2.
4 - eerste prik vanaf 2 jaar tot 18 jaar: totaal: 0.


rTable 12: Controle compleetheid huidige serievaccin Pneu
If:                                                                              | 0| 1| 2| 3|
Pneu_geregistreerd = 1                                                           | Y| Y| Y| Y| 
Serie_Vaccin_Pneu.Schema in [1,2]                                                | Y| Y| N| N|
Serie_Vaccin_Pneu.Schema = 3                                                     | -| -| Y| Y|
Serie_Vaccin_Pneu.Volgnr <= 2                                                    | Y| N| -| -|
Serie_Vaccin_Pneu.Volgnr <= 1                                                    | -| -| Y| N|
Then:                                                                                      
Evaluatie is Opvoeren_volgende_vaccinatie_Pneu                                   | X|  | X|  |
# .......





########## Afsluiten evaluatie ##################################

rTable 13: 
If:                                         | 0| 
Vaccinatie_Bevat_D_ = 1                     | N| 
Vaccinatie_Bevat_K_ = 1                     | N| 
Vaccinatie_Bevat_T_ = 1                     | N|
Vaccinatie_Bevat_P_ = 1                     | N| 
Vaccinatie.Omschrijving = "Hib"             | N|
Vaccinatie.Omschrijving = "HepB"            | N|
Vaccinatie.Omschrijving = "Pneu"            | N|
Vaccinatie.Omschrijving = "BMR"             | N|
Vaccinatie.Omschrijving = "MenACWY"         | N|
Vaccinatie.Omschrijving = "HPV"             | N|
Then:                                                    
Evaluatie is NOK                            | X|
# .......




Table 14: Bepaal interval verkort voor volgende vaccinatie SV1
If:                                                                              | 0| 1| 2|
SV1.Interval_verkort = 1                                                         | Y| N| N| 
Interval_verkort = 1                                                             | -| Y| N|
Then:                                                                                      
Interval_verkort_SV1_DT = 1                                                      | X| X|  |
Interval_verkort_SV1_DT = 0                                                      |  |  | X|
# .......


## tussenstap om fout in verkrijg_waarde_voor_formula (formuletext) te vermijden...
Attribute: SV1_Volgnr          Type: Integer
Equals: SV1.Volgnr

Attribute: Volgnr_SV1_DT       Type: Integer
Equals: SV1_Volgnr + 1


-- Overbodige tussenstappen; gaan weer verdwijnen----
Attribute: Datum_vanaf_SV1_DT  Type: Integer
Equals: Datum_vanaf_SV1
Attribute: Vroegste_datum_vanaf_SV1_DT  Type: Integer
Equals: Vroegste_datum_vanaf_SV1
-----------------------------------------------------


# Attribute: Vaccinatie.Datum_registratie   Type: Text

Attribute: DatumPlus2weken     Type: Integer
Equals: to_integer(fdatum(Vaccinatie.Datum_registratie) + fdeltaweken(2))
Attribute: DatumPlus4weken     Type: Integer
Equals: to_integer(fdatum(Vaccinatie.Datum_registratie) + fdeltaweken(4))
Attribute: DatumPlus6weken     Type: Integer
Equals: to_integer(fdatum(Vaccinatie.Datum_registratie) + fdeltaweken(6))
Attribute: DatumPlus1maand     Type: Integer
Equals: to_integer(fdatum(Vaccinatie.Datum_registratie) + fdeltamaanden(1))
Attribute: DatumPlus2maand     Type: Integer
Equals: to_integer(fdatum(Vaccinatie.Datum_registratie) + fdeltamaanden(2))
Attribute: DatumPlus3maand     Type: Integer
Equals: to_integer(fdatum(Vaccinatie.Datum_registratie) + fdeltamaanden(3))
Attribute: DatumPlus5maand     Type: Integer
Equals: to_integer(fdatum(Vaccinatie.Datum_registratie) + fdeltamaanden(5))
Attribute: DatumPlus6maand     Type: Integer
Equals: to_integer(fdatum(Vaccinatie.Datum_registratie) + fdeltamaanden(6))




rTable 15: Bepaal volgende datum voor SV1 Schema 0
If:                                                         | 0| 1| 2| 3| 4| 5|                   
SV1.Schema = 0                                              | Y| Y| Y| Y| Y| Y|                   
SV1.Volgnr = 1                                              | Y| Y| N| N| N| N|                   
SV1.Volgnr = 2                                              | -| -| Y| Y| N| N|                   
SV1.Volgnr = 3                                              | -| -| -| -| Y| Y|
Interval_verkort_SV1_DT = 1                                 | Y| N| Y| N| Y| N|                   
Then:                                                                          
Datum_vanaf_SV1 = DatumPlus1maand                           | X| X|  |  |  |  | 
Datum_vanaf_SV1 = DatumPlus2maand                           |  |  | X| X|  |  |
Datum_vanaf_SV1 = DatumPlus6maand                           |  |  |  |  | X| X|
Vroegste_datum_vanaf_SV1 = DatumPlus2weken                  |  | X|  | X|  |  |  
Vroegste_datum_vanaf_SV1 = DatumPlus1maand                  | X|  |  |  |  |  |
Vroegste_datum_vanaf_SV1 = DatumPlus2maand                  |  |  | X|  |  |  |
Vroegste_datum_vanaf_SV1 = DatumPlus5maand                  |  |  |  |  |  | X|
Vroegste_datum_vanaf_SV1 = DatumPlus6maand                  |  |  |  |  | X|  |
# .......


rTable 16: Bepaal volgende datum voor SV1 Schema 1
If:                                                         | 0| 1| 2| 3|                   
SV1.Schema = 1                                              | Y| Y| Y| Y|                   
SV1.Volgnr = 1                                              | Y| Y| N| N|                   
SV1.Volgnr = 2                                              | -| -| Y| Y|                   
Interval_verkort_SV1_DT = 1                                 | Y| N| Y| N|                   
Then:                                                                    
Datum_vanaf_SV1 = DatumPlus2maand                           | X| X|  |  |
Datum_vanaf_SV1 = DatumPlus6maand                           |  |  | X| X|
Vroegste_datum_vanaf_SV1 = DatumPlus6weken                  |  | X|  |  |  
Vroegste_datum_vanaf_SV1 = DatumPlus2maand                  | X|  |  |  |
Vroegste_datum_vanaf_SV1 = DatumPlus5maand                  |  |  |  | X|
Vroegste_datum_vanaf_SV1 = DatumPlus6maand                  |  |  | X|  |
# .......


rTable 17: Bepaal volgende datum voor SV1 Schema 2
If:                                                         | 0| 1| 2| 3| 4| 5|                   
SV1.Schema = 2                                              | Y| Y| Y| Y| Y| Y|                   
SV1.Volgnr = 1                                              | Y| Y| N| N| N| N|                   
SV1.Volgnr = 2                                              | -| -| Y| Y| N| N|                   
SV1.Volgnr = 3                                              | -| -| -| -| Y| Y|
Interval_verkort_SV1_DT = 1                                 | Y| N| Y| N| Y| N|                   
Then:                                                                          
Datum_vanaf_SV1 = DatumPlus4weken                           | X| X|  |  |  |  | 
Datum_vanaf_SV1 = DatumPlus2maand                           |  |  | X| X|  |  |
Datum_vanaf_SV1 = DatumPlus6maand                           |  |  |  |  | X| X|
Vroegste_datum_vanaf_SV1 = DatumPlus2weken                  |  | X|  | X|  |  |  
Vroegste_datum_vanaf_SV1 = DatumPlus4weken                  | X|  |  |  |  |  |  
Vroegste_datum_vanaf_SV1 = DatumPlus2maand                  |  |  | X|  |  |  |
Vroegste_datum_vanaf_SV1 = DatumPlus5maand                  |  |  |  |  |  | X|
Vroegste_datum_vanaf_SV1 = DatumPlus6maand                  |  |  |  |  | X|  |
# .......


rTable 18: Bepaal volgende datum voor SV1 Schema 3 en 4
If:                                                         | 0| 1| 2| 3|                   
SV1.Schema in [3,4]                                         | Y| Y| Y| Y|                   
SV1.Volgnr = 1                                              | Y| Y| N| N|                   
SV1.Volgnr = 2                                              | -| -| Y| Y|                   
Interval_verkort_SV1_DT = 1                                 | Y| N| Y| N|                   
Then:                                                                    
Datum_vanaf_SV1 = DatumPlus2maand                           | X| X|  |  |
Datum_vanaf_SV1 = DatumPlus6maand                           |  |  | X| X|
Vroegste_datum_vanaf_SV1 = DatumPlus2weken                  |  | X|  |  |  
Vroegste_datum_vanaf_SV1 = DatumPlus2maand                  | X|  |  |  |
Vroegste_datum_vanaf_SV1 = DatumPlus5maand                  |  |  |  | X|
Vroegste_datum_vanaf_SV1 = DatumPlus6maand                  |  |  | X|  |
# .......


## tussenstap om fout in verkrijg_waarde_voor_formula (formuletext) te vermijden...
Attribute: Serie_Vaccin_Pneu_Volgnr  Type: Integer
Equals: Serie_Vaccin_Pneu.Volgnr

Attribute: Volgnr_SV2_DT       Type: Integer
Equals: Serie_Vaccin_Pneu_Volgnr + 1


-- Overbodige tussenstappen; gaan weer verdwijnen----
Attribute: Datum_vanaf_SV2_DT  Type: Integer
Equals: Datum_vanaf_SV2
Attribute: Vroegste_datum_vanaf_SV2_DT  Type: Integer
Equals: Vroegste_datum_vanaf_SV2
-----------------------------------------------------

Table 19: Bepaal interval verkort voor volgende vaccinatie SV2
If:                                                                              | 0| 1| 2|
Serie_Vaccin_Pneu.Interval_verkort = 1                                           | Y| N| N| 
Interval_verkort = 1                                                             | -| Y| N|
Then:                                                                                      
Interval_verkort_SV2_DT = 1                                                      | X| X|  |
Interval_verkort_SV2_DT = 0                                                      |  |  | X|
# .......


rTable 20: Bepaal volgende datum voor SV2 Schema 1
If:                                                         | 0| 1| 2| 3|                   
Serie_Vaccin_Pneu.Schema = 1                                | Y| Y| Y| Y|                   
Serie_Vaccin_Pneu.Volgnr = 1                                | Y| Y| N| N|                   
Serie_Vaccin_Pneu.Volgnr = 2                                | -| -| Y| Y|                   
Interval_verkort_SV2_DT = 1                                 | Y| N| Y| N|                   
Then:                                                                    
Datum_vanaf_SV2 = DatumPlus2maand                           | X| X|  |  |
Datum_vanaf_SV2 = DatumPlus6maand                           |  |  | X| X|
Vroegste_datum_vanaf_SV2 = DatumPlus6weken                  |  | X|  |  |  
Vroegste_datum_vanaf_SV2 = DatumPlus2maand                  | X|  |  |  |
Vroegste_datum_vanaf_SV2 = DatumPlus5maand                  |  |  |  | X|
Vroegste_datum_vanaf_SV2 = DatumPlus6maand                  |  |  | X|  |
# .......



rTable 21: Bepaal volgende datum voor SV2 Schema 2
If:                                                         | 0| 1| 2| 3|                   
Serie_Vaccin_Pneu.Schema = 2                                | Y| Y| Y| Y|                   
Serie_Vaccin_Pneu.Volgnr = 1                                | Y| Y| N| N|                   
Serie_Vaccin_Pneu.Volgnr = 2                                | -| -| Y| Y|                   
Interval_verkort_SV2_DT = 1                                 | Y| N| Y| N|                   
Then:                                                                    
Datum_vanaf_SV2 = DatumPlus3maand                           | X| X|  |  |
Datum_vanaf_SV2 = DatumPlus6maand                           |  |  | X| X|
Vroegste_datum_vanaf_SV2 = DatumPlus6weken                  |  | X|  |  |  
Vroegste_datum_vanaf_SV2 = DatumPlus3maand                  | X|  |  |  |
Vroegste_datum_vanaf_SV2 = DatumPlus5maand                  |  |  |  | X|
Vroegste_datum_vanaf_SV2 = DatumPlus6maand                  |  |  | X|  |
# .......


rTable 22: Bepaal volgende datum voor SV2 Schema 3
If:                                                         | 0| 1|                   
Serie_Vaccin_Pneu.Schema = 3                                | Y| Y|                   
Serie_Vaccin_Pneu.Volgnr = 1                                | Y| Y|                   
Interval_verkort_SV2_DT = 1                                 | Y| N|                   
Then:                                                              
Datum_vanaf_SV2 = DatumPlus2maand                           | X| X|
Vroegste_datum_vanaf_SV2 = DatumPlus6weken                  |  | X|  
Vroegste_datum_vanaf_SV2 = DatumPlus2maand                  | X|  |
# .......




########## Nabewerking 1 ##################################################################################

Een serievaccin zonder onderdelen kan direkt worden afgesloten en de volgende prik kan worden vastgelegd indien nog nodig. 
Een serievaccin met onderdelen kan pas worden afgesloten als alle vereiste onderdelen zijn binnengekomen. 
Als dat het geval is kan de volgende prik worden vastgelegd indien nog nodig.

Tabel nodig voor deze nabewerking (per serievaccin met onderdelen). 



########## Nabewerking 2 ##################################################################################

tbv.
DKTP       4 jaar    (vervalt als DKTP(-Hib)-HepB3 na 2de verjaardag)
DTP        9 jaar    (vervalt als DKTP(-Hib)-HepB3 na 6de verjaardag, anders combi-enting)


sowieso annuleren (datum_vanaf wordt 0) maar eventuele registratie blijft staan, als annuleren te laat is: 

XrTable : 
If:                                                                                   | 0| 1|                                 
Vaccinatie_Datum_registratie meest recente DKTP(-Hib)-HepB > geboortedatum + 6 jaar   | Y| N|
Vaccinatie_Datum_registratie meest recente DKTP(-Hib)-HepB > geboortedatum + 2 jaar   | -| Y|
Then:                                                                             
Annuleer DKTP en DTP (datum_vanaf = 0000-00-00)                                       | X|  |
Annuleer DTP (datum_vanaf = 0000-00-00)                                               |  | X|
# .......

of meer intelligent annuleren (maar ook nu blijft een eventuele registratie gewoon staan):

XrTable : 
If:                                                                                    | 0| 1| 2| 3| 4| 5| 6| 7|                                
Los vaccin DKTP.datum_vanaf = "0000-00-00"                                             | Y| Y| Y| N| N| N| N| N|
Los vaccin DKP.datum_vanaf  = "0000-00-00"                                             | Y| N| N| Y| Y| -| N| N|
Vaccinatie_Datum_registratie meest recente DKTP(-Hib)-HepB > geboortedatum + 6 jaar    | -| Y| N| Y| N| N| Y| N|
Vaccinatie_Datum_registratie meest recente DKTP(-Hib)-HepB > geboortedatum + 2 jaar    | -| -| -| -| Y| N| -| Y|
Then:                                                                                               
Geen annulering                                                                        | X|  | X|  |  | X|  |  |
Annuleer DTP (datum_vanaf = 0000-00-00)                                                |  | X|  |  |  |  |  |  |
Annuleer DKTP (datum_vanaf = 0000-00-00)                                               |  |  |  | X| X|  |  | X|                                                                       
Annuleer DKTP en DTP (datum_vanaf = 0000-00-00)                                        |  |  |  |  |  |  | X|  |
# .......

Attribute: Interval_verkort_print  Type: Integer
Equals:    Interval_verkort




GoalAttribute: Evaluatie
Multivalued_until: Verwerking_beeindigd
Repeat_until: Verwerking_beeindigd

Case: Verwerking_beeindigd
Print: "Verwerking beeindigd"


Case: D-OK
Print: "Client %s: onderdeel D voor serie-vaccin 1 met volgnummer: %s is: Goedgekeurd."      Vaccinatie.Clientid  Onderdeel_D.Volgnr   
>SQL:  "UPDATE Vaccinatie " 
-SQL:  "   SET Statusid = 2 "               
-SQL:  " WHERE Clientid = %s "                                               Vaccinatie.Clientid
-SQL:  "   AND Omschrijving = '%s' "                                         Vaccinatie.Omschrijving
<SQL:  "   AND Datum_registratie = %s "                                      Vaccinatie_Datum_registratie

>SQL:  "UPDATE Serie_Vaccin_Onderdeel " 
-SQL:  "   SET Datum_registratie = %s "                                      Vaccinatie_Datum_registratie               
-SQL:  " WHERE Clientid = %s "                                               Vaccinatie.Clientid
-SQL:  "   AND Serie_Vaccin_Info_id = 1  "                                   
-SQL:  "   AND Volgnr = %s "                                                 Onderdeel_D.Volgnr
<SQL:  "   AND Vaccin_Onderdeel_Info_id = 1 "                               




Case: D-NOK
Print: "Client %s: onderdeel D voor serie-vaccin 1 is: Afgekeurd (met reden: %s)."        Vaccinatie.Clientid  D_Reden_DT  
>SQL:  "UPDATE Vaccinatie " 
-SQL:  "   SET Statusid = 3 "               
-SQL:  " WHERE Clientid = %s "                                               Vaccinatie.Clientid
-SQL:  "   AND Omschrijving = '%s' "                                         Vaccinatie.Omschrijving
<SQL:  "   AND Datum_registratie = %s "                                      Vaccinatie_Datum_registratie



Case: K-OK
Print: "Client %s: onderdeel K voor serie-vaccin 1 met volgnummer: %s is: Goedgekeurd."     Vaccinatie.Clientid  Onderdeel_K.Volgnr   
>SQL:  "UPDATE Vaccinatie " 
-SQL:  "   SET Statusid = 2 "               
-SQL:  " WHERE Clientid = %s "                                               Vaccinatie.Clientid
-SQL:  "   AND Omschrijving = '%s' "                                         Vaccinatie.Omschrijving
<SQL:  "   AND Datum_registratie = %s "                                      Vaccinatie_Datum_registratie

>SQL:  "UPDATE Serie_Vaccin_Onderdeel " 
-SQL:  "   SET Datum_registratie = %s "                                      Vaccinatie_Datum_registratie               
-SQL:  " WHERE Clientid = %s "                                               Vaccinatie.Clientid
-SQL:  "   AND Serie_Vaccin_Info_id = 1  "                                   
-SQL:  "   AND Volgnr = %s "                                                 Onderdeel_K.Volgnr
<SQL:  "   AND Vaccin_Onderdeel_Info_id = 2 "                               


Case: K-NOK
Print: "Client %s: onderdeel K voor serie-vaccin 1 is: Afgekeurd (met reden: %s)."        Vaccinatie.Clientid  K_Reden_DT    
>SQL:  "UPDATE Vaccinatie " 
-SQL:  "   SET Statusid = 3 "               
-SQL:  " WHERE Clientid = %s "                                               Vaccinatie.Clientid
-SQL:  "   AND Omschrijving = '%s' "                                         Vaccinatie.Omschrijving
<SQL:  "   AND Datum_registratie = %s "                                      Vaccinatie_Datum_registratie


Case: T-OK
Print: "Client %s: onderdeel T voor serie-vaccin 1 met volgnummer: %s is: Goedgekeurd."      Vaccinatie.Clientid  Onderdeel_T.Volgnr   
>SQL:  "UPDATE Vaccinatie " 
-SQL:  "   SET Statusid = 2 "               
-SQL:  " WHERE Clientid = %s "                                               Vaccinatie.Clientid
-SQL:  "   AND Omschrijving = '%s' "                                         Vaccinatie.Omschrijving
<SQL:  "   AND Datum_registratie = %s "                                      Vaccinatie_Datum_registratie

>SQL:  "UPDATE Serie_Vaccin_Onderdeel " 
-SQL:  "   SET Datum_registratie = %s "                                      Vaccinatie_Datum_registratie               
-SQL:  " WHERE Clientid = %s "                                               Vaccinatie.Clientid
-SQL:  "   AND Serie_Vaccin_Info_id = 1  "                                   
-SQL:  "   AND Volgnr = %s "                                                 Onderdeel_T.Volgnr
<SQL:  "   AND Vaccin_Onderdeel_Info_id = 3 "                               


Case: T-NOK
Print: "Client %s: onderdeel T voor serie-vaccin 1 is: Afgekeurd (met reden: %s)."        Vaccinatie.Clientid  T_Reden_DT  
>SQL:  "UPDATE Vaccinatie " 
-SQL:  "   SET Statusid = 3 "               
-SQL:  " WHERE Clientid = %s "                                               Vaccinatie.Clientid
-SQL:  "   AND Omschrijving = '%s' "                                         Vaccinatie.Omschrijving
<SQL:  "   AND Datum_registratie = %s "                                      Vaccinatie_Datum_registratie


Case: P-OK
Print: "Client %s: onderdeel P voor serie-vaccin 1 met volgnummer: %s is: Goedgekeurd."      Vaccinatie.Clientid  Onderdeel_P.Volgnr   
>SQL:  "UPDATE Vaccinatie " 
-SQL:  "   SET Statusid = 2 "               
-SQL:  " WHERE Clientid = %s "                                               Vaccinatie.Clientid
-SQL:  "   AND Omschrijving = '%s' "                                         Vaccinatie.Omschrijving
<SQL:  "   AND Datum_registratie = %s "                                      Vaccinatie_Datum_registratie

>SQL:  "UPDATE Serie_Vaccin_Onderdeel " 
-SQL:  "   SET Datum_registratie = %s "                                      Vaccinatie_Datum_registratie               
-SQL:  " WHERE Clientid = %s "                                               Vaccinatie.Clientid
-SQL:  "   AND Serie_Vaccin_Info_id = 1  "                                   
-SQL:  "   AND Volgnr = %s "                                                 Onderdeel_P.Volgnr
<SQL:  "   AND Vaccin_Onderdeel_Info_id = 4 "                               


Case: P-NOK
Print: "Client %s: onderdeel P voor serie-vaccin 1 is: Afgekeurd (met reden: %s)."        Vaccinatie.Clientid  P_Reden_DT  
>SQL:  "UPDATE Vaccinatie " 
-SQL:  "   SET Statusid = 3 "               
-SQL:  " WHERE Clientid = %s "                                               Vaccinatie.Clientid
-SQL:  "   AND Omschrijving = '%s' "                                         Vaccinatie.Omschrijving
<SQL:  "   AND Datum_registratie = %s "                                      Vaccinatie_Datum_registratie


Case: Hib-OK
Print: "Client %s: onderdeel Hib voor serie-vaccin 1 met volgnummer: %s is: Goedgekeurd."    Vaccinatie.Clientid  Onderdeel_Hib.Volgnr   
>SQL:  "UPDATE Vaccinatie " 
-SQL:  "   SET Statusid = 2 "               
-SQL:  " WHERE Clientid = %s "                                               Vaccinatie.Clientid
-SQL:  "   AND Omschrijving = '%s' "                                         Vaccinatie.Omschrijving
<SQL:  "   AND Datum_registratie = %s "                                      Vaccinatie_Datum_registratie

>SQL:  "UPDATE Serie_Vaccin_Onderdeel " 
-SQL:  "   SET Datum_registratie = %s "                                      Vaccinatie_Datum_registratie               
-SQL:  " WHERE Clientid = %s "                                               Vaccinatie.Clientid
-SQL:  "   AND Serie_Vaccin_Info_id = 1  "                                   
-SQL:  "   AND Volgnr = %s "                                                 Onderdeel_Hib.Volgnr
<SQL:  "   AND Vaccin_Onderdeel_Info_id = 5 "                               



Case: Hib-NOK
Print: "Client %s: onderdeel Hib voor serie-vaccin 1 is: Afgekeurd (met reden: %s)."      Vaccinatie.Clientid  Hib_Reden_DT 
>SQL:  "UPDATE Vaccinatie " 
-SQL:  "   SET Statusid = 3 "               
-SQL:  " WHERE Clientid = %s "                                               Vaccinatie.Clientid
-SQL:  "   AND Omschrijving = '%s' "                                         Vaccinatie.Omschrijving
<SQL:  "   AND Datum_registratie = %s "                                      Vaccinatie_Datum_registratie


Case: HepB-OK
Print: "Client %s: onderdeel HepB voor serie-vaccin 1 met volgnummer: %s is: Goedgekeurd."   Vaccinatie.Clientid  Onderdeel_HepB.Volgnr   
>SQL:  "UPDATE Vaccinatie " 
-SQL:  "   SET Statusid = 2 "               
-SQL:  " WHERE Clientid = %s "                                               Vaccinatie.Clientid
-SQL:  "   AND Omschrijving = '%s' "                                         Vaccinatie.Omschrijving
<SQL:  "   AND Datum_registratie = %s "                                      Vaccinatie_Datum_registratie

>SQL:  "UPDATE Serie_Vaccin_Onderdeel " 
-SQL:  "   SET Datum_registratie = %s "                                      Vaccinatie_Datum_registratie               
-SQL:  " WHERE Clientid = %s "                                               Vaccinatie.Clientid
-SQL:  "   AND Serie_Vaccin_Info_id = 1  "                                   
-SQL:  "   AND Volgnr = %s "                                                 Onderdeel_HepB.Volgnr
<SQL:  "   AND Vaccin_Onderdeel_Info_id = 6 "           


Case: HepB-NOK
Print: "Client %s: onderdeel HepB voor serie-vaccin 1 is: Afgekeurd (met reden: %s)."     Vaccinatie.Clientid  HepB_Reden_DT  
>SQL:  "UPDATE Vaccinatie " 
-SQL:  "   SET Statusid = 3 "               
-SQL:  " WHERE Clientid = %s "                                               Vaccinatie.Clientid
-SQL:  "   AND Omschrijving = '%s' "                                         Vaccinatie.Omschrijving
<SQL:  "   AND Datum_registratie = %s "                                      Vaccinatie_Datum_registratie


Case: Pneu-OK
Print: "Client %s: serie-vaccin 2: PNEU met volgnummer: %s is: Goedgekeurd."                 Vaccinatie.Clientid  Serie_Vaccin_Pneu.Volgnr   
>SQL:  "UPDATE Vaccinatie " 
-SQL:  "   SET Statusid = 2 "               
-SQL:  " WHERE Clientid = %s "                                               Vaccinatie.Clientid
-SQL:  "   AND Omschrijving = '%s' "                                         Vaccinatie.Omschrijving
<SQL:  "   AND Datum_registratie = %s "                                      Vaccinatie_Datum_registratie

>SQL:  "UPDATE Serie_Vaccin " 
-SQL:  "   SET Datum_registratie = %s, "                                     Vaccinatie_Datum_registratie               
-SQL:  "       Interval_verkort = %s    "                                    Interval_verkort_SV2_DT     
-SQL:  " WHERE Clientid = %s "                                               Vaccinatie.Clientid
-SQL:  "   AND Serie_Vaccin_Info_id = 2  "                                   
<SQL:  "   AND Volgnr = %s "                                                 Serie_Vaccin_Pneu.Volgnr


Case: Pneu-NOK
Print: "Client %s: serie-vaccin 2: Pneu is: Afgekeurd (met reden: %s)."                   Vaccinatie.Clientid  Pneu_Reden_DT   
>SQL:  "UPDATE Vaccinatie " 
-SQL:  "   SET Statusid = 3 "               
-SQL:  " WHERE Clientid = %s "                                               Vaccinatie.Clientid
-SQL:  "   AND Omschrijving = '%s' "                                         Vaccinatie.Omschrijving
<SQL:  "   AND Datum_registratie = %s "                                      Vaccinatie_Datum_registratie

Case: BMR-OK
Print: "Client %s: los vaccin 1: BMR met volgnummer: %s is: Goedgekeurd."                    Vaccinatie.Clientid  Los_Vaccin_BMR.Volgnr   
>SQL:  "UPDATE Vaccinatie " 
-SQL:  "   SET Statusid = 2 "               
-SQL:  " WHERE Clientid = %s "                                               Vaccinatie.Clientid
-SQL:  "   AND Omschrijving = '%s' "                                         Vaccinatie.Omschrijving
<SQL:  "   AND Datum_registratie = %s "                                      Vaccinatie_Datum_registratie

>SQL:  "UPDATE Los_Vaccin " 
-SQL:  "   SET Datum_registratie = %s "                                      Vaccinatie_Datum_registratie               
-SQL:  " WHERE Clientid = %s "                                               Vaccinatie.Clientid
-SQL:  "   AND Los_Vaccin_Info_id = 1  "                                   
<SQL:  "   AND Volgnr = %s "                                                 Los_Vaccin_BMR.Volgnr 


Case: BMR-NOK
Print: "Client %s: los vaccin 1: BMR is: Afgekeurd (met reden: %s)."                      Vaccinatie.Clientid  BMR_Reden_DT  
>SQL:  "UPDATE Vaccinatie " 
-SQL:  "   SET Statusid = 3 "               
-SQL:  " WHERE Clientid = %s "                                               Vaccinatie.Clientid
-SQL:  "   AND Omschrijving = '%s' "                                         Vaccinatie.Omschrijving
<SQL:  "   AND Datum_registratie = %s "                                      Vaccinatie_Datum_registratie


Case: MenACWY-OK
Print: "Client %s: los vaccin 2: MenACWY met volgnummer: %s is: Goedgekeurd."                Vaccinatie.Clientid  Los_Vaccin_MenACWY.Volgnr   
>SQL:  "UPDATE Vaccinatie " 
-SQL:  "   SET Statusid = 2 "               
-SQL:  " WHERE Clientid = %s "                                               Vaccinatie.Clientid
-SQL:  "   AND Omschrijving = '%s' "                                         Vaccinatie.Omschrijving
<SQL:  "   AND Datum_registratie = %s "                                      Vaccinatie_Datum_registratie

>SQL:  "UPDATE Los_Vaccin " 
-SQL:  "   SET Datum_registratie = %s "                                      Vaccinatie_Datum_registratie               
-SQL:  " WHERE Clientid = %s "                                               Vaccinatie.Clientid
-SQL:  "   AND Los_Vaccin_Info_id = 2  "                                   
<SQL:  "   AND Volgnr = %s "                                                 Los_Vaccin_MenACWY.Volgnr  


Case: MenACWY-NOK
Print: "Client %s: los vaccin 2: MenACWY is: Afgekeurd (met reden: %s)."                  Vaccinatie.Clientid  MenACWY_Reden_DT 
>SQL:  "UPDATE Vaccinatie " 
-SQL:  "   SET Statusid = 3 "               
-SQL:  " WHERE Clientid = %s "                                               Vaccinatie.Clientid
-SQL:  "   AND Omschrijving = '%s' "                                         Vaccinatie.Omschrijving
<SQL:  "   AND Datum_registratie = %s "                                      Vaccinatie_Datum_registratie


Case: HPV-OK
Print: "Client %s: los vaccin 3: HPV met volgnummer: %s is: Goedgekeurd."                    Vaccinatie.Clientid  Los_Vaccin_HPV.Volgnr   
>SQL:  "UPDATE Vaccinatie " 
-SQL:  "   SET Statusid = 2 "               
-SQL:  " WHERE Clientid = %s "                                               Vaccinatie.Clientid
-SQL:  "   AND Omschrijving = '%s' "                                         Vaccinatie.Omschrijving
<SQL:  "   AND Datum_registratie = %s "                                      Vaccinatie_Datum_registratie

>SQL:  "UPDATE Los_Vaccin " 
-SQL:  "   SET Datum_registratie = %s "                                      Vaccinatie_Datum_registratie               
-SQL:  " WHERE Clientid = %s "                                               Vaccinatie.Clientid
-SQL:  "   AND Los_Vaccin_Info_id = 3  "                                   
<SQL:  "   AND Volgnr = %s "                                                 Los_Vaccin_HPV.Volgnr 


Case: HPV-NOK
Print: "Client %s: los vaccin 3: HPV is: Afgekeurd (met reden: %s)."                      Vaccinatie.Clientid  HPV_Reden_DT 
>SQL:  "UPDATE Vaccinatie " 
-SQL:  "   SET Statusid = 3 "               
-SQL:  " WHERE Clientid = %s "                                               Vaccinatie.Clientid
-SQL:  "   AND Omschrijving = '%s' "                                         Vaccinatie.Omschrijving
<SQL:  "   AND Datum_registratie = %s "                                      Vaccinatie_Datum_registratie



Case: Opvoeren_volgende_vaccinatie_DKTP-HIB-HEPB 
Print: "==> Volgende vaccinatiedatum voor serie vaccin 1: DKTP-HIB-HEPB met volgnr %s vastgelegd."      Volgnr_SV1_DT
>SQL:  "INSERT INTO Serie_Vaccin (Clientid, Serie_Vaccin_Info_id, Volgnr, Schema, Datum_vanaf, Vroegste_datum_vanaf, Interval_verkort)  "
-SQL:  "VALUES (%s, "                                                        Vaccinatie.Clientid   
-SQL:  "        %s, "                                                        DKTP_Hib_HepB_id 
-SQL:  "        %s, "                                                        Volgnr_SV1_DT
-SQL:  "        %s, "                                                        SV1.Schema
-SQL:  "        %s, "                                                        Datum_vanaf_SV1_DT
-SQL:  "        %s, "                                                        Vroegste_datum_vanaf_SV1_DT
<SQL:  "        %s) "                                                        Interval_verkort_SV1_DT  

>SQL:  "INSERT INTO Serie_Vaccin_Onderdeel (Clientid, Serie_Vaccin_Info_id, Volgnr, Vaccin_Onderdeel_Info_id, Datum_vanaf, Vroegste_datum_vanaf) "
-SQL:  "VALUES (%s, %s, %s, "               Vaccinatie.Clientid DKTP_Hib_HepB_id  Volgnr_SV1_DT
<SQL:  "        %s, %s, %s) "               D_id  Datum_vanaf_SV1_DT  Vroegste_datum_vanaf_SV1_DT
>SQL:  "INSERT INTO Serie_Vaccin_Onderdeel (Clientid, Serie_Vaccin_Info_id, Volgnr, Vaccin_Onderdeel_Info_id, Datum_vanaf, Vroegste_datum_vanaf) "
-SQL:  "VALUES (%s, %s, %s, "               Vaccinatie.Clientid DKTP_Hib_HepB_id  Volgnr_SV1_DT
<SQL:  "        %s, %s, %s) "               K_id  Datum_vanaf_SV1_DT  Vroegste_datum_vanaf_SV1_DT
>SQL:  "INSERT INTO Serie_Vaccin_Onderdeel (Clientid, Serie_Vaccin_Info_id, Volgnr, Vaccin_Onderdeel_Info_id, Datum_vanaf, Vroegste_datum_vanaf) "
-SQL:  "VALUES (%s, %s, %s, "               Vaccinatie.Clientid DKTP_Hib_HepB_id  Volgnr_SV1_DT
<SQL:  "        %s, %s, %s) "               T_id  Datum_vanaf_SV1_DT  Vroegste_datum_vanaf_SV1_DT
>SQL:  "INSERT INTO Serie_Vaccin_Onderdeel (Clientid, Serie_Vaccin_Info_id, Volgnr, Vaccin_Onderdeel_Info_id, Datum_vanaf, Vroegste_datum_vanaf) "
-SQL:  "VALUES (%s, %s, %s, "               Vaccinatie.Clientid DKTP_Hib_HepB_id  Volgnr_SV1_DT
<SQL:  "        %s, %s, %s) "               P_id  Datum_vanaf_SV1_DT  Vroegste_datum_vanaf_SV1_DT
>SQL:  "INSERT INTO Serie_Vaccin_Onderdeel (Clientid, Serie_Vaccin_Info_id, Volgnr, Vaccin_Onderdeel_Info_id, Datum_vanaf, Vroegste_datum_vanaf) "
-SQL:  "VALUES (%s, %s, %s, "               Vaccinatie.Clientid DKTP_Hib_HepB_id  Volgnr_SV1_DT
<SQL:  "        %s, %s, %s) "               Hib_id   Datum_vanaf_SV1_DT  Vroegste_datum_vanaf_SV1_DT
>SQL:  "INSERT INTO Serie_Vaccin_Onderdeel (Clientid, Serie_Vaccin_Info_id, Volgnr, Vaccin_Onderdeel_Info_id, Datum_vanaf, Vroegste_datum_vanaf) "
-SQL:  "VALUES (%s, %s, %s, "               Vaccinatie.Clientid DKTP_Hib_HepB_id  Volgnr_SV1_DT
<SQL:  "        %s, %s, %s) "               HepB_id  Datum_vanaf_SV1_DT  Vroegste_datum_vanaf_SV1_DT


Case: Afsluiten_huidige_vaccinatie_DKTP-HIB-HEPB
Print: "    Vaccinatie met serie vaccin 1: DKTP-HIB-HEPB met volgnr %s is afgesloten."  SV1.Volgnr
>SQL:  "UPDATE Serie_Vaccin " 
-SQL:  "   SET Datum_registratie = %s,  "                                    Vaccinatie_Datum_registratie
-SQL:  "       Interval_verkort = %s    "                                    Interval_verkort_SV1_DT     
-SQL:  " WHERE Clientid = %s "                                               Vaccinatie.Clientid
-SQL:  "   AND Serie_Vaccin_Info_id = 1 "                                    
<SQL:  "   AND Volgnr = %s "                                                 SV1.Volgnr



Case: Opvoeren_volgende_vaccinatie_Pneu
Print: "==> Volgende vaccinatiedatum voor serie vaccin 2: PNEU met volgnr %s vastgelegd."      Volgnr_SV2_DT
>SQL:  "INSERT INTO Serie_Vaccin (Clientid, Serie_Vaccin_Info_id, Volgnr, Schema, Datum_vanaf, Vroegste_datum_vanaf, Interval_verkort)  "
-SQL:  "VALUES (%s, "                                                        Vaccinatie.Clientid   
-SQL:  "        %s, "                                                        Pneu_id 
-SQL:  "        %s, "                                                        Volgnr_SV2_DT
-SQL:  "        %s, "                                                        Serie_Vaccin_Pneu.Schema
-SQL:  "        %s, "                                                        Datum_vanaf_SV2_DT
-SQL:  "        %s, "                                                        Vroegste_datum_vanaf_SV2_DT
<SQL:  "        %s) "                                                        Interval_verkort_SV2_DT  



Case: NOK
Print: "Client %s: ongeldige vaccinatie %s is: Afgekeurd."                   Vaccinatie.Clientid  Vaccinatie.Omschrijving   
>SQL:  "UPDATE Vaccinatie " 
-SQL:  "   SET Statusid = 3 "               
-SQL:  " WHERE Clientid = %s "                                               Vaccinatie.Clientid
-SQL:  "   AND Omschrijving = '%s' "                                         Vaccinatie.Omschrijving
<SQL:  "   AND Datum_registratie = %s "                                      Vaccinatie_Datum_registratie


Covid engine


SQLite_database: "Database/Coviddemo.sqlite3"


Table 0: 
If:                                            | 0| 1| 2| 3| 4| 5|
'Volgende_Client?'                             | Y| Y| Y| Y| Y| N|
Stap1_symptomen >= Minimum_voor_PCR_tests      | Y| N| N| N| N| -|
Stap1_symptomen > 0                            | -| Y| Y| N| N| -|
Stap2_symptoom  = 1                            | -| Y| N| Y| N| -|
Then:                                                          
Actie is AlleClientenVerwerkt                  |  |  |  |  |  | X|
Actie is PCR_test                              | X| X|  |  |  |  |
Actie is InQuarantaine                         |  |  | X| X|  |  |
Actie is AllesOK                               |  |  |  |  | X|  |
# .......


Proposition: 'Volgende_Client?'
Obtain_instance_from_database_view: Client

Attribute: Stap1_symptomen  
Equals: Niezen + Hoesten

Attribute: Niezen         Type: Integer
Obtain_value_from_database_view: Client.sneezing
Attribute: Hoesten        Type: Integer 
Obtain_value_from_database_view: Client.coughing

Attribute: Minimum_voor_PCR_tests      Type: Integer
Equals: 2

Attribute: Stap2_symptoom
Equals: Koorts

Table 1: 
If:                                            | 0| 1| 2| 3|
Leeftijd >= 10                                 | Y| Y| N| N|
Temperatuur >= 38.0                            | Y| N| -| -|
Temperatuur >= 37.2                            | -| -| Y| N|
Then: 
Koorts = 1                                     | X|  | X|  |
Koorts = 0                                     |  | X|  | X|
# .......

Attribute: Leeftijd
Obtain_value_from_database_view: Client.age
Attribute: Temperatuur 
Obtain_value_from_database_view: Client.temperature

Database_view: Client
With_attributes:
personid,name,age,temperature,sneezing,coughing
Query:
SELECT *
  FROM client
 LIMIT 1 OFFSET %s  
With_arguments: Client.auto_index   


GoalAttribute: Actie
Repeat_until: AlleClientenVerwerkt

Case: AlleClientenVerwerkt
Print: "Klaar met verwerken!"

Case: PCR_test
Print: "Resultaat %s: moet voor een Pcr-test..."      Client.name
>SQL:  "UPDATE client " 
-SQL:  "   SET result = 'PCR test', "
-SQL:  "       fever = %s  "                          Koorts.getvalue                                       
<SQL:  " WHERE Name = '%s' "                          Client.name

Case: InQuarantaine 
Print: "Resultaat %s: moet in Quarantaine..."        Client.name 
>SQL:  "UPDATE client " 
-SQL:  "   SET result = 'Standard quarantine practice', "
-SQL:  "       fever = %s "                           Koorts.getvalue                                       
<SQL:  " WHERE Name = '%s' "                          Client.name

Case: AllesOK
Print: "Resultaat  %s: geen actie vereist..."         Client.name
>SQL:  "UPDATE client " 
-SQL:  "   SET result = 'No action required', " 
-SQL:  "       fever = %s "                           Koorts.getvalue                                       
<SQL:  " WHERE Name = '%s' "                          Client.name


Initial_database_setup: delete_clients
Query:
    DELETE FROM client
End_Query

Initial_database_setup: insert_new_clients
Query:
    INSERT INTO client 
    (personid,name, age,temperature,sneezing,coughing) 
    VALUES
    (1,     'TC0',    33,       Null,       1,       1),
    (2,     'TC1a',   10,       38.0,       0,       1),
    (3,     'TC1b',    9,       37.2,       1,       0),
    (4,     'TC2a',   10,       37.9,       0,       1),
    (5,     'TC2b',    9,       37.1,       1,       0),
    (6,     'TC3',    10,       38.0,       0,       0),
    (7,     'TC4',     9,       37.1,       0,       0)
End_Query