Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

  1. Criar fonte exclusivo para a browser e demais botões da tela de importação da SIMPRO®, com o nome PLSSIMPRO.PRW.
    1. Utilizar neste fonte o conceito de herança do MVC, onde devemos herdar as características do fonte PLSBRASIN1 e realizar os devidos ajustes. 
  2. Criar fonte exclusivo, com as funções de importação e gravação das tabelas da SIMPRO®, com o nome PLSSIMPROI.PRW. 
  3. Pelo manual e layout, o sistema VideoFarma® permite que todos os itens – independente se é um medicamento ou material, sejam, exportados em arquivo único, permitindo sua diferenciação por uma classificação própria, no campo CD_MERC, onde: 
    • (20) Material Hospitalar
    • (50) Medicamentos
    • (70) Perfumaria
    • (90) Reagentes
    • (30) Saneantes
  4. Contudo, como necessitamos saber em qual TDE o item será importado - para quando houver codificação TUSS ou não – será necessário a configuração individual para cada item a ser importador.  Ou seja, devemos ter um registro na B6G para cada tipo de material, medicamento, perfumaria, reagente ou saneante a ser importado.
    • Deixar claro no Documento de Referência que não deve ser gerado arquivo único, mas um individual para cada item a ser importado.  E se mesmo assim gerar um arquivo único, todos os itens serão importados para a tabela no qual ocorrer o match, sem diferenciar medicamento ou material pelo tipo de registro.
  5. Com relação os itens Perfumaria, Reagentes e Saneantes, esses itens deverão ser incluídos no combo do campo B6G_TIPPRO.
  6. O campo B6G_TIPARQ fica oculto na VIEW, ao visualizara tela de configuração. Assim:
    • O campo agora deverá ficar visível na VIEW e no browse de configuração;
    • Identificar de forma automática de qual menu foi a chamada, para colocar no campo B6G_TIPARQ o cadastro correspondente. Por exemplo, se a ação originou na tela da Brasíndice® (PLSBRASIN1), colocar no campo B6G_TIPARQ o valor 1=Brasíndice®. Se originou na SIMPRO® (PLSSIMPRO), colocar 2=SIMPRO®.
  7. Será necessário revisar o fonte de Configuração de Importação (PLSBRASIN2), pois temos regras específicas do Brasíndice®, que não consideram o campo B6G_TIPARQ para validar, como as funções AtuCmpVal (que deve considerar agora o campo B6G_TIPARQ para validar apenas Brasíndice®); a função ChkVlrDup (que possui query para evitar itens repetidos com o mesmo tipo de material e valor, onde deverá verificar o campo B6G_TIPARQ, não mais apenas 1=Brasíndice®).
  8. Validar na tela o que é pertinente a cada item:
    • Se estou cadastrando um item Brasíndice®, não posso usar as opções Reagentes / Saneantes / Perfumaria (B6G_TIPPRO), bem como a opção Preço Usuário (B6G_TIPO);
    • Se estou cadastrando SIMPRO®, não posso usar a opção Soluções.
    • Demais regras que existem para a Brasíndice®, como para Soluções e Materiais usar apenas Preço de Fábrica devem ser mantidas para Brasíndice®.
      • Solução: manipular o conteúdo do CBOX do campo B6G_TIPPRO, para exibir apenas as opções pertinentes para cada cadastro: Exemplo: cadastro no X3_CBOX as novas opções de Perfumaria / Saneantes / Reagentes, ficando 1=Materiais;2=Medicamentos;3=Soluções;4=Perfumaria;5=Saneantes;6=Reagentes;  
      • Na VIEW do PLSBRASIN2, manipular para exibir apenas as opções pertinentes para cada tipo de tabela, pelo atributo MVC_VIEW_COMBOBOX, onde podemos passar esse atributo, seguido de um array ou função. Nesse caso, passar uma função, que vai recuperar os valores do X3_CBOX do campo B6G_TIPPRO - GetSx3Cache("B6G_TIPPRO","X3_CBOX") e na função, tratar o retorno do campo de acordo com a tabela selecionada -  SIMPRO® ou Brasíndice®.
      • https://tdn.totvs.com/pages/releaseview.action?pageId=6815033 -> GetSx3Cache
  9. Com relação aos valores, a SIMPRO® permite exportar o Preço de Fábrica (PFB), o Preço Máximo ao Consumidor (PMC) e iremos incluir o Preço do Usuário (PUSU), no campo B6G_TIPO.
    • O controle do campo deve ser efetuado igual ao do campo B6G_TIPPRO, para exibir de forma correta somente para a SIMPRO® a opção Preço do Usuário.
    • Como na Brasíndice®, temos também a possibilidade de preço total ou fracionado, informado no campo B6G_TIPVAL, que será idêntico na SIMPRO®. Na parte xxx, iremos detalhar melhor os itens do layout
  10. Demais regras e campos serão mantidos de forma igual.
  11. Ao acionar a opção de Configurar pela tela da Brasíndice® – PLSBRASIN1 – as configurações que deverão ser exibidas no Browse deverão ser apenas Brasíndice®. Se acionei a opção Configurar via tela SIMPRO® – PLSSIMPRO, no browse devem ser exibidos apenas os itens da SIMPRO®, usando o campo B6G_TIPARQ para este fim.

...

  1. O usuário pode deletar alguma importação realizada, bastando no browser do PLSSIMPRO posicionar no registro desejado e clicar no botão Excluir.  Contudo, temos algumas regras a serem seguidas:
    1. Ao solicitar a exclusão do registro posicionado, devemos garantir se é o último importado, pela sequência do campo BD4_CHVIMP, que armazena o código da mensagem (atualização) da SIMPRO.  Se tentar excluir qualquer um que não seja o último importado, o sistema deve proibir, de acordo com o tipo de produto e valor.
      1. Por exemplo, importei à atualização 3021 - Material - PFB e no outro mês, importei o 3121 - Material - PFB.
      2. Se tentar excluir o 3021 - Material - PFB, o sistema não deve deixar, pois existe atualização superior, que pode ter finalizado e criado novas BD4 com outros vigências.  No nosso exemplo, só podemos excluir o 3121 - Material - PFB, pois é a última importação.
    2. Caso possa excluir, conforme regra acima, devemos:
      1. Deletar os registros BD4 relacionados a essa importação, pelo campo de relacionamento BD4_CHVIMP.
      2. Após deletar o BD4 relacionado, devemos reabrir a vigência do último BD4 disponível para o item, seguindo a cronologia do campo BD4_CHVIMP.  
        • Se existir registro BD4 anterior, o campo BD4_VIFGIM deve ser limpo, para ser utilizado no sistema;
        • Se não existir nenhum BD4 anterior (imagine um item adicionado nessa versão excluída), a BA8 relacionada ao BD4 deve ser excluída, pois não pode existir um BA8 sem BD4;
        • Se a BA8 foi excluída, devemos atualizar na BR8 - relacionada ao registro da BA8 - o campo BR8_BENUTL como Não, já que o item não existe mais na BA8.
      3. Ou seja, como visto acima, a exclusão deve ser em "cascata", obedecendo aos critérios definidos.  Logo, se excluir uma BD4 e tiver outro registro BD4 para reabrir a vigência, apenas limpo a data final e o processo acabou por aí.  Se não, tenho que deletar os demais envolvidos, que é a BA8 e BR8, para manter a consistência dos registros.

...


E) Detalhes Técnicos 

...

  1. Utilizar MVC e herança, quando necessário;
  2. Utilizar para leitura de arquivos a classe FWFileReader();
  3. Utilizar para gravar arquivo de texto a classe FWFileWriter();
  4. Tratar as descrições e campos de textos, para evitar caracteres especiais e que possam atrapalhar a visualização no Portal ou arquivos de exportação (Monitoramento / PTUs / RPS e outros);
  5. Utilizar os índices disponíveis nas tabelas ou criar os necessários, para otimizar buscas e querys;
  6. Criar os fontes pensando nas automações necessárias, para evitar retrabalhos futuros;
  7. Como temos um layout de importação, pode-se criar um função, contendo o layout e posição dos campos, caso o desenvolvedor julgue necessário;
  8. Todas as ações de importação, arquivos e registros inválidos, devem ser registradas e exibidas no final do processamento, para conhecimento do usuário:
    1. Utilizar o FWDialogModal() com FwBrowse(), para exibir esses erros, ao invés de utilizar a função PLSCRIGEN.
  9. Verificar a possibilidade de realizar a gravação das tabelas usando classes MVC, levando em consideração o tempo de desenvolvimento vs ganho de performance obtido.
  10. Utilizar a importação da Brasíndice como modelo.  Fontes PLSBRASIN1 / PLSBRASIN2 / PLSBRASINI.  
    1. Documento de referência em Importação Brasíndice® - PLSBRASIN1.
  11. Padrão de arquivos para importação: TXT ou CSV.  Os demais devem ser ignorados.
  12. Separador padrão dos arquivos CSV e TXT: ponto e vírgula (;).  Nenhum outro deve ser aceito.
    1. Se basear em um dos itens, onde na primeira linha, podemos validar se o separador é ponto e vírgula e se não for, interromper a importação e partir para o próximo arquivo.

F) De/Para dos Layouts com o sistema 
Âncora
anc
anc

  • Layout TXT 

Expandir
titleLayout TXT - Clique para expandir
ARQUIVO NO FORMATO TXT 
SEQCampoFormatoTamanhoDecDescriçãoEQUIVALENTE IMPORTAÇÃO
1-Caractere15-Código do UsuárioNão Aplicável
2-Caractere15-Código de FraçãoNão Aplicável
3-Caractere100-Descrição do ProdutoBA8_DESCRI  /  BR8_DESCRI  /  BTQ_DESTER  /  BTQ_DSCDET
4-Caractere08-Data de Vigência (ddmmaaaa)Não Aplicável
5-Caractere01-Identificação:
(F) Preço Fábrica
(V) Preço Venda
(L) Fora de Linha
(A) Atualização Suspensa
(D) Descontinuado
Não Aplicável
6-Numérico8 + 2-Preço Fábrica EmbalagemSe PFB + Valor Total, utilizar esse campo - BD4_VALREF
7-Numérico8 + 2-Preço Venda EmbalagemSe PMC + Valor Total, utilizar esse campo - BD4_VALREF
8-Numérico8 + 2-Preço Usuário EmbalagemSe PUSU + Valor Total, utilizar esse campo - BD4_VALREF
9-Numérico8 + 3-Preço Fábrica FraçãoSe PFB + Valor Fracionado utilizar esse campo - BD4_VALREF
10-Numérico8 + 3-Preço Venda FraçãoSe PMC + Valor Fracionado utilizar esse campo - BD4_VALREF
11-Numérico8 + 3-Preço Usuário FraçãoSe PUSU + Valor Fracionado utilizar esse campo - BD4_VALREF
12-Caractere03-Tipo de EmbalagemNota 1 *
13-Caractere04-Tipo de FraçãoNota 1 *
14-Numérico5 + 2-Quantidade EmbalagemNota 1 *
15-Numérico5 + 2-Quantidade Fração  UsuárioNão Aplicável
16-Numérico3 + 2-% Lucratividade do UsuárioNão Aplicável
17-Caractere01-Tipo de Alteração: (I)Inclusão (P)Preços
(L)Fora de Linha (A)Alterações Gerais (S)Atualização Suspensa
(D)Descontinuado
Aqui, serve para informar se o campo teve alguma alteração. Como vamos progredir com cada edição, talvez não seja necessário o uso desse campo - ANALISAR
Podemos usar para indicar o fim de vigência (BD4_VIGFIM), quando o item estiver no status (D)Descontinuado ou (L)Fora de Linha, e usar o campo de Data Fim Vigência, do ParamBox de importação.
18-Caractere20-FabricanteBA8_NMFABR e:
* Se arquivo Medicamento: BTQ_LABORA
* Demais: BTQ_FABRIC
19-Caractere10-Cód.SIMPRO/TISSBA8_CODPRO  /  BD4_CODPRO  /  BR8_CODPSA  /  BTQ_CDTERM
* Somente se não existir o código TUSS no registro
20-Caractere02-Código do Mercado:
(20)Material Hospitalar (50)Medicamentos   (90)Reagentes   (30)Saneantes
Não Aplicável
21
Numérico3 + 2-% Percentual de DescontoNão Aplicável
22-Numérico3 + 2-% IPI do ProdutoNão Aplicável
23-Caractere18-Número do Registro ANVISA ou uma das seguintes informações:
ISENTO
NAO CONTROLADO
NOTIFICACAO
SI/NC
BA8_RGANVI
24-Caractere13-Data de Validade do Registro ANVISA ou uma das seguintes informações:
PENDENTE - SOB PROTOCOLO – EM BRANCO – VIGENTE
BD4_VIGFIM 
* Observar a ER, pois pode ser a data do arquivo (se data válida, não as informações escritas), se o checkbox estiver marcado ou a data informada no campo Data Fim Vigência no Parambox de Importação, quando o arquivo for (D)Descontinuado ou (L)Fora de Linha - Olhar a coluna SEQ, números 5 e 17.
25-Numérico13-Número do Código de BarraNão Aplicável
26-Caractere1-Tipo de Lista
‘+’ – Positiva            ‘-’ – Negativa            ‘ ’ – Neutra            ‘#’ – Não aplicável
Não Aplicável
27-Caractere1-Indica se o medicamento é de uso exclusivamente hospitalarNão Aplicável
28-Caractere1-Indica se o produto é fracionado
S – SIM                       N - NAO
Não Aplicável
29-Caractere8
Código TUSSBA8_CODPRO  /  BD4_CODPRO  /  BR8_CODPSA  /  BTQ_CDTERM 
30-Caractere2-Indica a classificação do produto
(  )SEM  CLASSIFICAÇÃO  (BD)  BEM  DURAVEL  (MC)  MATERIAL  DE  CONSUMO (ME)  MATERIAL  ESPECIAL    (OT)  ORTESE         (PT)  PROTESE         (ST)    SINTESE
( IT )   INSTRUMENTAL
BA8_DSCLAS
* Gravar no campo a descrição equivalente ao código, ou seja, se vazio - Sem Classificação; se PT - Prótese e etc
31-Caractere100-Referência do ProdutoBTQ_REFFAB
32-Caractere1-Indica se o produto é genérico
S – SIM                       N - NAO
Não Aplicável
33-Caractere1-Indica se o medicamento ou material é classificado como Diversos
S – SIM                       N - NAO
Não Aplicável

* NOTA 1*Nota 1 - Gravar nos campos BTQ_APRESE e BA8_DFORMA os valores apresentados na coluna SEQ, de 12 a 14, da seguinte forma:
"Tipo Embalagem: " + SEQ 12 " - Unidade: " + SEQ 13 + " - Qtd. Embalagem: " + SEQ 14.
Exemplo:
0000251307;0000251307;BOLSA COLO HARMONY DUO FECH.GRD./OPACA 13-50MM 2PCS;08122016;F;5310;000;000;0000;0000;0000;CX;UN;100;000;000;A;SANTE MEDICAL;0000251307;20;000;000;80475950003;VIGENTE;;#;N;N;78380030;MC;HDCL1350;N;N

Assim, pelo exemplo acima, devemos gravar nos campos BTQ_APRESE e BA8_DFORMA o texto:
Tipo Embalagem: CX - Unidade: UN - Qtd. Embalagem: 1.00


  • Layout CSV

Expandir
titleLayout CSV - Clique para expandir

ARQUIVO NO FORMATO CSV 

SEQCampoFormatoTamanhoDecDescriçãoEQUIVALENTE IMPORTAÇÃO
1-Caractere15-Código do UsuárioNão Aplicável
2-Caractere15-Código de FraçãoNão Aplicável
3-Caractere100-Descrição do ProdutoBA8_DESCRI  /  BR8_DESCRI  /  BTQ_DESTER  /  BTQ_DSCDET
4-Data--Data de Vigência(dd/mm/aaaa)Não Aplicável
5-Caractere01-Identificação:
(F) Preço Fábrica (V)Preço Venda
(L) Fora de Linha
(A) Atualização Suspensa
(D) Descontinuado
Não Aplicável
6-Numérico112Preço Fábrica EmbalagemSe PFB + Valor Total, utilizar esse campo - BD4_VALREF
7-Numérico112Preço Venda EmbalagemSe PMC + Valor Total, utilizar esse campo - BD4_VALREF
8-Numérico112Preço Usuário EmbalagemSe PUSU + Valor Total, utilizar esse campo - BD4_VALREF
9-Numérico123Preço Fábrica FraçãoSe PFB + Valor Fracionado utilizar esse campo - BD4_VALREF
10-Numérico123Preço Venda FraçãoSe PMC + Valor Fracionado utilizar esse campo - BD4_VALREF
11-Numérico123Preço Usuário FraçãoSe PUSU + Valor Fracionado utilizar esse campo - BD4_VALREF
12-Caractere03-Tipo de EmbalagemNota 1 *
13-Caractere04-Tipo de FraçãoNota 1 *
14-Numérico082Quantidade EmbalagemNota 1 *
15-Numérico082Quantidade Fração UsuárioNão Aplicável
16-Numérico062% Lucratividade do UsuárioNão Aplicável
17-Caractere01-Tipo de Alteração: (I)Inclusão (P)Preços
(L)Fora de Linha
(A)Alterações Gerais (S)Atualização Suspensa (D)DescontinuadoAqui, serve para informar se o campo teve alguma alteração. Como vamos progredir com cada edição, talvez não seja necessário o uso desse campo - ANALISAR
Podemos usar para indicar o fim de vigência (BD4_VIGFIM), quando o item estiver no status (D)Descontinuado ou (L)Fora de Linha, conforme ER e campo de Data Término do ParamBox de importação.
18-Caractere20-FabricanteBA8_NMFABR e:
* Se arquivo Medicamento: BTQ_LABORA
* Demais: BTQ_FABRIC
19-Caractere10-Cód.SIMPRO/TISSBA8_CODPRO  /  BD4_CODPRO  /  BR8_CODPSA  /  BTQ_CDTERM
* Somente se não existir o código TUSS no registro
20-Caractere02-Código do Mercado:
(20)Material      Hospitalar      (50)Medicamentos                 (90)Reagentes
(30)Saneantes
Não Aplicável
21-Numérico062% Percentual de DescontoNão Aplicável
22-Numérico042% IPI do ProdutoNão Aplicável
23-Caractere18-Número do Registro Anvisa ou uma das seguintes informações:
ISENTO
NAO CONTROLADO
NOTIFICACAO
SI/NC
BA8_RGANVI
24-Caractere13-Data de Validade do Registro Anvisa ou uma das seguintes informações:
PENDENTE - SOB PROTOCOLO – EM BRANCO – VIGENTE
BD4_VIGFIM 
* Observar a ER, pois pode ser a data do arquivo (se data válida, não as informações escritas), se o checkbox estiver marcado ou a data informada no campo Data Fim Vigência no Parambox de Importação, quando o arquivo for (D)Descontinuado ou (L)Fora de Linha - Olhar a coluna SEQ, números 5 e 17.
25-Numérico13-Número do Código de BarraNão Aplicável
26-Caractere1-Tipo de Lista
‘+’ – Positiva      ‘-’ – Negativa      ‘ ’ – Neutra      ‘#’ – Não aplicável
Não Aplicável
27-Caractere1-Indica se o medicamento é de uso exclusivamente hospitalarNão Aplicável
28-Caractere1-Indica se o produto é fracionado
S – SIM                       N - NAO
Não Aplicável
29-Caractere8
Código TUSSBA8_CODPRO  /  BD4_CODPRO  /  BR8_CODPSA  /  BTQ_CDTERM 
30-Caractere2
Indica a classificação do produto
(  )SEM CLASSIFICAÇÃO     (BD) BEM DURAVEL
(MC)    MATERIAL    DE    CONSUMO               (ME)    MATERIAL    ESPECIAL (OT)     ORTESE                      (PT)     PROTESE                      (ST)        SINTESE (IT)   INSTRUMENTAL
BA8_DSCLAS
* Gravar no campo a descrição equivalente ao código, ou seja, se vazio - Sem Classificação; se PT - Prótese e etc
31-Caractere100-Referência do ProdutoBTQ_REFFAB
32-Caractere1-Indica se o produto é genérico
S – SIM                       N - NAO
Não Aplicável
33-Caractere1-Indica se o medicamento ou material é classificado como Diversos
S – SIM                       N - NAO
Não Aplicável

* NOTA 1*Nota 1 - Gravar nos campos BTQ_APRESE e BA8_DFORMA os valores apresentados na coluna SEQ, de 12 a 14, da seguinte forma:
"Tipo Embalagem: " + SEQ 12 " - Unidade: " + SEQ 13 + " - Qtd. Embalagem: " + SEQ 14.
Exemplo:
0000018483;0000018483;COMPRESSA GAZE NIDIA 11FIOS 7,5X7,5CM EST.ETO 5UNID.;08072015;F;270;000;000;0000;0000;0000;PCT;UN;500;000;000;A;CREMER;0000018483;20;000;000;80245210083;VIGENTE;7891800194651;#;N;N;78340454;MC;194.654;N;N

Assim, pelo exemplo acima, devemos gravar nos campos BTQ_APRESE e BA8_DFORMA o texto:
Tipo Embalagem: PCT - Unidade: UN - Qtd. Embalagem: 5.00


  • Layout PDF para análise:

View file
namelayout.pdf
height250


03. Tela de Importação / Configuração SIMPRO® 03. Tela de Importação / Configuração SIMPRO® 
Âncora
NEW
NEW

Conforme indicado no item 2, tópico A, para a configuração da importação, vamos utilizar a tela existente - PLSBRASIN2 - com os devidos ajustes.  No tocante a tela de browser das importações realizadas da SIMPRO®, bem como o botão Importar de demais funcionalidades, utilizar o conceito de herança da tela PLSBRASIN1, realizando os devidos ajustes para as necessidades aqui apontadas. 

...

  • Não será necessário criar nenhuma tabela nova, apenas modificar as existentes, para se adequar ao processo da SIMPRO®.
  • As modificações necessárias já foram colocadas nos tópicos anteriores e podem surgir novas,  de acordo com o andamento do desenvolvimento.


05. TABELAS UTILIZADAS 
Âncora
TAB
TAB

  • BR8 - Tabela Padrão
  • BA8 - Tabela Dinâmica de Eventos
  • BD4 - Unidade de Saúde
  • BTQ – Tabela de Terminologias
  • B6F – Tabela de Histórico de Importações realizadas
  • BF8 - Tabelas de Honorários


HTML
<!-- esconder o menu --> 


<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}
</style>