How livdenner/clinicalstudypb-project works
ClinicalStudyPB is a clinical-study management system: researchers configure studies and protocols, then coordinators recruit candidates, assess eligibility, record simulated consent, and include eligible candidates within study limits. The web app uses the REST API with JWT; the backend owns persistence. The README describes the mobile app as an initial two-screen navigation shell, not an integrated workflow. Several web pages and backend controllers were not sampled, so the graph preserves documented capabilities but omits unverified call paths.
Main entry points: clinicalstudypb Backend REST API · StudyService.java Study lifecycle · ParticipantService.java Participant inclusion · SimulatedConsentService.java Simulated consent
Components 24
User applications
- Web application
web/src - Web API client
web/src/services/api/apiClient.ts - Mobile shell
mobile/src/app - Mobile API client
mobile/src/services/api/apiClient.ts
Identity and users
- Authentication
backend/src/main/java/clinicalstudypb/auth/application/AuthService.java - User management
backend/src/main/java/clinicalstudypb/users/application/UserService.java - User repository
backend/src/main/java/clinicalstudypb/users/infrastructure/UserRepository.java
Study protocol
- Study lifecycle
backend/src/main/java/clinicalstudypb/studies/application/StudyService.java - Study repositories
backend/src/main/java/clinicalstudypb/studies/infrastructure - Eligibility criteria
backend/src/main/java/clinicalstudypb/criteria/application/StudyCriterionService.java - Planned visits
backend/src/main/java/clinicalstudypb/visits/application/PlannedVisitService.java - Visit endpoints
backend/src/main/java/clinicalstudypb/visits/api/PlannedVisitController.java - Visit repository
backend/src/main/java/clinicalstudypb/visits/infrastructure/PlannedVisitRepository.java
Recruitment
- Candidate management
backend/src/main/java/clinicalstudypb/candidates/application/CandidateService.java - Eligibility evaluation
backend/src/main/java/clinicalstudypb/candidates/application/EligibilityEvaluationService.java - Eligibility responses
backend/src/main/java/clinicalstudypb/candidates/application/EligibilityResponseQueryService.java - Simulated consent
backend/src/main/java/clinicalstudypb/consent/application/SimulatedConsentService.java - Participant inclusion
backend/src/main/java/clinicalstudypb/participants/application/ParticipantService.java - Participant queries
backend/src/main/java/clinicalstudypb/participants/application/ParticipantQueryService.java - Participant repository
backend/src/main/java/clinicalstudypb/participants/infrastructure/ParticipantRepository.java
Other components
- Researcher
- Coordinator
- PostgreSQL
- Backend REST API
backend/src/main/java/clinicalstudypb
Connections 31
- Researcher → Web application: manages studies
README.md - Coordinator → Web application: recruits candidates
README.md - Web application → Web API client: sends requests
web/src/pages/estudos/useDetalhesEstudo.ts - Web API client → Backend REST API: calls REST
README.md - Backend REST API → Authentication: authenticates
backend/src/main/java/clinicalstudypb/auth/application/AuthService.java - Backend REST API → User management: manages users
backend/src/main/java/clinicalstudypb/auth/application/AuthService.java - Backend REST API → Study lifecycle: manages studies
backend/src/main/java/clinicalstudypb/visits/application/PlannedVisitService.java - Backend REST API → Eligibility criteria: configures criteria
backend/src/main/java/clinicalstudypb/candidates/application/EligibilityEvaluationService.java - Backend REST API → Visit endpoints: configures visits
backend/src/main/java/clinicalstudypb/visits/api/PlannedVisitController.java - Visit endpoints → Planned visits: delegates to
backend/src/main/java/clinicalstudypb/visits/api/PlannedVisitController.java - Backend REST API → Candidate management: manages candidates
backend/src/main/java/clinicalstudypb/consent/application/SimulatedConsentService.java - Backend REST API → Eligibility evaluation: evaluates eligibility
backend/src/main/java/clinicalstudypb/candidates/application/EligibilityEvaluationService.java - Backend REST API → Simulated consent: records consent
backend/src/main/java/clinicalstudypb/participants/application/ParticipantService.java - Backend REST API → Participant inclusion: includes candidates
backend/src/main/java/clinicalstudypb/participants/api/ParticipantController.java - Study lifecycle → Study repositories: persists studies
backend/src/main/java/clinicalstudypb/studies/application/StudyService.java - Study lifecycle → User management: validates researcher
backend/src/main/java/clinicalstudypb/studies/application/StudyService.java - Eligibility criteria → Study lifecycle: checks protocol
backend/src/main/java/clinicalstudypb/criteria/application/StudyCriterionService.java - Eligibility criteria → Eligibility responses: checks responses
backend/src/main/java/clinicalstudypb/criteria/application/StudyCriterionService.java - Planned visits → Study lifecycle: checks study
backend/src/main/java/clinicalstudypb/visits/application/PlannedVisitService.java - Planned visits → Visit repository: persists visits
backend/src/main/java/clinicalstudypb/visits/application/PlannedVisitService.java - User management → User repository: persists users
backend/src/main/java/clinicalstudypb/users/application/UserService.java - Authentication → User management: looks up accounts
backend/src/main/java/clinicalstudypb/auth/application/AuthService.java - Candidate management → Study lifecycle: checks study
backend/src/main/java/clinicalstudypb/candidates/application/CandidateService.java - Simulated consent → Candidate management: checks candidate
backend/src/main/java/clinicalstudypb/consent/application/SimulatedConsentService.java - Simulated consent → Study lifecycle: checks study
backend/src/main/java/clinicalstudypb/consent/application/SimulatedConsentService.java - Participant inclusion → Study lifecycle: checks study
backend/src/main/java/clinicalstudypb/participants/application/ParticipantService.java - Participant inclusion → Candidate management: checks candidate
backend/src/main/java/clinicalstudypb/participants/application/ParticipantService.java - Participant inclusion → Simulated consent: locks consent
backend/src/main/java/clinicalstudypb/participants/application/ParticipantService.java - Participant queries → Participant repository: queries participants
backend/src/main/java/clinicalstudypb/participants/application/ParticipantQueryService.java - Backend REST API → PostgreSQL: persists data
README.md - Mobile shell → Mobile API client: uses client