Coder Social home page Coder Social logo

viniciusalberkovics / memed-react Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jonatassales/memed-react

0.0 0.0 0.0 332 KB

Biblioteca React para integração com prescrições médicas da Memed.

Home Page: https://memed-react-refs.vercel.app/

JavaScript 1.81% TypeScript 98.19%

memed-react's Introduction

memed-react

memed-react é uma biblioteca desenvolvida para o ecossistema React com o objetivo de ajudar na integração com o serviço de prescrição médica online da Memed. Algumas etapas da homologação já são feitas pela lib, como a desativação de algumas funções, adesão dos dados do paciente antes do módulo estar liberado para uso, e a criação do script em execução que carregam as instancias MdHub e MdSinapsePrescricao, responsáveis por alguns bindings de eventos e commandos.

Exemplos

Demos

Instalação

Para instalar a biblioteca via yarn ou npm basta rodar no seu terminal:

npm install memed-react

ou

yarn add memed-react

Uso

A biblioteca garante que o script será criado, e o módulo liberado somente quando as funções setDoctorToken e setPatient forem chamadas com os respectivos valores. As funções podem ser obtidas do hook useMemed após seu componente estar sendo encapsulado pelo MemedProvider. Você pode acionar o módulo de prescrição passando uma ref do seu botão ou usando as funções showPrescription e hidePrescription para abrir e fechar o módulo de forma imperativa. Você consegue controlar o estado de inicialização do módulo usando a variável loadingModule.

Hook useMemed

Um exemplo utilizando a Refs:

import React from 'react'
import Button from '@material-ui/core/Button'
import { useMemed } from 'memed-react'

import { Patient } from '@patient/domain/Patient'

interface PrescriptionButtonProps {
  patient: Patient;
}

export default function PrescriptionButton(props: PrescriptionButtonProps): React.ReactElement {
  const { patient } = props
  const buttonRef = React.useRef(null)
  const { setActionRef, setDoctorToken, setPatient, loadingModule } = useMemed()

  React.useEffect(() => {
    async function fetchDoctorToken() {
      const response = await fetch('<SUA_API>/doctor/token')
      const token = await response.json()
      setDoctorToken(token)
      setActionRef(buttonRef)
      setPatient({
        nome: patient.name,
        endereco: patient.address?.streetAddress || '',
        cidade: patient.address?.city || '',
        telefone: patient.phoneNumber,
        altura: patient.height,
        idExterno: patient.identityDocument
      })
    }

    if (patient) {
      fetchDoctorToken()
    }
  }, [patient, setDoctorToken, setActionRef, setPatient])

  return (
    <Button ref={buttonRef} disabled={loadingModule}>
      {loadingModule ? 'Loading...' : 'Prescrição'}
    </Button>
  )
}

O processo de criação do médico junto a memed e recuperação do token você pode ver aqui.

Provider

import React from 'react'
import ReactDOM from 'react-dom'
import MemedProvider from 'memed-react'

ReactDOM.render(
  <MemedProvider color="#00B8D6" scriptSrc={productionSrc} scriptId={scriptId}>
    <App />
  </MemedProvider>,
  root
)

Embora as props sejam opcionais, você deve trocar scriptSrc para o src de produção após pegar as chaves de produção. Do contrário o default será a URL de sandbox da memed.

Contribuições

Toda e qualquer contribuição (PRs, issues, documentação, exemplos) será bem vinda. Crie um pull request. Utilize Conventional Commits para fazer seus commits e siga as regras do ghooks após a ação. Vamos transformar a saúde no Brasil com tecnologia. 💙

Licença

MIT

A empresa Memed não é resposável por atualizações dessa biblioteca. Qualquer atualização da lib principal que possa quebrar a execução dessa biblioteca é de minha responsabilidade e dos colaboradores. Caso você queira fazer a integração diretamente com os módulos oficiais, acesse esse link.

memed-react's People

Contributors

jonatassales avatar viniciusalberkovics avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.