Datovalidering av storfehendelser

Dette dokumentet er laget for å beskrive datovalidering av flyttetransaksjon både med fire hendelser (4100, 4200, 4500, 4600) og med tre hendelser (4500, 4700, 4800). I tilfellet hvor individet overføres gjennom et livdyrfjøs (4100, 4200, 5500, 5600) vil de samme beregningene fortsatt gjelde, med unntak av at vi ikke validerer lengden på oppholdet hos livdyrfjøs. For en flyttetransaksjon som involverer seks hendelser (4100, 4200, 4500/5500, 4600/5600, 4500/5500, 4600/5600) vil det være flere intervaller som skal valideres, men prinsippene er de samme som for en transaksjon med fire hendelser.

Valideringsregler

Det er flere regler for validering av datofelter for melding av storfehendelser. De tre viktigste reglene for dette er som følger:

  • Registreringsrekkefølgen for hendelsene er likegyldig.
  • Alle hendelser som kommer i samme transaksjon kan alltid ha samme hendelsesdato.
  • Avviket mellom hendelser i samme transaksjon (f.eks. ut av dyrehold og inn i dyrehold) kan maksimalt avvike med fem dager. Merk at dette gjelder for meldinger som parvis hører sammen, og at det kan være større avvik på hendelser som til/fra livdyrfjøs.

I tillegg er det regler for rekkefølgen av hendelsesdato for meldinger sendt av "profesjonelle" aktører. Det er fire meldinger som sendes av slike aktører:

  • Melding om dyr inn til livdyrhandler/transportør
  • Melding om dyr ut fra livdyrhandler/transportør
  • Melding dyr inn til slakteri
  • Melding om slakt

Slike meldinger skal ha hendelsesdatoer som kommer i naturlig rekkefølge. Altså at:

  • Hendelsesdato til livdyrhandler er alltid mindre enn eller lik hendelsdato fra livdyrhandler.
  • Hendelsdato til slakteri er alltid mindre enn eller lik hendelsesdato for slakt.

Transaksjoner

Vi har følgende transaksjoner (inkludert forkortelser):

  • Melding om dyr ut fra dyrehold (42): U
  • Melding om dyr inn til dyrehold (41): I
  • Melding om dyr inn til livdyrhandler/slakteri/transportør (45): LI
  • Melding om dyr ut fra livdyrhandler/transportør (46): LU
  • Melding dyr sendt til slakt (47): US
  • Melding om slakt (48): S

Forflytning uten livdyrhandler/transportør

Her er det bare to meldinger involvert og det er bare to muligheter for å stokke meldingene: U og I.

Forflytning via livdyrhandler/transportør

Her er det fire meldinger involvert: U, I, LI, LU. Dersom overflyttingen involverer opphold på livdyrfjøs skal det være avvik mellom disse datoene (se hovedregel over).

Slakting av dyr

Her er det 3 meldinger: LI, US, S.

Avviksintervaller

Følgende er avvik som skal tillates:

  1. U/I − I/U
  2. LI − LU
  3. LU − U/I, U/I − LI
  4. LI − S
  5. S − US, US − LI

Validering

Algoritme for validering

Når en ny melding kommer inn, blir den validert slik:

  1. Finn alle tilhørende meldinger
  2. Sorter meldingene på hendelsesdato og finn alle ikke-overlappende intervaller
  3. Valider hvert intervall for seg, der hvert intervall har en makslengde på 5 dager.

Intervallene det skal valideres mot er da:

  1. U/I − I/U
  2. LI − LU
  3. LI/LU − U/I, U/I − LI/LU
  4. LI − S
  5. S/US − US/S, US/LI − LI/US

Et eksempel:

LI og LU er mottatt og validert, og så kommer I og plasserer seg slik:

validering_eksempel_1

Nå er det to intervaller som skal valideres LI − I og I − LU. Begge er av type 3.

Deretter kommer den avsluttende U-meldingen og plasserer seg slik:

validering_eksempel_2

Nå er det tre intervaller som skal valideres: LI − U, U − I og I − LU, og de er henholdsvis av type 3, 1 og 3.

Merk at datovalidering blir kjørt helt i slutten av valideringen av meldinger, slik at meldinger som har datoer som ville validert OK i henhold til det som står her kan feile av andre årsaker. Videre vil det motsatte også være tilfelle, at meldinger som ville feilet på datovalidering feiler av andre årsaker, og i slike tilfeller vil man som oftest få melding om den andre feilen siden den blir oppdaget først.