What is cloud connectivity?

Last updated: Nov 20, 2024
PRODUCT OWNER
HEALTH TECH VENDOR

If you want to innovate with cloud platforms, Redox cloud connectivity is for you. 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.

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.

Redox can help get your data into your cloud environments (because it can be really challenging to get right!) in up to 80% less time. Access to this real-time clinical data enables providers, health plans, pharmaceutical, and digital health organizations to unlock AI and ML tools that are changing the healthcare game.

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 (or endpoint). Learn how to create a destination.

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

Data flowing to the cloud via Redox
Data flowing to the cloud 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. Take care of authentication for both then create cloud destinations for Redox to push data to.

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