Bug #29
Sistema utiliza caso não validado para contagem de medicamentos [RPROJ 4242]
100%
Description
Ver caso GLACIMAR DA SILVA do Hospital Cassiano de Moraes (ES) e ver o pedido de medicamentos deles realizado em 12/07/2012.
[IMPORTADO DO RPROJ - CRISTIANE DAVID]
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/27/2012
- Start date set to 07/27/2012
#3
Updated by Maurício Dos Santos almost 13 years ago
- Due date changed from 07/27/2012 to 07/30/2012
- Status changed from New to In Progress
- Assignee changed from Maurício Dos Santos to Ricardo Memoria
Ricardo,
Eu ainda estou meio cru com essa parte de medicamentos...
Para analisar esse problema eu fui ao início do problema, na criação de um novo pedido.
Estive analisando aqui e não consegui localizar onde o sistema seleciona os casos que serão utilizados para estimar a quantidade do pedido. Na tela neworder.xhtml eu vi que o sistema (através dos gets) utiliza o codigo abaixo para buscar os itens do pedido e junto com ele ja vem a quantidade estimada.
protected void mountOrderSourcesList() {
sources.clear();
String hql = "from OrderItem it " +
"join fetch it.source join fetch it.medicine " +
"where it.order.id = #{order.id}";
List<OrderItem> lst = getEntityManager().createQuery(hql).getResultList();
for (OrderItem it: lst) {
SourceOrderItem s = sourceOrderBySource(it.getSource());
s.addOrderItem(it);
}
}
A pergunta é: Quando o sistema estima (no caso, gera esses orderItems) e onde ele faz a seleção desses usuários?
outra coisa que eunão consegui localizar foi quando ele coloca em memoria o id de #{order.id}
#4
Updated by Ricardo Memoria almost 13 years ago
Não consegui analisar o problema nesta tarefa. O mais provável é que o pedido já tenha sido excluído, logo, qual é o problema?
Mas respondendo as suas perguntas:
1. A Estimativa é feita no método
OrderEstimation.initialize();
Ele é chamado pela página medicines/ordernew.xhtml através do pages.xml da página.
Neste método são incluídos os casos que correspondem ao pedido.
2. Não existe Id do pedido em um novo pedido, já que ele está sendo criado. Ele só será gerado quando o usuário criar o pedido.
#5
Updated by Ricardo Memoria almost 13 years ago
- Assignee changed from Ricardo Memoria to Maurício Dos Santos
#6
Updated by Maurício Dos Santos almost 13 years ago
- Assignee changed from Maurício Dos Santos to Ricardo Memoria
- % Done changed from 0 to 30
Ricardo,
O problema reportado, pelo que eu entendi é que, o sistema utiliza casos não validados para a contagem de medicamentos...
Realmente o sistema não verifica se o caso esta validado para incluí-lo na lista de casos, veja o código:
String hql = "from PrescribedMedicine pm " +
"join fetch pm.tbcase c join fetch pm.source s join fetch pm.medicine m " +
"where pm.tbcase.treatmentUnit.id in (" + s + ") " +
"and pm.tbcase.state = :state " +
"and (pm.period.endDate >= :dtini) " +
"and (pm.period.iniDate <= :dtend)";
Porém acho que faz sentido o sistema considerar os casos não validados para a estimativa pois apesar de não validado o medicamento está prescrito, se está prescrito o paciente vai consumir tal medicamento.
O que acha?
#7
Updated by Ricardo Memoria almost 13 years ago
- Assignee changed from Ricardo Memoria to Maurício Dos Santos
Entendo o seu ponto de vista e faz sentido, o problema é que quando o sistema tem sido apresentado, é informado que apenas os casos validados são incluídos, então nesse caso é melhor incluir apenas os casos validados.
#8
Updated by Maurício Dos Santos almost 13 years ago
- Status changed from In Progress to Resolved
- % Done changed from 30 to 100
Feito.
Assim que passar para teste aviso para que possamos testar e colocar em produção.
#9
Updated by Maurício Dos Santos over 12 years ago
- Status changed from Resolved to Closed