dhis2_android_setup_offline_analytics
Enable offline analytics and reporting for DHIS2 Android app by configuring supported chart types, aggregation levels, caching, and export options to enhance data accessibility without internet connectivity.
Instructions
Configure offline analytics and reporting capabilities for DHIS2 Android app
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| analyticsFeatures | Yes | Analytics features to include | |
| caching | No | ||
| chartTypes | No | Chart types to support | |
| dataAggregation | No | ||
| export | No |
Implementation Reference
- src/index.ts:1357-1367 (handler)Handler implementation for the 'dhis2_android_setup_offline_analytics' tool. It extracts arguments, calls the generator function, and returns the generated markdown configuration as tool response.case 'dhis2_android_setup_offline_analytics': const analyticsArgs = args as any; const analyticsConfig = generateOfflineAnalyticsConfiguration(analyticsArgs); return { content: [ { type: 'text', text: analyticsConfig, }, ], };
- src/android-generators.ts:1814-1821 (helper)Core generator function that produces the offline analytics configuration markdown based on input arguments. This is the main logic executed by the tool handler.export function generateOfflineAnalyticsConfiguration(args: any): string { return `# DHIS2 Android Offline Analytics Configuration Analytics features: ${args.analyticsFeatures.join(', ')} ## Implementation details for offline analytics... `; }
- src/permission-system.ts:165-165 (registration)Tool permission registration in TOOL_PERMISSIONS map, associating the tool with 'canUseMobileFeatures' permission requirement.['dhis2_android_setup_offline_analytics', 'canUseMobileFeatures'],
- src/permission-system.ts:59-60 (registration)The TOOL_PERMISSIONS Map definition where Android tools including this one are registered for permission checking.private static readonly TOOL_PERMISSIONS = new Map<string, keyof UserPermissions | Array<keyof UserPermissions>>([ // Configuration and connection
- src/index.ts:104-111 (registration)Tool listing handler that filters available tools using PermissionSystem, which includes this tool if permissions allow.server.setRequestHandler(ListToolsRequestSchema, async () => { // Filter tools based on user permissions const filteredTools = PermissionSystem.filterToolsByPermissions(tools, userPermissions); return { tools: filteredTools, }; });