openmrs Adaptor developer README.md
Source: https://github.com/OpenFn/adaptors/tree/main/packages/openmrs
Language OpenMRS
Language Pack for building expressions and operations for working with the OpenMRS Rest API
Documentation
Configuration
View all the required and optional properties for state.configuration
in the
official
configuration-schema
definition.
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,
});
Example of searching for patients based on their EMR Id
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
get('/ws/rest/v1/patient', { q: 'mohammed' }, state => {
console.log(JSON.stringify(state, null, 2));
return state;
});
Create new patient
createPatient(
fields(
field('gender', 'M'),
field('names', function (state) {
return [
{
patient_id: dataValue('form.patientId')(state),
creator: dataValue('form.user')(state),
},
];
})
)
);
Development
Clone the adaptors monorepo. Follow the
Getting Started
guide inside to get set up.
Run tests using pnpm run test
or pnpm run test:watch
Build the project using pnpm build
.
To just build the docs run pnpm build docs