SlideShare uma empresa Scribd logo
1 de 60
Baixar para ler offline
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Rafael Guimarães, César Hernández
Keeping Brazil’s Medical Industry
Safe with MicroProfile
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
SPEAKERS
Rafael Guimarães
● Software Engineer
● GBR Systems.
● +25 experience in Medical and Judicial
areas in Brazil.
● University faculty professor.
● Focused on distributed software
architectures.
César Hernández
● Senior Software Engineer at Tomitribe
● Oracle Java Champion and
Groundbreaker Ambassador
● Duke’s Choice Award 2016, 2017
● Oracle Certified Professional
● +14 experience with Java EE
● Apache TomEE and Eclipse Committer,
Microprofile Contributor.
● Open Source advocate, writer, teacher
and public speaker
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Agenda
● Brazilian health care system Overview
● Base System
● Boosting Brazilian healthcare systems with Jakarta EE, Eclipse
MicroProfile and Apache TomEE
● Contribution to the COVID-19 Response
● Lessons Learned
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Brazilian health care system Overview
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Brazilian health care system Overview
(behind China, India, United
States, Indonesia, Pakistan)
source:
http://cnes.datasus.gov.br
http://fiscalizacao.cfm.org.br/
https://population.un.org/wpp/Download/Standard/Population/
(behind Russia, Canada,
China, United States)
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Brazilian health care system Overview
source:
http://cnes.datasus.gov.br
http://fiscalizacao.cfm.org.br/
https://population.un.org/wpp/Download/Standard/Population/
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
source:
http://cnes.datasus.gov.br
http://fiscalizacao.cfm.org.br/
https://population.un.org/wpp/Download/Standard/Population/
Brazilian health care system Overview
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Brazilian health care system Overview
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Medical Practice!
Brazilian health care system - Actors
Medicine
Council
Government Health Departments
Control
Regulation
Policies
Sanitary Surveillance
Licences
Records
Professional Discipline
Ethical Judgment
Licence to work
Keep Records
Inspections
Complains
Guiding
Integrations
Information Sharing
Medicine
Schools
&
Residency
Programs
Learning, Training, Specializing
Counselors
&
Inspectors
Health Service
Providers
Doctors
Patients
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Brazilian health care system - Challenges
● Large and Complex
○ Inequalities
○ Difficult governance
○ 30 different Medical Specialties, 20 types of Health Service Providers
○ High frequency of Policy and Rule changes
● Difficult medicine practice
○ Poor infrastructure - high risk
○ Proliferation of medical schools - bad quality professionals
● Incomplete institutional information exchange
○ Diversity of technologies, legacy systems and standards
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Brazilian health care system - Challenges
● How to make good quality inspection reports, with agility, especially
considering the high amount of laws, recommendations, policies and
standards? And to create good statistics of those reports ?
● How to access legacy system data of other government departments without
bureaucracy, to check licences, records and information integrity ? Is the data
safe, monitored, fast, reliable ?
● What could be done to facilitate interaction between the doctors and the
council?
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Brazilian health care system - Challenges
● Which service providers or doctors are working irregularly?
● What about medical advertising, are doctors respecting each other? Are their
advertisements deceiving patients to patients ? (Or even lying !?!)
● What if a patient goes to a clinic doing an endoscopic procedure, which
needs sedation, and he has a bad reaction to the anesthetic, and ends up
dying?
○ Did the life support equipment work properly ? Did the doctor do the
procedure correctly?
○ What is the real cause? Should the council revoke the doctor's work
license?
○
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
GBR Systems
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
About GBR
● Founded in 2008
● Consulting, Software Engineering & Architecture, Training
● Applications:
○ support Inspectors and Counselors in their principal job -
Professional Discipline, Guiding, Inspections
○ online services that control the Doctors and Service Providers
in their “life cycle” within Councils
○ to do quality auditing and certification of medical schools
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Base system
Federal Council - National Inspections Platform
● support Inspectors and Counselors in their principal job -
Professional Discipline, Guiding, Inspections
● Modules:
○ Inspections Control and Scheduling
○ Inspection execution - checklists, images,
notifications, dynamic forms.
○ Reports, Statistics
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Base system
Regional Council - Online Services
● Support Doctors and Health Service Providers (as
Technical Director) in their “life cycle” within Council - from
start of Medicine Practice to retirement.
● More than 40 types of services:
○ First Registration, Transfers States, Secondary
Licence, Fee payment, Certificates, Profile
update, Renew Licence, etc.
○ Tools for back office employees
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Base system
Federal Council - Accreditation Platform SAEME
● Support Counselors and the Education Medical
Association to do quality auditing and certification
of medical schools
● Covers whole process of auditing and evaluation
● Recognized by World Federation for Medical
Education
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Base system
Server
● JAVA EE 6
● Jboss7
● Tomcat 6, 7
Client
● Adobe Flex
● Adobe Air
● Angular JS 1
Data Integration
● Kettle
ON-PREMISSE!
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
About GBR coverage
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Base system
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Backend Architecture Roadmap
● Improve overall system architecture
○ Java EE 6 → Jakarta EE8
○ Security
○ Fault Tolerance
○ Performance
○ Monitoring
● API Gateway
○ Secure OAuth 2.0 + HTTP signatures
○ Microservice Monitoring and routing
○ Standard Integrations - RMI, SOAP, → REST
● Cloud Native
○ Different cloud providers
● Provide APIs to other institutions
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Boosting Brazilian healthcare systems with
Jakarta EE
Eclipse MicroProfile
and Apache TomEE
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Jakarta EE
(formerly known as Java EE)
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Eclipse foundation
https://www.eclipse.org/membership/documents/eclipse-foundation-overview.pdf
360+
Projects
275+
Members
1550+
Committers
195M+
Lines of code
15
Years
30
Members
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Eclipse foundation, EE4J, Java EE, and Jakarta EE
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Eclipse MicroProfile
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Eclipse MicroProfile
● An open-source community specification
● Focus on Enterprise Java microservices
● Generates: SPEC, API, and TCK.
● https://microprofile.io
● Implemented by different vendors.
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Eclipse MicroProfile
MicroProfile 3.3
JAX-RS 2.1JSON-P 1.1CDI 2.0
Config
Fault
Tolerance
JWT
Propagation
HealthMetrics
Open
Tracing
Open API Rest Client
JSON-B 1.0
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Apache TomEE
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
● Apache Tomcat + Java EE = Apache TomEE
● Built from Apache components
● MicroProfile compliant
● Footprint: 30MB zip, 100~MB memory
● JakartaEE 9 WIP
● tomee.apache.org
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Apache TomEE
TomEE JAX-RS Microprofile
Java Server Pages
(JSP)
Java Server Faces
(JSF)
Java Transaction
API (JTA)
Bean Validation
Enterprise
JavaBeansJavaMail API
Java API for
RESTful Web
Services (JAX-RS)
Java Persistence
API (JPA)
Contexts and
Dependency
Injection (CDI)
Java Servlets
Java
Authentication and
Authorization
Service (JAAS)
Java Authorization
Contract for
Containers (JACC)
http://tomee.apache.org/comparison.html
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
http://tribestream.io/
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Lessons learned so far in the journey
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
MicroProfile Config
Before
● Sensitive information within project files
● Complex properties customizations
● Infrastructure environment management was painful
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Config
After
● Sensitive information decoupled from the application code
● Container friendly
● Easy hierarchy for environment variables vs maven -D
● Allow easy container horizontal scaling
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
MP Configuration
@Inject
@ConfigProperty(name = "log.enabled", defaultValue = "true")
private Boolean logEnabled;
@Inject
private JsonWebToken token;
public void info(String message) {
if (logEnabled) {
if (token == null || !token.claim("email").isPresent()) {
logger.info(message);
} else {
logger.info(token.claim("email").get() + " - " + message);
}
}
}
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Before
● Manual process and lack of coverage
● Disperse monitoring
● Hard to trace
● “It’s slow”, “a glitch”, “restarts”
● Reactive most of the time
Health Check + Metrics
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
After
● JSON base alerts are now centralized and provide unified notifications
● Custom rules base on standard status
● Proactiveness since the last 3 months
● Improves user satisfaction
Health Check + Metrics
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Microprofile HealthCheck
@Health
@ApplicationScoped
public class DatabaseHealthCheck implements HealthCheck {
@PersistenceContext(unitName = "crvirtual_unit")
protected EntityManager manager;
@Override
public HealthCheckResponse call() {
HealthCheckResponseBuilder responseBuilder = HealthCheckResponse.named("oracle");
try {
String result = (String) manager.createNativeQuery("select * from dual").getSingleResult();
if(result.equals("X")){
return responseBuilder.up().build();
} else {
return responseBuilder.down().build();
}
} catch (Exception e) {
return responseBuilder.withData("error", e.getMessage()).down().build();
}
}
}
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Microprofile HealthCheck
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
JWT Authentication
Before:
● Basic HTTP Auth with session management
● Challenges for microservices
○ New stateless security requirement
○ Authentication and Authorization between microservices
○ Overhead and single point of failure
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
JWT Authentication
After:
● OAuth 2.0 JWT
○ Stateless security
○ Authentication and Authorization between microservices
○ State was kept on the server and pointer on the client side
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Microprofile JWT
/** Microprofile JWT **/
@Inject
private JsonWebToken token;
/** Microprofile Config **/
@Inject
@ConfigProperty(name = "log.enabled", defaultValue = "true")
private Boolean logEnabled;
private Logger logger = Logger.getLogger(CrVirtualLogger.class.getName());
public void info(String message) {
if (logEnabled) {
if (token == null || !token.claim("email").isPresent()) {
logger.info(message);
} else {
logger.info(token.claim("email").get() + " - " + message);
}
}
}
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Authentication
● Protected Access into Medical Knowledge databases
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Authentication
● Protected Access into Federal Companies Database
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Rest Client
Before
● JAX-RS Client
● No type-safe
● Service needed to be understood
● Request needed to be built by hand every time
● Not the best reusability of the code
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Rest Client
After
● Type-safe approach
● Usage of interfaces to call the services
● Header propagation and handling made easy
● Smooth JWT propagation
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
@Dependent
@RegisterRestClient
public interface SerproSearchClient {
@POST
@Consumes(MediaType.APPLICATION_JSON)
public Response getToken(String body);
@GET
public Response searchCompany(@HeaderParam("Authorization") String key,
@HeaderParam("Accept") String accept);
}
Microprofile RestClient
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Microprofile RestClientimport org.eclipse.microprofile.rest.client.inject.RegisterRestClient;
import javax.enterprise.context.Dependent;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import java.util.List;
@RegisterRestClient
@Path("api/doctors")
public interface DoctorResourceClient {
@GET
@Path("{id}")
@Produces(MediaType.APPLICATION_JSON)
Doctor find(@PathParam("id") Long id);
@GET
List<Doctor> getDoctors();
@POST
@Consumes("application/json")
Doctor addDoctor(Doctor doctor);
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Microprofile RestClientimport org.superbiz.moviefun.mpclient.DoctorResourceClient;
@Inject
@RestClient
private DoctorResourceClient doctorResourceClient;
public void printAllDoctors(){
List<Doctor> doctors = doctorResourceClient.getDoctors();
for (Doctor doctor : doctor) {
LOGGER.info(doctor.toString());
}
}
public void addNewDoctor() {
Doctor newDoctor = new Doctor ("7","Doctor 007.");
doctorResourceClient.addDoctor(newDoctor);
}
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Before
● Legacy system was not well document
● Documentation not fully aligned with master code
○ Duplication of code
○ Design first approach not trustable
OpenAPI
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
OpenAPI
After
● Standard visibility
● Find duplication of code
● Allowed API design approach
● swagger-ui
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
OpenAPI
@Operation(description = "To search Doctors by their record number")
@APIResponses({
@APIResponse(responseCode = "200", description = "Success",
content = @Content(schema = @Schema(implementation = User.class))),
@APIResponse(responseCode = "400", description = "Bad Request") })
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("{recordNumber}")
public Response getDoctor(@PathParam("recordNumber") Long recordNumber) {
try {
logger.info("searching Doctors by record number");
return Response.ok(dao.getByRecordNumber(recordNumber)).build();
} catch (Exception e) {
throw new WebApplicationException(
Response.status(Response.Status.BAD_REQUEST).entity(new ErrorMessages(e.getMessage())).build());
}
}
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
OpenAPI
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
COVID 19 response
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Telemedicine Support - Doctor's Prescriptions System
● 5 days development
○ REST API
● Some integrations
○ Doctor's space login, Federal Companies Database, Pharmacies Database, Google
Authenticator (two factor auth)
● Sensitive data protection
○ Attribute Converter
Medical Practice!
Digital Prescription Digital Prescription
Doctor Patient Pharmacy
Receive / Validate
Emit
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Telemedicine Support - Doctor's Prescriptions System
Digital Prescription
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Telemedicine Support - Doctor's Prescriptions System
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Telemedicine Support - Doctor's Prescriptions System
● Almost 20K prescriptions -- since Apr 8th.
● 65k validations
@GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk
Thank you
Contact us @TOMITRIBE
Rafael Guimarães, César Hernández
Keeping Brazil’s Medical Industry
Safe with MicroProfile

Mais conteúdo relacionado

Semelhante a Keeping brazil's medical industry safe with Micro Profile and JakartaEE - Jakarta tech talk 2020

Seattle Code Camp 2016- Role of Data Science in HHealthcare
Seattle Code Camp 2016- Role of Data Science in HHealthcareSeattle Code Camp 2016- Role of Data Science in HHealthcare
Seattle Code Camp 2016- Role of Data Science in HHealthcareRuba Qaqish
 
How BrackenData Leverages Data on Over 250,000 Clinical Trials
How BrackenData Leverages Data on Over 250,000 Clinical TrialsHow BrackenData Leverages Data on Over 250,000 Clinical Trials
How BrackenData Leverages Data on Over 250,000 Clinical TrialsBracken
 
Business ideas pitch deck - multi project - Canada
Business ideas pitch deck - multi project - CanadaBusiness ideas pitch deck - multi project - Canada
Business ideas pitch deck - multi project - CanadaVijayananda Mohire
 
App Transition, System Retirement, and Data Archival
App Transition, System Retirement, and Data ArchivalApp Transition, System Retirement, and Data Archival
App Transition, System Retirement, and Data ArchivalJustin Campbell
 
Creando microservicios con Java y Microprofile - Nicaragua JUG
Creando microservicios con Java y Microprofile - Nicaragua JUGCreando microservicios con Java y Microprofile - Nicaragua JUG
Creando microservicios con Java y Microprofile - Nicaragua JUGCésar Hernández
 
Business ideas pitch deck - multi projects
Business ideas pitch deck - multi projectsBusiness ideas pitch deck - multi projects
Business ideas pitch deck - multi projectsVijayananda Mohire
 
CTMS Data Migration by Krishnaveni Rapuru
CTMS Data Migration  by Krishnaveni RapuruCTMS Data Migration  by Krishnaveni Rapuru
CTMS Data Migration by Krishnaveni RapuruMuraliRaj M
 
Microsoft: A Waking Giant in Healthcare Analytics and Big Data
Microsoft: A Waking Giant in Healthcare Analytics and Big DataMicrosoft: A Waking Giant in Healthcare Analytics and Big Data
Microsoft: A Waking Giant in Healthcare Analytics and Big DataDale Sanders
 
Health Care System with Smart Assistant
Health Care System with Smart AssistantHealth Care System with Smart Assistant
Health Care System with Smart AssistantIRJET Journal
 
Transforming Business Operations with Blockchain
Transforming Business Operations with BlockchainTransforming Business Operations with Blockchain
Transforming Business Operations with BlockchainPerficient, Inc.
 
Hospital Management System.pptx
Hospital Management System.pptxHospital Management System.pptx
Hospital Management System.pptxFaizanShaikh907031
 
Research and Development Solutions | Accenture
Research and Development Solutions | AccentureResearch and Development Solutions | Accenture
Research and Development Solutions | Accentureaccenture
 
A short introduction into HEAT Software for tracking customer service
A short introduction into HEAT Software for tracking customer serviceA short introduction into HEAT Software for tracking customer service
A short introduction into HEAT Software for tracking customer serviceTim Wilmot
 
Microsoft: A Waking Giant In Healthcare Analytics and Big Data
Microsoft: A Waking Giant In Healthcare Analytics and Big DataMicrosoft: A Waking Giant In Healthcare Analytics and Big Data
Microsoft: A Waking Giant In Healthcare Analytics and Big DataHealth Catalyst
 
Engineering with Open Source - Hyonjee Joo
Engineering with Open Source - Hyonjee JooEngineering with Open Source - Hyonjee Joo
Engineering with Open Source - Hyonjee JooTwo Sigma
 
Public Good App House: Volunteer Management Apps for Food Security Organizations
Public Good App House: Volunteer Management Apps for Food Security OrganizationsPublic Good App House: Volunteer Management Apps for Food Security Organizations
Public Good App House: Volunteer Management Apps for Food Security OrganizationsTechSoup
 

Semelhante a Keeping brazil's medical industry safe with Micro Profile and JakartaEE - Jakarta tech talk 2020 (20)

Seattle Code Camp 2016- Role of Data Science in HHealthcare
Seattle Code Camp 2016- Role of Data Science in HHealthcareSeattle Code Camp 2016- Role of Data Science in HHealthcare
Seattle Code Camp 2016- Role of Data Science in HHealthcare
 
How BrackenData Leverages Data on Over 250,000 Clinical Trials
How BrackenData Leverages Data on Over 250,000 Clinical TrialsHow BrackenData Leverages Data on Over 250,000 Clinical Trials
How BrackenData Leverages Data on Over 250,000 Clinical Trials
 
Business ideas pitch deck - multi project - Canada
Business ideas pitch deck - multi project - CanadaBusiness ideas pitch deck - multi project - Canada
Business ideas pitch deck - multi project - Canada
 
App Transition, System Retirement, and Data Archival
App Transition, System Retirement, and Data ArchivalApp Transition, System Retirement, and Data Archival
App Transition, System Retirement, and Data Archival
 
Main zota abstract
Main zota abstractMain zota abstract
Main zota abstract
 
Creando microservicios con Java y Microprofile - Nicaragua JUG
Creando microservicios con Java y Microprofile - Nicaragua JUGCreando microservicios con Java y Microprofile - Nicaragua JUG
Creando microservicios con Java y Microprofile - Nicaragua JUG
 
Business ideas pitch deck - multi projects
Business ideas pitch deck - multi projectsBusiness ideas pitch deck - multi projects
Business ideas pitch deck - multi projects
 
CTMS Data Migration by Krishnaveni Rapuru
CTMS Data Migration  by Krishnaveni RapuruCTMS Data Migration  by Krishnaveni Rapuru
CTMS Data Migration by Krishnaveni Rapuru
 
shashank_QA_02_june_2016
shashank_QA_02_june_2016shashank_QA_02_june_2016
shashank_QA_02_june_2016
 
internship ppt.pptx
internship ppt.pptxinternship ppt.pptx
internship ppt.pptx
 
Microsoft: A Waking Giant in Healthcare Analytics and Big Data
Microsoft: A Waking Giant in Healthcare Analytics and Big DataMicrosoft: A Waking Giant in Healthcare Analytics and Big Data
Microsoft: A Waking Giant in Healthcare Analytics and Big Data
 
Health Care System with Smart Assistant
Health Care System with Smart AssistantHealth Care System with Smart Assistant
Health Care System with Smart Assistant
 
shashank_project_Mgmt
shashank_project_Mgmtshashank_project_Mgmt
shashank_project_Mgmt
 
Transforming Business Operations with Blockchain
Transforming Business Operations with BlockchainTransforming Business Operations with Blockchain
Transforming Business Operations with Blockchain
 
Hospital Management System.pptx
Hospital Management System.pptxHospital Management System.pptx
Hospital Management System.pptx
 
Research and Development Solutions | Accenture
Research and Development Solutions | AccentureResearch and Development Solutions | Accenture
Research and Development Solutions | Accenture
 
A short introduction into HEAT Software for tracking customer service
A short introduction into HEAT Software for tracking customer serviceA short introduction into HEAT Software for tracking customer service
A short introduction into HEAT Software for tracking customer service
 
Microsoft: A Waking Giant In Healthcare Analytics and Big Data
Microsoft: A Waking Giant In Healthcare Analytics and Big DataMicrosoft: A Waking Giant In Healthcare Analytics and Big Data
Microsoft: A Waking Giant In Healthcare Analytics and Big Data
 
Engineering with Open Source - Hyonjee Joo
Engineering with Open Source - Hyonjee JooEngineering with Open Source - Hyonjee Joo
Engineering with Open Source - Hyonjee Joo
 
Public Good App House: Volunteer Management Apps for Food Security Organizations
Public Good App House: Volunteer Management Apps for Food Security OrganizationsPublic Good App House: Volunteer Management Apps for Food Security Organizations
Public Good App House: Volunteer Management Apps for Food Security Organizations
 

Mais de César Hernández

7 Recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
7 Recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...7 Recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
7 Recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...César Hernández
 
Paving the road with Jakarta EE and Apache TomEE - JCON 2021
Paving the road with Jakarta EE  and Apache TomEE - JCON 2021Paving the road with Jakarta EE  and Apache TomEE - JCON 2021
Paving the road with Jakarta EE and Apache TomEE - JCON 2021César Hernández
 
7 recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
7 recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...7 recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
7 recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...César Hernández
 
Aprende, contribuye, y surfea Cloud Native Java - GuateJUG 2021
Aprende, contribuye, y surfea Cloud Native Java - GuateJUG 2021Aprende, contribuye, y surfea Cloud Native Java - GuateJUG 2021
Aprende, contribuye, y surfea Cloud Native Java - GuateJUG 2021César Hernández
 
Paving the way with Jakarta EE and Apache TomEE - JCConf
Paving the way with Jakarta EE  and Apache TomEE - JCConfPaving the way with Jakarta EE  and Apache TomEE - JCConf
Paving the way with Jakarta EE and Apache TomEE - JCConfCésar Hernández
 
Pavimentando el camino con Jakarta EE 9 y Apache TomEE
Pavimentando el camino con Jakarta EE 9 y Apache TomEE Pavimentando el camino con Jakarta EE 9 y Apache TomEE
Pavimentando el camino con Jakarta EE 9 y Apache TomEE César Hernández
 
It is easy contributing to open source - JCON 2020
It is easy contributing to open source - JCON 2020It is easy contributing to open source - JCON 2020
It is easy contributing to open source - JCON 2020César Hernández
 
It is easy contributing to Open Source - ECLIPSE CON 2020
It is easy contributing to Open Source - ECLIPSE CON 2020It is easy contributing to Open Source - ECLIPSE CON 2020
It is easy contributing to Open Source - ECLIPSE CON 2020César Hernández
 
Paving the way with Jakarta EE and apache TomEE at cloudconferenceday
Paving the way with Jakarta EE and apache TomEE at cloudconferencedayPaving the way with Jakarta EE and apache TomEE at cloudconferenceday
Paving the way with Jakarta EE and apache TomEE at cloudconferencedayCésar Hernández
 
Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0
Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0
Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0César Hernández
 
Creando microservicios con java micro profile y tomee - CUNORI 2020
Creando microservicios con java micro profile y tomee - CUNORI 2020Creando microservicios con java micro profile y tomee - CUNORI 2020
Creando microservicios con java micro profile y tomee - CUNORI 2020César Hernández
 
Paving the way with Jakarta EE and Apache TomEE - itkonekt 2020
Paving the way with Jakarta EE and Apache TomEE - itkonekt 2020Paving the way with Jakarta EE and Apache TomEE - itkonekt 2020
Paving the way with Jakarta EE and Apache TomEE - itkonekt 2020César Hernández
 
Creando microservicios con Java MicroProfile y TomEE - OGBT
Creando microservicios con Java MicroProfile y TomEE  - OGBTCreando microservicios con Java MicroProfile y TomEE  - OGBT
Creando microservicios con Java MicroProfile y TomEE - OGBTCésar Hernández
 
Creando microservicios con Java, Microprofile y TomEE - Baranquilla JUG
Creando microservicios con Java, Microprofile y TomEE - Baranquilla JUGCreando microservicios con Java, Microprofile y TomEE - Baranquilla JUG
Creando microservicios con Java, Microprofile y TomEE - Baranquilla JUGCésar Hernández
 
Es fácil contribuir al open source - Bolivia JUG 2020
Es fácil contribuir al open source - Bolivia JUG 2020Es fácil contribuir al open source - Bolivia JUG 2020
Es fácil contribuir al open source - Bolivia JUG 2020César Hernández
 
Its easy! contributing to open source - Devnexus 2020
Its easy! contributing to open source - Devnexus 2020Its easy! contributing to open source - Devnexus 2020
Its easy! contributing to open source - Devnexus 2020César Hernández
 
Conviértete en un contributor de open source con apache TomEE
Conviértete en un contributor de open source con apache TomEEConviértete en un contributor de open source con apache TomEE
Conviértete en un contributor de open source con apache TomEECésar Hernández
 
Deconstruyendo la seguridad en rest
Deconstruyendo la seguridad en restDeconstruyendo la seguridad en rest
Deconstruyendo la seguridad en restCésar Hernández
 
Open jalpa 2019 - CI y CD en la nube
Open jalpa 2019  - CI y CD en la nubeOpen jalpa 2019  - CI y CD en la nube
Open jalpa 2019 - CI y CD en la nubeCésar Hernández
 
Java EE ahora es Jakarta EE - Java Day Guatemala 2018
Java EE ahora es Jakarta EE - Java Day Guatemala 2018Java EE ahora es Jakarta EE - Java Day Guatemala 2018
Java EE ahora es Jakarta EE - Java Day Guatemala 2018César Hernández
 

Mais de César Hernández (20)

7 Recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
7 Recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...7 Recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
7 Recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
 
Paving the road with Jakarta EE and Apache TomEE - JCON 2021
Paving the road with Jakarta EE  and Apache TomEE - JCON 2021Paving the road with Jakarta EE  and Apache TomEE - JCON 2021
Paving the road with Jakarta EE and Apache TomEE - JCON 2021
 
7 recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
7 recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...7 recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
7 recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
 
Aprende, contribuye, y surfea Cloud Native Java - GuateJUG 2021
Aprende, contribuye, y surfea Cloud Native Java - GuateJUG 2021Aprende, contribuye, y surfea Cloud Native Java - GuateJUG 2021
Aprende, contribuye, y surfea Cloud Native Java - GuateJUG 2021
 
Paving the way with Jakarta EE and Apache TomEE - JCConf
Paving the way with Jakarta EE  and Apache TomEE - JCConfPaving the way with Jakarta EE  and Apache TomEE - JCConf
Paving the way with Jakarta EE and Apache TomEE - JCConf
 
Pavimentando el camino con Jakarta EE 9 y Apache TomEE
Pavimentando el camino con Jakarta EE 9 y Apache TomEE Pavimentando el camino con Jakarta EE 9 y Apache TomEE
Pavimentando el camino con Jakarta EE 9 y Apache TomEE
 
It is easy contributing to open source - JCON 2020
It is easy contributing to open source - JCON 2020It is easy contributing to open source - JCON 2020
It is easy contributing to open source - JCON 2020
 
It is easy contributing to Open Source - ECLIPSE CON 2020
It is easy contributing to Open Source - ECLIPSE CON 2020It is easy contributing to Open Source - ECLIPSE CON 2020
It is easy contributing to Open Source - ECLIPSE CON 2020
 
Paving the way with Jakarta EE and apache TomEE at cloudconferenceday
Paving the way with Jakarta EE and apache TomEE at cloudconferencedayPaving the way with Jakarta EE and apache TomEE at cloudconferenceday
Paving the way with Jakarta EE and apache TomEE at cloudconferenceday
 
Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0
Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0
Pavimentando el Camino con Jakarta EE 9 y Apache TomEE 9.0.0
 
Creando microservicios con java micro profile y tomee - CUNORI 2020
Creando microservicios con java micro profile y tomee - CUNORI 2020Creando microservicios con java micro profile y tomee - CUNORI 2020
Creando microservicios con java micro profile y tomee - CUNORI 2020
 
Paving the way with Jakarta EE and Apache TomEE - itkonekt 2020
Paving the way with Jakarta EE and Apache TomEE - itkonekt 2020Paving the way with Jakarta EE and Apache TomEE - itkonekt 2020
Paving the way with Jakarta EE and Apache TomEE - itkonekt 2020
 
Creando microservicios con Java MicroProfile y TomEE - OGBT
Creando microservicios con Java MicroProfile y TomEE  - OGBTCreando microservicios con Java MicroProfile y TomEE  - OGBT
Creando microservicios con Java MicroProfile y TomEE - OGBT
 
Creando microservicios con Java, Microprofile y TomEE - Baranquilla JUG
Creando microservicios con Java, Microprofile y TomEE - Baranquilla JUGCreando microservicios con Java, Microprofile y TomEE - Baranquilla JUG
Creando microservicios con Java, Microprofile y TomEE - Baranquilla JUG
 
Es fácil contribuir al open source - Bolivia JUG 2020
Es fácil contribuir al open source - Bolivia JUG 2020Es fácil contribuir al open source - Bolivia JUG 2020
Es fácil contribuir al open source - Bolivia JUG 2020
 
Its easy! contributing to open source - Devnexus 2020
Its easy! contributing to open source - Devnexus 2020Its easy! contributing to open source - Devnexus 2020
Its easy! contributing to open source - Devnexus 2020
 
Conviértete en un contributor de open source con apache TomEE
Conviértete en un contributor de open source con apache TomEEConviértete en un contributor de open source con apache TomEE
Conviértete en un contributor de open source con apache TomEE
 
Deconstruyendo la seguridad en rest
Deconstruyendo la seguridad en restDeconstruyendo la seguridad en rest
Deconstruyendo la seguridad en rest
 
Open jalpa 2019 - CI y CD en la nube
Open jalpa 2019  - CI y CD en la nubeOpen jalpa 2019  - CI y CD en la nube
Open jalpa 2019 - CI y CD en la nube
 
Java EE ahora es Jakarta EE - Java Day Guatemala 2018
Java EE ahora es Jakarta EE - Java Day Guatemala 2018Java EE ahora es Jakarta EE - Java Day Guatemala 2018
Java EE ahora es Jakarta EE - Java Day Guatemala 2018
 

Último

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 

Último (20)

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 

Keeping brazil's medical industry safe with Micro Profile and JakartaEE - Jakarta tech talk 2020

  • 1. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Rafael Guimarães, César Hernández Keeping Brazil’s Medical Industry Safe with MicroProfile
  • 2. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk SPEAKERS Rafael Guimarães ● Software Engineer ● GBR Systems. ● +25 experience in Medical and Judicial areas in Brazil. ● University faculty professor. ● Focused on distributed software architectures. César Hernández ● Senior Software Engineer at Tomitribe ● Oracle Java Champion and Groundbreaker Ambassador ● Duke’s Choice Award 2016, 2017 ● Oracle Certified Professional ● +14 experience with Java EE ● Apache TomEE and Eclipse Committer, Microprofile Contributor. ● Open Source advocate, writer, teacher and public speaker
  • 3. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Agenda ● Brazilian health care system Overview ● Base System ● Boosting Brazilian healthcare systems with Jakarta EE, Eclipse MicroProfile and Apache TomEE ● Contribution to the COVID-19 Response ● Lessons Learned
  • 4. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Brazilian health care system Overview
  • 5. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Brazilian health care system Overview (behind China, India, United States, Indonesia, Pakistan) source: http://cnes.datasus.gov.br http://fiscalizacao.cfm.org.br/ https://population.un.org/wpp/Download/Standard/Population/ (behind Russia, Canada, China, United States)
  • 6. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Brazilian health care system Overview source: http://cnes.datasus.gov.br http://fiscalizacao.cfm.org.br/ https://population.un.org/wpp/Download/Standard/Population/
  • 7. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk source: http://cnes.datasus.gov.br http://fiscalizacao.cfm.org.br/ https://population.un.org/wpp/Download/Standard/Population/ Brazilian health care system Overview
  • 8. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Brazilian health care system Overview
  • 9. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Medical Practice! Brazilian health care system - Actors Medicine Council Government Health Departments Control Regulation Policies Sanitary Surveillance Licences Records Professional Discipline Ethical Judgment Licence to work Keep Records Inspections Complains Guiding Integrations Information Sharing Medicine Schools & Residency Programs Learning, Training, Specializing Counselors & Inspectors Health Service Providers Doctors Patients
  • 10. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Brazilian health care system - Challenges ● Large and Complex ○ Inequalities ○ Difficult governance ○ 30 different Medical Specialties, 20 types of Health Service Providers ○ High frequency of Policy and Rule changes ● Difficult medicine practice ○ Poor infrastructure - high risk ○ Proliferation of medical schools - bad quality professionals ● Incomplete institutional information exchange ○ Diversity of technologies, legacy systems and standards
  • 11. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Brazilian health care system - Challenges ● How to make good quality inspection reports, with agility, especially considering the high amount of laws, recommendations, policies and standards? And to create good statistics of those reports ? ● How to access legacy system data of other government departments without bureaucracy, to check licences, records and information integrity ? Is the data safe, monitored, fast, reliable ? ● What could be done to facilitate interaction between the doctors and the council?
  • 12. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Brazilian health care system - Challenges ● Which service providers or doctors are working irregularly? ● What about medical advertising, are doctors respecting each other? Are their advertisements deceiving patients to patients ? (Or even lying !?!) ● What if a patient goes to a clinic doing an endoscopic procedure, which needs sedation, and he has a bad reaction to the anesthetic, and ends up dying? ○ Did the life support equipment work properly ? Did the doctor do the procedure correctly? ○ What is the real cause? Should the council revoke the doctor's work license? ○
  • 14. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk About GBR ● Founded in 2008 ● Consulting, Software Engineering & Architecture, Training ● Applications: ○ support Inspectors and Counselors in their principal job - Professional Discipline, Guiding, Inspections ○ online services that control the Doctors and Service Providers in their “life cycle” within Councils ○ to do quality auditing and certification of medical schools
  • 15. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Base system Federal Council - National Inspections Platform ● support Inspectors and Counselors in their principal job - Professional Discipline, Guiding, Inspections ● Modules: ○ Inspections Control and Scheduling ○ Inspection execution - checklists, images, notifications, dynamic forms. ○ Reports, Statistics
  • 16. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Base system Regional Council - Online Services ● Support Doctors and Health Service Providers (as Technical Director) in their “life cycle” within Council - from start of Medicine Practice to retirement. ● More than 40 types of services: ○ First Registration, Transfers States, Secondary Licence, Fee payment, Certificates, Profile update, Renew Licence, etc. ○ Tools for back office employees
  • 17. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Base system Federal Council - Accreditation Platform SAEME ● Support Counselors and the Education Medical Association to do quality auditing and certification of medical schools ● Covers whole process of auditing and evaluation ● Recognized by World Federation for Medical Education
  • 18. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Base system Server ● JAVA EE 6 ● Jboss7 ● Tomcat 6, 7 Client ● Adobe Flex ● Adobe Air ● Angular JS 1 Data Integration ● Kettle ON-PREMISSE!
  • 19. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk About GBR coverage
  • 21. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Backend Architecture Roadmap ● Improve overall system architecture ○ Java EE 6 → Jakarta EE8 ○ Security ○ Fault Tolerance ○ Performance ○ Monitoring ● API Gateway ○ Secure OAuth 2.0 + HTTP signatures ○ Microservice Monitoring and routing ○ Standard Integrations - RMI, SOAP, → REST ● Cloud Native ○ Different cloud providers ● Provide APIs to other institutions
  • 22. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Boosting Brazilian healthcare systems with Jakarta EE Eclipse MicroProfile and Apache TomEE
  • 23. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Jakarta EE (formerly known as Java EE)
  • 24. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Eclipse foundation https://www.eclipse.org/membership/documents/eclipse-foundation-overview.pdf 360+ Projects 275+ Members 1550+ Committers 195M+ Lines of code 15 Years 30 Members
  • 25. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Eclipse foundation, EE4J, Java EE, and Jakarta EE
  • 26. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Eclipse MicroProfile
  • 27. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Eclipse MicroProfile ● An open-source community specification ● Focus on Enterprise Java microservices ● Generates: SPEC, API, and TCK. ● https://microprofile.io ● Implemented by different vendors.
  • 28. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Eclipse MicroProfile MicroProfile 3.3 JAX-RS 2.1JSON-P 1.1CDI 2.0 Config Fault Tolerance JWT Propagation HealthMetrics Open Tracing Open API Rest Client JSON-B 1.0
  • 30. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk ● Apache Tomcat + Java EE = Apache TomEE ● Built from Apache components ● MicroProfile compliant ● Footprint: 30MB zip, 100~MB memory ● JakartaEE 9 WIP ● tomee.apache.org
  • 31. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Apache TomEE TomEE JAX-RS Microprofile Java Server Pages (JSP) Java Server Faces (JSF) Java Transaction API (JTA) Bean Validation Enterprise JavaBeansJavaMail API Java API for RESTful Web Services (JAX-RS) Java Persistence API (JPA) Contexts and Dependency Injection (CDI) Java Servlets Java Authentication and Authorization Service (JAAS) Java Authorization Contract for Containers (JACC) http://tomee.apache.org/comparison.html
  • 32. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk http://tribestream.io/
  • 33. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Lessons learned so far in the journey
  • 34. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk MicroProfile Config Before ● Sensitive information within project files ● Complex properties customizations ● Infrastructure environment management was painful
  • 35. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Config After ● Sensitive information decoupled from the application code ● Container friendly ● Easy hierarchy for environment variables vs maven -D ● Allow easy container horizontal scaling
  • 36. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk MP Configuration @Inject @ConfigProperty(name = "log.enabled", defaultValue = "true") private Boolean logEnabled; @Inject private JsonWebToken token; public void info(String message) { if (logEnabled) { if (token == null || !token.claim("email").isPresent()) { logger.info(message); } else { logger.info(token.claim("email").get() + " - " + message); } } }
  • 37. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Before ● Manual process and lack of coverage ● Disperse monitoring ● Hard to trace ● “It’s slow”, “a glitch”, “restarts” ● Reactive most of the time Health Check + Metrics
  • 38. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk After ● JSON base alerts are now centralized and provide unified notifications ● Custom rules base on standard status ● Proactiveness since the last 3 months ● Improves user satisfaction Health Check + Metrics
  • 39. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Microprofile HealthCheck @Health @ApplicationScoped public class DatabaseHealthCheck implements HealthCheck { @PersistenceContext(unitName = "crvirtual_unit") protected EntityManager manager; @Override public HealthCheckResponse call() { HealthCheckResponseBuilder responseBuilder = HealthCheckResponse.named("oracle"); try { String result = (String) manager.createNativeQuery("select * from dual").getSingleResult(); if(result.equals("X")){ return responseBuilder.up().build(); } else { return responseBuilder.down().build(); } } catch (Exception e) { return responseBuilder.withData("error", e.getMessage()).down().build(); } } }
  • 40. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Microprofile HealthCheck
  • 41. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk JWT Authentication Before: ● Basic HTTP Auth with session management ● Challenges for microservices ○ New stateless security requirement ○ Authentication and Authorization between microservices ○ Overhead and single point of failure
  • 42. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk JWT Authentication After: ● OAuth 2.0 JWT ○ Stateless security ○ Authentication and Authorization between microservices ○ State was kept on the server and pointer on the client side
  • 43. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Microprofile JWT /** Microprofile JWT **/ @Inject private JsonWebToken token; /** Microprofile Config **/ @Inject @ConfigProperty(name = "log.enabled", defaultValue = "true") private Boolean logEnabled; private Logger logger = Logger.getLogger(CrVirtualLogger.class.getName()); public void info(String message) { if (logEnabled) { if (token == null || !token.claim("email").isPresent()) { logger.info(message); } else { logger.info(token.claim("email").get() + " - " + message); } } }
  • 44. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Authentication ● Protected Access into Medical Knowledge databases
  • 45. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Authentication ● Protected Access into Federal Companies Database
  • 46. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Rest Client Before ● JAX-RS Client ● No type-safe ● Service needed to be understood ● Request needed to be built by hand every time ● Not the best reusability of the code
  • 47. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Rest Client After ● Type-safe approach ● Usage of interfaces to call the services ● Header propagation and handling made easy ● Smooth JWT propagation
  • 48. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk @Dependent @RegisterRestClient public interface SerproSearchClient { @POST @Consumes(MediaType.APPLICATION_JSON) public Response getToken(String body); @GET public Response searchCompany(@HeaderParam("Authorization") String key, @HeaderParam("Accept") String accept); } Microprofile RestClient
  • 49. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Microprofile RestClientimport org.eclipse.microprofile.rest.client.inject.RegisterRestClient; import javax.enterprise.context.Dependent; import javax.ws.rs.*; import javax.ws.rs.core.MediaType; import java.util.List; @RegisterRestClient @Path("api/doctors") public interface DoctorResourceClient { @GET @Path("{id}") @Produces(MediaType.APPLICATION_JSON) Doctor find(@PathParam("id") Long id); @GET List<Doctor> getDoctors(); @POST @Consumes("application/json") Doctor addDoctor(Doctor doctor);
  • 50. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Microprofile RestClientimport org.superbiz.moviefun.mpclient.DoctorResourceClient; @Inject @RestClient private DoctorResourceClient doctorResourceClient; public void printAllDoctors(){ List<Doctor> doctors = doctorResourceClient.getDoctors(); for (Doctor doctor : doctor) { LOGGER.info(doctor.toString()); } } public void addNewDoctor() { Doctor newDoctor = new Doctor ("7","Doctor 007."); doctorResourceClient.addDoctor(newDoctor); }
  • 51. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Before ● Legacy system was not well document ● Documentation not fully aligned with master code ○ Duplication of code ○ Design first approach not trustable OpenAPI
  • 52. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk OpenAPI After ● Standard visibility ● Find duplication of code ● Allowed API design approach ● swagger-ui
  • 53. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk OpenAPI @Operation(description = "To search Doctors by their record number") @APIResponses({ @APIResponse(responseCode = "200", description = "Success", content = @Content(schema = @Schema(implementation = User.class))), @APIResponse(responseCode = "400", description = "Bad Request") }) @GET @Produces(MediaType.APPLICATION_JSON) @Path("{recordNumber}") public Response getDoctor(@PathParam("recordNumber") Long recordNumber) { try { logger.info("searching Doctors by record number"); return Response.ok(dao.getByRecordNumber(recordNumber)).build(); } catch (Exception e) { throw new WebApplicationException( Response.status(Response.Status.BAD_REQUEST).entity(new ErrorMessages(e.getMessage())).build()); } }
  • 55. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk COVID 19 response
  • 56. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Telemedicine Support - Doctor's Prescriptions System ● 5 days development ○ REST API ● Some integrations ○ Doctor's space login, Federal Companies Database, Pharmacies Database, Google Authenticator (two factor auth) ● Sensitive data protection ○ Attribute Converter Medical Practice! Digital Prescription Digital Prescription Doctor Patient Pharmacy Receive / Validate Emit
  • 57. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Telemedicine Support - Doctor's Prescriptions System Digital Prescription
  • 58. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Telemedicine Support - Doctor's Prescriptions System
  • 59. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Telemedicine Support - Doctor's Prescriptions System ● Almost 20K prescriptions -- since Apr 8th. ● 65k validations
  • 60. @GuimaraesSv @CesarHgt @tomitribeJakarta Tech Talk Thank you Contact us @TOMITRIBE Rafael Guimarães, César Hernández Keeping Brazil’s Medical Industry Safe with MicroProfile