rnds

0.2.4 • Public • Published

RNDS (Rede Nacional de Dados em Saúde)

Biblioteca de acesso à RNDS (Rede Nacional de Dados em Saúde) que contempla o envio de resultads de exames laboratoriais (COVID-19).

Os serviços oferecidos pela RNDS estão encapsulados em funções de fácil uso que implementam um façade para os ambientes FHIR (homologação e produção) oferecidos pelo Ministério da Saúde (DATASUS) para o Brasil.

Consulte o Guia de Integração com a RNDS para detalhes da integração com a RNDS.

Instalar

$ npm i rnds

Configurar

Tendo em vista a sensibilidade das informações que fazem parte da configuração necessária, todas elas são fornecidas por meio de variáveis de ambiente, conforme tabela abaixo:

Variável Conteúdo
RNDS_AUTH Endereço do serviço de autenticação (sem protocolo, sem path).Exemplo: ehr-auth-hmg.saude.gov.br
RNDS_EHR Endereço dos serviços de saúde. Exemplo: ehr-services.hmg.saude.gov.br
RNDS_CERTIFICADO_ENDERECO Endereço (web ou arquivo) do certificado digital (formato .pfx).
RNDS_CERTIFICADO_SENHA Senha do certificado digital.
RNDS_REQUISITANTE_CNS CNS do profissional de saúde em nome do qual requisições serão feitas.
RNDS_REQUISITANTE_UF Código do estado (duas letras, por exemplo, AC, DF, GO) do estabelecimento de saúde.

Usar

IMPORTANTE: foi necessário usar a opção --openssl-legacy-provider para que funcione com a versão 17 do NodeJS.

import RNDS from "./rnds.js";

const rnds = await RNDS.cliente(true, true, true);

rnds.checkVersion()
    .then(c => console.log("FHIR VERSION", c ? "ok" : "erro"))
    .catch(() => console.log("erro ao verificar versão..."));

Ou ainda,

import RNDS from "./rnds.js";

process.on('uncaughtException', (err) => console.log("!!??\n", err));

async function status(requisicao, msg) {
    const retorno = await requisicao;
    console.log(retorno.code === 200 ? "ok" : "erro", msg);
}

const CNPJ = "01567601000143";
const CNES = "2337991";
const CNS = "980016287385192";

try {
    const rnds = await RNDS.cliente(false, true, true);

    await status(rnds.capability(), "CapabilityStatement");

    console.log(await rnds.checkVersion() ? "ok" : "erro", "FHIR VERSION");

    await status(rnds.atendimento(CNES, CNS, CNS), "contextoAtendimento");
    await status(rnds.cnes(CNES), "CNES");

    // Obtém CPF para uso posterior (informação sensível não registrada)
    const resposta = await rnds.cns(CNS)
    console.log(resposta.code === 200 ? "ok" : "erro", "CNS");
    const idt = JSON.parse(resposta.retorno).identifier;
    const idx = idt.findIndex(i => i.system.endsWith("/cpf"));
    const codigoCPF = idt[idx].value;

    await status(rnds.cpf(codigoCPF), "CPF");
    await status(rnds.cnpj(CNPJ), "CNPJ");
    await status(rnds.lotacoes(CNS, CNES), "CNS/CNES");
    await status(rnds.lotacaoPorCns(CNS), "CNS (lotações)");
    await status(rnds.lotacaoPorCnes(CNES), "CNES (lotações)");
    await status(rnds.lotacaoCnsEmCnes(CNS, CNES), "CNS/CNES");
    await status(rnds.pacientePorCns(CNS), "CNS (Bundle)");
    await status(rnds.pacientePorCpf(codigoCPF), "CPF (Patient)");
    await status(rnds.paciente(CNS), "CNS (paciente - Patient)");
} catch (erro) {
    console.log(erro);
}

Alguns links pertinentes

Package Sidebar

Install

npm i rnds

Weekly Downloads

1

Version

0.2.4

License

Apache-2.0

Unpacked Size

52.9 kB

Total Files

17

Last publish

Collaborators

  • kyriosdata