Mothballed AI risk-of-bias proof of concept¶
Chris confirmed on 27 September 2026 that the external MapsGroup AI integration was a prototype/proof of concept, is not in use, has not been carried forward, and is mothballed at least for now. It is not an active requirement or a reason to retain an authentication architecture. This status comes from the product owner; code presence is not evidence of deployed use.
Removed execution paths¶
- Annotation form AI-ROB button and its client action.
PUT api/projects/{projectId}/stages/{stageId}/studies/{studyId}/rob-ai.POST public-api/rob-ai, including the callback-only JSON response converter.IRobAiService,RobAiService,MapsGroupHttpClientand the outbound/submitcall.- API HTTP-client registration and API/PM
RobApiSettingsbinding/startup requirement. robAiTestButtonin the feature catalog, generated browser config and Helm env mapping.- Tracked prototype settings/defaults and Helm injection of its URL/API keys.
These routes no longer exist and are absent from OpenAPI and the generated client. There is no flag or settings combination that reactivates the removed code. Flag decision: unconditional removal of an unused prototype, not a rollout. Reintroduction requires a new product decision and implementation review.
Retained compatibility and separate features¶
RiskOfBiasAiJob, its Mongo repository/mappings, unit-of-work property and request/
response records remain for historical document compatibility. No data migration,
collection deletion or historical job rewriting is performed. The AiRequest
namespace also contains annotation answer types used by ordinary annotation;
those types and AnnotationAnswerDtoConverter remain functional.
The separate batch RoB pipeline remains: IStartRobProcessingJobCommand,
RobProcessingJobConsumer, RobProcessingService, the Python pre-rob runner,
RobConfiguration, PDF conversion, project job status and stored study results.
It does not use the removed MapsGroup submission/callback service. Its existing
robToolEnabled behaviour is unchanged. Manual annotation, review/reconciliation,
PDF links and bulk-PDF processing also remain unchanged. This retention does not
assert that the batch workflow is deployed or used.
No prototype-specific scheduler, handler or message consumer exists beyond the removed HTTP entry points. The similarly named batch consumer belongs to the separate pipeline above.
Residuals and any future work¶
Existing external credentials, secrets, infrastructure and local untracked
settings are untouched. Old RobApiSettings values and robAiTestButton overrides
have no runtime consumer. Historical planning documents may name the prototype;
this document supersedes descriptions of it as live.
If later requested, first inventory ownership of unused external resources, then review credential/infrastructure retirement separately. Historical data removal would require its own retention decision and migration. Neither is required to prevent invocation of the prototype through SyRF.