C4Context
title Modelo C4 de Contexto do Sistema Feegow
Person(usuario, "Usuário da Clínica", "Profissionais, Funcionários e Colaboradores")
System_Ext(externo1, "Parceiros Externos", "NFe, TEF, Gateways de Pagamento,<br>Memed, Autorizadores")
Person_Ext(paciente, "Paciente", "Paciente da clínica")
System_Ext(externo2, "Sites/Sistemas Externos", "Clínicas")
System(feegow, Feegow, "Core / Aplicação Principal ASP")
Container(api, Sub-sistemas, "", "APIs, Microserviços")
Boundary(b1", "Database Infra Layer") {
SystemDb(db, Servidores de <br>Bancos de Dados, "MySQL")
}
Rel(usuario, feegow, "Usa")
Rel(paciente, api, "Área do Paciente")
BiRel(externo1, api, "Consome")
Rel(externo2, api, "Agendamento Online")
Rel(feegow, api, "Carrega<br>Interfaces")
UpdateRelStyle(feegow, api, $offsetX="-25", $offsetY="-30")
BiRel(feegow, db, "Leitura/Gravação")
UpdateRelStyle(feegow, db, $offsetX="0", $offsetY="-30")
BiRel(api, db, "")
UpdateRelStyle(api, feegow, $offsetX="45", $offsetY="-30")
C4Context
title Modelo C4 do Sistema Feegow
Person(usuario, "Usuário da Clínica", "Profissionais, Funcionários e Colaboradores")
System_Ext(externo2, "Parceiros Externos", "NFe, TEF, Gateways de Pagamento,<br>Memed, Autorizadores")
Person_Ext(paciente, "Paciente", "Paciente da clínica")
System_Ext(externo1, "Sites/Sistemas Externos", "Clínicas")
Boundary(bFeegow, "Feegow") {
Container(feegowClinic, "Feegow Clinic", "", "Aplicação monolítica ASP<br>ASP Classic, HTML, CSS, Jquery")
Container(apiInterna, API Interna, "", "Aplicação API e SSR Views<br>PHP Laravel")
Container(apiPublica, "API Pública", "", "Aplicação REST API<br>PHP Laravel")
Container(app, App Mobile, "", "React Native")
Container(financial, Financeiro, "", "NodeJS e React")
Container(doct, Integração Doctoralia, "", "Serverless Function NodeJS e React")
Container(labs, Integração Laboratorial, "", "PHP Laravel")
Container(agendamentoOnline, Agendamento Online, "", "Diferentes versões")
Boundary(database, "Database Infra Layer") {
ContainerDb(bd1, "BD 1")
ContainerDb(bd2, "BD 2")
ContainerDb(bd3, "BD 3")
ContainerDb(bd4, "BD N...")
}
Rel(usuario, feegowClinic, "")
Rel(usuario, app, "")
Rel(feegowClinic, apiInterna, "")
Rel(feegowClinic, labs, "")
Rel(feegowClinic, financial, "")
Rel(feegowClinic, doct, "")
Rel(apiInterna, externo2, "")
Rel(paciente, agendamentoOnline, "")
Rel(externo1, agendamentoOnline, "")
Rel(externo1, apiPublica, "")
}
C4Context
title Modelo C4 do Sistema Feegow
Person(usuario, "Usuário da Clínica", "Profissionais, Funcionários e Colaboradores")
System_Ext(externo2, "Parceiros Externos", "NFe, TEF, Gateways de Pagamento,<br>Memed, Autorizadores")
Person_Ext(paciente, "Paciente", "Paciente da clínica")
System_Ext(externo1, "Sites/Sistemas Externos", "Clínicas")
System(feegow, Feegow, "Core / Aplicação Principal")
Boundary(bFeegow, "Feegow") {
Container(feegowClinic, "Feegow Clinic", "", "Aplicação monolítica ASP<br>ASP Classic, HTML, CSS, Jquery")
Container(apiInterna, API Interna, "", "Aplicação API e SSR Views<br>PHP Laravel")
Container(apiPublica, "API Pública", "", "Aplicação REST API<br>PHP Laravel")
Container(app, App Mobile, "", "React Native")
Container(financial, Financeiro, "", "NodeJS e React")
Container(doct, Integração Doctoralia, "", "Serverless Function NodeJS e React")
Container(labs, Integração Laboratorial, "", "PHP Laravel")
Container(agendamentoOnline, Agendamento Online, "", "Diferentes versões")
Container_Boundary(c1, "Feegow Clinic (ASP)") {
Component(cadastros, "Cadastros")
Component(agenda, "Agenda")
Component(checkIn, "Check-in / Sala de espera")
Component(prontuario, "Prontuário Eletrônico")
Component(faturamento, "Faturamento")
Component(estoque, "Estoque")
Component(contasAPagar, "Contas a Pagar")
Component(contasAReceber, "Contas a Receber")
Component(caixa, "Controle de Caixa")
Component(odonto, "Odontograma")
Component(auth, "Autenticação")
Component(org, "Estrutura Organizacional")
Boundary(bProntuario, "Prontuário Eletrônico", "component") {
Component(cadPacientes, "Cadastro Pacientes")
Component(laudosEFormularios, "Laudos e Formulários")
Component(diagnosticos, "Diagnósticos")
Component(prescricoes, "Prescrições Medicamentosas")
Component(atestados, "Atestados")
Component(exames, "Pedidos de Exames")
Component(arquivos, "Arquivos e Imagens")
Component(encaminhamentos, "Encaminhamentos")
}
}
Container_Boundary(c2, "Feegow API Interna (PHP)") {
Component(relatorios, "Relatórios")
Component(pac, "Imagens (PACS)")
Component(nfe, "Nota Fiscal Eletrônica")
Component(tef, "TEF")
Component(autorizador, "Autorizador On-line")
Component(teleconsulta, "Telemedicina")
Component(onco, "Oncologia")
Component(assinatura, "Assinatura Digital")
Component(impressao, "Impressão")
Component(areaDoPaciente, "Área do Paciente")
}
Boundary(database, "Database Infra Layer") {
ContainerDb(bd1, "BD 1")
ContainerDb(bd2, "BD 2")
ContainerDb(bd3, "BD 3")
ContainerDb(bd4, "BD N...")
}
}
Rel(usuario, feegow, "Usa")
BiRel(feegow, feegowClinic, "")
BiRel(feegow, apiInterna, "")
Rel(feegowClinic, cadastros, "")
Rel(apiInterna, relatorios, "")