⚠️ MOVED TO OpenFn/adaptors! ⚠️
N.B.: New versions are available at: https://github.com/OpenFn/adaptors/tree/main/packages/openmrs
Language Pack for building expressions and operations for working with the OpenMRS API.
Documentation
Sample configuration
{
"instanceUrl": "http://openmrs.com/instance/url",
"username": "admin@openmrs",
"password": "supersecretopenmrspassword"
}
Get a patient by some criteria
// getPatient({ uuid: '516af9aa-0402-4e11-ad79-e394fdec0c91' });
// getPatient({ uuid: dataValue('patientId')(state) });
getPatient({
uuid: (state) => state.data[0].uuid,
});
EMR Id
Example of searching for patients based on their getPatients(
{
identifier: state => state.data.emrId,
v: 'full',
},
{
exactlyOne: true,
}
);
Create an Encounter
createEncounter({
encounterDatetime: dataValue('visit_date'), //dynamically fill with source app data
patient: dataValue('uuid'),
encounterType: dataValue('visit_type'),
location: dataValue('location.uuid'),
encounterProviders: [
{
provider: dataValue('provider_name'),
encounterRole: '240b26f9-dd88-4172-823d-4a8bfeb7841f', //hardcoded value
},
],
});
Make a request to any OpenMRS endpoint
req({ method: 'GET', url: '/ws/rest/v1/concept' }, (state) => {
console.log(JSON.stringify(state, null, 2));
return state;
});
Create new patient
patient(
fields(
field("gender", "M"),
field("names", function(state) {
return [{
"patient_id": dataValue("form.patientId")(state),
"creator": dataValue("form.user")(state)
}]
})
)
)
Development
Clone the repo, run npm install
.
Run tests using npm run test
or npm run test:watch
Build the project using make
.