This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
MCT (Measure Calculation Tool) is a FHIR-based platform for calculating and reporting digital quality measures (dQMs). It has a React frontend and a Java Spring Boot backend that integrates with HAPI FHIR servers acting as healthcare facilities. This is a prototype — not production-ready (no auth, client can modify reports before submission).
README.md- General project information and quick guides.docs/- Markdown files organized by topic that provide in-depth information that's not suitable forREADME.mdCHANGE_MANAGEMENT.md- Guide and outlines for contributing to the project.
frontend/— React 18 SPA using MUI v5, Redux Toolkit for state, React Router v6, Formik+Yup for formsjava/— Spring Boot 3.2.5 backend (Java 17) running on port 8088, using HAPI FHIR 8.8.0 and CQL Evaluator 2.4.0 (pending migration to clinical-reasoning 4.4.x)docker/— Docker Compose orchestration for all servicesbin/— Helper scripts for deployment and data loading
api/— REST endpoints under/mct/*: FacilityRegistration, Gather, MeasureConfiguration, ReceivingSystemConfiguration, GeneratePatientData, PatientSelector, Submitservice/— Business logic (11 services covering facility management, measure evaluation, patient data, validation)config/— Spring/FHIR configuration including CORS (allows all origins)processor/— Data processing logicvalidation/— Input validation
components/— Reusable UI componentspages/— Dashboard page viewsstore/— Redux reducersconfig.js— API endpoint configuration (backend atlocalhost:8088, FHIR servers)
java/src/main/resources/application.yaml— HAPI FHIR config, IG dependencies (QI-Core 4.1.1, US Core 3.1.1), terminology serverjava/src/main/resources/configuration/— Measures, facilities, test bundles, terminology, receiving system configs
cd docker
docker compose up --build # Starts frontend(:3000), backend(:8088), facility-a(:8080), facility-b(:8082)
./bin/load_local_data.sh # Load test patient data into FHIR serversRequires Docker with at least 8 GB RAM allocated.
cd frontend
yarn install
yarn start # Dev server at localhost:3000
yarn build # Production build
yarn lint # ESLint
yarn test # Jest + React Testing Library
yarn test-ci # CI test modecd java
mvn spring-boot:run # Start backend at localhost:8088
mvn test # Run JUnit tests
mvn clean package -DskipTests # Build JAR without testsPOST java/src/main/resources/configuration/test-bundles/facility-a-bundle.json to localhost:8080/fhir
POST java/src/main/resources/configuration/test-bundles/facility-b-bundle.json to localhost:8082/fhir
- Frontend: Jest + React Testing Library. Config in
frontend/src/setupTests.js. - Backend: 4 test classes in
java/src/test/java/— MeasureConfigurationTest, FacilityRegistrationTest, ReceivingSystemConfigurationTest, GatherOperationTest.
- Frontend: ESLint (babel parser, prettier integration) + Prettier (single quotes, 140 print width, no trailing commas). See
frontend/.eslintrcandfrontend/.prettierrc. - Backend: Standard Java/Spring conventions.
Measure evaluation runs ~1 second per patient (~100s for single facility, ~200s for dual facility with test data).