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 +290 -221
- package/dist/credentials/OpenMrsApi.credentials.d.ts +1 -1
- package/dist/credentials/OpenMrsApi.credentials.js +9 -7
- package/dist/credentials/OpenMrsApi.credentials.js.map +1 -0
- package/dist/nodes/OpenMrs/OpenMrs.node.d.ts +1 -1
- package/dist/nodes/OpenMrs/OpenMrs.node.js +321 -116
- package/dist/nodes/OpenMrs/OpenMrs.node.js.map +1 -0
- package/dist/nodes/OpenMrs/openMrs.svg +13 -0
- package/package.json +69 -71
- package/dist/index.d.ts +0 -2
- package/dist/index.js +0 -18
- /package/dist/{nodes/OpenMrs/OpenMrs.svg → credentials/openMrs.svg} +0 -0
package/README.md
CHANGED
|
@@ -1,47 +1,65 @@
|
|
|
1
1
|
# n8n-nodes-openmrs
|
|
2
2
|
|
|
3
|
-

|
|
5
|
-

|
|
3
|
+
[](https://www.npmjs.com/package/n8n-nodes-openmrs)
|
|
4
|
+
[](https://www.npmjs.com/package/n8n-nodes-openmrs)
|
|
5
|
+
[](https://opensource.org/licenses/MIT)
|
|
6
6
|
|
|
7
|
-
|
|
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
|
-
|
|
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
|
-
|
|
22
|
+
### Intelligent Patient Lookup
|
|
14
23
|
|
|
15
|
-
-
|
|
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
|
-
**
|
|
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
|
-
|
|
21
|
-
- Retrieve encounter history and visit timelines
|
|
22
|
-
- Access clinical observations (labs, vitals, diagnostics)
|
|
31
|
+
### Complete FHIR R4 Coverage
|
|
23
32
|
|
|
24
|
-
|
|
33
|
+
Access all essential clinical resources:
|
|
25
34
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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
|
-
|
|
44
|
+
### Developer-Friendly
|
|
31
45
|
|
|
32
|
-
- Simple
|
|
33
|
-
-
|
|
34
|
-
-
|
|
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
|
-
|
|
51
|
+
### Built for Global Health
|
|
37
52
|
|
|
38
|
-
- Optimized for
|
|
39
|
-
- Works with
|
|
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
|
-
###
|
|
53
|
-
|
|
70
|
+
### Via npm
|
|
54
71
|
```bash
|
|
55
72
|
npm install n8n-nodes-openmrs
|
|
56
73
|
```
|
|
57
74
|
|
|
58
|
-
|
|
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-
|
|
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
|
-
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Quick Start
|
|
82
87
|
|
|
83
|
-
|
|
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**:
|
|
89
|
-
- **Username**:
|
|
90
|
-
- **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
|
-
|
|
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
|
-
|
|
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
|
-
###
|
|
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
|
-
|
|
116
|
+
**Result:** All patients with "Patricia" in their name
|
|
112
117
|
|
|
113
|
-
|
|
114
|
-
- **Get all resources** - Retrieve all resources for a patient (with pagination)
|
|
118
|
+
---
|
|
115
119
|
|
|
116
120
|
## Examples
|
|
117
121
|
|
|
118
|
-
### Example 1:
|
|
122
|
+
### Example 1: Patient Search by ID (Real-World)
|
|
119
123
|
|
|
124
|
+
**Instead of this (nobody remembers):**
|
|
120
125
|
```
|
|
121
|
-
|
|
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
|
-
**
|
|
129
|
-
|
|
130
|
-
|
|
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
|
-
|
|
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.
|
|
150
|
-
3.
|
|
151
|
-
4.
|
|
152
|
-
5.
|
|
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:**
|
|
155
|
+
**Output:** Up to 50 most recent lab results with values, units, reference ranges
|
|
157
156
|
|
|
158
|
-
|
|
157
|
+
---
|
|
159
158
|
|
|
159
|
+
### Example 3: Track Patient Visit History
|
|
160
160
|
```
|
|
161
161
|
1. Add OpenMRS node
|
|
162
|
-
2.
|
|
163
|
-
3.
|
|
164
|
-
4.
|
|
165
|
-
5.
|
|
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
|
-
|
|
169
|
+
**Output:** Complete visit timeline from first to last encounter
|
|
170
|
+
|
|
171
|
+
---
|
|
170
172
|
|
|
171
|
-
|
|
173
|
+
### Example 4: Custom FHIR Query
|
|
172
174
|
|
|
175
|
+
Use the **Custom API Call** resource for advanced queries:
|
|
173
176
|
```
|
|
174
|
-
|
|
175
|
-
|
|
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
|
|
177
185
|
```
|
|
178
186
|
|
|
179
|
-
|
|
187
|
+
**Output:** All patients born after January 1, 1990
|
|
180
188
|
|
|
181
|
-
|
|
182
|
-
2. Normalizes FHIR data into unified format
|
|
183
|
-
3. Analyzes trends using AI
|
|
184
|
-
4. Generates clinical insights
|
|
189
|
+
---
|
|
185
190
|
|
|
186
|
-
##
|
|
191
|
+
## Real-World Use Cases
|
|
187
192
|
|
|
188
|
-
###
|
|
193
|
+
### Clinical Workflows
|
|
189
194
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
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
|
-
|
|
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
|
-
|
|
215
|
+
### Data Analytics
|
|
201
216
|
|
|
202
|
-
|
|
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
|
-
**
|
|
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
|
-
|
|
236
|
+
### Global Health
|
|
207
237
|
|
|
208
|
-
|
|
238
|
+
- HIV/TB treatment adherence tracking
|
|
239
|
+
- Maternal health visit reminders
|
|
240
|
+
- Vaccine defaulter identification
|
|
241
|
+
- Stockout prevention for ARVs
|
|
209
242
|
|
|
210
|
-
|
|
243
|
+
---
|
|
211
244
|
|
|
212
|
-
|
|
245
|
+
## API Reference
|
|
213
246
|
|
|
214
|
-
|
|
247
|
+
### Supported Resources
|
|
215
248
|
|
|
216
|
-
-
|
|
217
|
-
-
|
|
218
|
-
-
|
|
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
|
-
|
|
257
|
+
### Patient Operations
|
|
221
258
|
|
|
222
|
-
|
|
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
|
-
|
|
267
|
+
- **Get** - Retrieve single resource by UUID
|
|
268
|
+
- **Get Many** - Retrieve all for patient (paginated)
|
|
229
269
|
|
|
230
|
-
|
|
270
|
+
### Pagination
|
|
231
271
|
|
|
232
|
-
|
|
272
|
+
All `Get Many` and search operations support:
|
|
273
|
+
- **Return All**: `true/false`
|
|
274
|
+
- **Limit**: `1-100` (default: 50)
|
|
233
275
|
|
|
234
|
-
|
|
276
|
+
---
|
|
235
277
|
|
|
236
|
-
|
|
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
|
-
|
|
291
|
+
---
|
|
240
292
|
|
|
241
|
-
|
|
293
|
+
## Compatibility
|
|
242
294
|
|
|
243
|
-
-
|
|
244
|
-
-
|
|
245
|
-
-
|
|
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
|
-
|
|
299
|
+
---
|
|
249
300
|
|
|
250
|
-
|
|
251
|
-
- Cohort identification
|
|
252
|
-
- Treatment outcome tracking
|
|
253
|
-
- Quality metrics reporting
|
|
301
|
+
## Troubleshooting
|
|
254
302
|
|
|
255
|
-
###
|
|
303
|
+
### Node doesn't appear
|
|
304
|
+
```bash
|
|
305
|
+
# Check installation
|
|
306
|
+
npm list -g n8n-nodes-openmrs
|
|
256
307
|
|
|
257
|
-
|
|
258
|
-
-
|
|
259
|
-
- Integration with AI/ML pipelines
|
|
260
|
-
- REDCap or DHIS2 data flows
|
|
308
|
+
# Clear cache
|
|
309
|
+
rm -rf ~/.n8n/cache
|
|
261
310
|
|
|
262
|
-
|
|
311
|
+
# Restart n8n
|
|
312
|
+
n8n start
|
|
313
|
+
```
|
|
263
314
|
|
|
264
|
-
|
|
265
|
-
- HIV/TB treatment tracking
|
|
266
|
-
- Maternal health monitoring
|
|
267
|
-
- Vaccine registry management
|
|
315
|
+
### Authentication fails
|
|
268
316
|
|
|
269
|
-
|
|
317
|
+
- Include `/openmrs` in Base URL
|
|
318
|
+
- Verify credentials in OpenMRS
|
|
319
|
+
- Check FHIR2 module is enabled
|
|
270
320
|
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
-
|
|
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
|
-
|
|
289
|
-
|
|
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
|
-
|
|
360
|
+
### Publishing
|
|
361
|
+
```bash
|
|
362
|
+
# Bump version
|
|
363
|
+
npm version minor # 1.1.0 → 1.2.0
|
|
294
364
|
|
|
295
|
-
|
|
365
|
+
# Publish
|
|
366
|
+
npm publish
|
|
296
367
|
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
4. Hard refresh browser (Ctrl+Shift+R)
|
|
368
|
+
# Push to GitHub
|
|
369
|
+
git push origin main --tags
|
|
370
|
+
```
|
|
301
371
|
|
|
302
|
-
|
|
372
|
+
---
|
|
303
373
|
|
|
304
|
-
|
|
305
|
-
- Confirm username/password are correct
|
|
306
|
-
- Check OpenMRS FHIR2 module is installed and enabled
|
|
374
|
+
## Contributing
|
|
307
375
|
|
|
308
|
-
|
|
376
|
+
Contributions welcome! Please:
|
|
309
377
|
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
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
|
-
|
|
384
|
+
---
|
|
315
385
|
|
|
316
|
-
|
|
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
|
-
|
|
388
|
+
### [1.2.0] - 2026-03-05
|
|
322
389
|
|
|
323
|
-
|
|
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
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
5. Open a Pull Request
|
|
396
|
+
**Changed**
|
|
397
|
+
- Improved error messages
|
|
398
|
+
- Better TypeScript types
|
|
399
|
+
- Updated documentation
|
|
330
400
|
|
|
331
|
-
|
|
401
|
+
### [1.1.0] - 2026-03-03
|
|
332
402
|
|
|
333
|
-
|
|
403
|
+
**Added**
|
|
404
|
+
- 6 FHIR resources (Patient, Encounter, Observation, etc.)
|
|
405
|
+
- Get and Get Many operations
|
|
406
|
+
- Pagination support
|
|
334
407
|
|
|
335
|
-
|
|
408
|
+
### [1.0.0] - 2026-03-01
|
|
336
409
|
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
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
|
-
|
|
345
|
-
copies or substantial portions of the Software.
|
|
414
|
+
---
|
|
346
415
|
|
|
347
|
-
|
|
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
|
-
|
|
418
|
+
[MIT License](LICENSE)
|
|
356
419
|
|
|
357
|
-
|
|
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
|
-
|
|
422
|
+
---
|
|
423
|
+
|
|
424
|
+
## Support
|
|
362
425
|
|
|
363
|
-
|
|
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
|
-
|
|
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;
|