Analisar o impacto de migração de dados do banco de produção do Perícias para a nova estrutura do banco, considerando a parte de cadastros
Data de elaboração | 29/06/2023 |
---|---|
Responsável pelo estudo |
Raissa de Sousa Stodulski |
Equipe do estudo | Tambakiss |
Alvo | Perícia Médica |
Origem | Objetivo estratégico, para identificar o impacto da migração de dados de produção para a nova base. |
Objetivo | Com a análise do impacto, definir alterações estruturais ou tratamentos a serem realizados a fim melhorar a migração. |
Documentação correlata (opcional) |
|
Observações |
1. Introdução
O sistema de Perícia Médica é o sistema responsável pelo controle, elaboração e compartilhamento de atas e laudos realizados por peritos médicos do CEPEM. Diante da necessidade de realizar a migração de dados de produção para a nova base, foi necessário analisar o impacto que a mesma acarretaria.
2. Desenvolvimento
Após uma análise realizada, foi levantado as seguintes informações.
2.1 Estruturas (DE-PARA)
Conforme planilha que pode ser acessada via link.
Novo Perícia | |||||
Tabela | Campo | Tipo | Nullable? | Valor | Tratar no sistema |
Leis
|
Id | uniqueidentifier | Não | GUID | |
Numero | nvarchar(40) | Não | Sem tratamento específico | Somentes números? | |
Descricao | nvarchar(200) | Não | Sem tratamento específico | Tudo em CAPS? | |
Ativo | bit | Não | |||
DataDaLei | datetime2 | Não | |||
Texto | nvarchar(500) | Não | Sem tratamento específico |
Antigo Perícia | |||||
Tabela | Campo | Nullable? | Valor | Tratado? | Count |
LEI
|
COD_LEI | bigint | Não |
27
|
|
NUM_LEI | varchar(20) | Não | Letra e número; Tudo em CAPS | ||
DES_LEI | varchar(100) | Não | Letra e número; Tudo em CAPS | ||
IND_ATIVO | varchar(1) | Não | S-Ativo | ||
DAT_LEI | datetime | Não | |||
TXT_LEI | varchar(-1) | Não | Letra e número; Tudo em CAPS |
Observações sobre a tabela de lei: novo perícias não possui padronização de texto (tudo em CAPS)
Novo Perícia | |||||
Tabela | Campo | Tipo | Nullable? | Valor | Tratar no sistema |
TiposDeLicenca
|
Id | uniqueidentifier | Não | GUID | |
LeiId | uniqueidentifier | Não | |||
Ativo | bit | Não | |||
Descricao | nvarchar | Não | Sem tratamento específico | Tudo em CAPS? |
Antigo Perícia | |||||
Tabela | Campo | Nullable? | Valor | Tratado? | Count |
TIPO_LICENCA
|
COD_TIPO_LICENCA | bigint | Não |
34
|
|
COD_LEI | bigint | Sim | |||
IND_ATIVO | char | Não | S-Ativo | ||
DES_TIPO_LICENCA | varchar(100) | Não | Letra e número; Tudo em CAPS |
Observações sobre a tabela de tipo de licença: nenhuma.
Novo Perícia | |||||
Tabela | Campo | Tipo | Nullable? | Valor | Tratar no sistema |
UnidadesPericiais
|
Id | uniqueidentifier | Não | GUID | |
Nome | nvarchar(200) | Não | Sem tratamento específico | Tudo em CAPS? | |
Ativo | bit | Não | |||
Telefone | nvarchar(-1) | Sim | Sem tratamento específico | ||
Celular | nvarchar(-1) | Sim | Sem tratamento específico | ||
EnderecoId | int | Sim | |||
HorarioDeFuncionamentoId | int | Sim | |||
HorarioPadraoId | int | Sim | |||
Enderecos
|
Id | int | Não | ||
Cep | nvarchar(20) | Sim | Sem tratamento específico | Sem máscara? | |
Municipio | nvarchar(100) | Sim | Sem tratamento específico | ||
Uf | nvarchar(4) | Sim | Sem tratamento específico | ||
Logradouro | nvarchar(100) | Sim | Sem tratamento específico | ||
Numero | nvarchar(20) | Sim | Sem tratamento específico | ||
Bairro | nvarchar(100) | Sim | Sem tratamento específico | ||
Complemento | nvarchar(100) | Sim | Sem tratamento específico | ||
HorariosDeFuncionamento
|
Id | int | Não | ||
HorarioInicial | nvarchar(10) | Não | Formatado hh:mm | ||
HorarioFinal | nvarchar(10) | Não | Formatado hh:mm | ||
Domingo | bit | Não | |||
Segunda | bit | Não | |||
Terca | bit | Não | |||
Quarta | bit | Não | |||
Quinta | bit | Não | |||
Sexta | bit | Não | |||
Sabado | bit | Não | |||
HorariosPadroes
|
Id | int | Não | ||
Duracao | nvarchar(10) | Não | Formatado hh:mm | ||
HorarioInicialManha | nvarchar(10) | Não | Formatado hh:mm | ||
HorarioFinalManha | nvarchar(10) | Não | Formatado hh:mm | ||
HorarioInicialTarde | nvarchar(10) | Não | Formatado hh:mm | ||
HorarioFinalTarde | nvarchar(10) | Sim | Formatado hh:mm |
Antigo Perícia | |||||
Tabela | Campo | Nullable? | Valor | Tratado? | Count |
UNIDADE_PERICIONAL
|
COD_UNIDADE_PERICIONAL | bigint | no |
5
|
|
NOM_UNIDADE_PERICIONAL | varchar(100) | no | Sem tratamento específico | ||
IND_ATIVO | char | no | S-Ativo | ||
NUM_TELEFONE | varchar(20) | yes | Quando preenchido, formatado com DDD | ||
NUM_CELULAR | varchar(20) | yes | Quando preenchido, formatado com DDD | ||
PUXAR VIA SCRIPT (EnderecoId) | |||||
PUXAR VIA SCRIPT (HorarioDeFuncionamentoId) | |||||
PUXAR VIA SCRIPT (HorarioPadraoId) | |||||
GERAR VIA SCRIPT (Id (Endereço)) | |||||
NUM_CEP | varchar(8) | yes | Sem formatação, sem máscara | ||
COD_MUNICIPIO | bigint | yes | |||
COD_UF | bigint | yes | |||
COD_LOGRADOURO | bigint | yes | |||
NUM_NUMERO | varchar(50) | yes | Sem tratamento específico | ||
COD_BAIRRO | bigint | yes | |||
TXT_COMPLEMENTO | varchar(100) | yes | Sem tratamento específico | ||
GERAR VIA SCRIPT | |||||
HOR_INICIO_UNIDADE | varchar(5) | yes | Formatado hh:mm (mas sem o primeiro zero) | ||
HOR_FIM_UNIDADE | varchar(5) | yes | Formatado hh:mm (mas sem o primeiro zero) | ||
IND_DOMINGO | char | yes | S-Sim | ||
IND_SEGUNDA | char | yes | S-Sim | ||
IND_TERCA | char | yes | S-Sim | ||
IND_QUARTA | char | yes | S-Sim | ||
IND_QUINTA | char | yes | S-Sim | ||
IND_SEXTA | char | yes | S-Sim | ||
IND_SABADO | char | yes | S-Sim | ||
GERAR VIA SCRIPT | |||||
DURACAO_CONSULTA | varchar(5) | yes | Formatado hh:mm (mas sem o primeiro zero) | ||
HOR_INICIO_MANHA_PROFISSIONAL | varchar(5) | yes | Formatado hh:mm (mas sem o primeiro zero) | ||
HOR_FIM_MANHA_PROFISSIONAL | varchar(5) | yes | Formatado hh:mm (mas sem o primeiro zero) | ||
HOR_INICIO_TARDE_PROFISSIONAL | varchar(5) | yes | Formatado hh:mm (mas sem o primeiro zero) | ||
HOR_FIM_TARDE_PROFISSIONAL | varchar(5) | yes | Formatado hh:mm (mas sem o primeiro zero) |
Observações sobre a tabela de tipo de licença: os campos de endereço se repetem em outras tabelas (perícia novo), campos de identificador único e chave estrangeiras precisam de ações com script.
Novo Perícia | |||||
Tabela | Campo | Tipo | Nullable? | Valor | Tratar no sistema |
Cargos
|
Id | uniqueidentifier | Não | GUID | |
EntidadeId | uniqueidentifier | Não | |||
Ativo | bit | Não | |||
Codigo | nvarchar(-1) | Sim | Sem tratamento específico | Somentes números? | |
Descricao | nvarchar(-1) | Não | Sem tratamento específico | Tudo em CAPS? |
Antigo Perícia | |||||
Tabela | Campo | Nullable? | Valor | Tratado? | Count |
CARGO
|
ID_CARGO | bigint | Não |
4909
|
|
COD_ENTIDADE | bigint | Não | |||
IND_ATIVO | char | Não | S-Ativo | ||
COD_CARGO | varchar(10) | Sim | Somente números | ||
DES_CARGO | varchar(100) | Não | Sem tratamento específico |
Observações sobre a tabela de Cargos: nenhuma.
Novo Perícia | |||||
Tabela | Campo | Tipo | Nullable? | Valor | Tratar no sistema |
AreasMedicas
|
Id | uniqueidentifier | Não | GUID | |
Descricao | nvarchar(200) | Não | Sem tratamento específico | Tudo em CAPS? | |
Ativo | bit | Não |
Antigo Perícia | |||||
Tabela | Campo | Nullable? | Valor | Tratado? | Count |
AREA_MEDICA
|
COD_AREA_MEDICA | bigint | Não |
3
|
|
DES_AREA_MEDICA | varchar(100) | Não | Sem tratamento específico | ||
IND_ATIVO | varchar(1) | Não | S-Ativo, N-Inativo |
Observações sobre a tabela de Áreas médicas: nenhuma.
Novo Perícia | |||||
Tabela | Campo | Tipo | Nullable? | Valor | Tratar no sistema |
Profissionais
|
Id | uniqueidentifier | Não | GUID | |
EnderecoId | int | Não | |||
DadoPessoalId | uniqueidentifier | Não | GUID | ||
DadosPessoais | NomeCompleto | nvarchar(200) | Não | Sem tratamento específico | Tudo em CAPS? |
Profissionais | Ativo | bit | Não | ||
DadosPessoais
|
Cpf | nvarchar(22) | Não | Sem máscara | |
Rg | nvarchar(20) | Não | Sem tratamento específico | Somentes números? | |
DataDeNascimento | datetime2 | Não | |||
Telefone | nvarchar(22) | Sim | Sem tratamento específico | Somentes números? | |
Celular | nvarchar(22) | Sim | Sem tratamento específico | Somentes números? | |
Profissionais | NumeroDoConselho | nvarchar(20) | Não | Sem tratamento específico | Somente números? |
API Perfil - Sem banco - Via API | |||||
Profissionais | AreaMedicaId | uniqueidentifier | Não | ||
Enderecos
|
Id | int | Não | ||
Cep | nvarchar(20) | Sim | Sem tratamento específico | Sem máscara? | |
Municipio | nvarchar(100) | Sim | Sem tratamento específico | ||
Uf | nvarchar(4) | Sim | Sem tratamento específico | ||
Logradouro | nvarchar(100) | Sim | Sem tratamento específico | ||
Numero | nvarchar(20) | Sim | Sem tratamento específico | ||
Bairro | nvarchar(100) | Sim | Sem tratamento específico | ||
Complemento | nvarchar(100) | Sim | Sem tratamento específico | ||
AgendasDosProfissionais
|
Id | uniqueidentifier | Não | GUID | |
UnidadePericialId | uniqueidentifier | Não | GUID | ||
ProfissionalId | uniqueidentifier | Não | GUID | ||
DiasDaSemanaDasAgendas
|
Id | uniqueidentifier | Não | GUID | |
AgendaDoProfissionalId | uniqueidentifier | Não | GUID | ||
DiaDaSemana | int | Não | enum | ||
HorarioInicialManha | datetime2 | Sim | |||
HorarioFinalManha | datetime2 | Sim | |||
HorarioInicialTarde | datetime2 | Sim | |||
HorarioFinalTarde | datetime2 | Sim |
Antigo Perícia | |||||
Tabela | Campo | Nullable? | Valor | Tratado? | Count |
PROFISSIONAL
(WHERE IND_TIPO_PROFISSIONAL = MED)
|
COD_PROFISSIONAL | bigint | no |
121
(109) |
|
PUXAR VIA SCRIPT (EnderecoId) | |||||
PUXAR VIA SCRIPT (DadoPessoalId) | |||||
NOM_PROFISSIONAL | varchar(100) | no | Maioria em CAPS mas sem tratamento específico | ||
IND_ATIVO | char | no | S-Ativo | ||
NUM_CPF | varchar(11) | no | Somente números | ||
NUM_RG | varchar(14) | no | Somente números | ||
DAT_NASCIMENTO | datetime | yes | |||
NUM_TELEFONE | varchar(20) | yes | Sem máscara | ||
NUM_CELULAR | varchar(20) | yes | Sem máscara | ||
NUM_CONSELHO | varchar(20) | yes | Letra e número; Tudo em CAPS | ||
IND_TIPO_PERFIL | char | yes | MED; NULL | ||
COD_AREA_MEDICA | bigint | yes | |||
GERAR VIA SCRIPT (Id (Endereço)) | |||||
NUM_CEP | char(8) | yes | Sem máscara | ||
COD_MUNICIPIO | bigint | yes | |||
COD_UF | bigint | yes | |||
COD_LOGRADOURO | bigint | yes | |||
NUM_NUMERO | varchar(50) | yes | Sem tratamento específico | ||
COD_BAIRRO | bigint | yes | |||
TXT_COMPLEMENTO | varchar(100) | yes | Sem tratamento específico | ||
PROFISSIONAL_AGENDA
(PROFISSIONAL_UNIDADE_PERICIAL)
|
GERAR VIA SCRIPT (Id (Agenda do profissional)) |
330 (68)
|
|||
COD_UNIDADE_PERICIONAL | bigint | no | PROFISSIONAL_UNIDADE_PERICIAL | ||
COD_PROFISSIONAL | bigint | no | PROFISSIONAL_UNIDADE_PERICIAL | ||
GERAR VIA SCRIPT (Id (Dias da semana))) | |||||
PUXAR VIA SCRIPT (AgendaDoProfissionalId) | |||||
IND_DIA_SEMANA | varchar | yes | |||
HOR_INICIO_MANHA | varchar(5) | yes | Formatado hh:mm (mas sem o primeiro zero) | ||
HOR_FIM_MANHA | varchar(5) | yes | Formatado hh:mm (mas sem o primeiro zero) | ||
HOR_INICIO_TARDE | varchar(5) | yes | Formatado hh:mm (mas sem o primeiro zero) | ||
HOR_FIM_TARDE | varchar(5) | yes | Formatado hh:mm (mas sem o primeiro zero) |
Observações sobre a tabela de Profissional: campos de identificador único e chave estrangeiras precisam de ações com script.
Novo Perícia | |||||
Tabela | Campo | Tipo | Nullable? | Valor | Tratar no sistema |
Lotacoes
|
Id | uniqueidentifier | Não | GUID | |
EntidadeId | uniqueidentifier | Não | |||
Ativo | bit | Não | |||
Nome | nvarchar(100) | Não | Sem tratamento específico | Tudo em CAPS? | |
Codigo | nvarchar(200) | Não | Sem tratamento específico | Somentes números? |
Antigo Perícia | |||||
Tabela | Campo | Nullable? | Valor | Tratado? | Count |
LOTACAO
|
ID_LOTACAO | bigint | no |
103706
|
|
COD_ENTIDADE | bigint | no | |||
IND_ATIVO | char | no | S-Ativo | ||
NOM_LOTACAO | varchar(100) | no | Sem tratamento específico | ||
COD_LOTACAO | varchar(10) | yes | Somente números |
Observações sobre a tabela de Lotação: nenhuma.
Novo Perícia | |||||
Tabela | Campo | Tipo | Nullable? | Valor | Tratar no sistema |
LocaisDeTrabalho
|
Id | uniqueidentifier | Não | GUID | |
EntidadeId | uniqueidentifier | Não | |||
Ativo | bit | Não | |||
Codigo | nvarchar(200) | Não | Sem tratamento específico | Somentes números? | |
Nome | nvarchar(100) | Não | Sem tratamento específico | Tudo em CAPS? |
Antigo Perícia | |||||
Tabela | Campo | Nullable? | Valor | Tratado? | Count |
LOCAL_TRABALHO
|
ID_LOCAL_TRABALHO | bigint | no |
15629
|
|
COD_ENTIDADE | bigint | no | |||
IND_ATIVO | char | no | S-Ativo | ||
COD_LOCAL_TRABALHO | varchar(10) | no | Somente números | ||
NOM_LOCAL_TRABALHO | varchar(100) | no | Letra e número; Tudo em CAPS |
Observações sobre a tabela de Local de trabalho: nenhuma.
Novo Perícia | |||||
Tabela | Campo | Tipo | Nullable? | Valor | Tratar no sistema |
Segurados
|
Id | uniqueidentifier | Não | GUID | |
DadoDeOrigemId | uniqueidentifier | Não | GUID | ||
DadoDoSeguradoId | uniqueidentifier | Não | GUID | ||
EnderecoId | int | Não | |||
ContatoId | uniqueidentifier | Não | GUID | ||
VinculoId | uniqueidentifier | Não | GUID | ||
Nome | nvarchar(200) | Não | Sem tratamento específico | Tudo em CAPS? | |
Ativo | bit | Não | |||
DadosDeOrigem
|
Id | uniqueidentifier | Não | GUID | |
DataDeNascimento | datetime2 | Não | |||
DadosDosSegurados
|
Id | uniqueidentifier | Não | GUID | |
Cpf | nvarchar(28) | Não | Sem tratamento específico | Somente números? | |
Matricula | nvarchar(18) | Não | Sem tratamento específico | Somente números? | |
Pis | nvarchar(22) | Sim | Sem tratamento específico | Somente números? | |
DadosDeOrigem | Sexo | nvarchar(30) | Não | enum | Feminino Masculino NaoIdentificado |
DadosDosSegurados
|
EstadoCivil | nvarchar(20) | Não | enum | Casado Divorciado Solteiro Viuvo |
TipoDePrevidencia | nvarchar(200) | Não | enum | INSS IPERON NaoPossui |
|
GrauDeInstrucao | nvarchar(200) | Não | enum | FundamentalCompleto FundamentalIncompleto MedioCompleto MedioIncompleto PosGraduacaoCompleta PosGraduacaoIncompleta SuperiorCompleto SuperiorIncompleto |
|
DadosDeOrigem
|
TipoSanguineo | nvarchar(4) | Não | enum | A AB B O |
FatorRh | nvarchar(16) | Não | enum | Negativo Positivo |
|
NomeDaMae | nvarchar(200) | Não | Sem tratamento específico | Tudo em CAPS? | |
NomeDoPai | nvarchar(200) | Sim | Sem tratamento específico | Tudo em CAPS? | |
Contatos
|
Telefone | nvarchar(20) | Sim | Sem tratamento específico | Somente números? |
Celular | nvarchar(20) | Sim | Sem tratamento específico | Somente números? | |
nvarchar(200) | Sim | Sem tratamento específico | |||
Vinculos
|
EntidadeId | uniqueidentifier | Sim | GUID | |
LotacaoId | uniqueidentifier | Sim | GUID | ||
CargoId | uniqueidentifier | Sim | GUID | ||
LocalDeTrabalhoId | uniqueidentifier | Sim | GUID | ||
Enderecos
|
Id | int | Não | ||
Cep | nvarchar(20) | Sim | Sem tratamento específico | Sem máscara? | |
Municipio | nvarchar(100) | Sim | Sem tratamento específico | ||
Uf | nvarchar(4) | Sim | Sem tratamento específico | ||
Logradouro | nvarchar(100) | Sim | Sem tratamento específico | ||
Numero | nvarchar(20) | Sim | Sem tratamento específico | ||
Bairro | nvarchar(100) | Sim | Sem tratamento específico | ||
Complemento | nvarchar(100) | Sim | Sem tratamento específico |
Antigo Perícia | |||||
Tabela | Campo | Nullable? | Valor | Tratado? | Count |
SEGURADO
|
COD_SEGURADO | bigint | no |
258879
|
|
PUXAR VIA SCRIPT (DadoDeOrigemId) | |||||
PUXAR VIA SCRIPT (DadoDoSeguradoId) | |||||
PUXAR VIA SCRIPT (EnderecoId) | |||||
PUXAR VIA SCRIPT (ContatoId) | |||||
PUXAR VIA SCRIPT (VinculoId) | |||||
NOM_SEGURADO | varchar(100) | no | Maioria em CAPS mas sem tratamento específico | ||
IND_ATIVO | char | yes | S-Ativo, N-Inativo | ||
GERAR VIA SCRIPT (Id (Dados de origem)) | |||||
DAT_NASCIMENTO | date | yes | |||
GERAR VIA SCRIPT (Id (Dados dos segurados)) | |||||
NUM_CPF | varchar | yes | Somente números | ||
NUM_MATRICULA | int | yes | Somente números | ||
NUM_PIS | varchar | yes | Somente números | ||
IND_SEXO | varchar(3) | yes | FEM, MAS, NULL | ||
IND_ESTADO_CIVIL | char(3) | yes | VIU, SOL, CAS, DIV, NULL | ||
IND_TIPO_PREVIDENCIA | varchar(100) | yes | NULL, NPP, IPERON, INSS | ||
IND_INSTRUCAO | char(3) | yes | FUC, SUC, MEI, NULL, MEC, SUI, FUI, POC | ||
IND_TIPO_SANGUE | char(2) | yes | A, NULL, O, B, AB | ||
IND_FATOR_RH | char | yes | -, NULL, + | ||
NOM_MAE | varchar(100) | yes | Maioria em CAPS mas sem tratamento específico | ||
NOM_PAI | varchar(100) | yes | Maioria em CAPS mas sem tratamento específico | ||
NUM_TELEFONE | char(11) | yes | Somente números | ||
NUM_CELULAR | varchar(11) | yes | Somente números | ||
DES_EMAIL | varchar(100) | yes | |||
COD_ENTIDADE | bigint | no | |||
ID_LOTACAO | bigint | yes | |||
ID_CARGO | bigint | yes | |||
ID_LOCAL_TRABALHO | bigint | yes | |||
GERAR VIA SCRIPT (Id (Endereço)) | |||||
NUM_CEP | varchar(8) | yes | |||
COD_MUNICIPIO | bigint | yes | |||
COD_UF | bigint | yes | |||
COD_LOGRADOURO | bigint | yes | |||
NUM_NUMERO | varchar(10) | yes | |||
COD_BAIRRO | bigint | yes | |||
TXT_COMPLEMENTO | varchar(100) | yes |
Observações sobre a tabela de Segurado: campos de identificador único e chave estrangeiras precisam de ações com script.
Novo Perícia | |||||
Tabela | Campo | Tipo | Nullable? | Valor | Tratar no sistema |
MedicosAssistentes
|
Id | uniqueidentifier | Não | GUID | |
Nome | nvarchar(300) | Não | Sem tratamento específico | Tudo em CAPS? | |
Crm | nvarchar(40) | Não | Sem tratamento específico | Somentes números? | |
Uf | nvarchar(4) | Não | Sem tratamento específico | Tudo em CAPS? |
Antigo Perícia | |||||
Tabela | Campo | Nullable? | Valor | Tratado? | Count |
PROFISSIONAL
(WHERE IND_TIPO_PROFISSIONAL IS NULL)
|
COD_PROFISSIONAL | bigint | no |
12
|
|
NOM_PROFISSIONAL | varchar(100) | no | Maioria em CAPS mas sem tratamento específico | ||
NUM_CONSELHO | varchar(20) | yes | Letra e número; Tudo em CAPS | ||
COD_UF | bigint | yes |
Observações sobre a tabela de Profissional: nenhuma.
2.2 Passo-a-passo para importação
- Importar base de produção para o mesmo servidor que a nova base
- Substituir base origem e destino na instrução
- Executar instrução
2.3 Alterações necessárias
Após a importação dos cadastros, foi identificado que não será necessário alterações estruturais e já foi realizado o tratamento/formatação dos dados (que precisaram) na própria instrução.
3. Conclusão
Concluímos que a nível de cadastros, a importação deve ocorrer sem impedimentos. Porém, na planilha foi levantado alguns dados que podem ter formatação padronizadas como, por exemplo, descrições/nomes em caixa alta ou cep/telefone/celular sem máscara ao salvar no banco. Será definido pelo P.O. o valor e a prioridade de tais alterações e tratamentos.