n8n-nodes-openmrs 1.2.1 → 1.3.6
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/LICENSE +21 -21
- package/README.md +145 -436
- package/dist/credentials/openMrs.svg +12 -12
- package/dist/nodes/OpenMrs/OpenMrs.node.js +145 -138
- package/dist/nodes/OpenMrs/OpenMrs.node.js.map +1 -1
- package/dist/nodes/OpenMrs/openMrs.svg +12 -12
- package/package.json +1 -1
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 Monfort N. Brian
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Monfort N. Brian
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,436 +1,145 @@
|
|
|
1
|
-
# n8n-nodes-openmrs
|
|
2
|
-
|
|
3
|
-
[](https://www.npmjs.com/package/n8n-nodes-openmrs)
|
|
5
|
-
[](
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
|
39
|
-
|
|
40
|
-
|
|
|
41
|
-
|
|
|
42
|
-
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
```
|
|
147
|
-
1. Add OpenMRS node
|
|
148
|
-
2. Resource: Observation
|
|
149
|
-
3. Operation: Get Many
|
|
150
|
-
4. Patient UUID: 7826f08a-0258-4fb1-ba69-2af192f392db
|
|
151
|
-
5. Limit: 50
|
|
152
|
-
6. Execute
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
**Output:** Up to 50 most recent lab results with values, units, reference ranges
|
|
156
|
-
|
|
157
|
-
---
|
|
158
|
-
|
|
159
|
-
### Example 3: Track Patient Visit History
|
|
160
|
-
```
|
|
161
|
-
1. Add OpenMRS node
|
|
162
|
-
2. Resource: Encounter
|
|
163
|
-
3. Operation: Get Many
|
|
164
|
-
4. Patient UUID: 7826f08a-0258-4fb1-ba69-2af192f392db
|
|
165
|
-
5. Return All: true
|
|
166
|
-
6. Execute
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
**Output:** Complete visit timeline from first to last encounter
|
|
170
|
-
|
|
171
|
-
---
|
|
172
|
-
|
|
173
|
-
### Example 4: Custom FHIR Query
|
|
174
|
-
|
|
175
|
-
Use the **Custom API Call** resource for advanced queries:
|
|
176
|
-
```
|
|
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
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
**Output:** All patients born after January 1, 1990
|
|
188
|
-
|
|
189
|
-
---
|
|
190
|
-
|
|
191
|
-
## Real-World Use Cases
|
|
192
|
-
|
|
193
|
-
### Clinical Workflows
|
|
194
|
-
|
|
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
|
-
```
|
|
204
|
-
|
|
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
|
-
```
|
|
214
|
-
|
|
215
|
-
### Data Analytics
|
|
216
|
-
|
|
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
|
-
```
|
|
226
|
-
|
|
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
|
-
```
|
|
235
|
-
|
|
236
|
-
### Global Health
|
|
237
|
-
|
|
238
|
-
- HIV/TB treatment adherence tracking
|
|
239
|
-
- Maternal health visit reminders
|
|
240
|
-
- Vaccine defaulter identification
|
|
241
|
-
- Stockout prevention for ARVs
|
|
242
|
-
|
|
243
|
-
---
|
|
244
|
-
|
|
245
|
-
## API Reference
|
|
246
|
-
|
|
247
|
-
### Supported Resources
|
|
248
|
-
|
|
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
|
|
256
|
-
|
|
257
|
-
### Patient Operations
|
|
258
|
-
|
|
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)
|
|
264
|
-
|
|
265
|
-
### Other Resource Operations
|
|
266
|
-
|
|
267
|
-
- **Get** - Retrieve single resource by UUID
|
|
268
|
-
- **Get Many** - Retrieve all for patient (paginated)
|
|
269
|
-
|
|
270
|
-
### Pagination
|
|
271
|
-
|
|
272
|
-
All `Get Many` and search operations support:
|
|
273
|
-
- **Return All**: `true/false`
|
|
274
|
-
- **Limit**: `1-100` (default: 50)
|
|
275
|
-
|
|
276
|
-
---
|
|
277
|
-
|
|
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
|
|
289
|
-
```
|
|
290
|
-
|
|
291
|
-
---
|
|
292
|
-
|
|
293
|
-
## Compatibility
|
|
294
|
-
|
|
295
|
-
- **n8n**: 0.187.0 or higher
|
|
296
|
-
- **OpenMRS**: 2.3+ with FHIR2 module
|
|
297
|
-
- **Node.js**: 18.0.0 or higher
|
|
298
|
-
|
|
299
|
-
---
|
|
300
|
-
|
|
301
|
-
## Troubleshooting
|
|
302
|
-
|
|
303
|
-
### Node doesn't appear
|
|
304
|
-
```bash
|
|
305
|
-
# Check installation
|
|
306
|
-
npm list -g n8n-nodes-openmrs
|
|
307
|
-
|
|
308
|
-
# Clear cache
|
|
309
|
-
rm -rf ~/.n8n/cache
|
|
310
|
-
|
|
311
|
-
# Restart n8n
|
|
312
|
-
n8n start
|
|
313
|
-
```
|
|
314
|
-
|
|
315
|
-
### Authentication fails
|
|
316
|
-
|
|
317
|
-
- Include `/openmrs` in Base URL
|
|
318
|
-
- Verify credentials in OpenMRS
|
|
319
|
-
- Check FHIR2 module is enabled
|
|
320
|
-
|
|
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
|
-
---
|
|
336
|
-
|
|
337
|
-
## Development
|
|
338
|
-
|
|
339
|
-
### Building
|
|
340
|
-
```bash
|
|
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
|
|
345
|
-
```
|
|
346
|
-
|
|
347
|
-
### Testing Locally
|
|
348
|
-
```bash
|
|
349
|
-
# Build and link
|
|
350
|
-
npm run build
|
|
351
|
-
npm link
|
|
352
|
-
|
|
353
|
-
# Start n8n
|
|
354
|
-
n8n start
|
|
355
|
-
|
|
356
|
-
# Test in n8n UI
|
|
357
|
-
# Your node appears as "OpenMRS"
|
|
358
|
-
```
|
|
359
|
-
|
|
360
|
-
### Publishing
|
|
361
|
-
```bash
|
|
362
|
-
# Bump version
|
|
363
|
-
npm version minor # 1.1.0 → 1.2.0
|
|
364
|
-
|
|
365
|
-
# Publish
|
|
366
|
-
npm publish
|
|
367
|
-
|
|
368
|
-
# Push to GitHub
|
|
369
|
-
git push origin main --tags
|
|
370
|
-
```
|
|
371
|
-
|
|
372
|
-
---
|
|
373
|
-
|
|
374
|
-
## Contributing
|
|
375
|
-
|
|
376
|
-
Contributions welcome! Please:
|
|
377
|
-
|
|
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
|
|
383
|
-
|
|
384
|
-
---
|
|
385
|
-
|
|
386
|
-
## Changelog
|
|
387
|
-
|
|
388
|
-
### [1.2.0] - 2026-03-05
|
|
389
|
-
|
|
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
|
|
395
|
-
|
|
396
|
-
**Changed**
|
|
397
|
-
- Improved error messages
|
|
398
|
-
- Better TypeScript types
|
|
399
|
-
- Updated documentation
|
|
400
|
-
|
|
401
|
-
### [1.1.0] - 2026-03-03
|
|
402
|
-
|
|
403
|
-
**Added**
|
|
404
|
-
- 6 FHIR resources (Patient, Encounter, Observation, etc.)
|
|
405
|
-
- Get and Get Many operations
|
|
406
|
-
- Pagination support
|
|
407
|
-
|
|
408
|
-
### [1.0.0] - 2026-03-01
|
|
409
|
-
|
|
410
|
-
**Added**
|
|
411
|
-
- Initial release
|
|
412
|
-
- Basic FHIR R4 support
|
|
413
|
-
|
|
414
|
-
---
|
|
415
|
-
|
|
416
|
-
## License
|
|
417
|
-
|
|
418
|
-
[MIT License](LICENSE)
|
|
419
|
-
|
|
420
|
-
Copyright © 2026 Monfort Brian N.
|
|
421
|
-
|
|
422
|
-
---
|
|
423
|
-
|
|
424
|
-
## Support
|
|
425
|
-
|
|
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/)
|
|
429
|
-
|
|
430
|
-
---
|
|
431
|
-
|
|
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
|
+
# n8n-nodes-openmrs
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/n8n-nodes-openmrs)
|
|
4
|
+
[](https://www.npmjs.com/package/n8n-nodes-openmrs)
|
|
5
|
+
[](LICENSE)
|
|
6
|
+
|
|
7
|
+
n8n community node for [OpenMRS](https://openmrs.org) FHIR R4 API. Register patients, create encounters, search clinical records, and connect OpenMRS to DHIS2, RapidPro, and other health systems.
|
|
8
|
+
|
|
9
|
+
[n8n](https://n8n.io/) is a fair-code licensed workflow automation platform.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Installation
|
|
14
|
+
|
|
15
|
+
**Via n8n UI:** Settings → Community Nodes → search `n8n-nodes-openmrs` → Install
|
|
16
|
+
|
|
17
|
+
**Via npm:**
|
|
18
|
+
```bash
|
|
19
|
+
npm install n8n-nodes-openmrs
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Credentials
|
|
25
|
+
|
|
26
|
+
| Field | Description |
|
|
27
|
+
|----------|-------------|
|
|
28
|
+
| Base URL | Your OpenMRS instance including `/openmrs` (e.g. `https://o3.openmrs.org/openmrs`) |
|
|
29
|
+
| Username | OpenMRS username |
|
|
30
|
+
| Password | OpenMRS password |
|
|
31
|
+
|
|
32
|
+
Demo: `https://o3.openmrs.org/openmrs` username `admin`, password `Admin123`
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Resources & Operations
|
|
37
|
+
|
|
38
|
+
| Resource | Operations |
|
|
39
|
+
|----------------------|------------|
|
|
40
|
+
| Patient | Create, Get, Get Many, Search by Identifier, Search by Name, Search by Phone |
|
|
41
|
+
| Encounter | Create, Get, Get Many |
|
|
42
|
+
| Observation | Get, Get Many |
|
|
43
|
+
| Diagnostic Report | Get, Get Many |
|
|
44
|
+
| Condition | Get, Get Many |
|
|
45
|
+
| Medication Statement | Get, Get Many |
|
|
46
|
+
| Custom API Call | Any method, any FHIR endpoint |
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Example: Register a Patient
|
|
51
|
+
|
|
52
|
+
```json
|
|
53
|
+
{
|
|
54
|
+
"resourceType": "Patient",
|
|
55
|
+
"identifier": [{ "system": "http://openmrs.org/identifier", "value": "CASE-001" }],
|
|
56
|
+
"name": [{ "family": "Nkurunziza", "given": ["Brian"] }],
|
|
57
|
+
"gender": "male",
|
|
58
|
+
"birthDate": "1995-03-15",
|
|
59
|
+
"telecom": [{ "system": "phone", "value": "+250788123456" }]
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Returns the created FHIR Patient resource including the assigned OpenMRS UUID.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Example: Create an Encounter
|
|
68
|
+
|
|
69
|
+
```json
|
|
70
|
+
{
|
|
71
|
+
"resourceType": "Encounter",
|
|
72
|
+
"status": "finished",
|
|
73
|
+
"class": { "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode", "code": "AMB" },
|
|
74
|
+
"subject": { "reference": "Patient/PATIENT_UUID" },
|
|
75
|
+
"period": { "start": "2026-06-02T08:00:00+00:00", "end": "2026-06-02T09:00:00+00:00" }
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Replace `PATIENT_UUID` with the UUID returned from Patient Create.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Compatibility
|
|
84
|
+
|
|
85
|
+
- **OpenMRS:** 2.3+ with FHIR2 module enabled
|
|
86
|
+
- **n8n:** 1.0+
|
|
87
|
+
- **Node.js:** 22+
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## API Reference
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
POST /ws/fhir2/R4/Patient
|
|
95
|
+
GET /ws/fhir2/R4/Patient/{uuid}
|
|
96
|
+
GET /ws/fhir2/R4/Patient?identifier={id}
|
|
97
|
+
GET /ws/fhir2/R4/Patient?name={name}
|
|
98
|
+
GET /ws/fhir2/R4/Patient?telecom={phone}
|
|
99
|
+
POST /ws/fhir2/R4/Encounter
|
|
100
|
+
GET /ws/fhir2/R4/Encounter/{uuid}
|
|
101
|
+
GET /ws/fhir2/R4/Encounter?patient={uuid}&_count=50
|
|
102
|
+
GET /ws/fhir2/R4/Observation?patient={uuid}&_count=50
|
|
103
|
+
GET /ws/fhir2/R4/DiagnosticReport?patient={uuid}&_count=50
|
|
104
|
+
GET /ws/fhir2/R4/Condition?patient={uuid}&_count=50
|
|
105
|
+
GET /ws/fhir2/R4/MedicationStatement?patient={uuid}&_count=50
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Resources
|
|
111
|
+
|
|
112
|
+
- [OpenMRS Documentation](https://wiki.openmrs.org/)
|
|
113
|
+
- [OpenMRS FHIR2 Module](https://wiki.openmrs.org/display/projects/FHIR+Module)
|
|
114
|
+
- [OpenMRS REST API](https://rest.openmrs.org/)
|
|
115
|
+
- [n8n Community Nodes](https://docs.n8n.io/integrations/community-nodes/)
|
|
116
|
+
- [n8n-nodes-dhis2](https://www.npmjs.com/package/n8n-nodes-dhis2) DHIS2 integration
|
|
117
|
+
- [n8n-nodes-rapidpro](https://www.npmjs.com/package/n8n-nodes-rapidpro) RapidPro messaging
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Contributing
|
|
122
|
+
|
|
123
|
+
1. Fork the repository
|
|
124
|
+
2. Create a feature branch: `git checkout -b feat/your-feature`
|
|
125
|
+
3. Commit: `git commit -m 'feat(openmrs): your change'`
|
|
126
|
+
4. Push and open a Pull Request
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Support
|
|
131
|
+
|
|
132
|
+
- **Issues:** [GitHub Issues](https://github.com/monfortbrian/n8n-nodes-openmrs/issues)
|
|
133
|
+
- **n8n Community:** [community.n8n.io](https://community.n8n.io/)
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## License
|
|
138
|
+
|
|
139
|
+
[MIT](LICENSE) © 2026 [Monfort Brian N. | 宁俊](https://github.com/monfortbrian)
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Acknowledgments
|
|
144
|
+
|
|
145
|
+
Built to connect clinical systems to national health information infrastructure. Part of an open-source interoperability stack for outbreak response and healthcare orchestration across low-resource settings.
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<g clip-path="url(#clip0_4731_3)">
|
|
3
|
-
<path d="M34.8041 34.8877C42.2938 27.4204 52.6397 22.8017 64.0669 22.8017C75.4685 22.8017 85.7887 27.3995 93.2691 34.8318L93.2995 7.3477C84.5416 2.85009 74.5974 0.306641 64.0669 0.306641C53.5318 0.306641 43.5362 3.16918 34.7714 7.67146L34.8041 34.8877Z" fill="#F26522"/>
|
|
4
|
-
<path d="M93.2995 93.21C85.8144 100.677 75.4708 105.294 64.0413 105.294C52.6467 105.294 42.3218 100.698 34.8368 93.2659L34.8041 120.748C43.5713 125.248 53.5062 127.789 64.0413 127.789C74.5764 127.789 84.5183 125.248 93.2785 120.745L93.2995 93.21Z" fill="#EEA616"/>
|
|
5
|
-
<path d="M34.8625 93.2449C27.3751 85.7776 22.7416 75.4641 22.7416 64.0652C22.7416 52.6988 27.3517 42.4039 34.8041 34.9366L7.24605 34.9087C2.73634 43.6477 0.188393 53.5583 0.188393 64.0652C0.188393 74.5744 2.73634 84.4873 7.25072 93.2263L34.8625 93.2449Z" fill="#5B57A6"/>
|
|
6
|
-
<path d="M93.2831 34.8296C100.773 42.2946 105.404 52.6151 105.404 64.014C105.404 75.3827 100.794 85.6752 93.3392 93.1356L120.9 93.1682C125.412 84.4315 127.957 74.5162 127.957 64.014C127.957 53.5048 125.412 43.5896 120.895 34.8482L93.2831 34.8296Z" fill="#009384"/>
|
|
7
|
-
</g>
|
|
8
|
-
<defs>
|
|
9
|
-
<clipPath id="clip0_4731_3">
|
|
10
|
-
<rect width="128" height="128" fill="white"/>
|
|
11
|
-
</clipPath>
|
|
12
|
-
</defs>
|
|
1
|
+
<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g clip-path="url(#clip0_4731_3)">
|
|
3
|
+
<path d="M34.8041 34.8877C42.2938 27.4204 52.6397 22.8017 64.0669 22.8017C75.4685 22.8017 85.7887 27.3995 93.2691 34.8318L93.2995 7.3477C84.5416 2.85009 74.5974 0.306641 64.0669 0.306641C53.5318 0.306641 43.5362 3.16918 34.7714 7.67146L34.8041 34.8877Z" fill="#F26522"/>
|
|
4
|
+
<path d="M93.2995 93.21C85.8144 100.677 75.4708 105.294 64.0413 105.294C52.6467 105.294 42.3218 100.698 34.8368 93.2659L34.8041 120.748C43.5713 125.248 53.5062 127.789 64.0413 127.789C74.5764 127.789 84.5183 125.248 93.2785 120.745L93.2995 93.21Z" fill="#EEA616"/>
|
|
5
|
+
<path d="M34.8625 93.2449C27.3751 85.7776 22.7416 75.4641 22.7416 64.0652C22.7416 52.6988 27.3517 42.4039 34.8041 34.9366L7.24605 34.9087C2.73634 43.6477 0.188393 53.5583 0.188393 64.0652C0.188393 74.5744 2.73634 84.4873 7.25072 93.2263L34.8625 93.2449Z" fill="#5B57A6"/>
|
|
6
|
+
<path d="M93.2831 34.8296C100.773 42.2946 105.404 52.6151 105.404 64.014C105.404 75.3827 100.794 85.6752 93.3392 93.1356L120.9 93.1682C125.412 84.4315 127.957 74.5162 127.957 64.014C127.957 53.5048 125.412 43.5896 120.895 34.8482L93.2831 34.8296Z" fill="#009384"/>
|
|
7
|
+
</g>
|
|
8
|
+
<defs>
|
|
9
|
+
<clipPath id="clip0_4731_3">
|
|
10
|
+
<rect width="128" height="128" fill="white"/>
|
|
11
|
+
</clipPath>
|
|
12
|
+
</defs>
|
|
13
13
|
</svg>
|
|
@@ -25,7 +25,7 @@ class OpenMrs {
|
|
|
25
25
|
},
|
|
26
26
|
],
|
|
27
27
|
properties: [
|
|
28
|
-
//
|
|
28
|
+
// ===== RESOURCE =====
|
|
29
29
|
{
|
|
30
30
|
displayName: 'Resource',
|
|
31
31
|
name: 'resource',
|
|
@@ -42,18 +42,20 @@ class OpenMrs {
|
|
|
42
42
|
],
|
|
43
43
|
default: 'patient',
|
|
44
44
|
},
|
|
45
|
-
//
|
|
45
|
+
// ===== PATIENT OPERATIONS =====
|
|
46
46
|
{
|
|
47
47
|
displayName: 'Operation',
|
|
48
48
|
name: 'operation',
|
|
49
49
|
type: 'options',
|
|
50
50
|
noDataExpression: true,
|
|
51
|
-
displayOptions: {
|
|
52
|
-
show: {
|
|
53
|
-
resource: ['patient'],
|
|
54
|
-
},
|
|
55
|
-
},
|
|
51
|
+
displayOptions: { show: { resource: ['patient'] } },
|
|
56
52
|
options: [
|
|
53
|
+
{
|
|
54
|
+
name: 'Create',
|
|
55
|
+
value: 'create',
|
|
56
|
+
description: 'Register a new patient',
|
|
57
|
+
action: 'Create a patient',
|
|
58
|
+
},
|
|
57
59
|
{
|
|
58
60
|
name: 'Get',
|
|
59
61
|
value: 'get',
|
|
@@ -87,7 +89,36 @@ class OpenMrs {
|
|
|
87
89
|
],
|
|
88
90
|
default: 'searchByIdentifier',
|
|
89
91
|
},
|
|
90
|
-
//
|
|
92
|
+
// ===== ENCOUNTER OPERATIONS =====
|
|
93
|
+
{
|
|
94
|
+
displayName: 'Operation',
|
|
95
|
+
name: 'operation',
|
|
96
|
+
type: 'options',
|
|
97
|
+
noDataExpression: true,
|
|
98
|
+
displayOptions: { show: { resource: ['encounter'] } },
|
|
99
|
+
options: [
|
|
100
|
+
{
|
|
101
|
+
name: 'Create',
|
|
102
|
+
value: 'create',
|
|
103
|
+
description: 'Create a new encounter for a patient',
|
|
104
|
+
action: 'Create an encounter',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
name: 'Get',
|
|
108
|
+
value: 'get',
|
|
109
|
+
description: 'Get an encounter by UUID',
|
|
110
|
+
action: 'Get an encounter',
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
name: 'Get Many',
|
|
114
|
+
value: 'getAll',
|
|
115
|
+
description: 'Get many encounters for a patient',
|
|
116
|
+
action: 'Get many encounters',
|
|
117
|
+
},
|
|
118
|
+
],
|
|
119
|
+
default: 'get',
|
|
120
|
+
},
|
|
121
|
+
// ===== OTHER RESOURCE OPERATIONS =====
|
|
91
122
|
{
|
|
92
123
|
displayName: 'Operation',
|
|
93
124
|
name: 'operation',
|
|
@@ -95,42 +126,32 @@ class OpenMrs {
|
|
|
95
126
|
noDataExpression: true,
|
|
96
127
|
displayOptions: {
|
|
97
128
|
show: {
|
|
98
|
-
resource: [
|
|
99
|
-
'encounter',
|
|
100
|
-
'observation',
|
|
101
|
-
'diagnosticReport',
|
|
102
|
-
'condition',
|
|
103
|
-
'medicationStatement',
|
|
104
|
-
],
|
|
129
|
+
resource: ['observation', 'diagnosticReport', 'condition', 'medicationStatement'],
|
|
105
130
|
},
|
|
106
131
|
},
|
|
107
132
|
options: [
|
|
108
133
|
{
|
|
109
134
|
name: 'Get',
|
|
110
135
|
value: 'get',
|
|
111
|
-
description: 'Get a resource by
|
|
136
|
+
description: 'Get a resource by UUID',
|
|
112
137
|
action: 'Get a resource',
|
|
113
138
|
},
|
|
114
139
|
{
|
|
115
140
|
name: 'Get Many',
|
|
116
141
|
value: 'getAll',
|
|
117
|
-
description: 'Get many resources',
|
|
142
|
+
description: 'Get many resources for a patient',
|
|
118
143
|
action: 'Get many resources',
|
|
119
144
|
},
|
|
120
145
|
],
|
|
121
146
|
default: 'get',
|
|
122
147
|
},
|
|
123
|
-
//
|
|
148
|
+
// ===== CUSTOM API CALL OPERATION =====
|
|
124
149
|
{
|
|
125
150
|
displayName: 'Operation',
|
|
126
151
|
name: 'operation',
|
|
127
152
|
type: 'options',
|
|
128
153
|
noDataExpression: true,
|
|
129
|
-
displayOptions: {
|
|
130
|
-
show: {
|
|
131
|
-
resource: ['customApiCall'],
|
|
132
|
-
},
|
|
133
|
-
},
|
|
154
|
+
displayOptions: { show: { resource: ['customApiCall'] } },
|
|
134
155
|
options: [
|
|
135
156
|
{
|
|
136
157
|
name: 'Custom API Call',
|
|
@@ -141,33 +162,43 @@ class OpenMrs {
|
|
|
141
162
|
],
|
|
142
163
|
default: 'customApiCall',
|
|
143
164
|
},
|
|
144
|
-
//
|
|
165
|
+
// ===== PATIENT CREATE FIELDS =====
|
|
166
|
+
{
|
|
167
|
+
displayName: 'Patient (FHIR JSON)',
|
|
168
|
+
name: 'patientPayload',
|
|
169
|
+
type: 'json',
|
|
170
|
+
required: true,
|
|
171
|
+
displayOptions: { show: { resource: ['patient'], operation: ['create'] } },
|
|
172
|
+
default: '{\n "resourceType": "Patient",\n "identifier": [\n {\n "system": "http://openmrs.org/identifier",\n "value": "PATIENT-001"\n }\n ],\n "name": [\n {\n "family": "Doe",\n "given": ["John"]\n }\n ],\n "gender": "male",\n "birthDate": "1990-01-01",\n "telecom": [\n {\n "system": "phone",\n "value": "+250788123456"\n }\n ]\n}',
|
|
173
|
+
description: 'Full FHIR Patient resource. Must include resourceType, name, gender, birthDate.',
|
|
174
|
+
},
|
|
175
|
+
// ===== ENCOUNTER CREATE FIELDS =====
|
|
176
|
+
{
|
|
177
|
+
displayName: 'Encounter (FHIR JSON)',
|
|
178
|
+
name: 'encounterPayload',
|
|
179
|
+
type: 'json',
|
|
180
|
+
required: true,
|
|
181
|
+
displayOptions: { show: { resource: ['encounter'], operation: ['create'] } },
|
|
182
|
+
default: '{\n "resourceType": "Encounter",\n "status": "finished",\n "class": {\n "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",\n "code": "AMB",\n "display": "ambulatory"\n },\n "subject": {\n "reference": "Patient/PATIENT_UUID"\n },\n "period": {\n "start": "2026-06-02T08:00:00+00:00",\n "end": "2026-06-02T09:00:00+00:00"\n },\n "type": [\n {\n "coding": [\n {\n "system": "http://snomed.info/sct",\n "code": "11429006",\n "display": "Consultation"\n }\n ]\n }\n ]\n}',
|
|
183
|
+
description: 'Full FHIR Encounter resource. Must include resourceType, status, class, subject (Patient reference), and period.',
|
|
184
|
+
},
|
|
185
|
+
// ===== SEARCH FIELDS =====
|
|
145
186
|
{
|
|
146
187
|
displayName: 'Identifier',
|
|
147
188
|
name: 'identifier',
|
|
148
189
|
type: 'string',
|
|
149
190
|
required: true,
|
|
150
|
-
displayOptions: {
|
|
151
|
-
show: {
|
|
152
|
-
resource: ['patient'],
|
|
153
|
-
operation: ['searchByIdentifier'],
|
|
154
|
-
},
|
|
155
|
-
},
|
|
191
|
+
displayOptions: { show: { resource: ['patient'], operation: ['searchByIdentifier'] } },
|
|
156
192
|
default: '',
|
|
157
193
|
placeholder: '131280865',
|
|
158
|
-
description: 'OpenMRS ID or National ID
|
|
194
|
+
description: 'OpenMRS ID or National ID',
|
|
159
195
|
},
|
|
160
196
|
{
|
|
161
197
|
displayName: 'Name',
|
|
162
198
|
name: 'name',
|
|
163
199
|
type: 'string',
|
|
164
200
|
required: true,
|
|
165
|
-
displayOptions: {
|
|
166
|
-
show: {
|
|
167
|
-
resource: ['patient'],
|
|
168
|
-
operation: ['searchByName'],
|
|
169
|
-
},
|
|
170
|
-
},
|
|
201
|
+
displayOptions: { show: { resource: ['patient'], operation: ['searchByName'] } },
|
|
171
202
|
default: '',
|
|
172
203
|
placeholder: 'Patricia Lewis',
|
|
173
204
|
description: 'Patient name (supports partial matching)',
|
|
@@ -177,28 +208,18 @@ class OpenMrs {
|
|
|
177
208
|
name: 'phone',
|
|
178
209
|
type: 'string',
|
|
179
210
|
required: true,
|
|
180
|
-
displayOptions: {
|
|
181
|
-
show: {
|
|
182
|
-
resource: ['patient'],
|
|
183
|
-
operation: ['searchByPhone'],
|
|
184
|
-
},
|
|
185
|
-
},
|
|
211
|
+
displayOptions: { show: { resource: ['patient'], operation: ['searchByPhone'] } },
|
|
186
212
|
default: '',
|
|
187
213
|
placeholder: '+254712345678',
|
|
188
214
|
description: 'Phone number in any format',
|
|
189
215
|
},
|
|
190
|
-
//
|
|
216
|
+
// ===== GET BY UUID FIELDS =====
|
|
191
217
|
{
|
|
192
218
|
displayName: 'Patient ID',
|
|
193
219
|
name: 'patientId',
|
|
194
220
|
type: 'string',
|
|
195
221
|
required: true,
|
|
196
|
-
displayOptions: {
|
|
197
|
-
show: {
|
|
198
|
-
resource: ['patient'],
|
|
199
|
-
operation: ['get'],
|
|
200
|
-
},
|
|
201
|
-
},
|
|
222
|
+
displayOptions: { show: { resource: ['patient'], operation: ['get'] } },
|
|
202
223
|
default: '',
|
|
203
224
|
description: 'The UUID of the patient',
|
|
204
225
|
},
|
|
@@ -207,12 +228,7 @@ class OpenMrs {
|
|
|
207
228
|
name: 'encounterId',
|
|
208
229
|
type: 'string',
|
|
209
230
|
required: true,
|
|
210
|
-
displayOptions: {
|
|
211
|
-
show: {
|
|
212
|
-
resource: ['encounter'],
|
|
213
|
-
operation: ['get'],
|
|
214
|
-
},
|
|
215
|
-
},
|
|
231
|
+
displayOptions: { show: { resource: ['encounter'], operation: ['get'] } },
|
|
216
232
|
default: '',
|
|
217
233
|
description: 'The UUID of the encounter',
|
|
218
234
|
},
|
|
@@ -221,12 +237,7 @@ class OpenMrs {
|
|
|
221
237
|
name: 'observationId',
|
|
222
238
|
type: 'string',
|
|
223
239
|
required: true,
|
|
224
|
-
displayOptions: {
|
|
225
|
-
show: {
|
|
226
|
-
resource: ['observation'],
|
|
227
|
-
operation: ['get'],
|
|
228
|
-
},
|
|
229
|
-
},
|
|
240
|
+
displayOptions: { show: { resource: ['observation'], operation: ['get'] } },
|
|
230
241
|
default: '',
|
|
231
242
|
description: 'The UUID of the observation',
|
|
232
243
|
},
|
|
@@ -235,12 +246,7 @@ class OpenMrs {
|
|
|
235
246
|
name: 'diagnosticReportId',
|
|
236
247
|
type: 'string',
|
|
237
248
|
required: true,
|
|
238
|
-
displayOptions: {
|
|
239
|
-
show: {
|
|
240
|
-
resource: ['diagnosticReport'],
|
|
241
|
-
operation: ['get'],
|
|
242
|
-
},
|
|
243
|
-
},
|
|
249
|
+
displayOptions: { show: { resource: ['diagnosticReport'], operation: ['get'] } },
|
|
244
250
|
default: '',
|
|
245
251
|
description: 'The UUID of the diagnostic report',
|
|
246
252
|
},
|
|
@@ -249,12 +255,7 @@ class OpenMrs {
|
|
|
249
255
|
name: 'conditionId',
|
|
250
256
|
type: 'string',
|
|
251
257
|
required: true,
|
|
252
|
-
displayOptions: {
|
|
253
|
-
show: {
|
|
254
|
-
resource: ['condition'],
|
|
255
|
-
operation: ['get'],
|
|
256
|
-
},
|
|
257
|
-
},
|
|
258
|
+
displayOptions: { show: { resource: ['condition'], operation: ['get'] } },
|
|
258
259
|
default: '',
|
|
259
260
|
description: 'The UUID of the condition',
|
|
260
261
|
},
|
|
@@ -263,25 +264,16 @@ class OpenMrs {
|
|
|
263
264
|
name: 'medicationStatementId',
|
|
264
265
|
type: 'string',
|
|
265
266
|
required: true,
|
|
266
|
-
displayOptions: {
|
|
267
|
-
show: {
|
|
268
|
-
resource: ['medicationStatement'],
|
|
269
|
-
operation: ['get'],
|
|
270
|
-
},
|
|
271
|
-
},
|
|
267
|
+
displayOptions: { show: { resource: ['medicationStatement'], operation: ['get'] } },
|
|
272
268
|
default: '',
|
|
273
269
|
description: 'The UUID of the medication statement',
|
|
274
270
|
},
|
|
275
|
-
//
|
|
271
|
+
// ===== CUSTOM API CALL FIELDS =====
|
|
276
272
|
{
|
|
277
273
|
displayName: 'HTTP Method',
|
|
278
274
|
name: 'httpMethod',
|
|
279
275
|
type: 'options',
|
|
280
|
-
displayOptions: {
|
|
281
|
-
show: {
|
|
282
|
-
resource: ['customApiCall'],
|
|
283
|
-
},
|
|
284
|
-
},
|
|
276
|
+
displayOptions: { show: { resource: ['customApiCall'] } },
|
|
285
277
|
options: [
|
|
286
278
|
{ name: 'DELETE', value: 'DELETE' },
|
|
287
279
|
{ name: 'GET', value: 'GET' },
|
|
@@ -296,11 +288,7 @@ class OpenMrs {
|
|
|
296
288
|
name: 'endpoint',
|
|
297
289
|
type: 'string',
|
|
298
290
|
required: true,
|
|
299
|
-
displayOptions: {
|
|
300
|
-
show: {
|
|
301
|
-
resource: ['customApiCall'],
|
|
302
|
-
},
|
|
303
|
-
},
|
|
291
|
+
displayOptions: { show: { resource: ['customApiCall'] } },
|
|
304
292
|
default: '/ws/fhir2/R4/Patient',
|
|
305
293
|
placeholder: '/ws/fhir2/R4/Patient',
|
|
306
294
|
description: 'The API endpoint (e.g., /ws/fhir2/R4/Patient)',
|
|
@@ -309,14 +297,8 @@ class OpenMrs {
|
|
|
309
297
|
displayName: 'Query Parameters',
|
|
310
298
|
name: 'queryParameters',
|
|
311
299
|
type: 'fixedCollection',
|
|
312
|
-
typeOptions: {
|
|
313
|
-
|
|
314
|
-
},
|
|
315
|
-
displayOptions: {
|
|
316
|
-
show: {
|
|
317
|
-
resource: ['customApiCall'],
|
|
318
|
-
},
|
|
319
|
-
},
|
|
300
|
+
typeOptions: { multipleValues: true },
|
|
301
|
+
displayOptions: { show: { resource: ['customApiCall'] } },
|
|
320
302
|
default: {},
|
|
321
303
|
placeholder: 'Add Parameter',
|
|
322
304
|
options: [
|
|
@@ -340,7 +322,7 @@ class OpenMrs {
|
|
|
340
322
|
},
|
|
341
323
|
],
|
|
342
324
|
},
|
|
343
|
-
//
|
|
325
|
+
// ===== GET MANY PATIENT FILTER =====
|
|
344
326
|
{
|
|
345
327
|
displayName: 'Patient ID',
|
|
346
328
|
name: 'patientIdFilter',
|
|
@@ -348,20 +330,14 @@ class OpenMrs {
|
|
|
348
330
|
required: true,
|
|
349
331
|
displayOptions: {
|
|
350
332
|
show: {
|
|
351
|
-
resource: [
|
|
352
|
-
'encounter',
|
|
353
|
-
'observation',
|
|
354
|
-
'diagnosticReport',
|
|
355
|
-
'condition',
|
|
356
|
-
'medicationStatement',
|
|
357
|
-
],
|
|
333
|
+
resource: ['encounter', 'observation', 'diagnosticReport', 'condition', 'medicationStatement'],
|
|
358
334
|
operation: ['getAll'],
|
|
359
335
|
},
|
|
360
336
|
},
|
|
361
337
|
default: '',
|
|
362
338
|
description: 'The UUID of the patient to filter results by',
|
|
363
339
|
},
|
|
364
|
-
//
|
|
340
|
+
// ===== PAGINATION =====
|
|
365
341
|
{
|
|
366
342
|
displayName: 'Return All',
|
|
367
343
|
name: 'returnAll',
|
|
@@ -384,10 +360,7 @@ class OpenMrs {
|
|
|
384
360
|
returnAll: [false],
|
|
385
361
|
},
|
|
386
362
|
},
|
|
387
|
-
typeOptions: {
|
|
388
|
-
minValue: 1,
|
|
389
|
-
maxValue: 100,
|
|
390
|
-
},
|
|
363
|
+
typeOptions: { minValue: 1, maxValue: 100 },
|
|
391
364
|
default: 50,
|
|
392
365
|
description: 'Max number of results to return',
|
|
393
366
|
},
|
|
@@ -399,7 +372,7 @@ class OpenMrs {
|
|
|
399
372
|
const items = this.getInputData();
|
|
400
373
|
const returnData = [];
|
|
401
374
|
const credentials = await this.getCredentials('openMrsApi');
|
|
402
|
-
const baseUrl = credentials.baseUrl;
|
|
375
|
+
const baseUrl = credentials.baseUrl.replace(/\/$/, '');
|
|
403
376
|
const fhirResourceMap = {
|
|
404
377
|
patient: 'Patient',
|
|
405
378
|
encounter: 'Encounter',
|
|
@@ -422,7 +395,9 @@ class OpenMrs {
|
|
|
422
395
|
const operation = this.getNodeParameter('operation', i);
|
|
423
396
|
let endpoint = '';
|
|
424
397
|
const qs = {};
|
|
425
|
-
//
|
|
398
|
+
// ----------------------------------------------------------------
|
|
399
|
+
// Custom API Call returns early
|
|
400
|
+
// ----------------------------------------------------------------
|
|
426
401
|
if (resource === 'customApiCall') {
|
|
427
402
|
const httpMethod = this.getNodeParameter('httpMethod', i);
|
|
428
403
|
endpoint = this.getNodeParameter('endpoint', i);
|
|
@@ -441,64 +416,94 @@ class OpenMrs {
|
|
|
441
416
|
returnData.push({ json: response, pairedItem: { item: i } });
|
|
442
417
|
continue;
|
|
443
418
|
}
|
|
444
|
-
//
|
|
445
|
-
|
|
446
|
-
//
|
|
419
|
+
// ----------------------------------------------------------------
|
|
420
|
+
// Patient: Create POST, returns early
|
|
421
|
+
// ----------------------------------------------------------------
|
|
422
|
+
if (resource === 'patient' && operation === 'create') {
|
|
423
|
+
const raw = this.getNodeParameter('patientPayload', i);
|
|
424
|
+
const body = JSON.parse(typeof raw === 'string' ? raw : JSON.stringify(raw));
|
|
425
|
+
const response = await this.helpers.httpRequestWithAuthentication.call(this, 'openMrsApi', {
|
|
426
|
+
method: 'POST',
|
|
427
|
+
url: `${baseUrl}/ws/fhir2/R4/Patient`,
|
|
428
|
+
body,
|
|
429
|
+
json: true,
|
|
430
|
+
});
|
|
431
|
+
returnData.push({ json: response, pairedItem: { item: i } });
|
|
432
|
+
continue;
|
|
433
|
+
}
|
|
434
|
+
// ----------------------------------------------------------------
|
|
435
|
+
// Encounter: Create POST, returns early
|
|
436
|
+
// ----------------------------------------------------------------
|
|
437
|
+
if (resource === 'encounter' && operation === 'create') {
|
|
438
|
+
const raw = this.getNodeParameter('encounterPayload', i);
|
|
439
|
+
const body = JSON.parse(typeof raw === 'string' ? raw : JSON.stringify(raw));
|
|
440
|
+
const response = await this.helpers.httpRequestWithAuthentication.call(this, 'openMrsApi', {
|
|
441
|
+
method: 'POST',
|
|
442
|
+
url: `${baseUrl}/ws/fhir2/R4/Encounter`,
|
|
443
|
+
body,
|
|
444
|
+
json: true,
|
|
445
|
+
});
|
|
446
|
+
returnData.push({ json: response, pairedItem: { item: i } });
|
|
447
|
+
continue;
|
|
448
|
+
}
|
|
449
|
+
// ----------------------------------------------------------------
|
|
450
|
+
// Get by UUID
|
|
451
|
+
// ----------------------------------------------------------------
|
|
447
452
|
if (operation === 'get') {
|
|
448
453
|
const idParam = resourceIdParamMap[resource];
|
|
449
454
|
const resourceId = this.getNodeParameter(idParam, i);
|
|
455
|
+
const fhirResource = fhirResourceMap[resource];
|
|
450
456
|
endpoint = `/ws/fhir2/R4/${fhirResource}/${resourceId}`;
|
|
451
457
|
}
|
|
452
|
-
//
|
|
458
|
+
// ----------------------------------------------------------------
|
|
459
|
+
// Search operations (Patient only)
|
|
460
|
+
// ----------------------------------------------------------------
|
|
453
461
|
else if (operation === 'searchByIdentifier') {
|
|
454
462
|
const identifier = this.getNodeParameter('identifier', i);
|
|
455
|
-
endpoint =
|
|
463
|
+
endpoint = '/ws/fhir2/R4/Patient';
|
|
456
464
|
qs.identifier = identifier;
|
|
457
465
|
const returnAll = this.getNodeParameter('returnAll', i, false);
|
|
458
|
-
if (!returnAll)
|
|
466
|
+
if (!returnAll)
|
|
459
467
|
qs._count = this.getNodeParameter('limit', i, 50);
|
|
460
|
-
}
|
|
461
468
|
}
|
|
462
|
-
// Search by Name
|
|
463
469
|
else if (operation === 'searchByName') {
|
|
464
470
|
const name = this.getNodeParameter('name', i);
|
|
465
|
-
endpoint =
|
|
471
|
+
endpoint = '/ws/fhir2/R4/Patient';
|
|
466
472
|
qs.name = name;
|
|
467
473
|
const returnAll = this.getNodeParameter('returnAll', i, false);
|
|
468
|
-
if (!returnAll)
|
|
474
|
+
if (!returnAll)
|
|
469
475
|
qs._count = this.getNodeParameter('limit', i, 50);
|
|
470
|
-
}
|
|
471
476
|
}
|
|
472
|
-
// Search by Phone
|
|
473
477
|
else if (operation === 'searchByPhone') {
|
|
474
478
|
const phone = this.getNodeParameter('phone', i);
|
|
475
|
-
endpoint =
|
|
479
|
+
endpoint = '/ws/fhir2/R4/Patient';
|
|
476
480
|
qs.telecom = phone;
|
|
477
481
|
const returnAll = this.getNodeParameter('returnAll', i, false);
|
|
478
|
-
if (!returnAll)
|
|
482
|
+
if (!returnAll)
|
|
479
483
|
qs._count = this.getNodeParameter('limit', i, 50);
|
|
480
|
-
}
|
|
481
484
|
}
|
|
482
|
-
//
|
|
485
|
+
// ----------------------------------------------------------------
|
|
486
|
+
// Get Many
|
|
487
|
+
// ----------------------------------------------------------------
|
|
483
488
|
else if (operation === 'getAll') {
|
|
489
|
+
const fhirResource = fhirResourceMap[resource];
|
|
484
490
|
endpoint = `/ws/fhir2/R4/${fhirResource}`;
|
|
485
491
|
if (resource !== 'patient') {
|
|
486
|
-
|
|
487
|
-
qs.patient = patientId;
|
|
492
|
+
qs.patient = this.getNodeParameter('patientIdFilter', i);
|
|
488
493
|
}
|
|
489
494
|
const returnAll = this.getNodeParameter('returnAll', i);
|
|
490
|
-
if (!returnAll)
|
|
495
|
+
if (!returnAll)
|
|
491
496
|
qs._count = this.getNodeParameter('limit', i);
|
|
492
|
-
}
|
|
493
497
|
}
|
|
494
|
-
//
|
|
498
|
+
// ----------------------------------------------------------------
|
|
499
|
+
// Shared GET handler
|
|
500
|
+
// ----------------------------------------------------------------
|
|
495
501
|
const response = await this.helpers.httpRequestWithAuthentication.call(this, 'openMrsApi', {
|
|
496
502
|
method: 'GET',
|
|
497
503
|
url: `${baseUrl}${endpoint}`,
|
|
498
504
|
qs,
|
|
499
505
|
json: true,
|
|
500
506
|
});
|
|
501
|
-
// Process response
|
|
502
507
|
if (Array.isArray(response)) {
|
|
503
508
|
returnData.push(...response.map((item) => ({ json: item, pairedItem: { item: i } })));
|
|
504
509
|
}
|
|
@@ -515,8 +520,10 @@ class OpenMrs {
|
|
|
515
520
|
}
|
|
516
521
|
catch (error) {
|
|
517
522
|
if (this.continueOnFail()) {
|
|
518
|
-
|
|
519
|
-
|
|
523
|
+
returnData.push({
|
|
524
|
+
json: { error: error instanceof Error ? error.message : 'Unknown error' },
|
|
525
|
+
pairedItem: { item: i },
|
|
526
|
+
});
|
|
520
527
|
continue;
|
|
521
528
|
}
|
|
522
529
|
throw new n8n_workflow_1.NodeOperationError(this.getNode(), error instanceof Error ? error : new Error(String(error)), { itemIndex: i });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenMrs.node.js","sourceRoot":"","sources":["../../../nodes/OpenMrs/OpenMrs.node.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OpenMrs.node.js","sourceRoot":"","sources":["../../../nodes/OpenMrs/OpenMrs.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
-
<g clip-path="url(#clip0_4731_3)">
|
|
3
|
-
<path d="M34.8041 34.8877C42.2938 27.4204 52.6397 22.8017 64.0669 22.8017C75.4685 22.8017 85.7887 27.3995 93.2691 34.8318L93.2995 7.3477C84.5416 2.85009 74.5974 0.306641 64.0669 0.306641C53.5318 0.306641 43.5362 3.16918 34.7714 7.67146L34.8041 34.8877Z" fill="#F26522"/>
|
|
4
|
-
<path d="M93.2995 93.21C85.8144 100.677 75.4708 105.294 64.0413 105.294C52.6467 105.294 42.3218 100.698 34.8368 93.2659L34.8041 120.748C43.5713 125.248 53.5062 127.789 64.0413 127.789C74.5764 127.789 84.5183 125.248 93.2785 120.745L93.2995 93.21Z" fill="#EEA616"/>
|
|
5
|
-
<path d="M34.8625 93.2449C27.3751 85.7776 22.7416 75.4641 22.7416 64.0652C22.7416 52.6988 27.3517 42.4039 34.8041 34.9366L7.24605 34.9087C2.73634 43.6477 0.188393 53.5583 0.188393 64.0652C0.188393 74.5744 2.73634 84.4873 7.25072 93.2263L34.8625 93.2449Z" fill="#5B57A6"/>
|
|
6
|
-
<path d="M93.2831 34.8296C100.773 42.2946 105.404 52.6151 105.404 64.014C105.404 75.3827 100.794 85.6752 93.3392 93.1356L120.9 93.1682C125.412 84.4315 127.957 74.5162 127.957 64.014C127.957 53.5048 125.412 43.5896 120.895 34.8482L93.2831 34.8296Z" fill="#009384"/>
|
|
7
|
-
</g>
|
|
8
|
-
<defs>
|
|
9
|
-
<clipPath id="clip0_4731_3">
|
|
10
|
-
<rect width="128" height="128" fill="white"/>
|
|
11
|
-
</clipPath>
|
|
12
|
-
</defs>
|
|
1
|
+
<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g clip-path="url(#clip0_4731_3)">
|
|
3
|
+
<path d="M34.8041 34.8877C42.2938 27.4204 52.6397 22.8017 64.0669 22.8017C75.4685 22.8017 85.7887 27.3995 93.2691 34.8318L93.2995 7.3477C84.5416 2.85009 74.5974 0.306641 64.0669 0.306641C53.5318 0.306641 43.5362 3.16918 34.7714 7.67146L34.8041 34.8877Z" fill="#F26522"/>
|
|
4
|
+
<path d="M93.2995 93.21C85.8144 100.677 75.4708 105.294 64.0413 105.294C52.6467 105.294 42.3218 100.698 34.8368 93.2659L34.8041 120.748C43.5713 125.248 53.5062 127.789 64.0413 127.789C74.5764 127.789 84.5183 125.248 93.2785 120.745L93.2995 93.21Z" fill="#EEA616"/>
|
|
5
|
+
<path d="M34.8625 93.2449C27.3751 85.7776 22.7416 75.4641 22.7416 64.0652C22.7416 52.6988 27.3517 42.4039 34.8041 34.9366L7.24605 34.9087C2.73634 43.6477 0.188393 53.5583 0.188393 64.0652C0.188393 74.5744 2.73634 84.4873 7.25072 93.2263L34.8625 93.2449Z" fill="#5B57A6"/>
|
|
6
|
+
<path d="M93.2831 34.8296C100.773 42.2946 105.404 52.6151 105.404 64.014C105.404 75.3827 100.794 85.6752 93.3392 93.1356L120.9 93.1682C125.412 84.4315 127.957 74.5162 127.957 64.014C127.957 53.5048 125.412 43.5896 120.895 34.8482L93.2831 34.8296Z" fill="#009384"/>
|
|
7
|
+
</g>
|
|
8
|
+
<defs>
|
|
9
|
+
<clipPath id="clip0_4731_3">
|
|
10
|
+
<rect width="128" height="128" fill="white"/>
|
|
11
|
+
</clipPath>
|
|
12
|
+
</defs>
|
|
13
13
|
</svg>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n8n-nodes-openmrs",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.6",
|
|
4
4
|
"description": "n8n community node for OpenMRS FHIR R4 integration. Access patient demographics, encounters, observations, diagnostic reports, conditions, and medication statements.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"n8n-community-node-package",
|