Guia de Orientações aos Desenvolvedores

INTRODUÇÃO


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:

  • Características dos documentos e padrões de assinatura, inclusive de prescrições eletrônicas (documentos de saúde), para uma correta submissão;
  • Informações sobre QR Code e parâmetros necessários para implementação;
  • Referências de OID.

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.

  CAPÍTULO I

  CARACTERÍSTICAS DOS DOCUMENTOS

  1. Os documentos digitais suportados devem ser submetidos em formato PDF (Portable Document File), XML (Extensible Markup Language), P7S(Public-Key Cryptography Standards nº 7) e JSON (JavaScript Object Notation).
  2. O documento em formato PDF, deve estar assinado com certificado digital ICP-Brasil, certificado digital provido pelo portal GOV.BR.
  3. Para as prescrições de documentos de saúde, geradas por sistemas ou plataformas, devem ser incluídos como metadados as seguintes informações:
    1. OID do registro profissional do médico;
    2. OID da UF de registro profissional;
    3. OID do registro profissional do farmacêutico;
    4. OID da UF de registro profissional;
    5. OID do documento (prescrição, atestado, solicitação de exames, relatório médico).

    Nota: documentos que não possuam OID não são considerados como documentos de saúde e, portanto, não será possível identificar que foram assinados por um profissional de saúde.

  CAPÍTULO II

  PADRÕES DE ASSINATURA

  1. Os padrões de assinatura digital aceitos para a validação através do VALIDAR são os descritos a seguir:
    1. Assinaturas PDF com CMS ou CAdES anexadas;
    2. Assinaturas PAdES do padrão ICP-Brasil;
    3. CAdES com PDF anexado;
    4. Assinaturas XML com CMS ou XAdES anexadas.
  2. Os desenvolvedores devem priorizar o uso do PAdES da ICP-Brasil.
  3. Para assinatura em PAdES no padrão ICP-Brasil devem ser utilizadas as políticas RB (Referência Básica) ou RT (Referência de Tempo). (Nota 1, de 30 de abril de 2020).
  4. PPara mais informações sobre políticas de assinaturas no DOC-ICP-15, consulte o linkhttps://www.iti.gov.br/legislacao/61-legislacao/504-documentos-principais.
  5. Para que o VALIDAR possa reconhecer adequadamente o QR-Code gerado pelo sistema de prescrição eletrônica é necessário seguir as instruções publicadas no Capítulo IV deste Guia. (Nota 2, de 24 de julho de 2020).

  CAPÍTULO III

  INFORMAÇÕES SOBRE QR CODE

  1. QR-CODE é a abreviação de Quick Response Code (Código de Resposta Rápida), este sistema é um código em 2D utilizado para ter acesso rápido a sites, textos e números.
  2. Os requisitos para a simbologia do QR-Code são definidos pela ISO/IEC 18004: 2015 . Essa norma especifica as características, métodos de codificação de caracteres de dados, formatos de símbolos, características dimensionais, regras de correção de erros, algoritmo de descodificação de referência, requisitos de qualidade de produção e parâmetros de aplicação selecionáveis pelo usuário.
  3. A utilização do QR Code traz vantagens, sendo a principal a acessibilidade, devido a compatibilidade em diferentes plataformas, tornando o acesso ao conteúdo fácil e rápido.
  4. No contexto do VALIDAR, o código QR é vantajoso devido ao acesso rápido ao documento que o usuário quer validar, sem necessidade de fazer o download e upload do arquivo. Dessa forma, tendo a versão física, digital ou apenas o QR Code em mãos a validação do documento poderá ser feita.
  5. O VALIDAR lê o QR-Code usando as câmeras (frontal e traseira) do celular ou webcam de um computador. Para isso, o VALIDAR lê e envia o arquivo para a validação. A leitura pode demorar alguns segundos, bastando que o usuário mantenha o QR Code posicionado.
  6. A leitura do QR-Code é feita a partir do próprio site, não sendo necessário utilizar outro aplicativo de câmera do smartphone.
  7. Para fazer a leitura do QR Code, o usuário deve acessar o site do VALIDAR e autorizar o uso da câmera do seu dispositivo desktop ou dispositivo móvel. Logo após, deve apontar o QR-Code para a câmera ou webcam do seu dispositivo e aguardar até que o leitor feche, isso significa que a leitura foi realizada de maneira correta. A seguir, deverá digitar o código de acesso no espaço indicado e finalizar clicando em validar.

  CAPÍTULO IV

  PARÂMETROS PARA GERAÇÃO DE QR CODES

  1. 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: https://validar.iti.gov.br/ 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

  2. Fluxo operacional esperado:

      URL esperada no QR Code: https://[URL]

    • Validador monta requisição acrescida do código por exemplo: XIU8789Y
    • GET https://[URL]/?_format=application/validador-iti+json&_secretCode=XIU8789Y

    • Obs: caso a URL possua outros parâmetros será necessário o parâmetro “type” para identificarmos e acrescentarmos. Nesse caso:
    • 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"
           }
         ]
       }
      }

  3. Códigos de status HTTP retornados:

    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.

  CAPÍTULO V

  REFERÊNCIAS DE OID

  1. 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

  2. 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

  3. ADE-ICP-04.01 v. 6.0 ESQUEMA DE OID NA ICP-BRASIL

  CAPÍTULO VI

  ARQUIVOS PDF - CONTROLE DE ATUALIZAÇÕES INCREMENTAIS

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.

  1. “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

  2. 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
    >>

  3. 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.