Objetivo
A funcionalidade foi desenvolvida com o objetivo de migrar/importar os históricos relacionados a saúde e segurança do trabalho, contidadas no ERP Protheus.
Base de Informações
O JSON base de retorno das informações sempre será estruturado com os seguintes fields (campos):
hasNext - Boolean - Indica se há uma nova página de consulta
totalAmount - Quantidade total de registros
amount - Quantidade de registros na página
items - Array<Object> - Lista dos itens consultados
As URLs sempre receberão os seguintes Query Params:
companyId - Código da Empresa
branchId - Código da Filial
page - Número da página a ser consultado
pageSize - Quantidade de registros por página
Atestados Médicos
Listagem dos Atestados Médicos emitidos para os colaboradores.
API
/api/rh/v2/sicknote
Estrutura
companyId - Código da Empresa *
branchId - Código da Filial *
employeeId - Chave do Funcionário na Integração RH *
type - Tipo de Atestado (0 - Declaração, 1 - Atestado, 2 - Licença Maternidade, 3 - Aposentadoria por Invalidez) *
date - Data do Atestado *
internationalDiseaseClassification - Código do CID
doctorName - Nome do Médico *
classEntityRegistrationCode - Código do CRM *
classEntityState - Estado do CRM *
typeOfAbsence - Código do ERP do Tipo de Afastamento
absenceStartDate - Data de Início do Afastamento *
absenceEndDate - Data de Término do Afastamento *
typeOfAllowance - Código do ERP do Tipo de Abono
allowanceStartDate - Data de Início do Abono *
allowanceEndDate - Data de Término do Abono *
Exemplo:
{
"hasNext": false,
"totalAmount": 1,
"amount": 1,
"items": [
{
"companyId": "2",
"branchId": "17",
"employeeId": "2|123456",
"erpId": "2|1",
"type": 0,
"date": "2023-03-08T00:00:00-03:00",
"length": 1,
"internationalDiseaseClassification": "A00.0",
"classEntityRegistrationCode": "11491",
"doctorName": "SARYANE KELEN",
"classEntityState": "MS"
},
{
"companyId": "2",
"branchId": "17",
"employeeId": "2|123456",
"erpId": "2|3",
"type": 0,
"date": "2021-06-17T08:00:00",
"length": 0,
"internationalDiseaseClassification": "A00.0",
"classEntityRegistrationCode": "78946546213",
"doctorName": "VINICIUS",
"classEntityState": "SP",
"typeOfAllowance": "01|AF123",
"allowanceStartDate": "2021-06-17T08:00:00",
"allowanceEndDate": "2021-06-17T16:00:00"
},
{
"companyId": "2",
"branchId": "17",
"employeeId": "2|123456",
"erpId": "2|2",
"type": 1,
"date": "2022-06-18T00:00:00",
"length": 1,
"internationalDiseaseClassification": "A00.1",
"classEntityRegistrationCode": "78946546213",
"doctorName": "VINICIUS",
"classEntityState": "SP",
"observation": "zccx",
"typeOfAbsence": "01|AF124",
"absenceStartDate": "2022-06-18T00:00:00",
"absenceEndDate": "2022-06-19T00:00:00"
}
]
}
ASO
Listagem das Consultas e ASOs emitidos para os colaboradores
API
/api/rh/v2/medicalconsultationng
Estrutura
companyId - Código da Empresa *
branchId - Código da Filial *
employeeId - Chave do Funcionário na Integração RH *
erpId - Chave Única do ERP *
id - ID único do registro *
type - Tipo do ASO (0 - Admissional, 1 - Periódico, 2 - Retorno ao Trabalh, 3 -Mudança de Risco, 4 - Demissional, 5 - Pontual) *
expectedDate - Data previsão de realização *
issueDate - Data de expedição do Atestado *
situation - Parecer do ASO (0 - Apto, 1 - Inapto, 2 - Apto com Restrições) *
doctor - Nome do Médico *
crm - Número do CRM *
state - Estado do CRM (sigla de 2 dígitos) *
reason - Descrição do motivo da consulta *
examList - Array com a lista de exames
examDate - Data de realização do exame *
examDescription - Descrição do Exame realizado *
referentialExam - Indicador do Exame (0 - Referencial, 1 - Sequencial) *
result - Resultado do Exame (0 - Normal, 1 - Alterado) *
occupationalActivity - Atividade Ocupacional (0 - Não Ocupacional, 1 - Ocupacional) *
doctor - Nome do Médico *
crm - Número do CRM *
state - Estado do CRM (sigla de 2 dígitos) *
Exemplo:
{
"hasNext": false,
"totalAmount": 1,
"amount": 1,
"items": [
{
"companyId": "2",
"branchId": "17",
"erpId": "2|123",
"id": "2|123",
"employeeId": "2|123456",
"type": 1,
"expectedDate": "2022-11-14T00:00:00-03:00",
"issueDate": "2022-11-14T00:00:00-03:00",
"situation": 1,
"doctor": "JOÃO DA SILVA",
"crm": "45789",
"state": "SC",
"reason": "Consulta",
"examList": [
{
"examDate": "2022-11-14T00:00:00-03:00",
"examDescription": "Avaliação Clínica",
"referentialExam": "1",
"doctor": "JOÃO DA SILVA",
"crm": "45789",
"state": "SC",
"result": "0",
"occupationalActivity": "0"
},
{
"examDate": "2022-11-14T00:00:00-03:00",
"examDescription": "Eletrocardiograma",
"referentialExam": "1",
"doctor": "JOÃO DA SILVA",
"crm": "45789",
"state": "SC",
"result": "0",
"occupationalActivity": "0"
},
{
"examDate": "2022-11-14T00:00:00-03:00",
"examDescription": "Espirometria",
"referentialExam": "1",
"doctor": "JOÃO DA SILVA",
"crm": "45789",
"state": "SC",
"result": "0",
"occupationalActivity": "0"
}
]
}
]
}
Credenciados
Listagem dos Credenciados que realizam exames para organização.
API
/api/mdt/v1/accredited
Estrutura
companyId - Código da Empresa *
branchId - Código da Filial *
erpId - Chave Única do ERP *
name - Nome do Credenciado *
documentNumber - CNPJ do Credenciado
contractStart - Data de início do contrato *
exams - Lista dos exames contratados
name - Nome do exame *
price - Preço do exame
eSocialCode - Código da tabela 27 - Procedimentos Diagnóstico, do eSocial
Exemplo:
{
"hasNext": false,
"totalAmount": 1,
"amount": 1,
"items": [
{
"companyId": "2",
"branchId": "17",
"erpId": "2|146",
"name": "Health S.A. 3",
"documentNumber": "",
"contractStart": "2022-01-01T00:00:00.000Z",
"exams": [
{
"name": "Hemograma Completo",
"price": 35,
"eSocialCode": ""
},
{
"name": "Audiometria",
"price": 250,
"eSocialCode": ""
},
{
"name": "Vasectomia",
"price": 1000,
"eSocialCode": ""
},
{
"name": "Hepatite",
"price": 180,
"eSocialCode": ""
}
]
}
]
}
Deficiências
API
/api/mdt/v1/deficiencies
Estrutura
companyId - Código da Empresa *
branchId - Código da Filial *
employeeId - Chave do Funcionário na Integração RH *
erpId - Chave Única do ERP *
type - Tipo de Deficiência (0 - Física, 1 - Visual, 2 - Mental, 3 - Auditiva, 4 - Psicossocial, 5 - Fala, 6 - Intelectual, 7 - Reabilitado) *
date - Data de Início da deficiência *
recoveryDate - Data de Recuperação (se houver)
icd - Código do CID da deficiência (se houver)
observation - Observações (se houver)
Exemplo:
{
"hasNext": false,
"totalAmount": 1,
"amount": 1,
"items": [
{
"companyId": "2",
"branchId": "17",
"erpId": "2|1",
"employeeId": "2|123456",
"type": 1,
"date": "2023-01-01T00:00:00.000Z",
"icd": "H54.1",
"recoveryDate": "2099-01-01T00:00:00.000Z"
}
]
}
Prontuários Médicos
API
/api/mdt/v1/medicalrecords
Estrutura
companyId - Código da Empresa *
branchId - Código da Filial *
employeeId - Chave do Funcionário na Integração RH (se houver) *
erpId - Chave Única do ERP *
candidate - Boolean - Indica se é um candidato
name - Nome do Pacidente *
individualRegistration - CPF do paciente *
bloodDonator - Boolean - Indica se é doador de sangue
bloodType - Tipo sanguíneo (0 - A+, 1 - A-, 2 - B+, 3 - B-, 4 - AB+, 5 - AB-, 6 - O+, 7 - O-, 8 - N/A)
birthday - Data de Nascimento *
gender - Sexo (0 - Masculino, 1 - Feminino)
weight - Peso
height - Altura
smoker - Boolean - Indica se é fumante
eyeHeight - Altura dos Olhos
nippleLine - Linha mamilar
pubicHeight - Altura da pubis
kneeHeight - Altura do joelho
elbowHeight - Altura do cotovelo
armSize - Tamanho do Braço
forearmSize - Tamanho do Antebraço
handSize - Tamanho da mão
legLenght - Tamanho da perna
shoesSize - Número do calçado
genderEnum - Gênero (0 - Mulher, 1 - Mulher Trans, 2 - Homem, 3 - Homem Trans, 4 - Outro, 5 - Não informado)
eyeColor - Cor dos olhos (0 - Azul, 1 - Castanho, 2 - Preto, 3 - Verde claro, 4 - Verde Escuro, 5 - Verde amarelado, 6 - Azul Esverdeado, 7 - Marrom esverdeado, 8 - Cinza, 9 - Ambar, 10 - Outro)
skinColor - Cor da pele (0 - Branco, 1 - Negro, 2 - Pardo, 3 - Amarelo, 4 - Indígena)
hairColor - Cor do cabelo (0 - Loiro, 1 - Castanho, 2 - Ruivo, 3 - Preto, 4 - Cinza, 5 - Branco, 6 - Colorido, 7 - Outro)
tamagistPeriod - Tempo tabagista
amountConsumed - Quantidade diária de consumo de cigarro
historic - Histórico
systolicPressure - Última medição sistólica
diastolicPressure - Última medição diastólica
temperatura - Última medição de temperatura
pulse - Última medição de pulso
{
"hasNext": false,
"totalAmount": 1,
"amount": 1,
"items": [
{
"companyId": "2",
"branchId": "17",
"erpId": "2|3",
"employeeId": "2|146617",
"candidate": false,
"name": "Maria maria maria",
"individualRegistration": "133.655.090-20",
"bloodDonator": false,
"bloodType": 8,
"birthday": "1990-01-01T00:00:00.000Z",
"gender": 0,
"weight": 75,
"height": 1.75,
"smoker": false,
"eyeHeight": 0,
"nippleLine": 0,
"pubicHeight": 0,
"kneeHeight": 0,
"elbowHeight": 0,
"armSize": 0,
"forearmSize": 0,
"handSize": 0,
"legLength": 0,
"shoesSize": 0,
"genderEnum": 2,
"eyeColor": 1,
"skinColor": 0,
"hairColor": 1,
"tamagistPeriod": 0,
"amountConsumed": 0,
"historic": "",
"systolicPressure": 120,
"diastolicPressure": 80,
"temperature": 34.5,
"pulse": 180
}
]
}
Questionários
API
/api/mdt/v1/quizzes
Estrutura
companyId - Código da Empresa *
branchId - Código da Filial *
erpId - Chave Única do ERP *
description - Descrição do questionário *
questionsGroup - Grupo de questões *
question - Questão *
answers - Lista de respostas
description - Resposta
Exemplo:
{
"hasNext": false,
"totalAmount": 1,
"amount": 1,
"items": [
{
"companyId": "2",
"branchId": "17",
"erpId": "2|123",
"description": "Querionario Importação",
"questionsGroup": [
{
"question": "Goza de boa saúde?",
"answers": [
{
"description": "Sim"
},
{
"description": "Não"
}
]
},
{
"question": "Está fazendo algum tratamento médico?",
"answers": [
{
"description": "Sim"
},
{
"description": "Não"
}
]
}
]
}
]
}
Questionários Clínicos
API
/api/mdt/v1/clinicalquizzes
Estrutura
companyId - Código da Empresa *
branchId - Código da Filial *
employeeId - Chave do Funcionário na Integração RH *
erpId - Chave Única do ERP *
realizationDate - Data de Realização *
quiz - Descrição do Questionario *
response - Lista de Resposta *
order - Número da questão *
option - Posição da opção seleciona *
description - Descrição complementar (se houver)
{
"hasNext": false,
"totalAmount": 1,
"amount": 1,
"items": [
{
"companyId": "2",
"branchId": "17",
"erpId": "2|123",
"employeeId": "2|123456",
"realizationDate": "2024-01-01T10:00:00.000Z",
"quiz": "Querionario Importação",
"response": [
{
"order": 1,
"option": 0,
"description": "Sim"
},
{
"order": 2,
"option": 1,
"description": "Não"
}
]
}
]
}
Riscos
API
/api/mdt/v1/risks
Estrutura
companyId - Código da Empresa *
branchId - Código da Filial *
erpId - Chave Única do ERP *
recognitionDate - Data de reconhecimento *
riskAgent - Agente de risco
esocial - Código do eSocial
description - Descrição do Agente *
group - Grupo de Agente (0 - Físico, 1 - Químico, 2 - Biológico, 3 - Ergonômico, 4 - Mecânico, 5 - Perigoso, 6 - Associação, 7 - Outro) *
evaluation - Tipo de avaliação (0 - Quantitativo, 1 - Qualitativo) *
generatingSource - Descrição da fonte geradora *
environemnt - Descrição do Ambiente Físico *
costCenter - Lista de Centros de Custo
erpId - Código do Centro de Custo no ERP
description - Descrição do Centro de Custo
department - Lista de Departamentos
erpId - Código do Departamento no ERP
description - Descrição do Departamento
occupation - Lista de Ocupações (Função)
erpId - Código da Ocupação no ERP
description - Descrição da Ocupação
task - Lista de Tarefas
description - Descrição da Tarefa
person - Lista de Pessoas
erpId - Chave do Funcionário na Integração RH
name - Nome da Pessoa
individualRegistration - CPF da Pessoa
birthday - Data de Nascimento
gender - Sexo (0 - Masculino, 1 - Feminino)
measurement - Lista de Medições
date - Data da Medição
value - Valor da medição
instrument - Descrição do instrumento de mediação
controlMeasure
description - Descrição da medida de controle
type - Tipo da medida de controle (0 - Proteção Individual, 1 - Proteção Coletiva, 2 - Monitoramento Biológico, 3 - Medidas Administrativas, 4 - Engenharia, 5 - Outros)
ipe - Lista de EPIs
training - Lista de Treinamentos
erpId - Código do Treinamento no ERP
description - Descrição do Treinamento
urgency - Necessidade do Treinamento (0 - Indispensável, 1 - Desejável, 2 - Recomendado)
exam
description - Descrição do Exame *
type - Tipo de Exame (0 - Normal, 1 - IBMP, 2 - ExamItems, 3 - Audiometric, 4- OrthoRater, 5 - Snellen, 6 - Spirometry, 7 - Urinalysis, 8 - Otological, 9 - XRay) *
admission - Boolean - Indica se é admissional *
periodic - Boolean - Indica se é periódico *
backToWork - Boolean - Indica se é retorno ao trabalho *
dismissal - Boolean - Indica se é demissional *
changeOfFunction - Boolean - Indica se é troca de risco *
periodicity
description - Descrição da Periodicidade
fromAge - Idade inicial *
toAge - Idade final *
periodicity - Periodicidade *
postAdmission - Pós admissional *
{
"hasNext": false,
"totalAmount": 1,
"amount": 1,
"items": [
{
"companyId": "2",
"branchId": "17",
"erpId": "2|1",
"recognitionDate": "2023-01-01T00:00:00.000Z",
"eliminationDate": "2024-07-01T00:00:00.000Z",
"riskAgent": {
"eSocialCode": "02.01.001",
"description": "Ruído",
"group": 0,
"evaluation": 0
},
"generatingSource": "Máquina",
"environment": "Sala de Máquinas",
"costCenter": [
{
"erpId": "2|147",
"description": "Centro de Custo"
}
],
"department": [
{
"erpId": "2|147",
"description": "Departamento"
}
],
"occupation": [
{
"erpId": "2|147",
"description": "Ocupação"
}
],
"task": [
{
"description": "Tarefa"
}
],
"person": [
{
"erpId": "2|147",
"name": "Nome",
"individualRegistration": "123456789",
"birthday": "1990-01-01T00:00:00.000Z",
"gender": 0
}
],
"measurement": [
{
"date": "2023-12-01T00:00:00.000Z",
"value": 85,
"instrument": "Decibilímetro"
}
],
"controlMeasure": [
{
"description": "Uso protetor auricular",
"type": 0
}
],
"ipe": [
"27182"
],
"training": [
{
"erpId": "2|147",
"description": "Utilização de Protetor Auricular",
"urgency": 2
}
],
"exam": [
{
"description": "Audiometria",
"type": 3,
"admission": true,
"periodic": true,
"backToWork": false,
"dismissal": true,
"changeOfFunction": false,
"periodicity": {
"description": "Anual",
"fromAge": 0,
"toAge": 99,
"periodicity": 12,
"postAdmission": 6
}
}
]
}
]
}
Vacinas
API
/api/mdt/v1/vaccines
Estrutura
companyId - Código da Empresa *
branchId - Código da Filial *
employeeId - Chave do Funcionário na Integração RH *
erpId - Chave Única do ERP *
vaccine - Informações da vacina *
description - Descrição da Vacina *
gender - Gênero da vacina (0 - Homem, 1 - Mulher, 2 - Ambos) *
fromAge - Idade Inicial *
toAge - Idade Final *
reinforcement - Tipo de Reforço (0 - Sem reforço, 1 - Periódico, 2 - Único) *
reinforcementInterval - Intervalo de Reforço *
secondDoseInterval - Segunda Dose
thirdDoseInterval - Terceira Dose
batch - Lote da vacina
date - Data de Aplicação
status - Status da Aplicação (0 - Pendente, 1 - Realizado, 2 - Recusada) *
currentDose - Dose Atual (0 - Primeira, 1 - Segunda, 2 - Terceira, 3 - Reforço) *
dose - Número da Dose
{
"hasNext": false,
"totalAmount": 1,
"amount": 1,
"items": [
{
"companyId": "2",
"branchId": "17",
"erpId": "2|1",
"employeeId": "2|123456",
"vaccine": {
"description": "Coronavac",
"gender": 2,
"fromAge": 0,
"toAge": 99,
"reinforcement": 2,
"reinforcementInterval": 5,
"secondDoseInterval": 5,
"thirdDoseInterval": 11
},
"batch": "XLK123",
"date": "2021-09-02T10:00:00.000Z",
"status": 1,
"currentDose": 1,
"dose": 1
}
]
}
Entrega de EPIs
API
/api/mdt/v1/ipe-deliveries
Estrutura
companyId - Código da Empresa *
branchId - Código da Filial *
employeeId - Chave do Funcionário na Integração RH *
erpId - Chave Única do ERP *
ca - Código de CA do EPI *
deliveryDate - Data de Entrega *
returnDate - Data de Devolução
caExpirationDate - Data de Vencimento do CA *
observation - Observações
deliveryAmount - Quantidade Entregue
reason - Motivo da Entrega (0 - Admissional, 1 - Desgaste, 2 - Defeito, 3 - Perda, 4 - Roubo, 5 - Demissional, 6 - Higienização, 7 - Troca de Função, 8 - Teste Dielétrico, 9 - Outros) *
amountReturned - Quantidade Devolvida
returnReason - Motivo da Devolução (0 - Temporário, 1 - Mudança de Função, 2 - Restrição Médica, 3 - Afastamento Previdenciário, 4 - Demissão)
effective - Boolean - Indica se EPI é efetivo
issueDate - Data de Assinatura
lastMaintenanceDate - Data da Última Manutenção *
cost - Valor de Custo do EPI
{
"hasNext": false,
"totalAmount": 1,
"amount": 1,
"items": [
{
"companyId": "2",
"branchId": "17",
"erpId": "2|1",
"employeeId": "2|123456",
"ca": "27182",
"deliveryDate": "2023-12-15T00:00:00.000Z",
"caExpirationDate": "2025-12-18T00:00:00.000Z",
"observation": "Entrega Manual",
"deliveryAmount": 1,
"reason": 0,
"amountReturned": 0,
"returnReason": 0,
"effective": true,
"issueDate": "2023-12-17T00:00:00.000Z",
"lastMaintenanceDate": "2023-12-01T00:00:00.000Z",
"cost": 35
}
]
}
Documentos
API
/api/mdt/v1/documents
Estrutura
companyId - Código da Empresa *
branchId - Código da Filial *
erpId - Chave Única do ERP *
objective - Descrição do documento *
type - Tipo de Laudo (0 - PPRA, 1 - LT Pericial, 2 - LTCAT, 3 - PGR, 4 - PCMAT, 5 - PPR, 6 - AET, 7 - PCMSO, 8 - PAE) *
finality - Finalidade quando LT Pericial (0 - Periculosidade, 1 - Insalubridade, 2 - Outros)
startDate - Data de Início *
endDate - Data de Termino *
expirationDate - Data de Validade *
review - Código da Versão
costCenter - Informação do Centro de Custo (se houver)
erpId - Código do Centro de Custo no ERP
description - Descrição do Centro de Custo
responsible
erpId - Chave do Funcionário na Integração RH *
name - Nome da Pessoa *
individualRegistration - CPF da Pessoa *
birthday - Data de Nascimento *
gender - Sexo (0 - Masculino, 1 - Feminino) *
documentNumber - Número do Documento do responsável *
documentState - Estado (SIGLA) *
entityType - Tipo de Entidade (0 - CRM, 1 - CREA, 5 - Outros) *
entityDescription - Descrição da Entidade (se entityType = 5)
Exemplo:
{
"hasNext": false,
"totalAmount": 1,
"amount": 1,
"items": [
{
"companyId": "2",
"branchId": "17",
"erpId": "2|1",
"objective": "Laudo para definição do PGR",
"type": 3,
"finality": 2,
"startDate": "2023-02-01T00:00:00.000Z",
"endDate": "2024-02-01T00:00:00.000Z",
"expirationDate": "2024-02-01T00:00:00.000Z",
"review": "1",
"costCenter": {
"erpId": "2|147",
"description": "Centro de Custo 1"
},
"responsible": {
"erpId": "2|147",
"name": "Responsável laudo",
"individualRegistration": "118.709.990-29",
"birthday": "1990-01-01T00:00:00.000Z",
"gender": 0
},
"documentNumber": "1457",
"documentState": "SC",
"entityType": 1,
"entityDescription": ""
}
]
}
Ocupação SST
Informações sobre SST sobre a função
API
/api/mdt/v1/occupation
Estrutura
companyId - Código da Empresa *
branchId - Código da Filial
erpId - Chave da Ocupação na Integração RH *
ipe - Lista de EPIs
exams - Lista dos Exames
description - Descrição do Exame *
type - Tipo de Exame (0 - Normal, 1 - IBMP, 2 - ExamItems, 3 - Audiometric, 4- OrthoRater, 5 - Snellen, 6 - Spirometry, 7 - Urinalysis, 8 - Otological, 9 - XRay) *
admission - Boolean - Indica se é admissional *
periodic - Boolean - Indica se é periódico *
backToWork - Boolean - Indica se é retorno ao trabalho *
dismissal - Boolean - Indica se é demissional *
changeOfFunction - Boolean - Indica se é troca de risco *
periodicity
description - Descrição da Periodicidade
gender: Gênero para faixa (1 - Masculino, 2 - Feminino, 3 - Ambos)
fromAge - Idade inicial *
toAge - Idade final *
periodicity - Periodicidade *
postAdmission - Pós admissional *
Exemplo:
{
"hasNext": false,
"totalAmount": 1,
"amount": 1,
"items": [
{
"companyId": "2",
"branchId": "17",
"erpId": "2|147",
"ipe": [
"27182"
],
"exams": [
{
"description": "Audiometria",
"type": 3,
"admission": true,
"periodic": true,
"backToWork": false,
"dismissal": true,
"changeOfFunction": false,
"periodicity": {
"description": "Anual",
"fromAge": 0,
"toAge": 99,
"gender": 3,
"periodicity": 12,
"postAdmission": 6
}
}
]
}
]
}
Ordem de Importação
Devido às regras de precedência das informações, é imprescindível que as importações ocorram após as cargas de informações do RH. Além disso, os importadores devem ser executados na seguinte ordem:
Ocupações
Credenciados
Riscos
Questionários
Documentos
Prontuários Médicos
ASO
Atestados Médicos
Deficiências
Questionários Clínicos
Vacinas
Entrega de EPIs
Conteúdo relacionados: