Eden Health Grdn API

Eden Health's primary backend service ("Grdn" / Guardian) — patients, appointments, membership, documents, care teams, and clinician tooling. Harvested Swagger 2.0; URI-path versioned (v2). Auth is undocumented (a POST /v2/auth endpoint exists but the spec declares no securitySchemes).

OpenAPI Specification

eden-health-grdn-openapi-original.json Raw ↑
{"swagger":"2.0","info":{"version":null,"title":"Grdn API","description":"Eden Health Inc. primary backend API service."},"produces":["application/json"],"consumes":["application/json"],"tags":[{"name":"grdn.routes.impl.images","description":"Handlers for image upload and download."},{"name":"grdn.handler","description":"Configures routes, handlers, and global middleware."},{"name":"grdn.routes.impl.channel","description":"Contains handlers for routes related to Channels."},{"name":"grdn.routes.impl.validation","description":null},{"name":"grdn.routes.impl.next-step","description":"Contains handlers for routes related to Patients."},{"name":"grdn.routes.impl.screener-response","description":"Handlers for screener fetching and submission."},{"name":"grdn.routes.impl.appointments","description":"Contains handlers for routes related to Appointments, Cases, Encounters etc.\n\n  On timezones:\n\n  Appointments are tied to Athena departments, and their date and start time are\n  to be interpreted as representing a local datetime in the Athena department's\n  time zone.\n\n  Popups are special in that they have a dedicated department with the New York\n  time zone, but their physical location (and thus time zone) could differ from\n  that.\n\n  To abstract over departments and popups, we introduce the notion of a location\n  time zone, that is equal to the pop-up's time zone for popup appointments, and\n  the department time zone for all others.\n\n  All appointment times for appointments at physical locations are displayed to\n  the user in the location time zone.\n\n  All appointment times for virtual appointments are displayed to the user\n  in their preferred time zone as communicated by the client.\n  "},{"name":"grdn.routes.impl.consent","description":null},{"name":"grdn.routes.impl.tools","description":null},{"name":"grdn.routes.impl.member","description":"Handlers for sponsor roster members"},{"name":"grdn.routes.impl.patients","description":"Contains handlers for routes related to Patients."},{"name":"grdn.routes.impl.video-visit","description":"Handlers for getting and creating Video Visits."},{"name":"grdn.routes.impl.addons","description":null},{"name":"grdn.routes.impl.configuration","description":null},{"name":"grdn.routes.impl.bug","description":"Bug Report handler"},{"name":"grdn.routes.impl.assignment","description":"Contains handlers for routes related to provider patient assignments."},{"name":"grdn.routes.impl.athena-providers","description":null},{"name":"grdn.routes.impl.chat","description":null},{"name":"grdn.routes.impl.careteam","description":null},{"name":"grdn.routes.impl.macros","description":"Simple CRUD operations for macros."},{"name":"grdn.routes.impl.app","description":"Generic application handlers."},{"name":"grdn.routes.impl.popup","description":"Simple CRUD operations for popups."},{"name":"grdn.routes.impl.video","description":"Scheduling calls and querying call metadata"},{"name":"grdn.routes.impl.sendbird","description":"Handlers for sendbird webhooks."},{"name":"grdn.routes.impl.sponsor-user","description":"Handlers for sponsor_user endpoints"},{"name":"grdn.routes.impl.auth","description":"Direct authentication handlers"},{"name":"grdn.routes.impl.ticklers","description":null},{"name":"grdn.routes.impl.care-pods","description":null},{"name":"grdn.routes.impl.sponsor","description":"Handlers for sponsor data."},{"name":"grdn.routes.impl.event","description":"Route implementation for our various event posting endpoints."},{"name":"grdn.routes.impl.bookable-entities","description":null},{"name":"grdn.routes.impl.provider-groups","description":null},{"name":"grdn.routes.impl.insurance","description":null},{"name":"grdn.routes.impl.feedback","description":"Contains handlers for routes related to Appointments, Cases, Encounters etc."},{"name":"grdn.routes.impl.provider","description":"Handlers to get general info about providers and departments."},{"name":"grdn.routes.impl.pediatric","description":null},{"name":"grdn.routes.impl.demographics","description":null},{"name":"grdn.routes.impl.brad","description":null},{"name":"grdn.routes.impl.screeners","description":"Handlers for screener fetching and submission."},{"name":"grdn.routes.impl.membership","description":"Handlers for membership, invites, codes"},{"name":"grdn.routes.impl.visitor","description":"Handlers for sponsor visitors"},{"name":"grdn.routes.impl.document","description":null},{"name":"grdn.routes.impl.eligibility","description":"Route implementation for all things eligibility"}],"paths":{"/appdata":{"get":{"summary":"app-data-deprecated-handler","description":"","tags":["grdn.routes.impl.app"],"parameters":[],"responses":{"default":{"description":"Default success response.","schema":{}}}}},"/healthcheck":{"get":{"summary":"healthcheck-handler","description":"Generic healthcheck handler, called by aptible and pingdom.","tags":["grdn.routes.impl.app"],"parameters":[],"responses":{"default":{"description":"Default success response.","schema":{}}}}},"/swagger.json":{"get":{"summary":"swagger-handler","description":"","tags":["grdn.handler"],"parameters":[],"responses":{"default":{"description":"Default success response.","schema":{}}}}},"/v2/addons/categories":{"get":{"summary":"get-categories-handler","description":"","tags":["grdn.routes.impl.addons"],"parameters":[],"responses":{"default":{"description":"Default success response.","schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string","x-allOf":[{"type":"string"},{}]},"image-url":{"type":"string"}},"required":["id","name","image-url"]}}}}}},"/v2/addons/external":{"get":{"summary":"get-external-addons-handler","description":"","tags":["grdn.routes.impl.addons"],"parameters":[{"in":"query","name":"state","description":"origin spec: grdn.specs.addons/get-external-addons-params","required":false,"enum":["enabled","archived","disabled"],"type":"string"},{"in":"query","name":"sponsor-id","description":"origin spec: grdn.specs.addons/get-external-addons-params","required":false,"type":"string","format":"uuid"}],"responses":{"default":{"description":"Default success response.","schema":{"type":"array","items":{"type":"object","properties":{"bullet-list":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"},"x-allOf":[{"type":"array","items":{"type":"string"}},{}]},"id":{"type":"string","format":"uuid"},"company-name":{"type":"string"},"category-id":{"type":"string","format":"uuid"},"state":{"enum":["enabled","archived","disabled"],"type":"string"},"notes":{"type":"string"},"enrollment-instructions":{"type":"string"},"benefit-overview":{"type":"string"},"enrollment-url":{"type":"string"}},"required":["id","category-id","benefit-overview","tags","bullet-list","state","company-name","enrollment-instructions","enrollment-url"],"title":"grdn.specs.addons/external-addon"}}}}},"post":{"summary":"create-external-addon-handler","description":"","tags":["grdn.routes.impl.addons"],"parameters":[{"in":"body","name":"grdn.specs.addons/create-external-addon-params","description":"origin spec: grdn.specs.addons/create-external-addon-params","schema":{"type":"object","properties":{"bullet-list":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"},"x-allOf":[{"type":"array","items":{"type":"string"}},{}]},"company-name":{"type":"string"},"sponsor-id":{"type":"string","format":"uuid"},"category-id":{"type":"string","format":"uuid"},"notes":{"type":"string"},"enrollment-instructions":{"type":"string"},"benefit-overview":{"type":"string"},"enrollment-url":{"type":"string"}},"required":["sponsor-id","category-id","benefit-overview","tags","bullet-list","company-name","enrollment-instructions","enrollment-url"],"title":"grdn.specs.addons/create-external-addon-params"}}],"responses":{"default":{"description":"Default success response.","schema":{}}}}},"/v2/addons/external/{external-addon-id}":{"put":{"summary":"update-external-addon-handler","description":"","tags":["grdn.routes.impl.addons"],"parameters":[{"in":"path","name":"external-addon-id","description":"origin spec: grdn.specs.addons/update-external-addon-params","required":true,"type":"string","format":"uuid"},{"in":"body","name":"grdn.specs.addons/update-external-addon-params","description":"origin spec: grdn.specs.addons/update-external-addon-params","schema":{"type":"object","properties":{"bullet-list":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"},"x-allOf":[{"type":"array","items":{"type":"string"}},{}]},"company-name":{"type":"string"},"category-id":{"type":"string","format":"uuid"},"state":{"enum":["enabled","archived","disabled"],"type":"string"},"notes":{"type":"string"},"enrollment-instructions":{"type":"string"},"benefit-overview":{"type":"string"},"enrollment-url":{"type":"string"}},"required":["category-id","benefit-overview","tags","bullet-list","company-name","enrollment-instructions","enrollment-url","state","notes"],"title":"grdn.specs.addons/update-external-addon-params"}}],"responses":{"default":{"description":"Default success response.","schema":{}}}},"get":{"summary":"get-external-addon-handler","description":"","tags":["grdn.routes.impl.addons"],"parameters":[{"in":"path","name":"external-addon-id","description":"origin spec: grdn.specs.addons/get-external-addon-params","required":true,"type":"string","format":"uuid"}],"responses":{"default":{"description":"Default success response.","schema":{"type":"object","properties":{"bullet-list":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"},"x-allOf":[{"type":"array","items":{"type":"string"}},{}]},"id":{"type":"string","format":"uuid"},"company-name":{"type":"string"},"category-id":{"type":"string","format":"uuid"},"state":{"enum":["enabled","archived","disabled"],"type":"string"},"notes":{"type":"string"},"enrollment-instructions":{"type":"string"},"benefit-overview":{"type":"string"},"enrollment-url":{"type":"string"}},"required":["id","category-id","benefit-overview","tags","bullet-list","state","company-name","enrollment-instructions","enrollment-url"],"title":"grdn.specs.addons/get-external-addon-response"}}}}},"/v2/app-data":{"get":{"summary":"app-data-handler","description":"","tags":["grdn.routes.impl.app"],"parameters":[],"responses":{"default":{"description":"Default success response.","schema":{"type":"object","properties":{"latest-consent-form-version":{"type":"string"},"latest-hipaa-version":{"type":"string"},"latest-policy-version":{"type":"string"},"minimum-supported-version":{"type":"string"},"maintenance-active":{"type":"boolean"},"unplanned-downtime-active":{"type":"boolean"}},"required":["latest-consent-form-version","latest-hipaa-version","latest-policy-version","minimum-supported-version","maintenance-active","unplanned-downtime-active"],"title":"grdn.specs.app/app-data-response"}}}}},"/v2/appointment":{"get":{"summary":"get-digital-visit-handler","description":"Fetches a patients ongoing telehealth appointment. Ignores past ongoing\n  telehealth visits and only checks the most recent visit, if the most\n  recent visit is ongoing we return it.","tags":["grdn.routes.impl.appointments"],"parameters":[{"in":"query","name":"patient-id","description":"origin spec: grdn.specs/patient-id-params","required":true,"type":"string","format":"uuid"},{"in":"query","name":"funnel-id","description":"origin spec: grdn.specs/patient-id-params","required":false,"type":"string","format":"uuid"}],"responses":{"default":{"description":"Default success response.","schema":{"type":"object","properties":{"appointment-id":{"type":"integer","format":"int64","x-anyOf":[{"type":"integer","format":"int64"},{"type":"string"}]},"appointment-type-id":{"type":"integer","format":"int64"},"appointment-status":{"type":"number","format":"double"},"start-time":{"type":"string","x-allOf":[{"type":"string"},{}]},"copay":{"type":"number","format":"double"},"patient-appointment-type-name":{"type":"string"},"appointment-type":{"type":"integer","format":"int64","x-anyOf":[{"type":"integer","format":"int64"},{"type":"string"}]},"department-id":{"type":"string","x-anyOf":[{"type":"string"},{"type":"integer","format":"int64"}]},"appointmentcopay":{"type":"object","properties":{"collectedforother":{"type":"number","format":"double"},"collectedforappointment":{"type":"number","format":"double"},"insurancecopay":{"type":"number","format":"double"}},"required":["collectedforother","collectedforappointment","insurancecopay"],"title":"grdn.specs.appointments/appointmentcopay"},"duration":{"type":"number","format":"double"},"date":{"type":"string","x-allOf":[{"type":"string"},{}]}},"required":["appointment-id","date","copay","start-time","department-id","duration","appointment-type","appointment-type-id","patient-appointment-type-name","appointment-status","appointmentcopay"],"title":"grdn.specs.digital-visits/digital-visit","x-anyOf":[{"type":"object","properties":{"appointment-id":{"type":"integer","format":"int64","x-anyOf":[{"type":"integer","format":"int64"},{"type":"string"}]},"appointment-type-id":{"type":"integer","format":"int64"},"appointment-status":{"type":"number","format":"double"},"start-time":{"type":"string","x-allOf":[{"type":"string"},{}]},"copay":{"type":"number","format":"double"},"patient-appointment-type-name":{"type":"string"},"appointment-type":{"type":"integer","format":"int64","x-anyOf":[{"type":"integer","format":"int64"},{"type":"string"}]},"department-id":{"type":"string","x-anyOf":[{"type":"string"},{"type":"integer","format":"int64"}]},"appointmentcopay":{"type":"object","properties":{"collectedforother":{"type":"number","format":"double"},"collectedforappointment":{"type":"number","format":"double"},"insurancecopay":{"type":"number","format":"double"}},"required":["collectedforother","collectedforappointment","insurancecopay"],"title":"grdn.specs.appointments/appointmentcopay"},"duration":{"type":"number","format":"double"},"date":{"type":"string","x-allOf":[{"type":"string"},{}]}},"required":["appointment-id","date","copay","start-time","department-id","duration","appointment-type","appointment-type-id","patient-appointment-type-name","appointment-status","appointmentcopay"],"title":"grdn.specs.digital-visits/digital-visit"},{}]}}}},"post":{"summary":"new-digital-visit-handler","description":"Starts by checking for a patient's insurance. If they do not\n   have any, we set their insurance as self pay. Then, we create\n   an open appointment slot, book the patient into it, and check\n   them into it.","tags":["grdn.routes.impl.appointments"],"parameters":[{"in":"body","name":"grdn.specs.appointments/new-digital-visit-params","description":"origin spec: grdn.specs.appointments/new-digital-visit-params","schema":{"type":"object","properties":{"patient-id":{"type":"string","format":"uuid"},"appointment-type-id":{"type":"integer","format":"int64"}},"required":["patient-id"],"title":"grdn.specs.appointments/new-digital-visit-params"}}],"responses":{"default":{"description":"Default success response.","schema":{}}}}},"/v2/appointment/book":{"post":{"summary":"book-appointments-handler","description":"Book an appointment, send the confirmation, and then build a response. If a video visit ID\n  is provided, set the appointment ID for that visit in postgres.","tags":["grdn.routes.impl.appointments"],"parameters":[{"in":"body","name":"grdn.specs.appointments/book-appointments-params","description":"origin spec: grdn.specs.appointments/book-appointments-params","schema":{"type":"object","properties":{"patient-id":{"type":"string","format":"uuid"},"next-step-id":{"type":"string","format":"uuid"},"appointment-ids":{"type":"array","items":{"type":"integer","format":"int64","x-anyOf":[{"type":"integer","format":"int64"},{"type":"string"}]}},"current-user-tz":{"type":"string"},"appointment-type":{"type":"integer","format":"int64","x-anyOf":[{"type":"integer","format":"int64"},{"type":"string"}]},"department-id":{"type":"string","x-anyOf":[{"type":"string"},{"type":"integer","format":"int64"}]},"popup-id":{"type":"string","format":"uuid"},"video-visit-id":{"type":"string","format":"uuid"},"primary-complaint":{"type":"string"}},"required":["appointment-ids","department-id","appointment-type","primary-complaint","patient-id"],"title":"grdn.specs.appointments/book-appointments-params"}}],"responses":{"default":{"description":"Default success response.","schema":{"type":"object","properties":{"id":{"type":"number","format":"double"},"start-time":{"type":"string","x-allOf":[{"type":"string"},{}]},"time-zone":{"type":"string"},"duration":{"type":"number","format":"double"},"department-id":{"type":"string","x-anyOf":[{"type":"string"},{"type":"integer","format":"int64"}]},"provider-id":{"type":"integer","format":"int64","x-anyOf":[{"type":"integer","format":"int64"},{"type":"string"}]},"zoom-meeting-id":{"type":"string"}},"required":["id","start-time","time-zone","duration","department-id","provider-id"],"title":"grdn.specs.appointments/appointment"}}}}},"/v2/appointment/booked":{"get":{"summary":"booked-appointments-handler","description":"Ask for all booked appointments for a patient.","tags":["grdn.routes.impl.appointments"],"parameters":[{"in":"query","name":"patient-id","description":"origin spec: grdn.specs/patient-id-params","required":true,"type":"string","format":"uuid"},{"in":"query","name":"funnel-id","description":"origin spec: grdn.specs/patient-id-params","required":false,"type":"string","format":"uuid"}],"responses":{"default":{"description":"Default success response.","schema":{"type":"array","items":{"type":"object","properties":{"start-time":{"type":"string","x-allOf":[{"type":"string"},{}]},"provider-id":{"type":"integer","format":"int64","x-anyOf":[{"type":"integer","format":"int64"},{"type":"string"}]},"id":{"type":"number","format":"double"},"rendering-provider-id":{"type":"integer","format":"int64","x-nullable":true},"patient-appointment-type-name":{"type":"string"},"time-zone":{"type":"string"},"location":{"type":"object","properties":{"name":{"type":"string"},"address-1":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"zip":{"type":"string"},"address-2":{"type":"string","x-nullable":true}},"required":["name","address-1","city","state","zip"],"title":"grdn.specs.appointments/location"},"after-visit-summary":{"type":"object","properties":{"appointment_id":{"type":"integer","format":"int64"},"id":{"type":"string","format":"uuid"},"patient_id":{"type":"string"},"updated-at":{},"status":{"enum":["ready-status","pending-status","sent-status","expired-status"],"type":"string"},"created-at":{},"content":{"type":"string","x-nullable":true},"provider_id":{"type":"string"},"sending_provider_id":{"type":"string"},"encounter_id":{"type":"integer","format":"int64"},"deleted_on":{"x-nullable":true},"message_id":{"type":"integer","format":"int64"}},"required":["status"],"title":"grdn.specs.after-visit-summary/after-visit-summary","x-nullable":true},"encounter-id":{"type":"integer","format":"int64","x-anyOf":[{"type":"integer","format":"int64"},{"type":"string"}],"x-nullable":true},"department-id":{"type":"string","x-anyOf":[{"type":"string"},{"type":"integer","format":"int64"}]},"duration":{"type":"number","format":"double"}},"required":["id","start-time","duration","time-zone","department-id","provider-id","location","patient-appointment-type-name","rendering-provider-id","after-visit-summary"],"title":"grdn.specs.appointments/booked-appointment"}}}}}},"/v2/appointment/booked-established":{"get":{"summary":"booked-appointments-established-handler","description":"Ask for all booked appointments for a patient and returns\n   a vector of appointments and a boolean saying if the patient is established\n   TDD: https://edenhealth.atlassian.net/wiki/spaces/PE/pages/3350986788/TDD+Filter+Appointment+Reasons+on+Patient+App+depending+on+Patient+Status+New+VS+Established+Patient","tags":["grdn.routes.impl.appointments"],"parameters":[{"in":"query","name":"patient-id","description":"origin spec: grdn.specs/patient-id-params","required":true,"type":"string","format":"uuid"},{"in":"query","name":"funnel-id","description":"origin spec: grdn.specs/patient-id-params","required":false,"type":"string","format":"uuid"}],"responses":{"default":{"description":"Default success response.","schema":{"type":"array","items":{"type":"object","properties":{"start-time":{"type":"string","x-allOf":[{"type":"string"},{}]},"provider-id":{"type":"integer","format":"int64","x-anyOf":[{"type":"integer","format":"int64"},{"type":"string"}]},"id":{"type":"number","format":"double"},"rendering-provider-id":{"type":"integer","format":"int64","x-nullable":true},"patient-appointment-type-name":{"type":"string"},"time-zone":{"type":"string"},"location":{"type":"object","properties":{"name":{"type":"string"},"address-1":{"type":"string"},"city":{"type":"string"},"state":{"type":"string"},"zip":{"type":"string"},"address-2":{"type":"string","x-nullable":true}},"required":["name","address-1","city","state","zip"],"title":"grdn.specs.appointments/location"},"after-visit-summary":{"type":"object","properties":{"appointment_id":{"type":"integer","format":"int64"},"id":{"type":"string","format":"uuid"},"patient_id":{"type":"string"},"updated-at":{},"status":{"enum":["ready-status","pending-status","sent-status","expired-status"],"type":"string"},"created-at":{},"content":{"type":"string","x-nullable":true},"provider_id":{"type":"string"},"sending_provider_id":{"type":"string"},"encounter_id":{"type":"integer","format":"int64"},"deleted_on":{"x-nullable":true},"message_id":{"type":"integer","format":"int64"}},"required":["status"],"title":"grdn.specs.after-visit-summary/after-visit-summary","x-nullable":true},"encounter-id":{"type":"integer","format":"int64","x-anyOf":[{"type":"integer","format":"int64"},{"type":"string"}],"x-nullable":true},"department-id":{"type":"string","x-anyOf":[{"type":"string"},{"type":"integer","format":"int64"}]},"duration":{"type":"number","format":"double"}},"required":["id","start-time","duration","time-zone","department-id","provider-id","location","patient-appointment-type-name","rendering-provider-id","after-visit-summary"],"title":"grdn.specs.appointments/booked-appointment"}}}}}},"/v2/appointment/{appointment-id}":{"put":{"summary":"checkout-digital-visit-handler","description":"Given patient and appointment, checkout the appointment\n  and send the patient a feedback survey. Always sends feedback\n  even if the checkout fails.","tags":["grdn.routes.impl.appointments"],"parameters":[{"in":"path","name":"appointment-id","description":"origin spec: grdn.specs.appointments/checkout-digital-visit-params","required":true,"type":"integer","format":"int64","x-anyOf":[{"type":"integer","format":"int64"},{"type":"string"}]},{"in":"body","name":"grdn.specs.appointments/checkout-digital-visit-params","description":"origin spec: grdn.specs.appointments/checkout-digital-visit-params","schema":{"type":"object","properties":{"patient-id":{"type":"string","format":"uuid"}},"title":"grdn.specs.appointments/checkout-digital-visit-params"}}],"responses":{"default":{"description":"Default success response.","schema":{}}}}},"/v2/appointment/{appointment-id}/after-visit-summary":{"delete":{"summary":"delete-after-visit-summary-message-handler","description":"Updates an after-visit-summary message custom type to deleted and changes content to empty string.\n   If deleting message and image are successful, logs an event about the deleted message to the db.","tags":["grdn.routes.impl.appointments"],"parameters":[{"in":"path","name":"appointment-id","description":"origin spec: grdn.specs.appointments/delete-after-visit-summary-message-params","required":true,"type":"integer","format":"int64","x-anyOf":[{"type":"integer","format":"int64"},{"type":"string"}]}],"responses":{"default":{"description":"Default success response.","schema":{"type":"object","properties":{"after-visit-summary":{"type":"object","properties":{"appointment_id":{"type":"integer","format":"int64"},"id":{"type":"string","format":"uuid"},"patient_id":{"type":"string"},"updated-at":{},"status":{"enum":["ready-status","pending-status","sent-status","expired-status"],"type":"string"},"created-at":{},"content":{"type":"string","x-nullable":true},"provider_id":{"type":"string"},"sending_provider_id":{"type":"string"},"encounter_id":{"type":"integer","format":"int64"},"deleted_on":{"x-nullable":true},"message_id":{"type":"integer","format":"int64"}},"required":["status"],"title":"grdn.specs.after-visit-summary/after-visit-summary"}},"required":["after-visit-summary"],"title":"grdn.specs.appointments/delete-after-visit-summary-message-response"}}}},"post":{"summary":"send-after-visit-summary-handler","description":"Creates an after-visit-summary record in grdn db and sends a message in the patient's chat.","tags":["grdn.routes.impl.appointments"],"parameters":[{"in":"path","name":"appointment-id","description":"origin spec: grdn.specs.appointments/send-after-visit-summary-params","required":true,"type":"integer","format":"int64","x-anyOf":[{"type":"integer","format":"int64"},{"type":"string"}]},{"in":"body","name":"grdn.specs.appointments/send-after-visit-summary-params","description":"origin spec: grdn.specs.appointments/send-after-visit-summary-params","schema":{"type":"object","properties":{"content":{"type":"string","allowEmptyValue":true}},"required":["content"],"title":"grdn.specs.appointments/send-after-visit-summary-params"}}],"responses":{"default":{"description":"Default success response.","schema":{"type":"object","properties":{"after-visit-summary":{"type":"object","properties":{"appointment_id":{"type":"integer","format":"int64"},"id":{"type":"string","format":"uuid"},"patient_id":{"type":"string"},"updated-at":{},"status":{"enum":["ready-status","pending-status","sent-status","expired-status"],"type":"string"},"created-at":{},"content":{"type":"string","x-nullable":true},"provider_id":{"type":"string"},"sending_provider_id":{"type":"string"},"encounter_id":{"type":"integer","format":"int64"},"deleted_on":{"x-nullable":true},"message_id":{"type":"integer","format":"int64"}},"required":["status"],"title":"grdn.specs.after-visit-summary/after-visit-summary"}},"required":["after-visit-summary"],"title":"grdn.specs.appointments/send-after-visit-summary-response"}}}}},"/v2/appointment/{appointment-id}/cancel":{"put":{"summary":"cancel-appointment-handler","description":"Cancels a patients appointment.","tags":["grdn.routes.impl.appointments"],"parameters":[{"in":"path","name":"appointment-id","description":"origin spec: grdn.specs.appointments/appointment-id-params","required":true,"type":"integer","format":"int64","x-anyOf":[{"type":"integer","format":"int64"},{"type":"string"}]},{"in":"body","name":"grdn.specs.appointments/appointment-id-params","description":"origin spec: grdn.specs.appointments/appointment-id-params","schema":{"type":"object","properties":{"message":{"type":"string"}},"title":"grdn.specs.appointments/appointment-id-params"}}],"responses":{"default":{"description":"Default success response.","schema":{"type":"object","properties":{"appointment-id":{"type":"integer","format":"int64","x-anyOf":[{"type":"integer","format":"int64"},{"type":"string"}]}},"required":["appointment-id"],"title":"grdn.specs.appointments/cancel-appointment-response"}}}}},"/v2/appointment/{appointment-id}/check-in":{"post":{"summary":"check-in-appointment-handler","description":"Given an existing appointment, checks the user in and assigns screeners.","tags":["grdn.routes.impl.appointments"],"parameters":[{"in":"path","name":"appointment-id","description":"origin spec: grdn.specs.appointments/check-in-appointment-params","required":true,"type":"integer","format":"int64","x-anyOf":[{"type":"integer","format":"int64"},{"type":"string"}]},{"in":"body","name":"grdn.specs.appointments/check-in-appointment-params","description":"origin spec: grdn.specs.appointments/check-in-appointment-params","schema":{"type":"object","properties":{"patient-id":{"type":"string","format":"uuid"},"screener-names":{"type":"array","items":{"type":"string"}}},"required":["patient-id"],"title":"grdn.specs.appointments/check-in-appointment-params"}}],"responses":{"default":{"description":"Default success response.","schema":{}}}},"get":{"summary":"get-check-in-screeners-handler","description":"Gets the screeners available for an appointment.","tags":["grdn.routes.impl.appointments"],"parameters":[{"in":"path","name":"appointment-id","description":"origin spec: grdn.specs.appointments/appointment-id-params","required":true,"type":"integer","format":"int64","x-anyOf":[{"type":"integer","format":"int64"},{"type":"string"}]},{"in":"query","name":"message","description":"origin spec: grdn.specs.appointments/appointment-id-params","required":false,"type":"string"}],"responses":{"default":{"description":"Default success response.","schema":{"type":"object","properties":{"appointment-id":{"type":"integer","format":"int64","x-anyOf":[{"type":"integer","format":"int64"},{"type":"string"}]},"screener-names":{"type":"array","items":{"type":"string"}}},"required":["appointment-id","screener-names"],"title":"grdn.specs.appointments/get-check-in-screeners-response"}}}}},"/v2/appointment/{appointment-id}/note":{"get":{"summary":"get-appointment-note-handler","description":"Fetch the booking note for an appointment.","tags":["grdn.routes.impl.appointments"],"parameters":[{"in":"path","name":"appointment-id","description":"origin spec: grdn.specs.appointments/appointment-id-params","required":true,"type":"integer","format":"int64","x-anyOf":[{"type":"integer","format":"int64"},{"type":"string"}]},{"in":"query","name":"message","description":"origin spec: grdn.specs.appointments/appointment-id-params","required":false,"type":"string"}],"responses":{"default":{"description":"Default success response.","schema":{"type":"object","properties":{"notetext":{"type":"string"},"noteid":{"type":"string"},"created":{"type":"string"},"createdby":{"type":"string"}},"required":["notetext","noteid","created","createdby"],"title":"grdn.specs.appointments/appointment-note","x-anyOf":[{"type":"object","properties":{"notetext":{"type":"string"},"noteid":{"type":"string"},"created":{"type":"string"},"createdby":{"type":"string"}},"required":["notetext","noteid","created","createdby"],"title":"grdn.specs.appointments/appointment-note"},{}]}}}}},"/v2/athena-provider":{"get":{"summary":"get-athena-providers-handler","description":"Returns all Athena providers.","tags":["grdn.routes.impl.athena-providers"],"parameters":[],"responses":{"default":{"description":"Default success response.","schema":{"type":"array","items":{"type":"object","properties":{"display-name":{"type":"string"},"entity-type":{"type":"string"},"athena-provider-id":{"type":"integer","format":"int64"},"provider-group-list":{"type":"array","items":{"type":"integer","format":"int64"}}},"required":["display-name","entity-type","athena-provider-id","provider-group-list"]}}}}}},"/v2/auth":{"get":{"summary":"auth-handler","description":"Tries to return a sendbird access token for a user. To do this,\n   we figure out what a user's sendbird-user-id in postgres,\n   and we ask sendbird for a token. If no active ones exist, we\n   create one.","tags":["grdn.routes.impl.auth"],"parameters":[],"responses":{"default":{"description":"Default success response.","schema":{"type":"object","properties":{"sendbird-user-id":{"type":"string","format":"uuid"},"sendbird-session-token":{"type":"string"}},"required":["sendbird-user-id","sendbird-session-token"],"title":"grdn.specs.auth/auth-response"}}}}},"/v2/bookable-entities":{"get":{"summary":"get-bookable-entities-handler","description":"Gets all departments and appointment reasons.","tags":["grdn.routes.impl.bookable-entities"],"parameters":[],"responses":{"default":{"description":"Default success response.","schema":{"type":"object","properties":{"patientappointmentreasons":{"type":"array","items":{"type":"object","properties":{"schedulingminhours":{"type":"number","format":"double"},"reasontype":{"type":"string"},"reason":{"type":"string"},"description":{"type":"string"},"reason-id":{"type":"number","format":"double"},"schedulingmaxdays":{"type":"number","format":"double"},"department-ids":{"type":"array","items":{"type":"number","format":"double"}}},"required":["schedulingminhours","reasontype","reason","description","reason-id","schedulingmaxdays","department-ids"],"title":"grdn.specs.bookable-entities/patientappointmentreason"}},"departments":{"type":"array","items":{"type":"object","properties":{"city":

# --- truncated at 32 KB (199 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/eden-health/refs/heads/main/openapi/eden-health-grdn-openapi-original.json