API for recurring appointments

Hello everyone,

To support recurring appointments, we thought of modifying the existing API(rather than creating a new one) to save appointment.

Existing service details:

API endPoint: /openmrs/ws/rest/v1/appointment

Payload:

{
    “patientUuid”: “9882ca50-191f-4ec6-baf4-ef90426967d1”,
    “serviceUuid”: “2b87edcf-39ac-4dec-94c9-713b932e847c”,
    “startDateTime”: “2019-04-22T04:20:00.000Z”,
    “endDateTime”: “2019-04-22T04:50:00.000Z”,
    “providers”: [],
    “locationUuid”: “8de35e75-20e0-11e7-a53f-000c29e530d2”,
    “appointmentKind”: “Scheduled”
}

We are thinking to add an optional parameter from front-end.

“recurringDetail”:
{
    “recurringType”: “day”,
    “recurringInterval”: 2,
    “recurrenceEndDate”: “2019-04-22T04:50:00.000Z”
}

We can add more parameters to recurringDetail in future for WEEK, MONTH and YEAR support.

At controller level, the payload object being used is AppointmentRequest. We are adding a new property(recurringDetail) to the above object.

Please provide inputs.

@angshuonline @snehabagri @shivarachakonda @binduak @rajashri @megkmcguire @dirkg