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 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
- [![npm version](https://img.shields.io/npm/v/n8n-nodes-openmrs)](https://www.npmjs.com/package/n8n-nodes-openmrs)
4
- [![npm downloads](https://img.shields.io/npm/dt/n8n-nodes-openmrs)](https://www.npmjs.com/package/n8n-nodes-openmrs)
5
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
-
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
57
-
58
- ---
59
-
60
- ## Installation
61
-
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
- ```
74
-
75
- ### From Source
76
- ```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
82
- ```
83
-
84
- ---
85
-
86
- ## Quick Start
87
-
88
- ### 1. Configure Credentials
89
-
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
117
-
118
- ---
119
-
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
140
-
141
- **Output:** Full patient FHIR record
142
-
143
- ---
144
-
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
- ---
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
+ [![npm](https://img.shields.io/npm/v/n8n-nodes-openmrs)](https://www.npmjs.com/package/n8n-nodes-openmrs)
4
+ [![npm downloads](https://img.shields.io/npm/dt/n8n-nodes-openmrs)](https://www.npmjs.com/package/n8n-nodes-openmrs)
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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
- // 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":";;;AAQA,+CAAkD;AAElD,MAAa,OAAO;IAApB;QACC,iBAAY,GAAG,IAAI,CAAC;QACpB,gBAAW,GAAyB;YACnC,WAAW,EAAE,SAAS;YACtB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,kBAAkB;YACxB,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,8DAA8D;YACxE,WAAW,EAAE,mCAAmC;YAChD,QAAQ,EAAE;gBACT,IAAI,EAAE,SAAS;aACf;YACD,MAAM,EAAE,CAAC,MAAM,CAAC;YAChB,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,YAAY;oBAClB,QAAQ,EAAE,IAAI;iBACd;aACD;YACD,UAAU,EAAE;gBACX,qBAAqB;gBACrB;oBACC,WAAW,EAAE,UAAU;oBACvB,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,SAAS;oBACf,gBAAgB,EAAE,IAAI;oBACtB,OAAO,EAAE;wBACR,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;wBACzC,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,eAAe,EAAE;wBACnD,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,kBAAkB,EAAE;wBACxD,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;wBACzC,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,qBAAqB,EAAE;wBAC9D,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE;wBAC7C,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;qBACrC;oBACD,OAAO,EAAE,SAAS;iBAClB;gBAED,mCAAmC;gBACnC;oBACC,WAAW,EAAE,WAAW;oBACxB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,SAAS;oBACf,gBAAgB,EAAE,IAAI;oBACtB,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE,CAAC,SAAS,CAAC;yBACrB;qBACD;oBACD,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,KAAK;4BACX,KAAK,EAAE,KAAK;4BACZ,WAAW,EAAE,uBAAuB;4BACpC,MAAM,EAAE,eAAe;yBACvB;wBACD;4BACC,IAAI,EAAE,UAAU;4BAChB,KAAK,EAAE,QAAQ;4BACf,WAAW,EAAE,mBAAmB;4BAChC,MAAM,EAAE,mBAAmB;yBAC3B;wBACD;4BACC,IAAI,EAAE,sBAAsB;4BAC5B,KAAK,EAAE,oBAAoB;4BAC3B,WAAW,EAAE,6CAA6C;4BAC1D,MAAM,EAAE,8BAA8B;yBACtC;wBACD;4BACC,IAAI,EAAE,gBAAgB;4BACtB,KAAK,EAAE,cAAc;4BACrB,WAAW,EAAE,kDAAkD;4BAC/D,MAAM,EAAE,wBAAwB;yBAChC;wBACD;4BACC,IAAI,EAAE,iBAAiB;4BACvB,KAAK,EAAE,eAAe;4BACtB,WAAW,EAAE,gCAAgC;4BAC7C,MAAM,EAAE,yBAAyB;yBACjC;qBACD;oBACD,OAAO,EAAE,oBAAoB;iBAC7B;gBAED,yCAAyC;gBACzC;oBACC,WAAW,EAAE,WAAW;oBACxB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,SAAS;oBACf,gBAAgB,EAAE,IAAI;oBACtB,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE;gCACT,WAAW;gCACX,aAAa;gCACb,kBAAkB;gCAClB,WAAW;gCACX,qBAAqB;6BACrB;yBACD;qBACD;oBACD,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,KAAK;4BACX,KAAK,EAAE,KAAK;4BACZ,WAAW,EAAE,sBAAsB;4BACnC,MAAM,EAAE,gBAAgB;yBACxB;wBACD;4BACC,IAAI,EAAE,UAAU;4BAChB,KAAK,EAAE,QAAQ;4BACf,WAAW,EAAE,oBAAoB;4BACjC,MAAM,EAAE,oBAAoB;yBAC5B;qBACD;oBACD,OAAO,EAAE,KAAK;iBACd;gBAED,4BAA4B;gBAC5B;oBACC,WAAW,EAAE,WAAW;oBACxB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,SAAS;oBACf,gBAAgB,EAAE,IAAI;oBACtB,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE,CAAC,eAAe,CAAC;yBAC3B;qBACD;oBACD,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,iBAAiB;4BACvB,KAAK,EAAE,eAAe;4BACtB,WAAW,EAAE,mCAAmC;4BAChD,MAAM,EAAE,sBAAsB;yBAC9B;qBACD;oBACD,OAAO,EAAE,eAAe;iBACxB;gBAED,oBAAoB;gBACpB;oBACC,WAAW,EAAE,YAAY;oBACzB,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE,CAAC,SAAS,CAAC;4BACrB,SAAS,EAAE,CAAC,oBAAoB,CAAC;yBACjC;qBACD;oBACD,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,WAAW;oBACxB,WAAW,EAAE,6CAA6C;iBAC1D;gBACD;oBACC,WAAW,EAAE,MAAM;oBACnB,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE,CAAC,SAAS,CAAC;4BACrB,SAAS,EAAE,CAAC,cAAc,CAAC;yBAC3B;qBACD;oBACD,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,gBAAgB;oBAC7B,WAAW,EAAE,0CAA0C;iBACvD;gBACD;oBACC,WAAW,EAAE,cAAc;oBAC3B,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE,CAAC,SAAS,CAAC;4BACrB,SAAS,EAAE,CAAC,eAAe,CAAC;yBAC5B;qBACD;oBACD,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,eAAe;oBAC5B,WAAW,EAAE,4BAA4B;iBACzC;gBAED,qCAAqC;gBACrC;oBACC,WAAW,EAAE,YAAY;oBACzB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE,CAAC,SAAS,CAAC;4BACrB,SAAS,EAAE,CAAC,KAAK,CAAC;yBAClB;qBACD;oBACD,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,yBAAyB;iBACtC;gBACD;oBACC,WAAW,EAAE,cAAc;oBAC3B,IAAI,EAAE,aAAa;oBACnB,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE,CAAC,WAAW,CAAC;4BACvB,SAAS,EAAE,CAAC,KAAK,CAAC;yBAClB;qBACD;oBACD,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,2BAA2B;iBACxC;gBACD;oBACC,WAAW,EAAE,gBAAgB;oBAC7B,IAAI,EAAE,eAAe;oBACrB,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE,CAAC,aAAa,CAAC;4BACzB,SAAS,EAAE,CAAC,KAAK,CAAC;yBAClB;qBACD;oBACD,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,6BAA6B;iBAC1C;gBACD;oBACC,WAAW,EAAE,sBAAsB;oBACnC,IAAI,EAAE,oBAAoB;oBAC1B,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE,CAAC,kBAAkB,CAAC;4BAC9B,SAAS,EAAE,CAAC,KAAK,CAAC;yBAClB;qBACD;oBACD,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,mCAAmC;iBAChD;gBACD;oBACC,WAAW,EAAE,cAAc;oBAC3B,IAAI,EAAE,aAAa;oBACnB,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE,CAAC,WAAW,CAAC;4BACvB,SAAS,EAAE,CAAC,KAAK,CAAC;yBAClB;qBACD;oBACD,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,2BAA2B;iBACxC;gBACD;oBACC,WAAW,EAAE,yBAAyB;oBACtC,IAAI,EAAE,uBAAuB;oBAC7B,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE,CAAC,qBAAqB,CAAC;4BACjC,SAAS,EAAE,CAAC,KAAK,CAAC;yBAClB;qBACD;oBACD,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,sCAAsC;iBACnD;gBAED,6BAA6B;gBAC7B;oBACC,WAAW,EAAE,aAAa;oBAC1B,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,SAAS;oBACf,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE,CAAC,eAAe,CAAC;yBAC3B;qBACD;oBACD,OAAO,EAAE;wBACR,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;wBACnC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;wBAC7B,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;wBAC/B,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;qBAC7B;oBACD,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,wBAAwB;iBACrC;gBACD;oBACC,WAAW,EAAE,UAAU;oBACvB,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE,CAAC,eAAe,CAAC;yBAC3B;qBACD;oBACD,OAAO,EAAE,sBAAsB;oBAC/B,WAAW,EAAE,sBAAsB;oBACnC,WAAW,EAAE,+CAA+C;iBAC5D;gBACD;oBACC,WAAW,EAAE,kBAAkB;oBAC/B,IAAI,EAAE,iBAAiB;oBACvB,IAAI,EAAE,iBAAiB;oBACvB,WAAW,EAAE;wBACZ,cAAc,EAAE,IAAI;qBACpB;oBACD,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE,CAAC,eAAe,CAAC;yBAC3B;qBACD;oBACD,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,eAAe;oBAC5B,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,WAAW;4BACjB,WAAW,EAAE,WAAW;4BACxB,MAAM,EAAE;gCACP;oCACC,WAAW,EAAE,MAAM;oCACnB,IAAI,EAAE,MAAM;oCACZ,IAAI,EAAE,QAAQ;oCACd,OAAO,EAAE,EAAE;iCACX;gCACD;oCACC,WAAW,EAAE,OAAO;oCACpB,IAAI,EAAE,OAAO;oCACb,IAAI,EAAE,QAAQ;oCACd,OAAO,EAAE,EAAE;iCACX;6BACD;yBACD;qBACD;iBACD;gBAED,iCAAiC;gBACjC;oBACC,WAAW,EAAE,YAAY;oBACzB,IAAI,EAAE,iBAAiB;oBACvB,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE;gCACT,WAAW;gCACX,aAAa;gCACb,kBAAkB;gCAClB,WAAW;gCACX,qBAAqB;6BACrB;4BACD,SAAS,EAAE,CAAC,QAAQ,CAAC;yBACrB;qBACD;oBACD,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,8CAA8C;iBAC3D;gBAED,aAAa;gBACb;oBACC,WAAW,EAAE,YAAY;oBACzB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,SAAS;oBACf,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,SAAS,EAAE,CAAC,QAAQ,EAAE,oBAAoB,EAAE,cAAc,EAAE,eAAe,CAAC;yBAC5E;qBACD;oBACD,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,2DAA2D;iBACxE;gBACD;oBACC,WAAW,EAAE,OAAO;oBACpB,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,QAAQ;oBACd,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,SAAS,EAAE,CAAC,QAAQ,EAAE,oBAAoB,EAAE,cAAc,EAAE,eAAe,CAAC;4BAC5E,SAAS,EAAE,CAAC,KAAK,CAAC;yBAClB;qBACD;oBACD,WAAW,EAAE;wBACZ,QAAQ,EAAE,CAAC;wBACX,QAAQ,EAAE,GAAG;qBACb;oBACD,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,iCAAiC;iBAC9C;aACD;YACD,YAAY,EAAE,IAAI;SAClB,CAAC;IAwKH,CAAC;IAtKA,KAAK,CAAC,OAAO;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,UAAU,GAAyB,EAAE,CAAC;QAC5C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,WAAW,CAAC,OAAiB,CAAC;QAE9C,MAAM,eAAe,GAA2B;YAC/C,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,WAAW;YACtB,WAAW,EAAE,aAAa;YAC1B,gBAAgB,EAAE,kBAAkB;YACpC,SAAS,EAAE,WAAW;YACtB,mBAAmB,EAAE,qBAAqB;SAC1C,CAAC;QAEF,MAAM,kBAAkB,GAA2B;YAClD,OAAO,EAAE,WAAW;YACpB,SAAS,EAAE,aAAa;YACxB,WAAW,EAAE,eAAe;YAC5B,gBAAgB,EAAE,oBAAoB;YACtC,SAAS,EAAE,aAAa;YACxB,mBAAmB,EAAE,uBAAuB;SAC5C,CAAC;QAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC;gBACJ,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAW,CAAC;gBAChE,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAW,CAAC;gBAElE,IAAI,QAAQ,GAAG,EAAE,CAAC;gBAClB,MAAM,EAAE,GAAgB,EAAE,CAAC;gBAE3B,kBAAkB;gBAClB,IAAI,QAAQ,KAAK,eAAe,EAAE,CAAC;oBAClC,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAwB,CAAC;oBACjF,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAW,CAAC;oBAE1D,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,EAAE,EAAE,CAAgB,CAAC;oBACvF,IAAI,eAAe,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC3E,KAAK,MAAM,KAAK,IAAI,eAAe,CAAC,SAAmD,EAAE,CAAC;4BACzF,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;wBAC9B,CAAC;oBACF,CAAC;oBAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,IAAI,CACrE,IAAI,EACJ,YAAY,EACZ;wBACC,MAAM,EAAE,UAAU;wBAClB,GAAG,EAAE,GAAG,OAAO,GAAG,QAAQ,EAAE;wBAC5B,EAAE;wBACF,IAAI,EAAE,IAAI;qBACV,CACD,CAAC;oBAEF,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAuB,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC5E,SAAS;gBACV,CAAC;gBAED,oBAAoB;gBACpB,MAAM,YAAY,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;gBAE/C,gBAAgB;gBAChB,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;oBACzB,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;oBAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAW,CAAC;oBAC/D,QAAQ,GAAG,gBAAgB,YAAY,IAAI,UAAU,EAAE,CAAC;gBACzD,CAAC;gBACD,uBAAuB;qBAClB,IAAI,SAAS,KAAK,oBAAoB,EAAE,CAAC;oBAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAW,CAAC;oBACpE,QAAQ,GAAG,sBAAsB,CAAC;oBAClC,EAAE,CAAC,UAAU,GAAG,UAAU,CAAC;oBAE3B,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,EAAE,KAAK,CAAY,CAAC;oBAC1E,IAAI,CAAC,SAAS,EAAE,CAAC;wBAChB,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAW,CAAC;oBAC7D,CAAC;gBACF,CAAC;gBACD,iBAAiB;qBACZ,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;oBACvC,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAW,CAAC;oBACxD,QAAQ,GAAG,sBAAsB,CAAC;oBAClC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;oBAEf,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,EAAE,KAAK,CAAY,CAAC;oBAC1E,IAAI,CAAC,SAAS,EAAE,CAAC;wBAChB,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAW,CAAC;oBAC7D,CAAC;gBACF,CAAC;gBACD,kBAAkB;qBACb,IAAI,SAAS,KAAK,eAAe,EAAE,CAAC;oBACxC,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAW,CAAC;oBAC1D,QAAQ,GAAG,sBAAsB,CAAC;oBAClC,EAAE,CAAC,OAAO,GAAG,KAAK,CAAC;oBAEnB,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,EAAE,KAAK,CAAY,CAAC;oBAC1E,IAAI,CAAC,SAAS,EAAE,CAAC;wBAChB,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAW,CAAC;oBAC7D,CAAC;gBACF,CAAC;gBACD,oBAAoB;qBACf,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;oBACjC,QAAQ,GAAG,gBAAgB,YAAY,EAAE,CAAC;oBAE1C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;wBAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,CAAW,CAAC;wBACxE,EAAE,CAAC,OAAO,GAAG,SAAS,CAAC;oBACxB,CAAC;oBAED,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAY,CAAC;oBACnE,IAAI,CAAC,SAAS,EAAE,CAAC;wBAChB,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAW,CAAC;oBACzD,CAAC;gBACF,CAAC;gBAED,oBAAoB;gBACpB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,IAAI,CACrE,IAAI,EACJ,YAAY,EACZ;oBACC,MAAM,EAAE,KAAK;oBACb,GAAG,EAAE,GAAG,OAAO,GAAG,QAAQ,EAAE;oBAC5B,EAAE;oBACF,IAAI,EAAE,IAAI;iBACV,CACD,CAAC;gBAEF,mBAAmB;gBACnB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7B,UAAU,CAAC,IAAI,CACd,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAiB,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CACjF,CAAC;gBACH,CAAC;qBAAM,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;oBAC3B,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAyC,CAAC;oBAEnE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC1B,MAAM,IAAI,iCAAkB,CAC3B,IAAI,CAAC,OAAO,EAAE,EACd,0CAA0C,EAC1C,EAAE,SAAS,EAAE,CAAC,EAAE,CAChB,CAAC;oBACH,CAAC;oBAED,UAAU,CAAC,IAAI,CACd,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAC9E,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACP,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAuB,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7E,CAAC;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;oBAC3B,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;oBAC9E,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC5E,SAAS;gBACV,CAAC;gBACD,MAAM,IAAI,iCAAkB,CAC3B,IAAI,CAAC,OAAO,EAAE,EACd,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EACzD,EAAE,SAAS,EAAE,CAAC,EAAE,CAChB,CAAC;YACH,CAAC;QACF,CAAC;QAED,OAAO,CAAC,UAAU,CAAC,CAAC;IACrB,CAAC;CACD;AAtjBD,0BAsjBC"}
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.2.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",