n8n-nodes-openmrs 1.2.1 → 1.3.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,415 +1,139 @@
1
1
  # n8n-nodes-openmrs
2
2
 
3
- [![npm version](https://img.shields.io/npm/v/n8n-nodes-openmrs)](https://www.npmjs.com/package/n8n-nodes-openmrs)
3
+ [![npm](https://img.shields.io/npm/v/n8n-nodes-openmrs)](https://www.npmjs.com/package/n8n-nodes-openmrs)
4
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)
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
6
6
 
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
-
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
- ---
19
-
20
- ## Features
21
-
22
- ### Intelligent Patient Lookup
23
-
24
- Real-world clinics don't use UUIDs. Search patients the way healthcare workers actually do:
25
-
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
30
-
31
- ### Complete FHIR R4 Coverage
32
-
33
- Access all essential clinical resources:
34
-
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 |
43
-
44
- ### Developer-Friendly
45
-
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
50
-
51
- ### Built for Global Health
52
-
53
- - Optimized for low-bandwidth environments
54
- - Works with OpenMRS 2.x and 3.x
55
- - Compatible with DHIS2 workflows
56
- - Supports both cloud and on-premise deployments
7
+ n8n community node for [OpenMRS](https://openmrs.org) FHIR R4 API. Register patients, create encounters, search clinical records, and build interoperability.
8
+ [n8n](https://n8n.io/) is a fair-code licensed workflow automation platform.
57
9
 
58
10
  ---
59
11
 
60
12
  ## Installation
61
13
 
62
- ### Via n8n Community Nodes (Recommended)
63
-
64
- 1. Open n8n
65
- 2. Go to **Settings** → **Community Nodes**
66
- 3. Click **Install a community node**
67
- 4. Enter: `n8n-nodes-openmrs`
68
- 5. Click **Install**
69
-
70
- ### Via npm
71
- ```bash
72
- npm install n8n-nodes-openmrs
73
- ```
14
+ **Via n8n UI:** Search DHIS2 as verified node or simply go to Settings → Community Nodes → `n8n-nodes-dhis2`
74
15
 
75
- ### From Source
16
+ **Via npm:**
76
17
  ```bash
77
- git clone https://github.com/monfortbrian/n8n-nodes-openmrs.git
78
- cd n8n-nodes-openmrs
79
- npm install
80
- npm run build
81
- npm link
18
+ npm install n8n-nodes-dhis2
82
19
  ```
83
20
 
84
21
  ---
85
22
 
86
- ## Quick Start
23
+ ## Credentials
87
24
 
88
- ### 1. Configure Credentials
25
+ | Field | Description |
26
+ |----------|-------------|
27
+ | Base URL | Your OpenMRS instance including `/openmrs` (e.g. `https://demo.openmrs.org/openmrs`) |
28
+ | Username | OpenMRS username |
29
+ | Password | OpenMRS password |
89
30
 
90
- 1. In n8n, go to **Credentials** → **New**
91
- 2. Search for **OpenMRS API**
92
- 3. Configure:
93
- - **Base URL**: `https://demo.openmrs.org/openmrs` (include `/openmrs`)
94
- - **Username**: `admin`
95
- - **Password**: `Admin123`
96
- 4. Test & Save
97
-
98
- ### 2. Search Patient by OpenMRS ID
99
- ```
100
- Add Node → OpenMRS
101
- ├─ Resource: Patient
102
- ├─ Operation: Search by Identifier
103
- └─ Identifier: 131280865
104
- ```
105
-
106
- **Result:** Complete patient record instantly
107
-
108
- ### 3. Find Patient by Name
109
- ```
110
- Add Node → OpenMRS
111
- ├─ Resource: Patient
112
- ├─ Operation: Search by Name
113
- └─ Name: Patricia
114
- ```
115
-
116
- **Result:** All patients with "Patricia" in their name
31
+ Demo: `https://demo.openmrs.org/openmrs` username `admin`, password `Admin123`
117
32
 
118
33
  ---
119
34
 
120
- ## Examples
121
-
122
- ### Example 1: Patient Search by ID (Real-World)
123
-
124
- **Instead of this (nobody remembers):**
125
- ```
126
- UUID: 7826f08a-0258-4fb1-ba69-2af192f392db
127
- ```
128
-
129
- **Do this:**
130
- ```
131
- OpenMRS ID: 131280865
132
- ```
133
-
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
35
+ ## Resources & Operations
140
36
 
141
- **Output:** Full patient FHIR record
37
+ | Resource | Operations |
38
+ |----------------------|------------|
39
+ | Patient | Create, Get, Get Many, Search by Identifier, Search by Name, Search by Phone |
40
+ | Encounter | Create, Get, Get Many |
41
+ | Observation | Get, Get Many |
42
+ | Diagnostic Report | Get, Get Many |
43
+ | Condition | Get, Get Many |
44
+ | Medication Statement | Get, Get Many |
45
+ | Custom API Call | Any method, any FHIR endpoint |
142
46
 
143
47
  ---
144
48
 
145
- ### Example 2: Get Patient Lab Results
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
- ---
49
+ ## Example: Register a Patient
158
50
 
159
- ### Example 3: Track Patient Visit History
160
51
  ```
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
52
+ Resource: Patient
53
+ Operation: Create
54
+ Payload:
55
+ {
56
+ "resourceType": "Patient",
57
+ "identifier": [{ "system": "http://openmrs.org/identifier", "value": "CASE-001" }],
58
+ "name": [{ "family": "Nkurunziza", "given": ["Brian"] }],
59
+ "gender": "male",
60
+ "birthDate": "1995-03-15",
61
+ "telecom": [{ "system": "phone", "value": "+250788123456" }]
62
+ }
167
63
  ```
168
64
 
169
- **Output:** Complete visit timeline from first to last encounter
65
+ Returns the created FHIR Patient resource including the assigned OpenMRS UUID.
170
66
 
171
67
  ---
172
68
 
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
69
+ ## Example: Create an Encounter
216
70
 
217
- **Disease Surveillance**
218
71
  ```
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**
72
+ Resource: Encounter
73
+ Operation: Create
74
+ Payload:
75
+ {
76
+ "resourceType": "Encounter",
77
+ "status": "finished",
78
+ "class": { "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode", "code": "AMB" },
79
+ "subject": { "reference": "Patient/PATIENT_UUID" },
80
+ "period": { "start": "2026-06-02T08:00:00+00:00", "end": "2026-06-02T09:00:00+00:00" }
81
+ }
228
82
  ```
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
83
 
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
- ```
84
+ Replace `PATIENT_UUID` with the UUID returned from Patient Create.
290
85
 
291
86
  ---
292
87
 
293
88
  ## Compatibility
294
89
 
295
- - **n8n**: 0.187.0 or higher
296
- - **OpenMRS**: 2.3+ with FHIR2 module
297
- - **Node.js**: 18.0.0 or higher
90
+ - **OpenMRS:** 2.3+ with FHIR2 module enabled
91
+ - **n8n:** 1.0+
92
+ - **Node.js:** 22+
298
93
 
299
94
  ---
300
95
 
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
96
+ ## API Reference
310
97
 
311
- # Restart n8n
312
- n8n start
313
98
  ```
99
+ POST /ws/fhir2/R4/Patient
100
+ GET /ws/fhir2/R4/Patient/{uuid}
101
+ GET /ws/fhir2/R4/Patient?identifier={id}
102
+ GET /ws/fhir2/R4/Patient?name={name}
103
+ GET /ws/fhir2/R4/Patient?telecom={phone}
314
104
 
315
- ### Authentication fails
316
-
317
- - Include `/openmrs` in Base URL
318
- - Verify credentials in OpenMRS
319
- - Check FHIR2 module is enabled
105
+ POST /ws/fhir2/R4/Encounter
106
+ GET /ws/fhir2/R4/Encounter/{uuid}
107
+ GET /ws/fhir2/R4/Encounter?patient={uuid}&_count=50
320
108
 
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
109
+ GET /ws/fhir2/R4/Observation?patient={uuid}&_count=50
110
+ GET /ws/fhir2/R4/DiagnosticReport?patient={uuid}&_count=50
111
+ GET /ws/fhir2/R4/Condition?patient={uuid}&_count=50
112
+ GET /ws/fhir2/R4/MedicationStatement?patient={uuid}&_count=50
333
113
  ```
334
114
 
335
115
  ---
336
116
 
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
117
+ ## Resources
355
118
 
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
- ```
119
+ - [DHIS2 Documentation](https://docs.dhis2.org/)
120
+ - [DHIS2 Web API Guide](https://docs.dhis2.org/en/develop/using-the-api/dhis-core-version-master/introduction.html)
121
+ - [DHIS2 Demo Server](https://play.dhis2.org)
122
+ - [n8n Community Nodes](https://docs.n8n.io/integrations/community-nodes/)
123
+ - [OpenMRS n8n Node](https://www.npmjs.com/package/n8n-nodes-openmrs) clinical data from OpenMRS
124
+ - [RapidPro n8n Node](https://www.npmjs.com/package/n8n-nodes-rapidpro) messaging workflows via RapidPro
371
125
 
372
126
  ---
373
127
 
374
128
  ## Contributing
375
129
 
376
- Contributions welcome! Please:
130
+ Contributions are welcome! Please:
377
131
 
378
132
  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
133
+ 2. Create a feature branch (`git checkout -b feature/amazing-feature`)
134
+ 3. Commit your changes (`git commit -m 'Add amazing feature'`)
135
+ 4. Push to the branch (`git push origin feature/amazing-feature`)
136
+ 5. Open a Pull Request
413
137
 
414
138
  ---
415
139
 
@@ -417,15 +141,14 @@ Contributions welcome! Please:
417
141
 
418
142
  [MIT License](LICENSE)
419
143
 
420
- Copyright © 2026 Monfort Brian N.
144
+ Copyright (c) 2026 [Monfort Brian N.](https://github.com/monfortbrian)
421
145
 
422
146
  ---
423
147
 
424
148
  ## Support
425
149
 
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/)
150
+ - **Issues:** [GitHub Issues](https://github.com/monfortbrian/n8n-nodes-dhis2/issues)
151
+ - **n8n Community:** [n8n Community Forum](https://community.n8n.io/)
429
152
 
430
153
  ---
431
154
 
@@ -433,4 +156,6 @@ Copyright © 2026 Monfort Brian N.
433
156
 
434
157
  Built for healthcare workers in low-resource settings. Enabling better patient outcomes through data interoperability and workflow automation.
435
158
 
436
- **Made with ❤️ for global health**
159
+ ---
160
+
161
+ **Made with ❤️ for the global health community**
@@ -25,7 +25,7 @@ class OpenMrs {
25
25
  },
26
26
  ],
27
27
  properties: [
28
- // Resource Selection
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
- // Patient Operations (with search)
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
- // Other Resources Operations (no search)
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 ID',
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
- // Custom API Call Operation
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
- // Search Parameters
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 (e.g., 131280865)',
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
- // UUID Parameters for Get operations
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
- // Custom API Call Parameters
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
- multipleValues: true,
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
- // Patient ID Filter for Get Many
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
- // Pagination
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
- // Custom API Call
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
- // Regular resources
445
- const fhirResource = fhirResourceMap[resource];
446
- // Get operation
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
- // Search by Identifier
458
+ // ----------------------------------------------------------------
459
+ // Search operations (Patient only)
460
+ // ----------------------------------------------------------------
453
461
  else if (operation === 'searchByIdentifier') {
454
462
  const identifier = this.getNodeParameter('identifier', i);
455
- endpoint = `/ws/fhir2/R4/Patient`;
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 = `/ws/fhir2/R4/Patient`;
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 = `/ws/fhir2/R4/Patient`;
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
- // Get All operation
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
- const patientId = this.getNodeParameter('patientIdFilter', i);
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
- // Make HTTP request
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
- const errorMessage = error instanceof Error ? error.message : 'Unknown error';
519
- returnData.push({ json: { error: errorMessage }, pairedItem: { item: i } });
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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-openmrs",
3
- "version": "1.2.1",
3
+ "version": "1.3.0",
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",