A ferramenta de formulários dinâmicos possibilita a criação de formulários de acordo com a necessidade da instituição, através do menu Administração do Sistema /Configurações PEP/Cadastro de Formulários /Designer de Templates na opção Incluir Formulário. Além da construção do formulário, é possível definir como o mesmo será apresentado no Prontuário Eletrônico do Paciente, com as seguintes opções:
9. Preencha os campos do formulário com as informações desejadas.
10. Clique em Salvar.
10. Preencha os campos do formulário com as informações desejadas.
11. Clique em Salvar.
Para preencher a AVALIAÇÃO DE PEDIATRIA – ENFERMAGEM:
Para preencher as ORIENTAÇÕES PÓS ALTA HOSPITALAR:
Para preencher o RESUMO DE ALTA/TRANSFERÊNCIA:
Essa funcionalidade foi criada com o objetivo de permitir que sejam copiados formulários já existentes em um ambiente para outro ambiente.
Por exemplo:
Um formulário de TRIAGEM foi elaborado no servidor de homologação do cliente. Foram criados novos metadados para este formulário, além dos datasources.
Mediante a aprovação do cliente, o formulário pode ser copiado para o servidor de produção.
Então, no servidor de homologação faz-se uma exportação do formulário desejado. Em seguida, este arquivo é importado no servidor de produção. Pronto, o formulário já está disponível para utilização (basta apenas realizar as demais configurações de workarea e acesso da aleta para o novo formulário).
Outra possibilidade de uso desta funcionalidade é a realização de BACKUPs de formulários em arquivo.
Acessar o menu de exportação de formulários
Selecionar o formulário desejado (podem ser selecionados vários formulários, mas é recomendado fazer exportação individual, para melhor controle).
Ao clicar em Exportar, é gerado um arquivo contendo as definições do FORMULÁRIO, juntamente com os METADADOS e DATASOURCES existentes no mesmo (se vários formulários forem selecionados, também serão incluídos os METADADOS e DATASOURCES presentes em cada um deles).
Como importar formulários?
Acessar o menu de importação de formulários. Na tela de importação, selecionar um arquivo FBZ que contém o formulário dinâmico que deseja importar.
Ao clicar em Importar, o arquivo será lido pelo sistema, e os FORMULÁRIOS, METADADOS e DATASOURCES contidos no arquivo serão importados diretamente para o banco de dados.
IMPORTANTE: se algum item já existir no banco de dados, será sobrescrito com o valor presente no arquivo.
Após a importação, exibe tela de sucesso.
Todas as respostas preenchidas no FormBuilder ficam armazenadas no CouchDB. O CouchDB é um banco de dados noSQL (não relacional). Para maiores informações, acessar: http://couchdb.apache.org/
Para obter os dados armazenados, foi criada uma API de pesquisa de metadados. A API de pesquisa não é um BI. A API de pesquisa foi desenvolvida com ASPNET WebAPI e trabalha com serialização JSON.
FormBuilder API V1Essa é a versão 1 da API de pesquisa. Foi criado um método para realizar as pesquisas que pode receber múltiplos parâmetros.
As pesquisas devem ser realizadas no seguinte endereço (relativo à instalação do FormBuilder): /api/v1/query
Método HTTP: GET - os parâmetros de filtro são enviados na querystring da requisição.
Parâmetros de filtragem:
Parâmetro: | Descrição: |
---|---|
responseid | Código identificador da resposta específica que deseja pesquisar. |
startdate | Filtro de data inicial para as respostas armazenadas (exemplo: ‘startdate=2015/08/28 09:16:12’ – horário é opcional). |
enddate | Filtro de data final para as respostas armazenadas (exemplo: ‘enddate=2015/12/31 23:59:59’ – horário é opcional). |
formid | Filtro do código identificador do formulário (não confundir com o parâmetro de entrada ‘formId’!). |
tagvalue | Filtro de parâmetros de entrada (exemplo: ‘tagvalue=mpi,384067’). O filtro de parâmetro de entrada é composto das seguintes partes: • 1. Sigla do parâmetro de entrada
|
metavalue | Filtro de metadados (exemplo: ‘metavalue=FUMA,EQUAL,Sim’, ‘metavalue=IDIOMA_CK,IS_TRUE,1’) O filtro de metadado é composto das seguintes partes:
• 1. Sigla do metadado a comparar |
Nota: se nenhum filtro for informado, não é realizada a pesquisa.
Parâmetros de exibição:
Parâmetro: | Descrição: |
---|---|
tags | Seleciona os parâmetros de entrada que serão exibidos no resultado (conforme os parâmetros de entrada que estão definidos nos formulários) |
fields | Seleciona os metadados (filtro pela SIGLA) que serão exibidos no resultado |
Resposta da API V1:
Http Code | |
---|---|
400 BadRequest | não foi possível fazer o parse dos filtros informados (uma mensagem adicional pode ser retornada, com o motivo da falha) |
200 OK | a pesquisa foi executada com sucesso. Os dados são exibidos conforme a figura abaixo |
O JSON retornado na resposta da API V1 contém as seguintes informações:
Os metadados, no âmbito da aplicação de formulários dinâmicos, definem uma alocação que será realizada no banco de dados para armazenar as informações inseridas pelo usuário nos formulários.
Apesar do banco de dados dos formulários dinâmicos ser do tipo não-relacional, essa alocação pode ser entendida como uma nova coluna na tabela de respostas.
Dessa forma, cada preenchimento de formulário resulta em um novo registro nessa tabela de respostas.
Novos metadados podem ser criados livremente, dando maior flexibilidade à criação de formulários personalizados.
Acesse o menu para inclusão de metadados e preencher os campos seguindo as orientações abaixo:
Campo: | Descrição: |
---|---|
Sigla | ampo de preenchimento obrigatório. A sigla deve ser ÚNICA na base de dados. Não pode conter espaços e/ou acentuação. |
Descrição | Campo de preenchimento obrigatório. Texto livre. |
Fórmula | Campo de preenchimento opcional. O resultado do cálculo da fórmula é utilizado para preencher automaticamente o componente do formulário que contém este metadado. |
Datasource | Campo de preenchimento opcional. Os datasources atribuídos ao metadado permitem que o sistema carregue informações dinâmicas em componentes do tipo AUTOCOMPLETE, CHECKBOXLIST, RADIO, DROPDOWN e GRIDDOMAIN. |
Ativo | Habilita e desabilita o metadado na página de construção de formulários. |
Retorna o valor preenchido/selecionado no componente que contém o metadado.
Importante: apenas os componentes TEXTBOX, TEXTAREA, RADIO e DROPDOWN dão suporte à esta função.
Retorna o valor preenchido/selecionado no componente que contém o metadado, em formato FLOAT (número).
Importante: apenas os componentes TEXTBOX, TEXTAREA, RADIO e DROPDOWN dão suporte à esta função.
Retorna TRUE se o componente que contém o metadado está selecionado.
Importante: apenas o componente CHECKBOX dá suporte à esta função.
+ (soma)
- (subtração)
/ (divisão)
* (multiplicação)
== (igual)
!= (diferente)
> (maior)
< (menor)
>= (maior igual)
<= (menor igual)
? (condicional SE)
: (condicional SENÃO)
Datasource é um recurso que permite obter dados externos para os componentes dos formulários dinâmicos.
Esses dados podem ser dinâmicos, quando são obtidos a partir de um ERP ou software periférico, ou pré-definidos pelo usuário, no caso do datasource manual.
Os dados obtidos nos datasources são utilizados principalmente para popular opções nos componentes do formulário (ex. DROPDOWN, RADIO, AUTOCOMPLETE, etc).
Como criar datasources?
Acessar o menu para inclusão de datasources e preencher os campos seguindo as orientações abaixo.
Campo: | Descrição: |
---|---|
Descrição | Campo de preenchimento obrigatório. Texto livre. |
Tipo de Datasource | Campo de preenchimento obrigatório. Conforme o tipo selecionado, novos campos são requeridos, conforme detalhado nos próximos tópicos. As opções são:
|
Ativo | Habilita e desabilita o datasource na página de construção de formulários. |
Datasource Manual
As opções são definidas pelo próprio usuário, e salvas no banco de dados. Também podem ser modificados pelo usuário a qualquer momento.
O campo OPÇÕES PRÉ-DEFINIDAS deve ser preenchido respeitando o formato informado.
É indicado para listas de poucas opções, como:
Na configuração dos dados manuais, deve-se observar o seguinte:
Datasource JSON
As opções são obtidas a partir da uma requisição para um serviço HTTP. O serviço deve retornar um JSON em formato compatível.
É indicado para listar informações de cadastros que já existem no ERP (ou software periférico), como:
O campo ENDEREÇO DE ACESSO deve conter a URL do serviço.
Os campos LABEL e VALOR deverão indicar quais as propriedades na lista de objetos do JSON deverão ser mostrados em tela e salvos no banco, respectivamente.
O botão TESTAR pode ser usado para verificar se a requisição está OK.
Exemplo de retorno JSON
Datasource JSON_Object
As informações são obtidas a partir da uma requisição para um serviço HTTP. O serviço deve retornar um JSON em formato compatível.
É utilizado somente para buscar uma coleção de informações específicas, que podem ser mostradas no formulário, como:
Em geral essa requisição é feita com a utilização de filtros na URL (código do paciente, por exemplo). Para enviar filtros na URL, utilizar a macro @QUERY('nome_do_filtro'). Os filtros que podem ser enviados nessa requisição do JSON_Object limitam-se aos filtros presentes na QUERYSTRING da requisição do formulário. O filtro mais comum é: mpi (código do paciente) - novos filtros poderão estar disponíveis no futuro.
Para mostrar no formulário os dados retornados pelo JSON_Object, deve-se fazer a referência à FUNÇÃO DE ACESSO na fórmula do metadado (ex. DADOSPACIENTE('EIR001_NAME') ).
Dessa forma, é possível que um componente TEXTBOX, por exemplo, exiba o nome do paciente no cabeçalho do formulário.
O campo ENDEREÇO DE ACESSO deve conter a URL do serviço. Pode ser utilizada a macro @QUERY('nome_do_filtro') para envio de parâmetros na URL.
O que são os parâmetros de entrada?
Parâmetros de entrada são variáveis configuradas no formulário que permitem criar "rótulos" às respostas salvas no preenchimento dos formulários. Podem ser criados quantos parâmetros de entrada forem necessários em cada formulário.
Ao criar parâmetros para um formulário, o objetivo deve ser criar a melhor lista possível de "rótulos" que, futuramente, permitam buscar os valores que serão rotulados com essas informações.
O gráfico abaixo exemplifica o funcionamento geral dos parâmetros de entrada:
Os campos preenchidos para criar um parâmetro de entrada são os seguintes:
Campo: | Descrição |
---|---|
Nome do parâmetro: | Campo obrigatório. Define o nome do parâmetro que será enviado na requisição do formulário. |
Parâmetro obrigatório: | Quando checado, indica que o parâmetro deve, obrigatoriamente, estar presente na requisição do formulário (mesmo que o valor seja 'em branco'). |
Exibe coluna: | Quando checado, indica que a grid de respostas do formulário exibirá uma coluna com o valor correspondente. |
Filtro removível: | Quando checado, indica que a coluna (na grid de respostas) pode ter o filtro desativado. Nesse caso, as respostas que possuem valor diferente do filtro atual (o valor do parâmetro presente na requisição atual) também serão exibidas. |
Nome da coluna: | Quando "Exibe coluna" está checado, o nome da coluna deve ser informado para ser exibido na grid de respostas. |
Exemplo de parâmetros de entrada:
Ao acessar o formulário, os parâmetros de entrada devem ser informados na QUERYSTRING da requisição. Os parâmetros definidos como obrigatórios devem sempre ser informados. Caso contrário, o acesso ao formulário é interrompido.
Exemplo de bloqueio quando não é informado o parâmetro de entrada na requisição do formulário:
Importante: na versão corrente do Prontuário Eletrônico do Paciente, os parâmetros do exemplo anterior já são enviados automaticamente em todas as requisições. Logo, em todos os formulários é possível utilizar esses parâmetros.
Quando a grid de respostas é acessada, as colunas são geradas conforme a configuração dos parâmetros de entrada do formulário. Além disso, os valores nas colunas em cada registro exibido na grid de respostas é o mesmo valor informado quando do preenchimento do formulário.
Exemplo de grid de respostas mostrando o número do atendimento (attentionId) e o nome do paciente (patientName):
No exemplo acima, a coluna "Número do Atendimento" tem o filtro removível habilitado. Dessa forma, é possível mostrar respostas do formulário que foram realizadas em atendimentos diferentes do atual.
Movimento único é um recurso que permite trabalhar com preenchimento incremental de um formulário dinâmico.
Isto significa que cada vez que o usuário abrir o formulário para fazer um novo preenchimento, a última resposta preenchida em cada campo será pré-carregada.
Importante: as respostas que são pré-carregadas sempre respeitam a combinação de parâmetros de entrada (somente os obrigatórios) informados. Na prática, busca a última resposta que contém o mesmo mpi, attentionId, etc.
Como configurar o movimento único?
No Prontuário Eletrônico do Paciente o movimento único é configurado no cadastro de Grupos de Formulários Dinâmicos, conforme a figura abaixo:
Exemplo de movimento único habilitado:
Quando o movimento único está HABILITADO para o formulário, o usuário sempre acessa automaticamente a última resposta do formulário, para realizar o preenchimento incremental. Observe o gráfico:
O formulário é exibido já preenchido com a última resposta. Todos os campos podem ser editados livremente.
No momento que o usuário salva e envia o novo preenchimento, uma nova versão de resposta é armazenada no banco de dados. A resposta anterior (e todas as demais respostas), que foi utilizada para carregar o formulário já preenchido, fica no histórico.
Os novos valores em cada campo são associados ao METADADO do campo e rotulados com os valores dos PARÂMETROS DE ENTRADA.
O acesso à grid de respostas fica desabilitado neste tipo de configuração.
Exemplo de movimento único desabilitado:
Quando o movimento único está DESABILITADO para o formulário, o usuário sempre acessa uma versão "em branco" do formulário. Observe o gráfico:
No momento que o usuário salva e envia o novo preenchimento, uma nova versão de resposta é armazenada no banco de dados. Todas as respostas anteriores são mantidas no histórico.
Os novos valores em cada campo são associados ao METADADO do campo e rotulados com os valores dos PARÂMETROS DE ENTRADA.
O acesso à grid de respostas fica habilitado neste tipo de configuração.
As colunas que são exibidas na grid de respostas obedecem a configuração dos parâmetros de entrada do formulário (configuração "Exibe coluna").
Os valores de cada parâmetro de entrada obrigatório que foram enviados na chamada ao formulário também são usados como filtro da lista de respostas (isso significa que, por exemplo, respostas de pacientes diferentes não são exibidos quando o parâmetro de entrada referente ao paciente está definido como obrigatório).
Na grid de respostas, é possível visualizar respostas anteriores (botão IMPRIMIR abre um PDF da resposta salva).
Também é possível usar uma resposta anterior como base para um novo preenchimento. Nesse caso, ao clicar no botão REVISAR, um novo formulário é aberto para preenchimento com valores da resposta selecionada pré-carregados nos campos, quando disponível.
Importante: caso o layout formulário tenha sido modificado desde a resposta anterior, os valores nos campos novos ficam em branco, enquanto os valores nos campos excluídos são descartados.
Já o botão NOVO abre um novo formulário, em branco, para preenchimento.
Os componentes são elementos que permitem inserir campos para que o usuário faça o preenchimento dos formulários.
Na construção dos formulários, os componentes podem ser organizados livremente (arrastar e soltar).
Cada componente pode ser associado à apenas um METADADO. Os valores preenchidos nos componentes dos formulários serão vinculados sempre ao metadado associado.
Alguns componentes precisam de DATASOURCE. Os datasources são associados aos metadados e os valores contidos no datasource são exibidos conforme o tipo de componente.
Atualmente existem 13 componentes disponíveis. Veja abaixo os detalhes de cada componente.
Essa funcionalidade foi criada com o objetivo agilizar a construção de formulários semelhantes.