n8n-nodes-openmrs 1.0.4 → 1.2.0

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/README.md CHANGED
@@ -1,47 +1,65 @@
1
1
  # n8n-nodes-openmrs
2
2
 
3
- ![n8n-nodes-openmrs](https://img.shields.io/npm/v/n8n-nodes-openmrs)
4
- ![npm](https://img.shields.io/npm/dt/n8n-nodes-openmrs)
5
- ![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)
3
+ [![npm version](https://img.shields.io/npm/v/n8n-nodes-openmrs)](https://www.npmjs.com/package/n8n-nodes-openmrs)
4
+ [![npm downloads](https://img.shields.io/npm/dt/n8n-nodes-openmrs)](https://www.npmjs.com/package/n8n-nodes-openmrs)
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
6
 
7
- This is an n8n community node that provides seamless integration with OpenMRS through standardized FHIR R4 API endpoints. It enables healthcare workflows to access and process electronic medical records data for clinical decision support, data analysis, and interoperability.
7
+ Community node for [n8n](https://n8n.io/) providing OpenMRS FHIR R4 integration with intelligent patient search, clinical data access, and healthcare workflow automation.
8
8
 
9
- [n8n](https://n8n.io/) is a fair-code licensed workflow automation platform.
9
+ ---
10
+
11
+ ## What's New in v1.2.0
12
+
13
+ **Smart Patient Search** - No more memorizing UUIDs!
14
+ - Search by OpenMRS ID: `131280865`
15
+ - Search by Name: `Patricia Lewis` (partial matching)
16
+ - Search by Phone: `+254712345678`
17
+
18
+ ---
10
19
 
11
20
  ## Features
12
21
 
13
- **Comprehensive FHIR R4 Support**
22
+ ### Intelligent Patient Lookup
14
23
 
15
- - Access 6 core FHIR resources essential for clinical workflows
16
- - Standardized healthcare data format for maximum interoperability
24
+ Real-world clinics don't use UUIDs. Search patients the way healthcare workers actually do:
17
25
 
18
- **Patient Data Management**
26
+ - **By Identifier** - OpenMRS ID, National ID, Facility Number
27
+ - **By Name** - First name, last name, or partial matches
28
+ - **By Phone** - Mobile number in any format
29
+ - **By UUID** - For system integrations
19
30
 
20
- - Fetch complete patient demographics and identifiers
21
- - Retrieve encounter history and visit timelines
22
- - Access clinical observations (labs, vitals, diagnostics)
31
+ ### Complete FHIR R4 Coverage
23
32
 
24
- **Clinical Intelligence**
33
+ Access all essential clinical resources:
25
34
 
26
- - Diagnostic reports and imaging data
27
- - Condition/diagnosis tracking with staging
28
- - Medication statements and treatment history
35
+ | Resource | What You Get | Common Use Cases |
36
+ |----------|-------------|------------------|
37
+ | **Patient** | Demographics, identifiers, contacts | Registration, identity verification |
38
+ | **Encounter** | Visits, admissions, consultations | Attendance tracking, visit history |
39
+ | **Observation** | Labs, vitals, diagnostic results | Trend analysis, clinical alerts |
40
+ | **Diagnostic Report** | Imaging, pathology reports | Disease progression tracking |
41
+ | **Condition** | Diagnoses, active problems | Differential diagnosis, comorbidities |
42
+ | **Medication Statement** | Current & past medications | Treatment history, drug interactions |
29
43
 
30
- **Developer-Friendly**
44
+ ### Developer-Friendly
31
45
 
32
- - Simple authentication with OpenMRS credentials
33
- - Paginated results with customizable limits
34
- - Built-in error handling and retry logic
46
+ - **Simple Auth** - HTTP Basic Authentication
47
+ - **Pagination** - Handle large datasets efficiently
48
+ - **Error Handling** - Clear error messages and continue-on-fail support
49
+ - **Custom API Calls** - Direct access to any OpenMRS FHIR endpoint
35
50
 
36
- **Built for Low-Resource Settings**
51
+ ### Built for Global Health
37
52
 
38
- - Optimized for limited bandwidth environments
39
- - Works with standard OpenMRS installations
53
+ - Optimized for low-bandwidth environments
54
+ - Works with OpenMRS 2.x and 3.x
55
+ - Compatible with DHIS2 workflows
40
56
  - Supports both cloud and on-premise deployments
41
57
 
58
+ ---
59
+
42
60
  ## Installation
43
61
 
44
- ### Community Nodes (Recommended)
62
+ ### Via n8n Community Nodes (Recommended)
45
63
 
46
64
  1. Open n8n
47
65
  2. Go to **Settings** → **Community Nodes**
@@ -49,319 +67,370 @@ This is an n8n community node that provides seamless integration with OpenMRS th
49
67
  4. Enter: `n8n-nodes-openmrs`
50
68
  5. Click **Install**
51
69
 
52
- ### Manual Installation
53
-
70
+ ### Via npm
54
71
  ```bash
55
72
  npm install n8n-nodes-openmrs
56
73
  ```
57
74
 
58
- For Docker installations:
59
-
60
- ```bash
61
- docker run -it --rm \
62
- --name n8n \
63
- -p 5678:5678 \
64
- -v ~/.n8n:/home/node/.n8n \
65
- -e N8N_CUSTOM_EXTENSIONS="/home/node/.n8n/custom" \
66
- n8nio/n8n
67
- ```
68
-
69
- Then install the package inside the container or mount it as a volume.
70
-
71
- ### Build from Source
72
-
75
+ ### From Source
73
76
  ```bash
74
- git clone https://github.com/monfortbrian/n8n-nodes-OpenMRS.git
77
+ git clone https://github.com/monfortbrian/n8n-nodes-openmrs.git
75
78
  cd n8n-nodes-openmrs
76
79
  npm install
77
80
  npm run build
78
81
  npm link
79
82
  ```
80
83
 
81
- ## Credentials
84
+ ---
85
+
86
+ ## Quick Start
82
87
 
83
- Before using the OpenMRS node, you need to configure credentials:
88
+ ### 1. Configure Credentials
84
89
 
85
90
  1. In n8n, go to **Credentials** → **New**
86
91
  2. Search for **OpenMRS API**
87
92
  3. Configure:
88
- - **Base URL**: Your OpenMRS instance URL (e.g., `https://demo.openmrs.org/openmrs`)
89
- - **Username**: Your OpenMRS username
90
- - **Password**: Your OpenMRS password
91
-
92
- The node uses HTTP Basic Authentication and automatically validates connectivity on save.
93
-
94
- ## Usage
95
-
96
- ### Supported Resources
93
+ - **Base URL**: `https://demo.openmrs.org/openmrs` (include `/openmrs`)
94
+ - **Username**: `admin`
95
+ - **Password**: `Admin123`
96
+ 4. Test & Save
97
97
 
98
- The OpenMRS node provides access to 6 FHIR resources:
98
+ ### 2. Search Patient by OpenMRS ID
99
+ ```
100
+ Add Node → OpenMRS
101
+ ├─ Resource: Patient
102
+ ├─ Operation: Search by Identifier
103
+ └─ Identifier: 131280865
104
+ ```
99
105
 
100
- | Resource | Description | Use Cases |
101
- | ------------------------ | ----------------------------- | -------------------------------------------- |
102
- | **Patient** | Demographics, identifiers | Identity verification, cohort analysis |
103
- | **Encounter** | Visits, admissions | Timeline reconstruction, visit patterns |
104
- | **Observation** | Labs, vitals, diagnostics | Trend analysis, risk detection |
105
- | **Diagnostic Report** | Imaging, pathology | Disease progression, treatment response |
106
- | **Condition** | Diagnoses, problem lists | Differential diagnosis, comorbidity tracking |
107
- | **Medication Statement** | Active/historical medications | Treatment history, drug interactions |
106
+ **Result:** Complete patient record instantly
108
107
 
109
- ### Operations
108
+ ### 3. Find Patient by Name
109
+ ```
110
+ Add Node → OpenMRS
111
+ ├─ Resource: Patient
112
+ ├─ Operation: Search by Name
113
+ └─ Name: Patricia
114
+ ```
110
115
 
111
- Each resource supports:
116
+ **Result:** All patients with "Patricia" in their name
112
117
 
113
- - **Get a resource** - Retrieve a single resource by ID
114
- - **Get all resources** - Retrieve all resources for a patient (with pagination)
118
+ ---
115
119
 
116
120
  ## Examples
117
121
 
118
- ### Example 1: Fetch Patient Demographics
122
+ ### Example 1: Patient Search by ID (Real-World)
119
123
 
124
+ **Instead of this (nobody remembers):**
120
125
  ```
121
- 1. Add OpenMRS node
122
- 2. Select Resource: Patient
123
- 3. Select Operation: Get a resource
124
- 4. Enter Patient ID: abc-123-def-456
125
- 5. Execute
126
+ UUID: 7826f08a-0258-4fb1-ba69-2af192f392db
126
127
  ```
127
128
 
128
- **Output:**
129
-
130
- ```json
131
- {
132
- "resourceType": "Patient",
133
- "id": "abc-123-def-456",
134
- "name": [
135
- {
136
- "given": ["John"],
137
- "family": "Doe"
138
- }
139
- ],
140
- "gender": "male",
141
- "birthDate": "1957-03-15"
142
- }
129
+ **Do this:**
130
+ ```
131
+ OpenMRS ID: 131280865
143
132
  ```
144
133
 
145
- ### Example 2: Retrieve Patient Lab Results
134
+ **n8n Workflow:**
135
+ 1. Add OpenMRS node
136
+ 2. Resource: **Patient**
137
+ 3. Operation: **Search by Identifier**
138
+ 4. Identifier: `131280865`
139
+ 5. Execute
140
+
141
+ **Output:** Full patient FHIR record
142
+
143
+ ---
146
144
 
145
+ ### Example 2: Get Patient Lab Results
147
146
  ```
148
147
  1. Add OpenMRS node
149
- 2. Select Resource: Observation
150
- 3. Select Operation: Get all resources
151
- 4. Enter Patient ID: abc-123-def-456
152
- 5. Set Limit: 50
148
+ 2. Resource: Observation
149
+ 3. Operation: Get Many
150
+ 4. Patient UUID: 7826f08a-0258-4fb1-ba69-2af192f392db
151
+ 5. Limit: 50
153
152
  6. Execute
154
153
  ```
155
154
 
156
- **Output:** Returns up to 50 lab observations with values, units, and reference ranges.
155
+ **Output:** Up to 50 most recent lab results with values, units, reference ranges
157
156
 
158
- ### Example 3: Get Patient Diagnosis History
157
+ ---
159
158
 
159
+ ### Example 3: Track Patient Visit History
160
160
  ```
161
161
  1. Add OpenMRS node
162
- 2. Select Resource: Condition
163
- 3. Select Operation: Get all resources
164
- 4. Enter Patient ID: abc-123-def-456
165
- 5. Select Return All: true (for complete history)
162
+ 2. Resource: Encounter
163
+ 3. Operation: Get Many
164
+ 4. Patient UUID: 7826f08a-0258-4fb1-ba69-2af192f392db
165
+ 5. Return All: true
166
166
  6. Execute
167
167
  ```
168
168
 
169
- ### Example 4: Clinical Decision Support Workflow
169
+ **Output:** Complete visit timeline from first to last encounter
170
+
171
+ ---
170
172
 
171
- Build an intelligent ASSESS workflow:
173
+ ### Example 4: Custom FHIR Query
172
174
 
175
+ Use the **Custom API Call** resource for advanced queries:
173
176
  ```
174
- [OpenMRS Patient] ──┐
175
- [OpenMRS Encounters] ├─→ [Normalize Data] → [LLM Analysis] → [Alert Doctor]
176
- [OpenMRS Labs] ─────┘
177
+ 1. Add OpenMRS node
178
+ 2. Resource: Custom API Call
179
+ 3. HTTP Method: GET
180
+ 4. Endpoint: /ws/fhir2/R4/Patient
181
+ 5. Query Parameters:
182
+ - name: birthdate
183
+ - value: gt1990-01-01
184
+ 6. Execute
177
185
  ```
178
186
 
179
- This workflow:
187
+ **Output:** All patients born after January 1, 1990
180
188
 
181
- 1. Fetches patient demographics, encounters, and lab results
182
- 2. Normalizes FHIR data into unified format
183
- 3. Analyzes trends using AI
184
- 4. Generates clinical insights
189
+ ---
185
190
 
186
- ## Options
191
+ ## Real-World Use Cases
187
192
 
188
- ### Common Parameters
193
+ ### Clinical Workflows
189
194
 
190
- | Parameter | Type | Description | Required |
191
- | ---------- | -------- | ---------------------------- | ------------------------- |
192
- | Resource | Dropdown | FHIR resource type | Yes |
193
- | Operation | Dropdown | Get or Get All | Yes |
194
- | Patient ID | String | UUID of the patient | Yes (for most operations) |
195
- | Return All | Boolean | Fetch all results (no limit) | No |
196
- | Limit | Number | Max results (1-100) | No (default: 50) |
195
+ **Patient Admission Dashboard**
196
+ ```
197
+ Webhook Trigger
198
+ OpenMRS: Search by OpenMRS ID
199
+ OpenMRS: Get Encounters (last 6 months)
200
+ OpenMRS: Get Observations (recent labs)
201
+ Code: Calculate risk scores
202
+ → Display: Admission summary
203
+ ```
197
204
 
198
- ### Resource-Specific Parameters
205
+ **Lost-to-Follow-Up Recovery**
206
+ ```
207
+ Schedule (weekly)
208
+ → OpenMRS: Get All Patients on ART
209
+ → Code: Filter last visit > 28 days
210
+ → OpenMRS: Search by Phone
211
+ → SMS: "Medication ready for pickup"
212
+ → DHIS2: Update tracker
213
+ ```
199
214
 
200
- **Encounter:**
215
+ ### Data Analytics
201
216
 
202
- - Encounter ID (for Get operation)
217
+ **Disease Surveillance**
218
+ ```
219
+ Schedule (every 6 hours)
220
+ → OpenMRS: Get Conditions (last 6h)
221
+ → Code: Filter cholera, measles, meningitis
222
+ → Code: Check outbreak threshold
223
+ → DHIS2: Post to IDSR module
224
+ → SMS: Alert district officer
225
+ ```
203
226
 
204
- **Condition:**
227
+ **Lab Turnaround Time Monitoring**
228
+ ```
229
+ OpenMRS: Observation created
230
+ → Calculate: Order time - Result time
231
+ → IF > 48 hours
232
+ → Alert lab manager
233
+ → DHIS2: Post performance indicator
234
+ ```
205
235
 
206
- - Condition ID (for Get operation)
236
+ ### Global Health
207
237
 
208
- **Medication Statement:**
238
+ - HIV/TB treatment adherence tracking
239
+ - Maternal health visit reminders
240
+ - Vaccine defaulter identification
241
+ - Stockout prevention for ARVs
209
242
 
210
- - Medication Statement ID (for Get operation)
243
+ ---
211
244
 
212
- ### Pagination
245
+ ## API Reference
213
246
 
214
- For `Get all resources` operations:
247
+ ### Supported Resources
215
248
 
216
- - Set **Return All** to `true` for complete datasets
217
- - Or set **Limit** to control result size (1-100)
218
- - Results are returned in FHIR Bundle format
249
+ - `Patient` - Demographics, identifiers
250
+ - `Encounter` - Visits, admissions
251
+ - `Observation` - Labs, vitals, diagnostics
252
+ - `Diagnostic Report` - Imaging, pathology
253
+ - `Condition` - Diagnoses, problems
254
+ - `Medication Statement` - Prescriptions, dispensing
255
+ - `Custom API Call` - Any FHIR endpoint
219
256
 
220
- ## API Endpoints
257
+ ### Patient Operations
221
258
 
222
- This node uses OpenMRS FHIR2 R4 endpoints:
259
+ - **Search by Identifier** - OpenMRS ID, National ID
260
+ - **Search by Name** - Partial name matching
261
+ - **Search by Phone** - Phone number search
262
+ - **Get** - Retrieve by UUID
263
+ - **Get Many** - Retrieve all (paginated)
223
264
 
224
- ```
225
- GET /ws/fhir2/R4/Patient/{id}
226
- GET /ws/fhir2/R4/Patient?_count=50
265
+ ### Other Resource Operations
227
266
 
228
- GET /ws/fhir2/R4/Encounter?patient={id}&_count=50
267
+ - **Get** - Retrieve single resource by UUID
268
+ - **Get Many** - Retrieve all for patient (paginated)
229
269
 
230
- GET /ws/fhir2/R4/Observation?patient={id}&_count=50
270
+ ### Pagination
231
271
 
232
- GET /ws/fhir2/R4/DiagnosticReport?patient={id}&_count=50
272
+ All `Get Many` and search operations support:
273
+ - **Return All**: `true/false`
274
+ - **Limit**: `1-100` (default: 50)
233
275
 
234
- GET /ws/fhir2/R4/Condition?patient={id}&_count=50
276
+ ---
235
277
 
236
- GET /ws/fhir2/R4/MedicationStatement?patient={id}&_count=50
278
+ ## FHIR Endpoints Used
279
+ ```
280
+ GET /ws/fhir2/R4/Patient?identifier={id}
281
+ GET /ws/fhir2/R4/Patient?name={name}
282
+ GET /ws/fhir2/R4/Patient?telecom={phone}
283
+ GET /ws/fhir2/R4/Patient/{uuid}
284
+ GET /ws/fhir2/R4/Encounter?patient={uuid}&_count=50
285
+ GET /ws/fhir2/R4/Observation?patient={uuid}&_count=50
286
+ GET /ws/fhir2/R4/DiagnosticReport?patient={uuid}&_count=50
287
+ GET /ws/fhir2/R4/Condition?patient={uuid}&_count=50
288
+ GET /ws/fhir2/R4/MedicationStatement?patient={uuid}&_count=50
237
289
  ```
238
290
 
239
- ## Use Cases
291
+ ---
240
292
 
241
- ### Clinical Decision Support
293
+ ## Compatibility
242
294
 
243
- - Reconstruct patient timelines
244
- - Detect missed clinical signals
245
- - Flag abnormal lab trends
246
- - Track disease progression
295
+ - **n8n**: 0.187.0 or higher
296
+ - **OpenMRS**: 2.3+ with FHIR2 module
297
+ - **Node.js**: 18.0.0 or higher
247
298
 
248
- ### Data Analytics
299
+ ---
249
300
 
250
- - Population health analysis
251
- - Cohort identification
252
- - Treatment outcome tracking
253
- - Quality metrics reporting
301
+ ## Troubleshooting
254
302
 
255
- ### Interoperability
303
+ ### Node doesn't appear
304
+ ```bash
305
+ # Check installation
306
+ npm list -g n8n-nodes-openmrs
256
307
 
257
- - Sync data between systems
258
- - Export for external analysis
259
- - Integration with AI/ML pipelines
260
- - REDCap or DHIS2 data flows
308
+ # Clear cache
309
+ rm -rf ~/.n8n/cache
261
310
 
262
- ### Global Health
311
+ # Restart n8n
312
+ n8n start
313
+ ```
263
314
 
264
- - Low-resource oncology workflows
265
- - HIV/TB treatment tracking
266
- - Maternal health monitoring
267
- - Vaccine registry management
315
+ ### Authentication fails
268
316
 
269
- ## Compatibility
317
+ - Include `/openmrs` in Base URL
318
+ - Verify credentials in OpenMRS
319
+ - Check FHIR2 module is enabled
270
320
 
271
- - **n8n version:** 0.187.0 or higher
272
- - **OpenMRS version:** 2.3+ with FHIR2 module installed
273
- - **Node.js:** 18.0.0 or higher
321
+ ### Empty search results
322
+
323
+ - Patient may not exist with that identifier
324
+ - Try different search criteria
325
+ - Verify FHIR2 module configuration
326
+
327
+ ### Build errors (for developers)
328
+ ```bash
329
+ # Clean rebuild
330
+ rm -rf node_modules dist
331
+ npm install
332
+ npm run build
333
+ ```
334
+
335
+ ---
274
336
 
275
337
  ## Development
276
338
 
277
339
  ### Building
278
-
279
340
  ```bash
280
- npm run build
281
- npm run dev
341
+ npm run build # Compile TypeScript
342
+ npm run dev # Watch mode
343
+ npm run lint # Check code quality
344
+ npm run lintfix # Auto-fix issues
282
345
  ```
283
346
 
284
347
  ### Testing Locally
285
-
286
348
  ```bash
349
+ # Build and link
350
+ npm run build
287
351
  npm link
288
- cd ~/.n8n/custom
289
- npm link n8n-nodes-openmrs
352
+
353
+ # Start n8n
290
354
  n8n start
355
+
356
+ # Test in n8n UI
357
+ # Your node appears as "OpenMRS"
291
358
  ```
292
359
 
293
- ## Troubleshooting
360
+ ### Publishing
361
+ ```bash
362
+ # Bump version
363
+ npm version minor # 1.1.0 → 1.2.0
294
364
 
295
- ### Node doesn't appear in n8n
365
+ # Publish
366
+ npm publish
296
367
 
297
- 1. Verify package is installed: `npm list -g n8n-nodes-openmrs`
298
- 2. Clear n8n cache: `rm -rf ~/.n8n/cache`
299
- 3. Restart n8n
300
- 4. Hard refresh browser (Ctrl+Shift+R)
368
+ # Push to GitHub
369
+ git push origin main --tags
370
+ ```
301
371
 
302
- ### Authentication errors
372
+ ---
303
373
 
304
- - Verify Base URL includes `/openmrs` path (e.g., `https://demo.openmrs.org/openmrs`)
305
- - Confirm username/password are correct
306
- - Check OpenMRS FHIR2 module is installed and enabled
374
+ ## Contributing
307
375
 
308
- ### Empty results
376
+ Contributions welcome! Please:
309
377
 
310
- - Confirm patient UUID exists in your OpenMRS instance
311
- - Verify patient has data for the requested resource type
312
- - Check FHIR2 module configuration in OpenMRS
378
+ 1. Fork the repository
379
+ 2. Create feature branch: `git checkout -b feature/amazing-feature`
380
+ 3. Commit changes: `git commit -m 'Add amazing feature'`
381
+ 4. Push: `git push origin feature/amazing-feature`
382
+ 5. Open Pull Request
313
383
 
314
- ## Resources
384
+ ---
315
385
 
316
- - [OpenMRS Documentation](https://wiki.openmrs.org/)
317
- - [FHIR R4 Specification](https://hl7.org/fhir/R4/)
318
- - [n8n Community Nodes](https://docs.n8n.io/integrations/community-nodes/)
319
- - [OpenMRS FHIR2 Module](https://wiki.openmrs.org/display/projects/FHIR+Module)
386
+ ## Changelog
320
387
 
321
- ## Contributing
388
+ ### [1.2.0] - 2026-03-05
322
389
 
323
- Contributions are welcome! Please:
390
+ **Added**
391
+ - Patient search by OpenMRS ID/identifier
392
+ - Patient search by name (partial matching)
393
+ - Patient search by phone number
394
+ - Custom API Call resource for advanced queries
324
395
 
325
- 1. Fork the repository
326
- 2. Create a feature branch (`git checkout -b feature/amazing-feature`)
327
- 3. Commit your changes (`git commit -m 'Add amazing feature'`)
328
- 4. Push to the branch (`git push origin feature/amazing-feature`)
329
- 5. Open a Pull Request
396
+ **Changed**
397
+ - Improved error messages
398
+ - Better TypeScript types
399
+ - Updated documentation
330
400
 
331
- ## License
401
+ ### [1.1.0] - 2026-03-03
332
402
 
333
- [MIT License](LICENSE)
403
+ **Added**
404
+ - 6 FHIR resources (Patient, Encounter, Observation, etc.)
405
+ - Get and Get Many operations
406
+ - Pagination support
334
407
 
335
- Copyright (c) 2026 Monfort N. Brian
408
+ ### [1.0.0] - 2026-03-01
336
409
 
337
- Permission is hereby granted, free of charge, to any person obtaining a copy
338
- of this software and associated documentation files (the "Software"), to deal
339
- in the Software without restriction, including without limitation the rights
340
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
341
- copies of the Software, and to permit persons to whom the Software is
342
- furnished to do so, subject to the following conditions:
410
+ **Added**
411
+ - Initial release
412
+ - Basic FHIR R4 support
343
413
 
344
- The above copyright notice and this permission notice shall be included in all
345
- copies or substantial portions of the Software.
414
+ ---
346
415
 
347
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
348
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
349
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
350
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
351
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
352
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
353
- SOFTWARE.
416
+ ## License
354
417
 
355
- ## Support
418
+ [MIT License](LICENSE)
356
419
 
357
- - **Issues:** [GitHub Issues](https://github.com/monfortbrian/n8n-nodes-OpenMRS/issues)
358
- - **Discussions:** [GitHub Discussions](https://github.com/monfortbrian/n8n-nodes-OpenMRS/discussions)
359
- - **n8n Community:** [n8n Community Forum](https://community.n8n.io/)
420
+ Copyright © 2026 Monfort Brian N.
360
421
 
361
- ## Acknowledgments
422
+ ---
423
+
424
+ ## Support
362
425
 
363
- Built for healthcare workers in low-resource settings. Designed to enable clinical decision support and improve patient outcomes through better data interoperability.
426
+ - **Issues**: [GitHub Issues](https://github.com/monfortbrian/n8n-nodes-openmrs/issues)
427
+ - **Discussions**: [GitHub Discussions](https://github.com/monfortbrian/n8n-nodes-openmrs/discussions)
428
+ - **n8n Community**: [n8n Forum](https://community.n8n.io/)
364
429
 
365
430
  ---
366
431
 
367
- **Made with ❤️ for the global health community**
432
+ ## Acknowledgments
433
+
434
+ Built for healthcare workers in low-resource settings. Enabling better patient outcomes through data interoperability and workflow automation.
435
+
436
+ **Made with ❤️ for global health**
@@ -1,4 +1,4 @@
1
- import { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
1
+ import type { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
2
2
  export declare class OpenMrsApi implements ICredentialType {
3
3
  name: string;
4
4
  displayName: string;