R-TF-012-035 — Software Test Report
Document Information
| Field | Value |
|---|---|
| Product / System | Legit.Health Plus |
| Release version | 1.1.0.0 |
| Commit SHA | 5f8549e02f3f362db8930906cf6dfdedf232119a |
| Test management system | TestRail — Project “Medical Device”, Suite “Master” |
| Prepared by | Gerardo Fernández Moreno |
| Date | 2026-01-19 |
| Reviewed/Approved by | Alejandro Carmena |
| Review/Approval date | 2026-01-19 |
Executive Summary
This report summarizes the verification activities performed for Legit.Health Plus version 1.1.0.0. The verification campaign confirmed that all software requirements have been met and the system is ready for clinical production.
- Verification Status: 100% Passed. All test cases in the verification and commissioning suites reached "Passed" status.
- Deviations: Zero (0) deviations identified during commissioning.
- Standards Compliance: Verification was conducted according to ISO 62304 and ISO 82304-1.
Test Environment and Levels
Verification was performed across the following levels as defined in the Software Test Plan (R-TF-012-033):
| Level | Environment | Focus |
|---|---|---|
| Unit Testing | Development | Low-level logic verification of software units. |
| Integration Testing | Development | Interface verification between internal services. |
| System Verification | Staging/QA | Requirements-based functional, clinical, and security verification. |
| Commissioning | Production | Operational readiness and "as-installed" verification. |
Preproduction Verification Environment Specification
For the AI Models Integration Verification (Run R18), the testing was conducted using a decoupled Client-Server architecture. The explicit environment specifications used to generate the test results are as follows:
- System Under Test (Preproduction Cloud Infrastructure)
- Domain:
md-prototype.legit.health - Compute Instance: AWS EC2
g6.8xlarge(NVIDIA L4 Tensor Core GPUs, 32 vCPUs, 130 GiB RAM). - Storage: 2500 GB EBS Volume.
- Data Persistence: Amazon DynamoDB utilizing 4 dedicated tables (
legit_health_plus_api_gateway_users,legit_health_plus_api_gateway_organizations,legit_health_plus_api_gateway_lockouts,legit_health_plus_api_gateway_calls). - Configuration: Environment variables matching the Production baseline.
- Container Runtime: Docker, orchestrating the
api-gatewayand 58 specific expert AI models (e.g.,condition-classifier:1.0.0,erythema-classifier:1.0.0). - Test Dataset: Immutable image dataset snapshot stored at
s3://legit-health-plus/software-tests/v1.1.0.0/integration-verification-dataset/to ensure absolute reproducibility.
- Test Execution Environment (Local Client)
- Hardware: MacBook Pro (Apple Silicon M1).
- Operating System: macOS 26.2
- Runtime: Python 3.10 utilizing the
requestslibrary. - Test Software: Custom integration script (
Legit-Health/medical-device-integration-verification-tester, Commit SHA:a9b3209cafa65c0ac176d8c9e141657733786c5a) executing over HTTPS.
Detailed Results — Development Verification
Regulatory objective: Confirm that the software units and internal integrations perform as specified prior to system-level testing (ISO 62304 §5.5, §5.6).
Test artifacts are organized per component, with each test run identified by timestamp and git commit hash for full traceability. Evidence includes JUnit XML test reports, coverage reports (XML, JSON, HTML), and metadata files recording the test environment.
Software Unit Verification (Unit Testing)
- Result: Passed.
- Evidence: s3://legit-health-plus/software-tests/v1.1.0.0/01_development_verification/unit_tests/
| Component | Status | Tests | Failed | Line Coverage | Duration |
|---|---|---|---|---|---|
| api_gateway | Passed | 732 | 0 | 94.5% | 4.7s |
| control_plane | Passed | 83 | 0 | 98.0% | 1.8s |
| report_builder | Passed | 845 | 0 | 95.7% | 2.1s |
| orchestrator | Passed | 255 | 0 | 97.5% | 1.0s |
| condition_classifier | Passed | 818 | 0 | 90.6% | 11.6s |
| essentials | Passed | 216 | 0 | 86.6% | 2.4s |
| expert_core | Passed | 474 | 0 | 78.7% | 1.3s |
| Total | 3,423 | 0 | 24.9s |
Each component directory contains:
test_results/junit.xml— Test case enumeration and pass/fail statuscoverage/— Line and branch coverage reports (XML, JSON, HTML)metadata.json— Version, commit SHA, timestamp, and environment details
Software Integration Verification (Integration Testing)
- Result: Passed.
- Evidence: s3://legit-health-plus/software-tests/v1.1.0.0/01_development_verification/integration_tests/
| Component | Status | Tests | Failed | Duration |
|---|---|---|---|---|
| api_gateway | Passed | 358 | 0 | 27.4s |
| control_plane | Passed | 83 | 0 | 3.5s |
| report_builder | Passed | 138 | 0 | 1.7s |
| orchestrator | Passed | 106 | 0 | 1.4s |
| condition_classifier | Passed | 211 | 0 | 7.1s |
| expert_core | Passed | 226 | 0 | 4.1s |
| Total | 1,122 | 0 | 45.2s |
Each component directory contains:
test_results/junit.xml— Test case enumeration and pass/fail statusmetadata.json— Version, commit SHA, timestamp, and environment details
Detailed Results — System Verification
This section contains the results of the requirements verification performed in the controlled Staging environment.
| Test Case Id | Test Case Title | Test Id | Test URL | Status |
|---|---|---|---|---|
| C50 | Verify the API service accepts incoming HTTP requests on the designated network port | T105 | View | ✅ |
| C62 | Verify API returns 200 HTTP status codes for successful requests | T106 | View | ✅ |
| C68 | Verify API processes JSON requests and returns JSON responses with correct Content-Type headers | T107 | View | ✅ |
| C77 | Verify successful user authentication and token generation via the POST /auth/login endpoint | T109 | View | ✅ |
| C73 | Verify retrieval and filtering of clinical signs data via /clinical/severity-experts endpoint | T108 | View | ✅ |
| C106 | Verify API endpoints are accessible via URL paths prefixed with the major and minor version identifier | T110 | View | ✅ |
| C110 | Verify the API returns HTTP 413 when the request body exceeds the configured maximum size | T111 | View | ✅ |
| C124 | Verify POST /clinical/severity-assessment returns quantified results for valid image and sign list | T112 | View | ✅ |
| C128 | Verify the diagnosis-support endpoint accepts valid images and returns diagnostic analysis | T113 | View | ✅ |
| C162 | Verify simultaneous availability and processing of requests across distinct API versions | T114 | View | ✅ |
| C330 | Verify API rejects malformed inputs with standardized 422 Unprocessable Entity responses | T115 | View | ✅ |
| C331 | Verify API returns sanitized error responses with appropriate HTTP status codes and no internal details | T116 | View | ✅ |
| C454 | Verify API returns 401 HTTP status codes for wrong login requests | T272 | View | ✅ |
| C455 | Verify API returns 422 HTTP status code when invalid data is submitted | T273 | View | ✅ |
| C456 | Verification of controlled 503 response and graceful degradation during downstream service failure. | T300 | View | ✅ |
| C169 | Verify health check endpoint returns unhealthy when some service is unavailable | T121 | View | ✅ |
| C46 | Verify the public health endpoint returns HTTP 200 and status OK when operational | T118 | View | ✅ |
| C66 | Verify retrieval of mandatory legal information, UDI, and regulatory metadata via API | T119 | View | ✅ |
| C543 | Verify that the eIFU is reachable, accessible and navigable via the link provided on the electronic label | T384 | View | ✅ |
| C159 | Verify availability of OpenAPI specification and interactive documentation endpoints | T120 | View | ✅ |
| C255 | Verify API returns aggregated ICD probability distribution with structured code details in studyAggregate array | T122 | View | ✅ |
| C256 | Verify response includes per-image ICD probabilities and heat maps for the top five categories | T123 | View | ✅ |
| C258 | Verify response includes normalized entropy score between 0 and 1 in findings | T125 | View | ✅ |
| C260 | Verify report response includes highPriorityReferral score within riskMetrics object | T127 | View | ✅ |
| C261 | Verify report response includes malignantConditionProbability score within riskMetrics object | T128 | View | ✅ |
| C262 | Verify report response includes pigmentedLesion score within riskMetrics object | T129 | View | ✅ |
| C263 | Verify report response includes anyConditionProbability score within riskMetrics object | T130 | View | ✅ |
| C264 | Verify report response includes urgentReferral score within riskMetrics object | T131 | View | ✅ |
| C265 | Verify diagnosis workflow returns ranked ICD-11 codes, binary indicators, and explainability maps for valid images | T132 | View | ✅ |
| C266 | Verify epithelial tissue classification returns right presence prediction and confidence score | T133 | View | ✅ |
| C267 | Verify API returns Hurley stage and inflammatory status with associated probabilities for valid image input | T134 | View | ✅ |
| C268 | Verify tissue wound bed necrotic classification returns right presence prediction and confidence score | T135 | View | ✅ |
| C269 | Verify pustule classification returns right intensity and confidence | T136 | View | ✅ |
| C270 | Verify inflammatory nodular lesion detector return correct counts and bounding boxes for drainning tunnels | T137 | View | ✅ |
| C271 | Verify wound borders delimited classification returns right presence prediction and confidence score | T138 | View | ✅ |
| C272 | Verify wound exudation serous classification returns right presence prediction and confidence score | T139 | View | ✅ |
| C274 | Verify wound exudation purulent classification returns right presence prediction and confidence score | T141 | View | ✅ |
| C275 | Verify wound maceration segmentation analysis returns segmentation masks and the right percentage of surface affected | T142 | View | ✅ |
| C276 | Verify erythema classification returns right intensity and confidence | T143 | View | ✅ |
| C277 | Verify crusting classification returns right intensity and confidence | T144 | View | ✅ |
| C278 | Verify thickened wound borders classification returns right presence prediction and confidence score | T145 | View | ✅ |
| C279 | Verify induration classification returns right intensity and confidence | T146 | View | ✅ |
| C280 | Verify hair loss segmentation analysis returns segmentation masks and the right percentage of surface affected | T147 | View | ✅ |
| C281 | Verify wound perilesional erythema classification returns right presence prediction and confidence score | T148 | View | ✅ |
| C282 | Verify wound stage classification returns right score and confidence metrics from a valid wound image | T149 | View | ✅ |
| C283 | Verify erythema segmentation analysis returns segmentation masks and the right percentage of surface affected | T150 | View | ✅ |
| C284 | Verify lichenification classification returns right intensity and confidence | T151 | View | ✅ |
| C285 | Verify wound affected tissues intact classification returns right presence prediction and confidence score | T152 | View | ✅ |
| C286 | Verify API returns follicle count, bounding boxes, and confidence scores for a valid scalp image | T153 | View | ✅ |
| C287 | Verify wound borders indistinguishable classification returns right presence prediction and confidence score | T154 | View | ✅ |
| C288 | Verify wound affected tissues subcutaneous classification returns right presence prediction and confidence score | T155 | View | ✅ |
| C289 | Verify wound orthopedic material segmentation analysis returns segmentation masks and the right percentage of surface affected | T156 | View | ✅ |
| C290 | Verify wound borders damaged classification returns right presence prediction and confidence score | T157 | View | ✅ |
| C291 | Verify wound biofilm material segmentation analysis returns segmentation masks and the right percentage of surface affected | T158 | View | ✅ |
| C292 | Verify xerosis classification returns right intensity and confidence | T159 | View | ✅ |
| C293 | Verify wound granulation segmentation analysis returns segmentation masks and the right percentage of surface affected | T160 | View | ✅ |
| C294 | Verify wound bone segmentation analysis returns segmentation masks and the right percentage of surface affected | T161 | View | ✅ |
| C295 | Verify swelling classification returns right intensity and confidence | T162 | View | ✅ |
| C296 | Verify wound exudation serous classification returns right presence prediction and confidence score | T163 | View | ✅ |
| C297 | Verify wound affected tissues muscle classification returns right presence prediction and confidence score | T164 | View | ✅ |
| C298 | Verify skin segmentation analysis returns segmentation masks and the right percentage of surface affected | T165 | View | ✅ |
| C299 | Verify hive detector return correct counts and bounding boxes for hives | T166 | View | ✅ |
| C300 | Verify wound biofilm tissue classification returns right presence prediction and confidence score | T167 | View | ✅ |
| C302 | Verify tissue wound bed slough classification returns right presence prediction and confidence score | T169 | View | ✅ |
| C303 | Verify desquamation classification returns right intensity and confidence | T170 | View | ✅ |
| C304 | Verify hypopigmentation segmentation analysis returns segmentation masks and the right percentage of surface affected | T171 | View | ✅ |
| C305 | Verify wound borders diffused classification returns right presence prediction and confidence score | T172 | View | ✅ |
| C306 | Verify wound bed segmentation analysis returns segmentation masks and the right percentage of surface affected | T173 | View | ✅ |
| C307 | Verify oozing classification returns right intensity and confidence | T174 | View | ✅ |
| C308 | Verify wound affected tissues bone classification returns right presence prediction and confidence score | T175 | View | ✅ |
| C309 | Verify acneiform detector return correct counts and bounding boxes for papules, pustules, spots | T176 | View | ✅ |
| C310 | Verify AWOSI classification returns right score and confidence metrics from a valid wound image | T177 | View | ✅ |
| C311 | Verify tissue wound bed closed classification returns right presence prediction and confidence score | T178 | View | ✅ |
| C312 | Verify wound perilesional maceration classification returns right presence prediction and confidence score | T179 | View | ✅ |
| C313 | Verify nail lesion segmentation analysis returns segmentation masks and the right percentage of surface affected | T180 | View | ✅ |
| C314 | Verify excoriation classification returns right intensity and confidence | T181 | View | ✅ |
| C315 | Verify wound necrosis segmentation analysis returns segmentation masks and the right percentage of surface affected | T182 | View | ✅ |
| C316 | Verify hyperpigmentation segmentation analysis returns segmentation masks and the right percentage of surface affected | T183 | View | ✅ |
| C317 | Verify wound bloody exudation classification returns right presence prediction and confidence score | T184 | View | ✅ |
| C318 | Verify wound exudation fibrinous classification returns right presence prediction and confidence score | T185 | View | ✅ |
| C319 | Verify follicular and inflammatory pattern identification returns right result | T186 | View | ✅ |
| C320 | Verify wound tissue wound bed granulation classification returns right presence prediction and confidence score | T187 | View | ✅ |
| C321 | Verify generation of structured clinical assessment report with quantified results for requested signs via API | T188 | View |