Connecting to the cloud with Redox

Last updated: Nov 6, 2025
PRODUCT OWNER
HEALTH TECH VENDOR

Cloud connectivity enables you to innovate by connecting EHR systems to your preferred cloud product(s). With Redox, you can connect to your preferred cloud repository to take advantage of advanced services. Generally, data from at least one EHR system populates a cloud repository for you to have real-time access to data.

Supported cloud providers and cloud products

Redox removes the barriers of legacy systems by translating and securely delivering your data to any of these cloud provider and product options:

Cloud provider
Cloud products
Amazon Web Services (AWS)
AWS S3
AWS HealthLake
Databricks
Snowflake
Google Cloud Platform (GCP)
Google Cloud Storage (GCS)
Cloud Healthcare API
Healthcare Data Engine (HDE)
Databricks
Snowflake
Microsoft Azure
Azure OneLake or DataLake
Microsoft Fabric
Azure Health Data Services
Databricks
Snowflake

These cloud providers can modernize your technology stack and finally make use of mountains of data otherwise stuck in disparate systems.

Supported methods and formats for cloud connectivity

Redox can help get your data into your cloud environments up to 80% faster by handling the complex integration. Access to this real-time clinical data enables providers, health plans, pharmaceuticals, and digital health organizations to unlock AI and ML tools that are changing the healthcare landscape.

We support the following communication methods, data formats, and auth methods for cloud connectivity.

Communication methods
Data formats
Authentication
MLLP Listener
HTTPS (REST, SOAP)
SFTP
JSON
FHIR®
XML
HL7v2
X12
CDA
CSV
PDF
DICOM
NCPDP
Basic auth
OAuth 2.0 2-legged
OAuth 2.0 2-legged with JWT Bearer for GCP
JWT Bearer
AWS Signature Version 4 (AwsSigv4)
Google Workload Identity Federation (WIF)
SMART Backend
TLS client certificate

How cloud traffic works

Data starts in the EHR system, then is pushed to Redox. We work our Redox magic to translate the data in a legacy standard to FHIR®. Then we push the data to your cloud destination. Learn how to create a destination.

With cloud connectivity, data flows in just one direction. Visually-speaking, it goes something like this:

Healthcare data flowing to a cloud repository via Redox
Healthcare data flowing to a cloud repository via Redox

After EHR data reaches your cloud destination(s), you have real-time access to the data without having to query the EHR system. Or, your data may undergo further processing by your cloud provider / product(s), depending on your unique cloud setup.

Here’s an example of what Redox delivers to your cloud destination(s):

Example: PatientAdmin message translated by Redox
json
1
{
2
"resourceType": "Bundle",
3
"id": "PatientAdminPatientUpdatedFullBundleExample",
4
"type": "transaction",
5
"entry": [
6
{
7
"fullUrl": "urn:uuid:130ce7f0-a8e5-4493-a23f-39f6f29c9e45",
8
"request": {
9
"method": "POST",
10
"url": "MessageHeader"
11
},
12
"resource": {
13
"eventUri": "https://fhir.redoxengine.com/EventDefinition/PatientAdminPatientUpdated",
14
"resourceType": "MessageHeader",
15
"id": "PatientUpdatedMessageHeader",
16
"source": {
17
"name": "Good Health Clinics",
18
"endpoint": "05107c08-fe2f-4740-8c1d-c7107d18ebe5"
19
},
20
"focus": [
21
{
22
"reference": "Patient/urn:uuid:800dc70b-1158-42c6-9640-a5d981a14a7a"
23
}
24
],
25
"definition": "https://fhir.redoxengine.com/MessageDefinition/PatientAdminPatientUpdatedFull"
26
}
27
},
28
{
29
"request": {
30
"method": "POST",
31
"url": "Patient"
32
},
33
"fullUrl": "urn:uuid:800dc70b-1158-42c6-9640-a5d981a14a7a",
34
"resource": {
35
"resourceType": "Patient",
36
"meta": {
37
"extension": [
38
{
39
"url": "https://fhir.redoxengine.com/StructureDefinition/example-sort-order",
40
"valueInteger": 1
41
}
42
]
43
},
44
"extension": [
45
{
46
"extension": [
47
{
48
"url": "text",
49
"valueString": "White"
50
}
51
],
52
"url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-race"
53
},
54
{
55
"extension": [
56
{
57
"url": "ombCategory",
58
"valueCoding": {
59
"code": "2135-2",
60
"system": "urn:oid:2.16.840.1.113883.6.238",
61
"display": "Hispanic or Latino"
62
}
63
},
64
{
65
"url": "text",
66
"valueString": "Hispanic"
67
}
68
],
69
"url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity"
70
}
71
],
72
"identifier": [
73
{
74
"value": "0000000001",
75
"system": "urn:redox:health-one:MR"
76
},
77
{
78
"value": "101-01-0001",
79
"system": "http://hl7.org/fhir/sid/us-ssn"
80
}
81
],
82
"name": [
83
{
84
"given": [
85
"Timothy",
86
"Paul"
87
],
88
"family": "Bixby",
89
"use": "official"
90
},
91
{
92
"text": "Billy",
93
"use": "usual"
94
}
95
],
96
"gender": "male",
97
"birthDate": "2008-01-06",
98
"telecom": [
99
{
100
"value": "+18088675301",
101
"system": "phone",
102
"use": "home"
103
},
104
{
105
"value": "+18008675309",
106
"system": "phone",
107
"use": "work"
108
},
109
{
110
"value": "timothy.bixby@redoxengine.com",
111
"system": "email"
112
}
113
],
114
"address": [
115
{
116
"line": [
117
"4762 Hickory Street"
118
],
119
"city": "Monroe",
120
"district": "Greene",
121
"state": "WI",
122
"postalCode": "53566",
123
"country": "US",
124
"use": "home"
125
}
126
],
127
"maritalStatus": {
128
"coding": [
129
{
130
"code": "M",
131
"system": "http://hl7.org/fhir/v3/MaritalStatus",
132
"display": "Married"
133
}
134
],
135
"text": "Married"
136
},
137
"communication": [
138
{
139
"language": {
140
"coding": [
141
{
142
"code": "en",
143
"system": "urn:ietf:bcp:47"
144
}
145
],
146
"text": "English"
147
}
148
}
149
],
150
"contact": [
151
{
152
"name": {
153
"given": [
154
"Barbara"
155
],
156
"family": "Bixby"
157
},
158
"telecom": [
159
{
160
"value": "+18088675303",
161
"system": "phone",
162
"use": "home"
163
},
164
{
165
"value": "barbara.bixby@redoxengine.com",
166
"system": "email"
167
}
168
],
169
"address": {
170
"line": [
171
"4762 Hickory St."
172
],
173
"city": "Monroe",
174
"district": "Green",
175
"state": "WI",
176
"postalCode": "53566",
177
"country": "USA"
178
},
179
"relationship": [
180
{
181
"coding": [
182
{
183
"code": "MTH",
184
"system": "http://terminology.hl7.org/CodeSystem/v3-RoleCode",
185
"display": "mother"
186
}
187
],
188
"text": "Mother"
189
},
190
{
191
"coding": [
192
{
193
"code": "C",
194
"system": "http://terminology.hl7.org/CodeSystem/v2-0131",
195
"display": "Emergency Contact"
196
}
197
],
198
"text": "Emergency Contact"
199
}
200
]
201
}
202
],
203
"generalPractitioner": [
204
{
205
"reference": "Practitioner/urn:uuid:e8fea9f2-3f91-4d6a-a747-3b7be178bdc9"
206
}
207
],
208
"managingOrganization": {
209
"reference": "Organization/urn:uuid:e082c914-77d4-4cce-8c98-5e84032023b0"
210
}
211
}
212
},
213
{
214
"request": {
215
"method": "POST",
216
"url": "Practitioner"
217
},
218
"fullUrl": "urn:uuid:e8fea9f2-3f91-4d6a-a747-3b7be178bdc9",
219
"resource": {
220
"resourceType": "Practitioner",
221
"identifier": [
222
{
223
"system": "http://hl7.org/fhir/sid/us-npi",
224
"value": "4356789876"
225
}
226
],
227
"name": [
228
{
229
"given": [
230
"Pat"
231
],
232
"family": "Granite"
233
}
234
],
235
"address": [
236
{
237
"line": [
238
"123 Main St."
239
],
240
"city": "Madison",
241
"district": "Dane",
242
"state": "WI",
243
"postalCode": "53703",
244
"country": "USA"
245
}
246
],
247
"telecom": [
248
{
249
"value": "+16085551234",
250
"system": "phone"
251
}
252
]
253
}
254
},
255
{
256
"request": {
257
"method": "POST",
258
"url": "Organization"
259
},
260
"fullUrl": "urn:uuid:e082c914-77d4-4cce-8c98-5e84032023b0",
261
"resource": {
262
"resourceType": "Organization",
263
"identifier": [
264
{
265
"value": "1234",
266
"system": "urn:oid:1.2.3.4"
267
}
268
],
269
"active": true,
270
"name": "Custodial Org",
271
"address": [
272
{
273
"line": [
274
"123 Main St"
275
],
276
"city": "Madison",
277
"state": "WI"
278
}
279
],
280
"telecom": [
281
{
282
"value": "1-800-123-4567",
283
"system": "phone"
284
}
285
],
286
"type": [
287
{
288
"text": "Test Type"
289
}
290
]
291
}
292
}
293
],
294
"timestamp": "2021-06-17T20:33:22.422Z",
295
"Meta": {
296
"Logs": [
297
{
298
"ID": "e690c704-90ad-4472-93f1-500f1eb34371",
299
"AttemptID": "6bef6fe3-7e5e-49cc-a9f7-b586bf6cc5ea"
300
}
301
],
302
"Test": true,
303
"EventDateTime": "2023-08-25T16:47:30.219Z",
304
"Source": {
305
"ID": "7ce6f387-c33c-417d-8682-81e83628cbd9",
306
"Name": "Redox Dev Tools"
307
},
308
"Destinations": [
309
{
310
"ID": "af394f14-b34a-464f-8d24-895f370af4c9",
311
"Name": "Redox EMR"
312
}
313
],
314
"DataModel": "FHIR.Event.PatientAdmin",
315
"EventType": "patient-updated"
316
}
317
}

Setting up your cloud implementation

You’ll need to do some setup in both your cloud provider / product ecosystem and Redox.

First, you must handle authentication between you and your cloud provider / product(s). We handle authentication between Redox and the EHR system providing data to populate your cloud destination(s). But you’re responsible for setting up auth credentials or verification tokens to authenticate Redox to your cloud destination(s). Learn about authenticating incoming data.

Next, create cloud destinations for Redox to push data to.

Lastly, you can use the rest of Redox features for your cloud data (e.g., filters, data enrichment, backfilling). Explore some of these features: