@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/types.js ADDED
@@ -0,0 +1,166 @@
1
+ /**
2
+ * Healthcare Clinical Plugin - Type Definitions
3
+ *
4
+ * Core types for HIPAA-compliant clinical decision support including
5
+ * patient similarity, drug interactions, clinical pathways, literature search,
6
+ * and medical ontology navigation.
7
+ */
8
+ import { z } from 'zod';
9
+ /**
10
+ * Role-based access control mapping
11
+ */
12
+ export const HealthcareRolePermissions = {
13
+ PHYSICIAN: ['patient-similarity', 'drug-interactions', 'clinical-pathways', 'literature-search', 'ontology-navigate'],
14
+ NURSE: ['drug-interactions', 'ontology-navigate'],
15
+ PHARMACIST: ['drug-interactions', 'literature-search'],
16
+ RESEARCHER: ['literature-search', 'ontology-navigate'],
17
+ CODER: ['ontology-navigate'],
18
+ ADMIN: ['patient-similarity', 'drug-interactions', 'clinical-pathways', 'literature-search', 'ontology-navigate'],
19
+ };
20
+ /**
21
+ * Default configuration
22
+ */
23
+ export const DEFAULT_HEALTHCARE_CONFIG = {
24
+ hipaa: {
25
+ auditEnabled: true,
26
+ encryptionRequired: true,
27
+ minimumNecessary: true,
28
+ retentionYears: 6,
29
+ },
30
+ hnsw: {
31
+ dimensions: 768,
32
+ maxElements: 100000,
33
+ efConstruction: 200,
34
+ M: 16,
35
+ efSearch: 100,
36
+ },
37
+ gnn: {
38
+ hiddenDimensions: 256,
39
+ numLayers: 3,
40
+ dropout: 0.1,
41
+ aggregationType: 'mean',
42
+ },
43
+ search: {
44
+ defaultTopK: 5,
45
+ maxTopK: 100,
46
+ similarityThreshold: 0.7,
47
+ },
48
+ cache: {
49
+ enabled: true,
50
+ ttl: 300000,
51
+ maxSize: 1000,
52
+ },
53
+ };
54
+ // ============================================================================
55
+ // Zod Schemas for Input Validation
56
+ // ============================================================================
57
+ /**
58
+ * ICD-10 code format validation
59
+ */
60
+ const ICD10CodeSchema = z.string().regex(/^[A-Z]\d{2}(\.\d{1,2})?$/, 'Invalid ICD-10 code format');
61
+ /**
62
+ * Patient similarity input schema
63
+ */
64
+ export const PatientSimilarityInputSchema = z.object({
65
+ patientFeatures: z.object({
66
+ diagnoses: z.array(ICD10CodeSchema).max(100),
67
+ labResults: z.record(z.string(), z.number()).optional(),
68
+ vitals: z.record(z.string(), z.number()).optional(),
69
+ medications: z.array(z.string().max(200)).max(50).optional(),
70
+ demographics: z.object({
71
+ ageRange: z.string().optional(),
72
+ gender: z.string().optional(),
73
+ ethnicity: z.string().optional(),
74
+ }).optional(),
75
+ procedures: z.array(z.string().max(200)).max(100).optional(),
76
+ allergies: z.array(z.string().max(200)).max(50).optional(),
77
+ }),
78
+ topK: z.number().int().min(1).max(100).default(5),
79
+ cohortFilter: z.string().max(500).optional(),
80
+ });
81
+ /**
82
+ * Drug interactions input schema
83
+ */
84
+ export const DrugInteractionsInputSchema = z.object({
85
+ medications: z.array(z.string().max(200)).min(1).max(50),
86
+ conditions: z.array(z.string().max(200)).max(100).optional(),
87
+ severity: z.enum(['all', 'major', 'moderate', 'minor']).default('all'),
88
+ });
89
+ /**
90
+ * Clinical pathways input schema
91
+ */
92
+ export const ClinicalPathwaysInputSchema = z.object({
93
+ primaryDiagnosis: z.string().max(100),
94
+ patientHistory: z.record(z.string(), z.unknown()).optional(),
95
+ constraints: z.object({
96
+ excludeMedications: z.array(z.string()).optional(),
97
+ costSensitive: z.boolean().optional(),
98
+ outpatientOnly: z.boolean().optional(),
99
+ ageRestrictions: z.string().optional(),
100
+ comorbidityConsiderations: z.array(z.string()).optional(),
101
+ }).optional(),
102
+ });
103
+ /**
104
+ * Literature search input schema
105
+ */
106
+ export const LiteratureSearchInputSchema = z.object({
107
+ query: z.string().min(3).max(1000),
108
+ sources: z.array(z.enum(['pubmed', 'cochrane', 'uptodate', 'local'])).optional(),
109
+ dateRange: z.object({
110
+ from: z.string().datetime().optional(),
111
+ to: z.string().datetime().optional(),
112
+ }).optional(),
113
+ evidenceLevel: z.enum(['any', 'systematic-review', 'rct', 'cohort', 'case-control', 'case-series', 'expert-opinion']).optional(),
114
+ maxResults: z.number().int().min(1).max(100).default(20),
115
+ });
116
+ /**
117
+ * Ontology navigation input schema
118
+ */
119
+ export const OntologyNavigationInputSchema = z.object({
120
+ code: z.string().max(50),
121
+ ontology: z.enum(['icd10', 'snomed', 'loinc', 'rxnorm']),
122
+ direction: z.enum(['ancestors', 'descendants', 'siblings', 'related']),
123
+ depth: z.number().int().min(1).max(10).default(2),
124
+ });
125
+ // ============================================================================
126
+ // Result Helpers
127
+ // ============================================================================
128
+ /**
129
+ * Create a success result
130
+ */
131
+ export function successResult(data, metadata) {
132
+ return {
133
+ success: true,
134
+ data,
135
+ metadata,
136
+ };
137
+ }
138
+ /**
139
+ * Create an error result
140
+ */
141
+ export function errorResult(error, metadata) {
142
+ return {
143
+ success: false,
144
+ error: error instanceof Error ? error.message : error,
145
+ metadata,
146
+ };
147
+ }
148
+ // ============================================================================
149
+ // Error Codes
150
+ // ============================================================================
151
+ /**
152
+ * Healthcare plugin error codes
153
+ */
154
+ export const HealthcareErrorCodes = {
155
+ HIPAA_VIOLATION: 'HC_HIPAA_VIOLATION',
156
+ UNAUTHORIZED_ACCESS: 'HC_UNAUTHORIZED_ACCESS',
157
+ INVALID_ICD10_CODE: 'HC_INVALID_ICD10_CODE',
158
+ INVALID_SNOMED_CODE: 'HC_INVALID_SNOMED_CODE',
159
+ PATIENT_NOT_FOUND: 'HC_PATIENT_NOT_FOUND',
160
+ DRUG_NOT_FOUND: 'HC_DRUG_NOT_FOUND',
161
+ ONTOLOGY_NOT_AVAILABLE: 'HC_ONTOLOGY_NOT_AVAILABLE',
162
+ WASM_NOT_INITIALIZED: 'HC_WASM_NOT_INITIALIZED',
163
+ SEARCH_FAILED: 'HC_SEARCH_FAILED',
164
+ AUDIT_FAILED: 'HC_AUDIT_FAILED',
165
+ };
166
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,103 @@
1
+ {
2
+ "name": "@claude-flow/plugin-healthcare-clinical",
3
+ "version": "3.0.0-alpha.1",
4
+ "description": "HIPAA-compliant clinical decision support plugin with patient similarity search, drug interaction detection, and clinical pathway recommendations using RuVector WASM packages.",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/index.js",
12
+ "types": "./dist/index.d.ts"
13
+ },
14
+ "./tools": {
15
+ "import": "./dist/mcp-tools.js",
16
+ "types": "./dist/mcp-tools.d.ts"
17
+ },
18
+ "./bridges/hnsw": {
19
+ "import": "./dist/bridges/hnsw-bridge.js",
20
+ "types": "./dist/bridges/hnsw-bridge.d.ts"
21
+ },
22
+ "./bridges/gnn": {
23
+ "import": "./dist/bridges/gnn-bridge.js",
24
+ "types": "./dist/bridges/gnn-bridge.d.ts"
25
+ },
26
+ "./bridges": {
27
+ "import": "./dist/bridges/index.js",
28
+ "types": "./dist/bridges/index.d.ts"
29
+ },
30
+ "./types": {
31
+ "import": "./dist/types.js",
32
+ "types": "./dist/types.d.ts"
33
+ }
34
+ },
35
+ "files": [
36
+ "dist",
37
+ "plugin.yaml",
38
+ "README.md"
39
+ ],
40
+ "scripts": {
41
+ "build": "tsc",
42
+ "clean": "rm -rf dist",
43
+ "typecheck": "tsc --noEmit",
44
+ "test": "vitest run",
45
+ "test:watch": "vitest",
46
+ "lint": "eslint src --ext .ts",
47
+ "prepublishOnly": "npm run clean && npm run build && npm run typecheck"
48
+ },
49
+ "publishConfig": {
50
+ "access": "public",
51
+ "tag": "v3alpha"
52
+ },
53
+ "keywords": [
54
+ "claude-flow",
55
+ "plugin",
56
+ "healthcare",
57
+ "clinical-decision-support",
58
+ "hipaa",
59
+ "patient-similarity",
60
+ "drug-interactions",
61
+ "fhir",
62
+ "hl7",
63
+ "snomed-ct",
64
+ "icd-10",
65
+ "mcp"
66
+ ],
67
+ "author": "rUv",
68
+ "license": "MIT",
69
+ "repository": {
70
+ "type": "git",
71
+ "url": "https://github.com/ruvnet/claude-flow.git",
72
+ "directory": "v3/plugins/healthcare-clinical"
73
+ },
74
+ "bugs": {
75
+ "url": "https://github.com/ruvnet/claude-flow/issues"
76
+ },
77
+ "homepage": "https://github.com/ruvnet/claude-flow/tree/main/v3/plugins/healthcare-clinical#readme",
78
+ "engines": {
79
+ "node": ">=20.0.0"
80
+ },
81
+ "peerDependencies": {
82
+ "@claude-flow/ruvector-upstream": ">=3.0.0-alpha.1"
83
+ },
84
+ "peerDependenciesMeta": {
85
+ "@claude-flow/ruvector-upstream": {
86
+ "optional": true
87
+ }
88
+ },
89
+ "dependencies": {
90
+ "zod": "^3.22.0"
91
+ },
92
+ "devDependencies": {
93
+ "@types/node": "^20.0.0",
94
+ "typescript": "^5.4.0",
95
+ "vitest": "^1.0.0"
96
+ },
97
+ "optionalDependencies": {
98
+ "micro-hnsw-wasm": "^0.2.0",
99
+ "ruvector-gnn-wasm": "^0.1.0",
100
+ "ruvector-hyperbolic-hnsw-wasm": "^0.1.0",
101
+ "ruvector-sparse-inference-wasm": "^0.1.0"
102
+ }
103
+ }