Ir para o conteúdo principal

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
Taillon Miguel Gonçalves
Ádelle Camarão Monteiro

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
TabelaCampoTipoNullable?ValorTratar no sistema
Leis
IduniqueidentifierNãoGUID 
Numeronvarchar(40)NãoSem tratamento específicoSomentes números?
Descricaonvarchar(200)NãoSem tratamento específicoTudo em CAPS?
AtivobitNão  
DataDaLeidatetime2Não  
Textonvarchar(500)NãoSem tratamento específico 
Antigo Perícia
TabelaCampoNullable?ValorTratado?Count
LEI
COD_LEIbigintNão 
27
NUM_LEIvarchar(20)NãoLetra e número; Tudo em CAPS
DES_LEIvarchar(100)NãoLetra e número; Tudo em CAPS
IND_ATIVOvarchar(1)NãoS-Ativo
DAT_LEIdatetimeNão 
TXT_LEIvarchar(-1)NãoLetra 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
TabelaCampoTipoNullable?ValorTratar no sistema
TiposDeLicenca
IduniqueidentifierNãoGUID 
LeiIduniqueidentifierNão  
AtivobitNão  
DescricaonvarcharNãoSem tratamento específicoTudo em CAPS?
Antigo Perícia
TabelaCampoNullable?ValorTratado?Count
TIPO_LICENCA
COD_TIPO_LICENCAbigintNão 
34
COD_LEIbigintSim 
IND_ATIVOcharNãoS-Ativo
DES_TIPO_LICENCAvarchar(100)NãoLetra e número; Tudo em CAPS

Observações sobre a tabela de tipo de licença: nenhuma.

Novo Perícia
TabelaCampoTipoNullable?ValorTratar no sistema
UnidadesPericiais
IduniqueidentifierNãoGUID 
Nomenvarchar(200)NãoSem tratamento específicoTudo em CAPS?
AtivobitNão  
Telefonenvarchar(-1)SimSem tratamento específico 
Celularnvarchar(-1)SimSem tratamento específico 
EnderecoIdintSim  
HorarioDeFuncionamentoIdintSim  
HorarioPadraoIdintSim  
Enderecos
IdintNão  
Cepnvarchar(20)SimSem tratamento específicoSem máscara?
Municipionvarchar(100)SimSem tratamento específico 
Ufnvarchar(4)SimSem tratamento específico 
Logradouronvarchar(100)SimSem tratamento específico 
Numeronvarchar(20)SimSem tratamento específico 
Bairronvarchar(100)SimSem tratamento específico 
Complementonvarchar(100)SimSem tratamento específico 
HorariosDeFuncionamento
IdintNão  
HorarioInicialnvarchar(10)NãoFormatado hh:mm 
HorarioFinalnvarchar(10)NãoFormatado hh:mm 
DomingobitNão  
SegundabitNão  
TercabitNão  
QuartabitNão  
QuintabitNão  
SextabitNão  
SabadobitNão  
HorariosPadroes
IdintNão  
Duracaonvarchar(10)NãoFormatado hh:mm 
HorarioInicialManhanvarchar(10)NãoFormatado hh:mm 
HorarioFinalManhanvarchar(10)NãoFormatado hh:mm 
HorarioInicialTardenvarchar(10)NãoFormatado hh:mm 
HorarioFinalTardenvarchar(10)SimFormatado hh:mm 
Antigo Perícia
TabelaCampoNullable?ValorTratado?Count
UNIDADE_PERICIONAL
COD_UNIDADE_PERICIONALbigintno 
5
NOM_UNIDADE_PERICIONALvarchar(100)noSem tratamento específico
IND_ATIVOcharnoS-Ativo
NUM_TELEFONEvarchar(20)yesQuando preenchido, formatado com DDD
NUM_CELULARvarchar(20)yesQuando preenchido, formatado com DDD
PUXAR VIA SCRIPT (EnderecoId)
PUXAR VIA SCRIPT (HorarioDeFuncionamentoId)
PUXAR VIA SCRIPT (HorarioPadraoId)
GERAR VIA SCRIPT (Id (Endereço))
NUM_CEPvarchar(8)yesSem formatação, sem máscara
COD_MUNICIPIObigintyes 
COD_UFbigintyes 
COD_LOGRADOURObigintyes 
NUM_NUMEROvarchar(50)yesSem tratamento específico
COD_BAIRRObigintyes 
TXT_COMPLEMENTOvarchar(100)yesSem tratamento específico
GERAR VIA SCRIPT
HOR_INICIO_UNIDADEvarchar(5)yesFormatado hh:mm (mas sem o primeiro zero)
HOR_FIM_UNIDADEvarchar(5)yesFormatado hh:mm (mas sem o primeiro zero)
IND_DOMINGOcharyesS-Sim
IND_SEGUNDAcharyesS-Sim
IND_TERCAcharyesS-Sim
IND_QUARTAcharyesS-Sim
IND_QUINTAcharyesS-Sim
IND_SEXTAcharyesS-Sim
IND_SABADOcharyesS-Sim
GERAR VIA SCRIPT
DURACAO_CONSULTAvarchar(5)yesFormatado hh:mm (mas sem o primeiro zero)
HOR_INICIO_MANHA_PROFISSIONALvarchar(5)yesFormatado hh:mm (mas sem o primeiro zero)
HOR_FIM_MANHA_PROFISSIONALvarchar(5)yesFormatado hh:mm (mas sem o primeiro zero)
HOR_INICIO_TARDE_PROFISSIONALvarchar(5)yesFormatado hh:mm (mas sem o primeiro zero)
HOR_FIM_TARDE_PROFISSIONALvarchar(5)yesFormatado 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
TabelaCampoTipoNullable?ValorTratar no sistema
Cargos
IduniqueidentifierNãoGUID 
EntidadeIduniqueidentifierNão  
AtivobitNão  
Codigonvarchar(-1)SimSem tratamento específicoSomentes números?
Descricaonvarchar(-1)NãoSem tratamento específicoTudo em CAPS?
Antigo Perícia
TabelaCampoNullable?ValorTratado?Count
CARGO
ID_CARGObigintNão 
4909
COD_ENTIDADEbigintNão 
IND_ATIVOcharNãoS-Ativo
COD_CARGOvarchar(10)SimSomente números
DES_CARGOvarchar(100)NãoSem tratamento específico

Observações sobre a tabela de Cargos: nenhuma.

Novo Perícia
TabelaCampoTipoNullable?ValorTratar no sistema
AreasMedicas
IduniqueidentifierNãoGUID 
Descricaonvarchar(200)NãoSem tratamento específicoTudo em CAPS?
AtivobitNão  
Antigo Perícia
TabelaCampoNullable?ValorTratado?Count
AREA_MEDICA
COD_AREA_MEDICAbigintNão 
3
DES_AREA_MEDICAvarchar(100)NãoSem tratamento específico
IND_ATIVOvarchar(1)NãoS-Ativo, N-Inativo

Observações sobre a tabela de Áreas médicas: nenhuma.

Novo Perícia
TabelaCampoTipoNullable?ValorTratar no sistema
Profissionais
IduniqueidentifierNãoGUID 
EnderecoIdintNão  
DadoPessoalIduniqueidentifierNãoGUID 
DadosPessoaisNomeCompletonvarchar(200)NãoSem tratamento específicoTudo em CAPS?
ProfissionaisAtivobitNão  
DadosPessoais
Cpfnvarchar(22)NãoSem máscara 
Rgnvarchar(20)NãoSem tratamento específicoSomentes números?
DataDeNascimentodatetime2Não  
Telefonenvarchar(22)SimSem tratamento específicoSomentes números?
Celularnvarchar(22)SimSem tratamento específicoSomentes números?
ProfissionaisNumeroDoConselhonvarchar(20)NãoSem tratamento específicoSomente números?
API Perfil - Sem banco - Via API
ProfissionaisAreaMedicaIduniqueidentifierNão  
Enderecos
IdintNão  
Cepnvarchar(20)SimSem tratamento específicoSem máscara?
Municipionvarchar(100)SimSem tratamento específico 
Ufnvarchar(4)SimSem tratamento específico 
Logradouronvarchar(100)SimSem tratamento específico 
Numeronvarchar(20)SimSem tratamento específico 
Bairronvarchar(100)SimSem tratamento específico 
Complementonvarchar(100)SimSem tratamento específico 
AgendasDosProfissionais
IduniqueidentifierNãoGUID 
UnidadePericialIduniqueidentifierNãoGUID 
ProfissionalIduniqueidentifierNãoGUID 
DiasDaSemanaDasAgendas
IduniqueidentifierNãoGUID 
AgendaDoProfissionalIduniqueidentifierNãoGUID 
DiaDaSemanaintNãoenum 
HorarioInicialManhadatetime2Sim  
HorarioFinalManhadatetime2Sim  
HorarioInicialTardedatetime2Sim  
HorarioFinalTardedatetime2Sim  
Antigo Perícia
TabelaCampoNullable?ValorTratado?Count
PROFISSIONAL
(WHERE IND_TIPO_PROFISSIONAL = MED)
COD_PROFISSIONALbigintno 
121
(109)
PUXAR VIA SCRIPT (EnderecoId)
PUXAR VIA SCRIPT (DadoPessoalId)
NOM_PROFISSIONALvarchar(100)noMaioria em CAPS mas sem tratamento específico
IND_ATIVOcharnoS-Ativo
NUM_CPFvarchar(11)noSomente números
NUM_RGvarchar(14)noSomente números
DAT_NASCIMENTOdatetimeyes 
NUM_TELEFONEvarchar(20)yesSem máscara
NUM_CELULARvarchar(20)yesSem máscara
NUM_CONSELHOvarchar(20)yesLetra e número; Tudo em CAPS
IND_TIPO_PERFILcharyesMED; NULL
COD_AREA_MEDICAbigintyes 
GERAR VIA SCRIPT (Id (Endereço))
NUM_CEPchar(8)yesSem máscara
COD_MUNICIPIObigintyes 
COD_UFbigintyes 
COD_LOGRADOURObigintyes 
NUM_NUMEROvarchar(50)yesSem tratamento específico
COD_BAIRRObigintyes 
TXT_COMPLEMENTOvarchar(100)yesSem tratamento específico
PROFISSIONAL_AGENDA

(PROFISSIONAL_UNIDADE_PERICIAL)
GERAR VIA SCRIPT (Id (Agenda do profissional))
330 (68)
COD_UNIDADE_PERICIONALbigintnoPROFISSIONAL_UNIDADE_PERICIAL
COD_PROFISSIONALbigintnoPROFISSIONAL_UNIDADE_PERICIAL
GERAR VIA SCRIPT (Id (Dias da semana)))
PUXAR VIA SCRIPT (AgendaDoProfissionalId)
IND_DIA_SEMANAvarcharyes 
HOR_INICIO_MANHAvarchar(5)yesFormatado hh:mm (mas sem o primeiro zero)
HOR_FIM_MANHAvarchar(5)yesFormatado hh:mm (mas sem o primeiro zero)
HOR_INICIO_TARDEvarchar(5)yesFormatado hh:mm (mas sem o primeiro zero)
HOR_FIM_TARDEvarchar(5)yesFormatado 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
TabelaCampoTipoNullable?ValorTratar no sistema
Lotacoes
IduniqueidentifierNãoGUID 
EntidadeIduniqueidentifierNão  
AtivobitNão  
Nomenvarchar(100)NãoSem tratamento específicoTudo em CAPS?
Codigonvarchar(200)NãoSem tratamento específicoSomentes números?
Antigo Perícia
TabelaCampoNullable?ValorTratado?Count
LOTACAO
ID_LOTACAObigintno 
103706
COD_ENTIDADEbigintno 
IND_ATIVOcharnoS-Ativo
NOM_LOTACAOvarchar(100)noSem tratamento específico
COD_LOTACAOvarchar(10)yesSomente números

Observações sobre a tabela de Lotação: nenhuma.

Novo Perícia
TabelaCampoTipoNullable?ValorTratar no sistema
LocaisDeTrabalho
IduniqueidentifierNãoGUID 
EntidadeIduniqueidentifierNão  
AtivobitNão  
Codigonvarchar(200)NãoSem tratamento específicoSomentes números?
Nomenvarchar(100)NãoSem tratamento específicoTudo em CAPS?
Antigo Perícia
TabelaCampoNullable?ValorTratado?Count
LOCAL_TRABALHO
ID_LOCAL_TRABALHObigintno 
15629
COD_ENTIDADEbigintno 
IND_ATIVOcharnoS-Ativo
COD_LOCAL_TRABALHOvarchar(10)noSomente números
NOM_LOCAL_TRABALHOvarchar(100)noLetra e número; Tudo em CAPS

Observações sobre a tabela de Local de trabalho: nenhuma.

Novo Perícia
TabelaCampoTipoNullable?ValorTratar no sistema
Segurados
IduniqueidentifierNãoGUID 
DadoDeOrigemIduniqueidentifierNãoGUID 
DadoDoSeguradoIduniqueidentifierNãoGUID 
EnderecoIdintNão  
ContatoIduniqueidentifierNãoGUID 
VinculoIduniqueidentifierNãoGUID 
Nomenvarchar(200)NãoSem tratamento específicoTudo em CAPS?
AtivobitNão  
DadosDeOrigem
IduniqueidentifierNãoGUID 
DataDeNascimentodatetime2Não  
DadosDosSegurados
IduniqueidentifierNãoGUID 
Cpfnvarchar(28)NãoSem tratamento específicoSomente números?
Matriculanvarchar(18)NãoSem tratamento específicoSomente números?
Pisnvarchar(22)SimSem tratamento específicoSomente números?
DadosDeOrigemSexonvarchar(30)NãoenumFeminino
Masculino
NaoIdentificado
DadosDosSegurados
EstadoCivilnvarchar(20)NãoenumCasado
Divorciado
Solteiro
Viuvo
TipoDePrevidencianvarchar(200)NãoenumINSS
IPERON
NaoPossui
GrauDeInstrucaonvarchar(200)NãoenumFundamentalCompleto
FundamentalIncompleto
MedioCompleto
MedioIncompleto
PosGraduacaoCompleta
PosGraduacaoIncompleta
SuperiorCompleto
SuperiorIncompleto
DadosDeOrigem
TipoSanguineonvarchar(4)NãoenumA
AB
B
O
FatorRhnvarchar(16)NãoenumNegativo
Positivo
NomeDaMaenvarchar(200)NãoSem tratamento específicoTudo em CAPS?
NomeDoPainvarchar(200)SimSem tratamento específicoTudo em CAPS?
Contatos
Telefonenvarchar(20)SimSem tratamento específicoSomente números?
Celularnvarchar(20)SimSem tratamento específicoSomente números?
Emailnvarchar(200)SimSem tratamento específico 
Vinculos
EntidadeIduniqueidentifierSimGUID 
LotacaoIduniqueidentifierSimGUID 
CargoIduniqueidentifierSimGUID 
LocalDeTrabalhoIduniqueidentifierSimGUID 
Enderecos
IdintNão  
Cepnvarchar(20)SimSem tratamento específicoSem máscara?
Municipionvarchar(100)SimSem tratamento específico 
Ufnvarchar(4)SimSem tratamento específico 
Logradouronvarchar(100)SimSem tratamento específico 
Numeronvarchar(20)SimSem tratamento específico 
Bairronvarchar(100)SimSem tratamento específico 
Complementonvarchar(100)SimSem tratamento específico 
Antigo Perícia
TabelaCampoNullable?ValorTratado?Count
SEGURADO
COD_SEGURADObigintno 
258879
PUXAR VIA SCRIPT (DadoDeOrigemId)
PUXAR VIA SCRIPT (DadoDoSeguradoId)
PUXAR VIA SCRIPT (EnderecoId)
PUXAR VIA SCRIPT (ContatoId)
PUXAR VIA SCRIPT (VinculoId)
NOM_SEGURADOvarchar(100)noMaioria em CAPS mas sem tratamento específico
IND_ATIVOcharyesS-Ativo, N-Inativo
GERAR VIA SCRIPT (Id (Dados de origem))
DAT_NASCIMENTOdateyes 
GERAR VIA SCRIPT (Id (Dados dos segurados))
NUM_CPFvarcharyesSomente números
NUM_MATRICULAintyesSomente números
NUM_PISvarcharyesSomente números
IND_SEXOvarchar(3)yesFEM, MAS, NULL
IND_ESTADO_CIVILchar(3)yesVIU, SOL, CAS, DIV, NULL
IND_TIPO_PREVIDENCIAvarchar(100)yesNULL, NPP, IPERON, INSS
IND_INSTRUCAOchar(3)yesFUC, SUC, MEI, NULL, MEC, SUI, FUI, POC
IND_TIPO_SANGUEchar(2)yesA, NULL, O, B, AB
IND_FATOR_RHcharyes-, NULL, +
NOM_MAEvarchar(100)yesMaioria em CAPS mas sem tratamento específico
NOM_PAIvarchar(100)yesMaioria em CAPS mas sem tratamento específico
NUM_TELEFONEchar(11)yesSomente números
NUM_CELULARvarchar(11)yesSomente números
DES_EMAILvarchar(100)yes 
COD_ENTIDADEbigintno 
ID_LOTACAObigintyes 
ID_CARGObigintyes 
ID_LOCAL_TRABALHObigintyes 
GERAR VIA SCRIPT (Id (Endereço))
NUM_CEPvarchar(8)yes 
COD_MUNICIPIObigintyes 
COD_UFbigintyes 
COD_LOGRADOURObigintyes 
NUM_NUMEROvarchar(10)yes 
COD_BAIRRObigintyes 
TXT_COMPLEMENTOvarchar(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
TabelaCampoTipoNullable?ValorTratar no sistema
MedicosAssistentes
IduniqueidentifierNãoGUID 
Nomenvarchar(300)NãoSem tratamento específicoTudo em CAPS?
Crmnvarchar(40)NãoSem tratamento específicoSomentes números?
Ufnvarchar(4)NãoSem tratamento específicoTudo em CAPS?
Antigo Perícia
TabelaCampoNullable?ValorTratado?Count
PROFISSIONAL
(WHERE IND_TIPO_PROFISSIONAL IS NULL)
COD_PROFISSIONALbigintno 
12
NOM_PROFISSIONALvarchar(100)noMaioria em CAPS mas sem tratamento específico
NUM_CONSELHOvarchar(20)yesLetra e número; Tudo em CAPS
COD_UFbigintyes 

Observações sobre a tabela de Profissional: nenhuma.

2.2 Passo-a-passo para importação

  1. Importar base de produção para o mesmo servidor que a nova base
  2. Substituir base origem e destino na instrução
  3. 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.