0.2.4 • Published 2 years ago

rnds v0.2.4

Weekly downloads
1
License
Apache-2.0
Repository
github
Last release
2 years ago

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ávelConteúdo
RNDS_AUTHEndereço do serviço de autenticação (sem protocolo, sem path).Exemplo: ehr-auth-hmg.saude.gov.br
RNDS_EHREndereço dos serviços de saúde. Exemplo: ehr-services.hmg.saude.gov.br
RNDS_CERTIFICADO_ENDERECOEndereço (web ou arquivo) do certificado digital (formato .pfx).
RNDS_CERTIFICADO_SENHASenha do certificado digital.
RNDS_REQUISITANTE_CNSCNS do profissional de saúde em nome do qual requisições serão feitas.
RNDS_REQUISITANTE_UFCó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

0.2.4

2 years ago

0.2.1

2 years ago

0.2.0

2 years ago

0.1.8

2 years ago

0.1.7

2 years ago

0.1.9

2 years ago

0.2.3

2 years ago

0.2.2

2 years ago

0.1.6

2 years ago

0.1.4

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago

0.0.29

3 years ago

0.0.28

3 years ago

0.0.27

4 years ago

0.0.26

4 years ago

0.0.25

4 years ago

0.0.23

4 years ago

0.0.24

4 years ago

0.0.21

4 years ago

0.0.22

4 years ago

0.0.20

4 years ago

0.0.19

4 years ago

0.0.17

4 years ago

0.0.18

4 years ago

0.0.15

4 years ago

0.0.16

4 years ago

0.0.10

4 years ago

0.0.11

4 years ago

0.0.12

4 years ago

0.0.13

4 years ago

0.0.14

4 years ago

0.0.9

4 years ago

0.0.8

4 years ago

0.0.5

4 years ago

0.0.7

4 years ago

0.0.6

4 years ago

0.0.4

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago