November 2022

Tuesday, November 1, 2022

  • refactored client ratings report to accept no input and return ratings for all clients

October 2022

Friday, October 28th

Date ranges can optionally be passed for these reports by sending start_date and/or end_date values in the payload.

Thursday, October 20th, 2022

  • ratings completion: pull by date, date range, and/or trialSite UID

    Wednesday, October 19th, 2022

  • include milestone in mileage payments if the milestone name is provided when the payment is created

  • site coordinators no longer have permission to change the participants' payment info

Tuesday, October 17th, 2022

  • Send notifications about messages to the websocket

    • added lookup to find all user UIDs who should have access to a conversation

  • Updates to websocket message type for consistency with other API output

  • send test message down websocket every minute as a test

  • improve error logging for websocket disconnections

  • updated dev server nginx to support websockets

Monday, October 16th, 2022

  • improved freeze/cache for permissions lookups

  • added websocket to API

  • add new request_id to reimbursement requests

  • change "Ginku" in source code to "Mural Link"

  • fix PayPal & Venmo payments to use the payment_email instead of participant’s e-mail.

  • multiple uploads for reimbursement requests

    • add current flag to database to indicate which of the (potentially multiple) uploads are current

Friday, October 14th, 2022

  • add freeze/unfreeze caching to speed up permissions checks

  • add profiling to integration test suite

  • fix issue with datetime not being in appointment response

  • added created and modified timestamps to payment and populate them

  • added custom JSON unmarshaller for payment to populate created and modified timestamps

  • added initial websocket code

Wednesday, October 5th

  • update get_messages to not require an enrollment_uid

    • add lookup for all user enrollment UIDs for a participant or caregiver

    • add lookup for all user trial site UIDs for a site coordinator + permission combination

    • add lookup for all enrollment UIDs associated with a trial/site

    • update tests for modified output

  • add sender name to get_messages response

  • add subject ID to get_messages response

Monday, October 3rd

  • add get_appointments API call with the ability to query either future or past appointments

  • rename patient to participant in many places in the code

September 2022

Friday, September 30th

  • Add audit logging for successful and failed logins

  • Completed Amazon S3 work for uploading files and getting temporary URLs

  • Modified contract uploads to use Amazon S3

    • Added ability to cache uploads in memory during testing, when Amazon S3 is not available

    • Added database migrations for necessary fields and new "uploads" table

    • Database migrations to delete fields and table that are no longer necessary.

  • Reimbursement file upload in progress, requires less than an hour of additional work

Wednesday, September 28th

  • set appointment payment UID once payment is made for milestone (connecting appointment to payment for reporting purposes)

  • getting role permissions returns default permissions if no custom permissions are set for that role for that resource

  • added payment UID to the appointment type

  • API call get_payable_appointments

  • added graceful shutdown to API when killed with SIGTERM

  • added profiling to API for future performance improvements

  • added migration for milestone & payment UID fields to appointment database table

  • updated all other appointment SQL queries to include milestone & payment UID fields

  • created / updated API documentation for new functionality

  • additions to test data generation tool to support testing get_payable_appointments, which required modifying a few other tests

    • automatically add milestones to new trial/site when trial/site is created

    • one-step creation of user with site coordinator role for a trial/site

    • add milestone to existing schedule_appointment API calls

  • fix error in set_payment_type where sometimes a duplicate address insert would be attempted

  • add created_at and modified_at fields to payment model and populate them in response to API calls

Tuesday, September 27th

  • added beginnings of AWS code to support S3 uploads

  • clean up dependencies file (delete crap added automatically due to Stripe library integration)

  • plugged in Stripe code for making actual payments (tested!)

  • added stripe_account_id to enrollment query for getting Stripe account token

  • completed payment_address functionality

Monday, September 26th

  • updated payment queries to check for claimed status, instead of the previous pending status

  • added Stripe UID to enrollment model & database migrations

  • added Stripe payment types to database migrations (debit & bank account, in addition to existing PayPal, Venmo, and check)

  • add automatic calls to Stripe transfer & payout APIs when payment is in claimed status

  • refactor development Stripe code to integrate with API (connect to automatic payout check instead of existing stubs)

  • add or update payment address properly in set_payment_type API call

  • allow a "generic" rating to be created (not related to a specific appointment)

Friday, September 23rd

  • completed basic messaging functionality

    • check for whether participant or caregiver is involved in a trial (participant enrolled or caregiver for an enrolled participant)

    • API call to get messages for a participant, caregiver, or site coordinator

    • conversation & message models

    • send_message API call

    • get_messages API call

    • added support for multiple caregivers per participant (required for each caregiver to be able to view appropriate messages)

    • added check for whether enrollment exists (convenience feature for messaging)

    • added database table to store read status of messages on a per-user basis

  • add additional check to password update to ensure user UID exists

Thursday, September 22nd

  • Renamed add_patient to add_participant

  • Now returning enrollment in the response to the enroll API call.

  • Several test updates to change patient to participant

  • Create a user for a caregiver when the caregiver is created

  • Add caregiver UID to caregiver type

  • Add API call get_user_by_caregiver_uid to facilitate testing

Tuesday, September 20th

  • Make participant DoB required

Friday, September 16th

  • Renamed "travel" payments to "mileage."

  • payment categories added for manual payments

    • category is required for manual payments

    • default categories exist

    • add_category` API call added to create custom categories on a per-trial basis

    • categories are validated when a manual payment is attempted

  • Added the ability to rate visits

    • get rate-able visits

Thursday, September 15th

  • Update get_payment_types output to be a map instead of just a list.

Wednesday, September 14th

  • Return a non-200 status code when a user makes an API call but isn’t logged in.

Tuesday, September 13th

  • Add payment e-mail, phone, and address fields to enrollment. This allows a participant to use something different than what is registered to their user to receive payments. For example, they may want to use one e-mail address to log in to the system, and another to received PayPal payments.

Monday, September 12th

Thursday, September 8th

  • Allow multiple caregivers for a patient (replaced get_caregiver with get_caregivers), add_caregiver is still singular; it may be called multiple times.

    Wednesday, September 7th

  • added get_user_trials

  • added validation token to registration e-mail

  • no longer delete validation token on e-mail validation; validate on password change, allowing mobile app to call both my_info and change_password

  • update change_password to accept validation_token during app on-boarding

Friday, September 2nd

  • get_user_sites endpoint — get any sites associated with a user via their permissions

  • get_funding endpoint — get remaining funding for a contract after any payments that have been made

  • get_funding update — accept trial_uid as an alternative to contract_uid

  • add optional dob (date of birth) to patient. Must be in format YYYY-MM-DD or blank.

  • my_info now accepts token in the payload. If the token is valid (their token from their welcome e-mail, which will also be their deep-link code), it returns their info and marks their e-mail as verified.

  • add caregiver_relationships call to get a list of caregiver relationships

  • add relationship to the caregiver model

Thursday, September 1st

  • Fixed bug causing Nancy’s inability to see patients with her own user.

  • Added patient, trial, site, and caregiver info to the my_info query so the mobile app can retrieve patient trial info, so it can claim payments.

August 2022

Wednesday, August 31st

  • Removed ability for repeat milestone payments.

Tuesday, August 30th

  • Add payments and appointments to get_patients output.

  • Updated filter on get_patients — should filter unauthorized patients.

  • Updated filter on get_patients — should show patients even if they have no TrialSite

  • Updated filter on get_patients — should show now properly filter on trial_uid if provided.

  • Updating a milestone will result in the newest one being used, as long as its effective_date is not in the future.

  • Updated code for milestone sort order.

Monday, August 29th

  • get_patient now returns appointment information

  • get_patients now returns all patients a site coordinator can see. Passing in trial_uid is optional and will filter by trial.

Friday, August 26th

  • Set user_type in response to internal or external based on whether the user’s e-mail address ends in

  • Added created_by to the payment object and database table. It contains the UID of the person who created the payment.

  • Added created_by to the output provided to the get_patient_payments call.

  • Automatically create a user when a patient is enrolled in a trial.

  • Added get_unclaimed_payments endpoint. Usable by the participant, it returns a list of payments they may claim.

  • Added get_user_by_patient_uid endpoint. Used by admin; created for testing purposes.

  • Added claim_payments endpoint. Allows a patient to claim their unclaimed payments.

Thursday, August 25th

  • added get_roles API call to get valid roles.

  • Validate roles for add_role_permission (valid options are returned by get_roles, described above)

  • Fix bug in get_caregiver which could return multiple separate JSON documents in a single response.

  • trial_uid is now optional when calling get_patients.

  • Store client address when create_client is called, ticket #23.

  • Set default permissions for a Site Coordinator.

  • added get_default_role_permissions API call

  • Add audit for login with user’s IP address

Wednesday, August 24th

  • Any user is allowed to view their own permissions.

  • Fix multiple JSON output from single copy_permissions request.

Tuesday, August 23rd

  • Removed ability for non-admins to upload a contract PDF.

  • ticket 91 add get_trial_sites call to get all trial sites by trial UID.

  • attach caregiver UID to a patient if they have one

  • add get_caregiver API call