Este Guia de Orientações aos Desenvolvedores dispõe sobre as instruções técnicas necessárias para um correto funcionamento do portal VALIDAR, apresentando os requisitos que devem ser corretamente seguidos pelos profissionais de desenvolvimento interessados em integrar o serviço a suas respectivas plataformas ou mesmo gerar QR Codes.
Informamos que o ITI não dá suporte de como gerar um arquivo assinado. Para isso, há uma série de assinadores digitais no mercado, principalmente ofertados pelas Autoridades Certificadoras e outras entidades credenciadas pela ICP-Brasil.
Nesse documento, os desenvolvedores poderão encontrar orientações sobre:
Eventuais problemas poderão ser relatados através do Fale Conosco do serviço, disponível no link: https://validar.iti.gov.br/fale-conosco.html.
Os seguintes parâmetros (query parameters) deverão ser adicionados na URL encontrada no QR Code do documento:
Nome | Conteúdo | Descrição | Obrigatório |
_format | application/validador-iti+json | Reservado para o uso do Portal Validar do ITI: | Sim |
_secretCode | Conjunto de caracteres alfanuméricos. Variável de 0 a 64 caracteres. | Código informado pelo paciente para permitir o acesso a prescrição. | Sim |
Fluxo operacional esperado:
URL esperada no QR Code: https://[URL]
GET https://[URL]/?_format=application/validador-iti+json&_secretCode=XIU8789Y
GET https://[URL]/?type=prescricao&_parametroqualquer&_format=application/validador-iti+json&_secretCode= XIU8789Y
A resposta será um JSON, contendo a URL para o arquivo PDF assinado.
Resultado esperado conforme resultado a seguir:
{
"version":"1.0.0",
"prescription":{
"signatureFiles":[
{
"url":"url/nomedoarquivo.pdf"
}
]
}
}
Códigos de status HTTP retornados em situações de erro:
Código | Nome | Descrição |
401 | Not Authorized | Quando o código secreto está incorreto. |
404 | Not Found | Quando a prescrição não existe. |
OID para profissionais (médicos e farmacêuticos)
2.16.76.1.4.2.2 | Conselho Federal de Medicina |
2.16.76.1.4.2.2.1 | Número de registro do profissional |
2.16.76.1.4.2.2.2 | UF de registro profissional |
2.16.76.1.4.2.2.3 | Especialidade |
2.16.76.1.4.2.3 | Conselho Federal de Farmácia |
2.16.76.1.4.2.3.1 | Número de registro do farmacêutico |
2.16.76.1.4.2.3.2 | UF de registro do farmacêutico |
2.16.76.1.4.2.3.3 | Especialidade |
2.16.76.1.4.2.12 | Conselho Federal de Odontologia |
2.16.76.1.4.2.12.1 | Número de registro do dentista |
2.16.76.1.4.2.12.2 | UF de registro do dentista |
2.16.76.1.4.2.12.3 | Especialidade |
OID para documentos digitais em saúde
2.16.76.1.12.1 | Documentos Digitais da Saúde |
2.16.76.1.12.1.1 | Prescrição de medicamento |
2.16.76.1.12.1.2 | Atestado médico |
2.16.76.1.12.1.3 | Solicitação de exame |
2.16.76.1.12.1.4 | Laudo laboratorial |
2.16.76.1.12.1.5 | Sumária de alta |
2.16.76.1.12.1.6 | Registro de atendimento clínico |
2.16.76.1.12.1.7 | Dispensação de medicamento |
2.16.76.1.12.1.8 | Vacinação |
2.16.76.1.12.1.11 | Relatório Médico |
O padrão PDF (Portable Document File), criado pela empresa Adobe, e padronizado pela ISO (Organização Internacional para Padronização), é muito versátil, por isso há necessidade de proteger as informações já assinadas.
Para isso, o padrão admite o recurso MDP (Modification Detection and Prevention), representado pelo acrônimo DocMDP. Esse recurso, quando corretamente implementado, define se o documento poderá ou não ter alterações incrementais ou subsequentes à assinatura digital.
Caso o software utilizado para assinar documentos em formato PDF, não implemente o recurso, o serviço Validar poderá dar o resultado “Assinatura Indeterminada”.
Como orientação aos provedores de software ou serviço de assinaturas digitais, recomenda-se que implementem o recurso de controle de “atualizações incrementais” previsto na ISO 32000-1. Toda a orientação necessária está contida no referido padrão, especificamente o item 12.8.2.2 do Padrão PDF (ISO 3200-2008 pág 466).
A seguir, apresentamos um exemplo de uso do recurso DocMDP a ser configurado no arquivo PDF gerado a partir da assinatura digital.
“Signature Reference”. Exemplo:
166 0 obj
<<
/Type /Sig
/Filter /Adobe.PPKLite
/SubFilter /adbe.pkcs7.detached
/M (D:20220705145549-03'00')
/Reference [168 0 R]
/Contents <24730....>
/ByteRange [0 36705 55651 8985]
>>
Endobj
O dicionário “Signature Reference” contém as entradas “Transform Method”, com o valor DocMDP, e “TransformParams”, com uma referência indireta para um dicionário de TransformParams. Exemplo:
168 0 obj
<<
/Type /SigRef
/TransformMethod /DocMDP
/TransformParams 170 0 R
>>
O dicionário “TransformParams” contém uma entrada P, com valor 2, e uma entrada V, com valor 1.2.
170 0 obj
<<
/Type /TransformParams
/P 2
/V /1.2
>>
Importante:
Não é recomendado o uso do dicionário /Perms com entrada /DocMDP por questões de compatibilidade com o Adobe.
Ao configurar a primeira assinatura desta forma, apenas serão permitidas as seguintes alterações:
Preenchimento de formulários;
Templates;
Inclusão de novas assinaturas.
Outros valores de P possíveis de serem usados:
P = 1-> Nenhuma alteração é admitida;
P = 2-> Alterações permitidas em formulários, templates e inclusão de novas assinaturas;
P = 3-> Além das permissões admitidas para P = 2, admite-se também anotações, deleções e modificações.