Project

General

Profile

Bug #51

Erro com o dígito do sitetb [EMAIL]

Added by Maurício Dos Santos almost 13 years ago. Updated almost 13 years ago.

Status:
Closed
Priority:
Normal
Target version:
Start date:
07/27/2012
Due date:
07/30/2012
% Done:

100%

Componente:

Description

QUILMA

Ja era para trer reportado a vcs, mas ainda estamos em tempo
caso com digito (importados) :
quando o caso indice é validado, o proximo pula um digito
ex 3957 e 3957-2, ainda não estão validados, quando o indice for validado o proximo passa a ser 3957-3
vou configurar o caso 3256 e 3256-2 colocar etiqueta Ricardo e deixar para vcs validarem

History

#1 Updated by Ricardo Memoria almost 13 years ago

  • Target version deleted (Version 2.1)

#2 Updated by Maurício Dos Santos almost 13 years ago

  • Due date set to 07/30/2012
  • Status changed from New to Feedback
  • Assignee changed from Maurício Dos Santos to Ricardo Memoria
  • Start date set to 07/27/2012

Ricardo,

Analisei o codigo responsavel por este comportamento e pelo que consegui analisar o comportamento do sistema está correto, mas a contestação da Quilma também. Acredito que esse comportamento que acontece com ela é um caso a parte para casos que foram importados.

Segue o código:

        // generate new case number
        //Gets the major case number of this patient with diagnosisdate before the case in question.
        Integer caseNum = (Integer)entityManager.createQuery("select max(c.caseNumber) from TbCase c where c.patient.id = :id and c.diagnosisDate < :dt")
            .setParameter("id", p.getId())
            .setParameter("dt", tbcase.getDiagnosisDate())
            .getSingleResult();

        if (caseNum == null)
            //If there is no casenum before this one it sets the digit 1 for this case.
            caseNum = 1;
        else{
            //If there is a casenum before this case it sets this number plus one.
            caseNum++;
        }

        // update case numbers with notification date after this case
        entityManager.createQuery("update TbCase c " +
                "set c.caseNumber = c.caseNumber + 1 " + 
                "where c.patient.id = :id and c.diagnosisDate > :dt")
                .setParameter("id", p.getId())
                .setParameter("dt", tbcase.getDiagnosisDate())
                .executeUpdate();

        tbcase.setCaseNumber(caseNum);

Gostaria que você me auxiliasse nessa questão.
Se precisar de um caso de exemplo coloquei um banco de dados anexado que tem o caso 3957, voce valida o 3957 e o 3957-2 passa para digito 3...

Acredito que esse seja um problema comum para os casos que foram importados pois se os casos fossem inseridos no sistema pelo fluxo normal (sem importação, por digitação nos formularios) isso não aconteceria (Quilma me corrija se estiver errado).

#3 Updated by Maurício Dos Santos almost 13 years ago

  • Status changed from Feedback to In Progress

#4 Updated by Ricardo Memoria almost 13 years ago

  • Assignee changed from Ricardo Memoria to Maurício Dos Santos

Realmente, quando o caso é importado, fica difícil usar o código acima. A melhor solução é, após calcular o número do caso sendo validado, pegar a lista de casos posteriores a ele e atualizar o número do caso. Algo mais ou menos assim:

Considere que caseNum é o número do caso sendo validado

// retorna os ids dos casos em ordem cronológica
List<Integer> lst = entityManager.createQuery("select id from TbCase c " + 
        "where c.patient.id = :id and c.diagnosisDate > :dt order by c.diagnosisDate").getResultList();

// atualiza os números
int num = caseNum + 1;
for (Integer id: lst) {
   entityManager.createQuery("update TbCase set caseNumber = :num where id=:id")
      .setParameter("num", num)
      .setParameter("id", id)
      .executeUpdate();
   num++;
}

#5 Updated by Maurício Dos Santos almost 13 years ago

  • Status changed from In Progress to Resolved
  • % Done changed from 0 to 100

Feito!
Problema resolvido.

#6 Updated by Maurício Dos Santos almost 13 years ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF