Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Detect inspections that correspond to the same breeding site #895

Open
cdparra opened this issue Jun 11, 2019 · 1 comment
Open

Detect inspections that correspond to the same breeding site #895

cdparra opened this issue Jun 11, 2019 · 1 comment
Assignees
Labels

Comments

@cdparra
Copy link
Member

cdparra commented Jun 11, 2019

Lo que tenemos que hacer es enlazar inspections entre si, automáticamente detectar cuando un inspection en realidad representa el mismo criadero, pero en una nueva fecha. Entonces, lo que creo que tenemos que hacer es agregarle a cada inspection una referencia a su ancestro por llamarlo de algún modo, o previous_same_breeding_site_inspection o previous_similar_inspection si queremos darle un nombre completo.

El algoritmo creo que debe funcionar así:
(1) Si se crea una nueva inspección con br_site_id = br1, asociado al locations.address = l1 con visits.visited_at = d1, buscar la última inspection creada con el mismo código br1, asociado al mismo location l1, pero creado en visitas cuya fecha visited _at < d1,

(2) si en el paso 1 encontramos inspecciones similares, relacionar la nueva inspección a la última de las encontradas a través de un campo especial que podemos llamar previous_similar_inspection,

(3) en la página de reports, mostrar el estado actual del inspection así como ahora, pero también el estado que tenían los últimos 3 o 4 inspections asociados como similares (siguiendo el árbol que se crea a través del campo previous_similar_inspection de cada inspección,

(4) Supongamos que la nueva inspección es i2 y encontramos que la inspección similar que le corresponde es i1. Si i2.protected == 1 y i1.eliminated_at == null y i1.protected == 0, setear i2.eliminated_at con a fecha actual. Si i2.eliminated_at no es null y tiene fecha válida, setear i1.eliminated_at == i2.eliminated_at.

Cómo parte del este feature, necesitaríamos entonces: (1) implementar el algoritmo de detección de inspecciones asociadas al mismo criadero (descripta arriba), (2) ejecutar el algoritmo cada vez que se crea una nueva insepcción, (3) crear un script que evalúe todos los inspections existentes y complete el campo de la inspección previa siguiendo el mismo algoritmo, (4) modificar el reports page para que incluya el estado que tenía un criadero en inspecciones previas, (5) agregar un botón a la tarjeta de cada inspección que permita eliminar la asociación si es que el usuario cree que estaba mal

@jamesholston
Copy link

unique identifers for each breeding site? Breteau concept? Positivity at house level or individual breeding sites?

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

No branches or pull requests

3 participants