@claude-flow/plugin-healthcare-clinical 3.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js ADDED
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Healthcare Clinical Decision Support Plugin
3
+ *
4
+ * A HIPAA-compliant clinical decision support plugin that combines
5
+ * ultra-fast vector search for medical literature retrieval with
6
+ * graph neural networks for patient pathway analysis.
7
+ *
8
+ * Features:
9
+ * - Patient similarity search using HNSW (150x faster)
10
+ * - Drug interaction detection using GNN
11
+ * - Clinical pathway recommendations
12
+ * - Medical literature semantic search
13
+ * - Ontology navigation (ICD-10, SNOMED-CT, LOINC, RxNorm)
14
+ *
15
+ * HIPAA Compliance:
16
+ * - All patient data processed locally in WASM sandbox
17
+ * - No PHI transmitted externally
18
+ * - Complete audit logging
19
+ * - Role-based access control
20
+ *
21
+ * @packageDocumentation
22
+ * @module @claude-flow/plugin-healthcare-clinical
23
+ */
24
+ // Export all types
25
+ export * from './types.js';
26
+ // Export MCP tools
27
+ export { healthcareTools, toolHandlers, getTool, getToolNames, patientSimilarityTool, drugInteractionsTool, clinicalPathwaysTool, literatureSearchTool, ontologyNavigateTool, } from './mcp-tools.js';
28
+ // Export bridges
29
+ export { HealthcareHNSWBridge, createHNSWBridge, PatientEmbeddingGenerator, } from './bridges/hnsw-bridge.js';
30
+ export { HealthcareGNNBridge, createGNNBridge, } from './bridges/gnn-bridge.js';
31
+ // Import for plugin definition
32
+ import { healthcareTools } from './mcp-tools.js';
33
+ import { HealthcareHNSWBridge } from './bridges/hnsw-bridge.js';
34
+ import { HealthcareGNNBridge } from './bridges/gnn-bridge.js';
35
+ import { DEFAULT_HEALTHCARE_CONFIG } from './types.js';
36
+ /**
37
+ * Plugin metadata
38
+ */
39
+ export const pluginMetadata = {
40
+ name: '@claude-flow/plugin-healthcare-clinical',
41
+ version: '3.0.0-alpha.1',
42
+ description: 'HIPAA-compliant clinical decision support with patient similarity, drug interactions, and clinical pathways',
43
+ author: 'rUv',
44
+ license: 'MIT',
45
+ category: 'healthcare',
46
+ tags: ['healthcare', 'clinical', 'hipaa', 'fhir', 'patient-similarity', 'drug-interactions'],
47
+ wasmPackages: [
48
+ 'micro-hnsw-wasm',
49
+ 'ruvector-gnn-wasm',
50
+ 'ruvector-hyperbolic-hnsw-wasm',
51
+ 'ruvector-sparse-inference-wasm',
52
+ ],
53
+ };
54
+ /**
55
+ * Healthcare Clinical Plugin class
56
+ */
57
+ export class HealthcareClinicalPlugin {
58
+ config;
59
+ logger;
60
+ bridge;
61
+ initialized = false;
62
+ constructor(config, logger) {
63
+ this.config = { ...DEFAULT_HEALTHCARE_CONFIG, ...config };
64
+ this.logger = logger ?? {
65
+ debug: (msg, meta) => console.debug(`[healthcare-plugin] ${msg}`, meta),
66
+ info: (msg, meta) => console.info(`[healthcare-plugin] ${msg}`, meta),
67
+ warn: (msg, meta) => console.warn(`[healthcare-plugin] ${msg}`, meta),
68
+ error: (msg, meta) => console.error(`[healthcare-plugin] ${msg}`, meta),
69
+ };
70
+ this.bridge = {
71
+ hnsw: undefined,
72
+ gnn: undefined,
73
+ initialized: false,
74
+ };
75
+ }
76
+ /**
77
+ * Initialize the plugin
78
+ */
79
+ async initialize() {
80
+ if (this.initialized)
81
+ return;
82
+ this.logger.info('Initializing Healthcare Clinical Plugin');
83
+ try {
84
+ // Initialize HNSW bridge
85
+ const hnswBridge = new HealthcareHNSWBridge(this.config.hnsw, this.logger);
86
+ await hnswBridge.initialize();
87
+ this.bridge.hnsw = hnswBridge;
88
+ // Initialize GNN bridge
89
+ const gnnBridge = new HealthcareGNNBridge(this.config.gnn, this.logger);
90
+ await gnnBridge.initialize();
91
+ this.bridge.gnn = gnnBridge;
92
+ this.bridge.initialized = true;
93
+ this.initialized = true;
94
+ this.logger.info('Healthcare Clinical Plugin initialized successfully', {
95
+ hnswReady: hnswBridge.initialized,
96
+ gnnReady: gnnBridge.initialized,
97
+ });
98
+ }
99
+ catch (error) {
100
+ this.logger.error('Failed to initialize Healthcare Clinical Plugin', {
101
+ error: error instanceof Error ? error.message : String(error),
102
+ });
103
+ throw error;
104
+ }
105
+ }
106
+ /**
107
+ * Get all MCP tools
108
+ */
109
+ getTools() {
110
+ return healthcareTools;
111
+ }
112
+ /**
113
+ * Get the bridge for tool execution
114
+ */
115
+ getBridge() {
116
+ return this.bridge;
117
+ }
118
+ /**
119
+ * Get plugin configuration
120
+ */
121
+ getConfig() {
122
+ return this.config;
123
+ }
124
+ /**
125
+ * Cleanup resources
126
+ */
127
+ async destroy() {
128
+ if (this.bridge.hnsw) {
129
+ this.bridge.hnsw.destroy();
130
+ }
131
+ if (this.bridge.gnn) {
132
+ this.bridge.gnn.destroy();
133
+ }
134
+ this.bridge.initialized = false;
135
+ this.initialized = false;
136
+ this.logger.info('Healthcare Clinical Plugin destroyed');
137
+ }
138
+ }
139
+ /**
140
+ * Create a new Healthcare Clinical Plugin instance
141
+ */
142
+ export function createHealthcarePlugin(config, logger) {
143
+ return new HealthcareClinicalPlugin(config, logger);
144
+ }
145
+ /**
146
+ * Default export for plugin loader
147
+ */
148
+ export default {
149
+ metadata: pluginMetadata,
150
+ tools: healthcareTools,
151
+ createPlugin: createHealthcarePlugin,
152
+ HealthcareClinicalPlugin,
153
+ };
154
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Healthcare Clinical MCP Tools
3
+ *
4
+ * HIPAA-compliant clinical decision support tools including:
5
+ * - patient-similarity: Find similar patient cases
6
+ * - drug-interactions: Analyze drug-drug and drug-condition interactions
7
+ * - clinical-pathways: Recommend evidence-based treatment pathways
8
+ * - literature-search: Semantic search across medical literature
9
+ * - ontology-navigate: Navigate medical ontology hierarchies
10
+ */
11
+ import type { MCPTool, MCPToolResult, ToolContext } from './types.js';
12
+ export declare const patientSimilarityTool: MCPTool;
13
+ export declare const drugInteractionsTool: MCPTool;
14
+ export declare const clinicalPathwaysTool: MCPTool;
15
+ export declare const literatureSearchTool: MCPTool;
16
+ export declare const ontologyNavigateTool: MCPTool;
17
+ export declare const healthcareTools: MCPTool[];
18
+ export declare const toolHandlers: Map<string, (input: Record<string, unknown>, context?: ToolContext) => Promise<MCPToolResult>>;
19
+ export declare function getTool(name: string): MCPTool | undefined;
20
+ export declare function getToolNames(): string[];
21
+ export default healthcareTools;
22
+ //# sourceMappingURL=mcp-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-tools.d.ts","sourceRoot":"","sources":["../src/mcp-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,OAAO,EACP,aAAa,EACb,WAAW,EAOZ,MAAM,YAAY,CAAC;AA8IpB,eAAO,MAAM,qBAAqB,EAAE,OAqBnC,CAAC;AAqHF,eAAO,MAAM,oBAAoB,EAAE,OAkBlC,CAAC;AAgFF,eAAO,MAAM,oBAAoB,EAAE,OAkBlC,CAAC;AAsFF,eAAO,MAAM,oBAAoB,EAAE,OAoBlC,CAAC;AAuGF,eAAO,MAAM,oBAAoB,EAAE,OAmBlC,CAAC;AAMF,eAAO,MAAM,eAAe,EAAE,OAAO,EAMpC,CAAC;AAEF,eAAO,MAAM,YAAY,gGAMvB,CAAC;AAEH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEzD;AAED,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAEvC;AAED,eAAe,eAAe,CAAC"}