n8n-nodes-openmrs 1.3.0 → 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,161 +1,145 @@
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 build interoperability.
8
- [n8n](https://n8n.io/) is a fair-code licensed workflow automation platform.
9
-
10
- ---
11
-
12
- ## Installation
13
-
14
- **Via n8n UI:** Search DHIS2 as verified node or simply go to Settings → Community Nodes → `n8n-nodes-dhis2`
15
-
16
- **Via npm:**
17
- ```bash
18
- npm install n8n-nodes-dhis2
19
- ```
20
-
21
- ---
22
-
23
- ## Credentials
24
-
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 |
30
-
31
- Demo: `https://demo.openmrs.org/openmrs` — username `admin`, password `Admin123`
32
-
33
- ---
34
-
35
- ## Resources & Operations
36
-
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 |
46
-
47
- ---
48
-
49
- ## Example: Register a Patient
50
-
51
- ```
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
- }
63
- ```
64
-
65
- Returns the created FHIR Patient resource including the assigned OpenMRS UUID.
66
-
67
- ---
68
-
69
- ## Example: Create an Encounter
70
-
71
- ```
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
- }
82
- ```
83
-
84
- Replace `PATIENT_UUID` with the UUID returned from Patient Create.
85
-
86
- ---
87
-
88
- ## Compatibility
89
-
90
- - **OpenMRS:** 2.3+ with FHIR2 module enabled
91
- - **n8n:** 1.0+
92
- - **Node.js:** 22+
93
-
94
- ---
95
-
96
- ## API Reference
97
-
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}
104
-
105
- POST /ws/fhir2/R4/Encounter
106
- GET /ws/fhir2/R4/Encounter/{uuid}
107
- GET /ws/fhir2/R4/Encounter?patient={uuid}&_count=50
108
-
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
113
- ```
114
-
115
- ---
116
-
117
- ## Resources
118
-
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
125
-
126
- ---
127
-
128
- ## Contributing
129
-
130
- Contributions are welcome! Please:
131
-
132
- 1. Fork the repository
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
137
-
138
- ---
139
-
140
- ## License
141
-
142
- [MIT License](LICENSE)
143
-
144
- Copyright (c) 2026 [Monfort Brian N.](https://github.com/monfortbrian)
145
-
146
- ---
147
-
148
- ## Support
149
-
150
- - **Issues:** [GitHub Issues](https://github.com/monfortbrian/n8n-nodes-dhis2/issues)
151
- - **n8n Community:** [n8n Community Forum](https://community.n8n.io/)
152
-
153
- ---
154
-
155
- ## Acknowledgments
156
-
157
- Built for healthcare workers in low-resource settings. Enabling better patient outcomes through data interoperability and workflow automation.
158
-
159
- ---
160
-
161
- **Made with ❤️ for the global health community**
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>
@@ -1,13 +1,13 @@
1
- <svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <g clip-path="url(#clip0_4731_3)">
3
- <path d="M34.8041 34.8877C42.2938 27.4204 52.6397 22.8017 64.0669 22.8017C75.4685 22.8017 85.7887 27.3995 93.2691 34.8318L93.2995 7.3477C84.5416 2.85009 74.5974 0.306641 64.0669 0.306641C53.5318 0.306641 43.5362 3.16918 34.7714 7.67146L34.8041 34.8877Z" fill="#F26522"/>
4
- <path d="M93.2995 93.21C85.8144 100.677 75.4708 105.294 64.0413 105.294C52.6467 105.294 42.3218 100.698 34.8368 93.2659L34.8041 120.748C43.5713 125.248 53.5062 127.789 64.0413 127.789C74.5764 127.789 84.5183 125.248 93.2785 120.745L93.2995 93.21Z" fill="#EEA616"/>
5
- <path d="M34.8625 93.2449C27.3751 85.7776 22.7416 75.4641 22.7416 64.0652C22.7416 52.6988 27.3517 42.4039 34.8041 34.9366L7.24605 34.9087C2.73634 43.6477 0.188393 53.5583 0.188393 64.0652C0.188393 74.5744 2.73634 84.4873 7.25072 93.2263L34.8625 93.2449Z" fill="#5B57A6"/>
6
- <path d="M93.2831 34.8296C100.773 42.2946 105.404 52.6151 105.404 64.014C105.404 75.3827 100.794 85.6752 93.3392 93.1356L120.9 93.1682C125.412 84.4315 127.957 74.5162 127.957 64.014C127.957 53.5048 125.412 43.5896 120.895 34.8482L93.2831 34.8296Z" fill="#009384"/>
7
- </g>
8
- <defs>
9
- <clipPath id="clip0_4731_3">
10
- <rect width="128" height="128" fill="white"/>
11
- </clipPath>
12
- </defs>
1
+ <svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g clip-path="url(#clip0_4731_3)">
3
+ <path d="M34.8041 34.8877C42.2938 27.4204 52.6397 22.8017 64.0669 22.8017C75.4685 22.8017 85.7887 27.3995 93.2691 34.8318L93.2995 7.3477C84.5416 2.85009 74.5974 0.306641 64.0669 0.306641C53.5318 0.306641 43.5362 3.16918 34.7714 7.67146L34.8041 34.8877Z" fill="#F26522"/>
4
+ <path d="M93.2995 93.21C85.8144 100.677 75.4708 105.294 64.0413 105.294C52.6467 105.294 42.3218 100.698 34.8368 93.2659L34.8041 120.748C43.5713 125.248 53.5062 127.789 64.0413 127.789C74.5764 127.789 84.5183 125.248 93.2785 120.745L93.2995 93.21Z" fill="#EEA616"/>
5
+ <path d="M34.8625 93.2449C27.3751 85.7776 22.7416 75.4641 22.7416 64.0652C22.7416 52.6988 27.3517 42.4039 34.8041 34.9366L7.24605 34.9087C2.73634 43.6477 0.188393 53.5583 0.188393 64.0652C0.188393 74.5744 2.73634 84.4873 7.25072 93.2263L34.8625 93.2449Z" fill="#5B57A6"/>
6
+ <path d="M93.2831 34.8296C100.773 42.2946 105.404 52.6151 105.404 64.014C105.404 75.3827 100.794 85.6752 93.3392 93.1356L120.9 93.1682C125.412 84.4315 127.957 74.5162 127.957 64.014C127.957 53.5048 125.412 43.5896 120.895 34.8482L93.2831 34.8296Z" fill="#009384"/>
7
+ </g>
8
+ <defs>
9
+ <clipPath id="clip0_4731_3">
10
+ <rect width="128" height="128" fill="white"/>
11
+ </clipPath>
12
+ </defs>
13
13
  </svg>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-openmrs",
3
- "version": "1.3.0",
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",