Skip to content

Commit

Permalink
Adaptor overview pages (#608)
Browse files Browse the repository at this point in the history
* Update primero.md

* Create asana.md

* Create fhir.md

* Update fhir.md

* Create http.md

* Create openmrs.md

* Update http.md

* Update http.md

* Update fhir.md

* Update fhir.md

* Update asana.md

* Update http.md

* Update openmrs.md

---------

Co-authored-by: Aleksa Krolls <[email protected]>
  • Loading branch information
daissatou2 and aleksa-krolls authored Nov 29, 2024
1 parent e21bbb1 commit a62f9d2
Show file tree
Hide file tree
Showing 5 changed files with 166 additions and 1 deletion.
44 changes: 44 additions & 0 deletions adaptors/asana.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
title: Asana Adaptor
---

## About Asana

[Asana](https://app.asana.com/) is a web-based project management tool that helps teams organize, plan, collaborate, and execute tasks.

## Integration Options

Asana supports 2 primary integration options:

1. Rest API: Asana has an available REST API that enable external services like OpenFn to pull data from CommCare, or push data from external apps to CommCare. This option is suited for scheduled, bulk syncs or workflows that must update data in CommCare with external information. See [functions](/adaptors/packages/asana-docs) for more on how to use this adaptor to work with the API.

2. Webhook: Asana also has a [Webhook or Data Forwarding](https://developers.asana.com/docs/webhooks-guide) to push data from Asana to external systems. This option is suited for real-time, event-based data integration. Check out the Asana [devloper documentation](/adaptors/packages/asana-docs) to learn how to set up a webhook to push data to OpenFn.

## Authentication

See [Asana docs](https://developers.asana.com/docs/authentication) for the latest on supported authentication methods.

When integrating with Asana via OpenFn, there is one primary authentication method supported: **Personal Access Token (PAT)**. You can generate a personal access token from the Asana [developer console](https://developers.asana.com/docs/personal-access-token).

See this adaptor's [Configuration docs](/adaptors/packages/asana-configuration-schema) for more on required authentication parameters.

See platform docs on [managing credentials](/documentation/manage-projects/manage-credentials) for how to configure a credential in OpenFn. If working locally or if using a Raw JSON credential type, then your configuration will look something like this:

```
{
"apiVersion": "1.0",
"token": "sample-tokenyWSJdXBACMLLWMNGgADFA"
}
```

### Helpful Links

1. [API documentation](https://developers.asana.com/docs/overview)

### Implementation Examples

1. The Wildlife Conservation Society (WCS) - KoboToolBox -> GoogleSheets -> Asana sync: https://openfn.github.io/ConSoSci/asana/




42 changes: 42 additions & 0 deletions adaptors/fhir.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
title: FHIR Adaptor
---

## About FHIR

[FHIR](https://www.hl7.org/fhir/overview.html) stands for Fast Healthcare Interoperability Resources. It is a standard for representing and exchanging healthcare data electronically.

::: info New adaptor coming soon!

FHIR version-specific adaptors (e.g., `fhir-r4`) with enhanced functionality are coming soon to fast-track integration setup with more helper functions, templates, and docs than this simple adaptor. See the [Adaptors Wiki](https://github.com/OpenFn/adaptors/wiki/Generating-Fhir-Adaptors) for how to build an adaptor specific to your FHIR Implementation Guide.

:::

## Integration Options

**1. Rest API:** The FHIR specification includes a REST API that enables external services like OpenFn to pull data from the FHIR server, or push data from external apps to FHIR servers. This option is suited for scheduled, bulk syncs or workflows that must update data with external information. See [functions](/adaptors/packages/fhir-docs) for more on how to use this adaptor to work with the API.

**2. Webhook:** The FHIR specification does not inherently define a webhook or data-forwarding mechanism. However, many FHIR implementations and platforms offer extensions or configurations that support similar functionality. This option is suited for real-time, event-based data integration. Check out the FHIR `Subscription` resource [documentation](https://build.fhir.org/subscription-definitions.html) to learn more about one way this might be implemented.

## Authentication

The FHIR standard does not directly prescribe authentication and authorization methods. Instead, it provides security guidelines and leaves the choice of implementation to the developers of FHIR servers and clients. See the FHIR [docs](https://www.hl7.org/fhir/security.html) for the latest security-related recommendations. Depending on the FHIR systems being integrated via OpenFn, you might employ a Basic Auth, API key, or OAuth authentication scheme.

See this adaptor's [Configuration docs](/adaptors/packages/fhir-configuration-schema) for more on the required authentication parameters.

See platform docs on [managing credentials](/documentation/manage-projects/manage-credentials) for how to configure a credential in OpenFn. If working locally or if using a Raw JSON credential type, then your configuration will look something like this to define your target endpoint and FHIR version:

```
{
"baseUrl": "https://hapi.fhir.org",
"apiPath": "baseR4"
}
```

### Helpful Links

1. [API documentation](https://www.hl7.org/fhir/http.html)
2. [Digital Square on FHIR](https://digitalsquare.org/resourcesrepository/digital-square-on-fhir-4c78p)



39 changes: 39 additions & 0 deletions adaptors/http.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
title: HTTP Adaptor
---

## About the HTTP "universal" adaptor

Communicate with web apps using [HTTP (HyperText Transfer Protocol)](https://www.cloudflare.com/learning/ddos/glossary/hypertext-transfer-protocol-http/).
This adaptor enables out-of-box integration with any REST API!

## Integration Options

Use this adaptor to communicate with **any REST API** or any other app that can communicate via HTTP.

**Note that OpenFn also supports Webhooks, but that is a workflow trigger type ([see docs](/documentation/build/triggers#webhook-event-triggers)), not an adaptor.**

## Authentication

HTTP itself does not enforce authentication, but many applications that use HTTP implement security mechanisms to control access. Common methods that can be used when integrating with OpenFn include Basic Authentication, API Keys and OAuth. See this adaptor's [Configuration docs](/adaptors/packages/http-configuration-schema) for more on the required authentication parameters.

See platform docs on [managing credentials](/documentation/manage-projects/manage-credentials) for how to configure a credential in OpenFn. If working locally or if using a Raw JSON credential type, then your configuration will look something like this:

```
{
"username": "[email protected]",
"password": "@some(!)Password",
"access_token": "00QCjAl4MlV-WPX",
"baseUrl": "https://instance_name.surveycto.com"
}
```


### Implementation Examples

1. UNICEF Primero - UNHCR Progres Interoperability: [https://github.com/OpenFn/primero-progres](https://github.com/OpenFn/primero-progres)
2. UNICEF Thailand Primero Interoperability: [https://openfn.github.io/primero-thailand/](https://openfn.github.io/primero-thailand/)




40 changes: 40 additions & 0 deletions adaptors/openmrs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
title: OpenMRS Adaptor
---

## About OpenMRS

[OpenMRS (Open Medical Record System)](https://openmrs.org/) is an open-source platform designed to manage electronic medical records (EMRs) in low-resource environments. It provides a framework that allows developers to extend its core functionality through custom modules and APIs.

## Integration Options

**1. Rest API:** OpenMRS offers a REST API that enables external applications to interact with its database and perform bulk operations. This option is ideal for applications requiring scheduled or bulk synchronization with OpenMRS. Refer to the OpenMRS REST API [documentation](https://wiki.openmrs.org/) for detailed guidelines on endpoints and payload formats.

**2. Webhook:** OpenMRS does not natively support webhooks as a standard feature. However, the platform is highly extensible and allows for customization through its module system. More details can be found on the OpenMRS [documentation page​](https://wiki.openmrs.org/).

## Authentication

When integrating with OpenMRS via OpenFn, **Basic Authentication** is supported. See this adaptor's [Configuration docs](/adaptors/packages/openmrs-configuration-schema) for more on the required authentication parameters.

See platform docs on [managing credentials](documentation/manage-projects/manage-credentials) for how to configure a credential in OpenFn. If working locally or if using a Raw JSON credential type, then your configuration will look something like this:

```
{
"instanceUrl": "http://openmrs.com/instance/url",
"password":"test",
"username":"test"
}
```

### Helpful Links

1. [OpenMRS Developer Guide](https://openmrs.atlassian.net/wiki/spaces/docs/pages/25476048/Developer+Guide)
2. Community Forums: [OpenMRS Talk](https://talk.openmrs.org/)

### Implementation Examples

1. OpenFn Prototype for Médecins Sans Frontières (MSF) LIME Project - OpenMRS -> DHIS2 sync: [https://github.com/OpenFn/openfn-lime](https://github.com/OpenFn/openfn-lime)




2 changes: 1 addition & 1 deletion adaptors/primero.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ See the examples section more sample Primero jobs.
### Integration tips

- Data forwarding can be enabled in Primero. There is a webhook that can forward
case information to a designated URL endpoint (e.g., OpenFn Inbox). This data
case information to a designated URL endpoint (e.g., OpenFn Inbox). This feature requires a backend configuration update that the Primero support team can help with. The data
forwarding can happen automatically on insert of a new case, as well as
on-demand when a user clicks the `Sync` button (which may be added to the page
layout if this feature is in use).
Expand Down

0 comments on commit a62f9d2

Please sign in to comment.