openapi: 3.0.0 info: title: Nimbo Patient Web App API version: 1.0.0 description: '' servers: - url: https://api-staging.nimbo.app/api/v1/ paths: /patient_portal/auth: post: summary: /patient_portal/auth responses: '200': description: OK requestBody: content: application/json: schema: type: object properties: country_code: type: string format: utc-millisec phone: type: string format: utc-millisec example: country_code: '52' phone: '9292929292' /patient_portal/validate: post: summary: /patient_portal/validate responses: '200': description: /patient_portal/validate headers: Server: schema: type: string example: Cowboy Date: schema: type: string example: Sun, 12 Jan 2025 16:27:03 GMT Report-To: schema: type: string example: >- {"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1736699223&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=Jo3%2Fu8h1g8O5HxzpiYGzKa5%2B%2Fjit9wJTpCfMognSuMQ%3D"}]} Reporting-Endpoints: schema: type: string example: >- heroku-nel=https://nel.heroku.com/reports?ts=1736699223&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=Jo3%2Fu8h1g8O5HxzpiYGzKa5%2B%2Fjit9wJTpCfMognSuMQ%3D Nel: schema: type: string example: >- {"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]} Connection: schema: type: string example: keep-alive X-Frame-Options: schema: type: string example: SAMEORIGIN X-Xss-Protection: schema: type: string example: 1; mode=block X-Content-Type-Options: schema: type: string example: nosniff Etag: schema: type: string example: W/"a3011c84c0588235c334be84ebce447f" Cache-Control: schema: type: string example: max-age=0, private, must-revalidate X-Request-Id: schema: type: string example: 48b68c14-6d98-4ad5-b9ad-66a402eb7276 X-Runtime: schema: type: number example: 0.578107 Transfer-Encoding: schema: type: string example: chunked Via: schema: type: string example: 1.1 vegur content: application/json: schema: type: object properties: token: type: string example: token: eyJhbGciOiJI...NpWKeoEXieI requestBody: content: application/json: schema: type: object properties: code: type: string format: utc-millisec country_code: type: string format: utc-millisec phone: type: string format: utc-millisec example: code: '8022' country_code: '52' phone: '9292929292' /patient_portal/people: get: summary: /patient_portal/people responses: '200': description: /patient_portal/people headers: Server: schema: type: string example: Cowboy Date: schema: type: string example: Sun, 12 Jan 2025 16:35:17 GMT Report-To: schema: type: string example: >- {"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1736699710&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=8Wd0edm4U01kNrXRJHGxIUWMFxcE2sqMhCxbbATXY3w%3D"}]} Reporting-Endpoints: schema: type: string example: >- heroku-nel=https://nel.heroku.com/reports?ts=1736699710&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=8Wd0edm4U01kNrXRJHGxIUWMFxcE2sqMhCxbbATXY3w%3D Nel: schema: type: string example: >- {"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]} Connection: schema: type: string example: keep-alive X-Frame-Options: schema: type: string example: SAMEORIGIN X-Xss-Protection: schema: type: string example: 1; mode=block X-Content-Type-Options: schema: type: string example: nosniff Etag: schema: type: string example: W/"d6afcf9f05a29a10a043b162b10a317a" Cache-Control: schema: type: string example: max-age=0, private, must-revalidate X-Request-Id: schema: type: string example: da31f7f8-c637-48fd-8f90-f6a42da4cc42 X-Runtime: schema: type: number example: 7.390839 Transfer-Encoding: schema: type: string example: chunked Via: schema: type: string example: 1.1 vegur content: application/json: schema: type: object properties: people: type: array items: type: object properties: id: type: integer full_name: type: string organization_name: type: string doctor_name: type: string telephone2: type: string format: utc-millisec rooms: type: boolean avatar_url_large: type: string born_at: type: string format: date example: people: - id: 1024259 full_name: Pablo Manuel Quiñones Estrada organization_name: Farmacias del Ahorro - Yalo doctor_name: Dr Gonzalo Gonzales telephone2: '9292929292' rooms: false avatar_url_large: '' born_at: '2000-03-10' - id: 1013138 full_name: Manuel Pablo Estrada Quiñones organization_name: Clinica Aestra doctor_name: Dr Gonzalo Gonzales telephone2: '9292929292' rooms: false avatar_url_large: '' born_at: '1991-04-08' security: - BearerAuth: [] /patient_portal/people/{person_id}/organization: get: summary: /patient_portal/people/{person_id}/organization responses: '200': description: /patient_portal/people/{{person_id}}/organization headers: Server: schema: type: string example: Cowboy Date: schema: type: string example: Sun, 12 Jan 2025 16:42:22 GMT Report-To: schema: type: string example: >- {"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1736700142&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=wMW%2BPnXYNF2lKftlZxJAst3ctrky7bgo26XGfgFufIQ%3D"}]} Reporting-Endpoints: schema: type: string example: >- heroku-nel=https://nel.heroku.com/reports?ts=1736700142&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=wMW%2BPnXYNF2lKftlZxJAst3ctrky7bgo26XGfgFufIQ%3D Nel: schema: type: string example: >- {"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]} Connection: schema: type: string example: keep-alive X-Frame-Options: schema: type: string example: SAMEORIGIN X-Xss-Protection: schema: type: string example: 1; mode=block X-Content-Type-Options: schema: type: string example: nosniff Etag: schema: type: string example: W/"6cc8cff687b4a2775211345e7e6ca82a" Cache-Control: schema: type: string example: max-age=0, private, must-revalidate X-Request-Id: schema: type: string example: b283655c-f9ae-4592-9210-265559f3d63c X-Runtime: schema: type: number example: 0.017651 Transfer-Encoding: schema: type: string example: chunked Via: schema: type: string example: 1.1 vegur content: application/json: schema: type: object properties: public_organization: type: object properties: id: type: integer name: type: string owner_id: type: integer tax_name: nullable: true tax_rfc: nullable: true tax_address_one: nullable: true tax_address_two: nullable: true tax_zip_code: nullable: true tax_exterior_number: nullable: true tax_interior_number: nullable: true tax_city: nullable: true tax_state: nullable: true tax_country: nullable: true kind: type: string slug: type: string username: type: string telehealth_request_slug: nullable: true slug_organization_portal: type: string options: type: object properties: allow_patient_sharing: type: boolean consultation_lock: type: boolean telehealth: type: boolean consultation_needs_consent: type: boolean insurance: type: boolean employee: type: boolean more_info: type: boolean share_medical_history: type: boolean use_own_catalog: type: boolean use_own_prescription_drugs: type: boolean enable_custom_record: type: boolean allow_consultation_edit: type: boolean last_patient_mrn: type: integer prefix_patient_mrn: type: string payment_per_organization: type: boolean medikit: type: boolean schedule_validation_enabled: type: boolean identity_number_required: type: boolean cirrus_integration: type: object properties: enable_integration: type: boolean signature: type: object properties: email: type: string format: email password: type: string format: color document_id: type: integer password_parameters: type: object properties: min_length: type: integer max_login_attempts: type: integer max_days_before_expiry: type: integer number_of_last_non_reusable: type: integer logo: type: string format: uri waiting_room_configuration: type: object owner_country_code: type: string format: utc-millisec validations: type: object properties: person: type: object properties: tax_id: type: string insurance_company_required: type: boolean landing_page_info: type: object properties: configuration: type: object properties: show_physician_directory: type: boolean selected_accounts: type: array items: type: integer example: public_organization: id: 14662 name: Clinica Aestra owner_id: 15717 tax_name: null tax_rfc: null tax_address_one: null tax_address_two: null tax_zip_code: null tax_exterior_number: null tax_interior_number: null tax_city: null tax_state: null tax_country: null kind: clinic slug: nimbo-demon username: mcclone2001 telehealth_request_slug: null slug_organization_portal: a1 options: allow_patient_sharing: true consultation_lock: false telehealth: true consultation_needs_consent: false insurance: true employee: true more_info: true share_medical_history: true use_own_catalog: true use_own_prescription_drugs: false enable_custom_record: true allow_consultation_edit: true last_patient_mrn: 9 prefix_patient_mrn: MRN payment_per_organization: true medikit: true schedule_validation_enabled: true identity_number_required: true cirrus_integration: enable_integration: true signature: email: test@test.com password: 6dd07c document_id: 38 password_parameters: min_length: 12 max_login_attempts: 5 max_days_before_expiry: 90 number_of_last_non_reusable: 5 logo: >- https://s3.amazonaws.com/nimbox-staging/images/images/000/000/637/medium/icono.jpg?1728499854 waiting_room_configuration: {} owner_country_code: '51' validations: person: tax_id: ^\d{1,2}\.\d{3}\.\d{3}[-][0-9kK]{1}$ insurance_company_required: false landing_page_info: configuration: show_physician_directory: true selected_accounts: - -1 security: - BearerAuth: [] parameters: - name: person_id in: path required: true schema: type: string example: '' /patient_portal/people/{person_id}/consultations: get: summary: /patient_portal/people/{person_id}/consultations?page={page} parameters: - name: page in: query schema: type: integer example: 1 responses: '200': description: OK security: - BearerAuth: [] parameters: - name: person_id in: path required: true schema: type: string example: '' /patient_portal/people/{person_id}/attachments: get: summary: /patient_portal/people/{{person_id}}/attachments responses: '200': description: OK security: - BearerAuth: [] parameters: - name: person_id in: path required: true schema: type: string example: '' /patient_portal/people/{person_id}/lab_tests: get: summary: /patient_portal/people/{{person_id}}/lab_tests responses: '200': description: OK security: - BearerAuth: [] parameters: - name: person_id in: path required: true schema: type: string example: '' /patient_portal/people/{person_id}/prescriptions: get: summary: /patient_portal/people/{{person_id}}/prescriptions responses: '200': description: /patient_portal/people/{{person_id}}/prescriptions headers: Server: schema: type: string example: Cowboy Date: schema: type: string example: Sun, 12 Jan 2025 17:27:54 GMT Report-To: schema: type: string example: >- {"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1736702874&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=PFmfFG7VbHoyPA5r6GtWW0uLmiySdoS5mNfnMRoIuOM%3D"}]} Reporting-Endpoints: schema: type: string example: >- heroku-nel=https://nel.heroku.com/reports?ts=1736702874&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=PFmfFG7VbHoyPA5r6GtWW0uLmiySdoS5mNfnMRoIuOM%3D Nel: schema: type: string example: >- {"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]} Connection: schema: type: string example: keep-alive X-Frame-Options: schema: type: string example: SAMEORIGIN X-Xss-Protection: schema: type: string example: 1; mode=block X-Content-Type-Options: schema: type: string example: nosniff Etag: schema: type: string example: W/"50c001eb87e04826eeef733744f7776c" Cache-Control: schema: type: string example: max-age=0, private, must-revalidate X-Request-Id: schema: type: string example: 6010df2a-048f-406c-877c-32e5952a54e0 X-Runtime: schema: type: number example: 0.029172 Transfer-Encoding: schema: type: string example: chunked Via: schema: type: string example: 1.1 vegur content: application/json: schema: type: object properties: prescriptions: type: array items: type: object properties: doctor: type: string date: type: string format: date-time instrucctions: nullable: true drugs: type: array items: type: object properties: name: type: string dose: type: string frequency: type: string duration: type: string example: prescriptions: - doctor: Iván Pérez Gonzáles date: '2025-01-12T11:22:19.438-06:00' instrucctions: null drugs: - name: TOPRON CAP C16 dose: 1 tableta frequency: cada 8 horas duration: 3 días security: - BearerAuth: [] parameters: - name: person_id in: path required: true schema: type: string example: '' /patient_portal/people/{person_id}/vital_signs: get: summary: /patient_portal/people/{{person_id}}/vital_signs responses: '200': description: /patient_portal/people/{{person_id}}/vital_signs headers: Server: schema: type: string example: Cowboy Date: schema: type: string example: Sun, 12 Jan 2025 17:29:12 GMT Report-To: schema: type: string example: >- {"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1736702952&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=GVhkmuj3d7QrcLR%2B1W0vwEsltfduFFo%2Fq7NZ1UycCxY%3D"}]} Reporting-Endpoints: schema: type: string example: >- heroku-nel=https://nel.heroku.com/reports?ts=1736702952&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=GVhkmuj3d7QrcLR%2B1W0vwEsltfduFFo%2Fq7NZ1UycCxY%3D Nel: schema: type: string example: >- {"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]} Connection: schema: type: string example: keep-alive X-Frame-Options: schema: type: string example: SAMEORIGIN X-Xss-Protection: schema: type: string example: 1; mode=block X-Content-Type-Options: schema: type: string example: nosniff Etag: schema: type: string example: W/"d7cf3bdb2b1130f2494e2759a757a80e" Cache-Control: schema: type: string example: max-age=0, private, must-revalidate X-Request-Id: schema: type: string example: 7a9c214f-9dd0-4fa0-9cdc-253aa54451f5 X-Runtime: schema: type: number example: 0.015677 Transfer-Encoding: schema: type: string example: chunked Via: schema: type: string example: 1.1 vegur content: application/json: schema: type: object properties: vital_signs: type: object properties: id: type: integer consultation_id: type: integer elements: type: object properties: height: type: object properties: units: type: string value: type: string weight: type: object properties: units: type: string value: type: string format: utc-millisec body_mass: type: object properties: units: type: string value: type: string temperature: type: object properties: units: type: string value: type: string created_at: type: string format: date-time updated_at: type: string format: date-time deleted_at: nullable: true person_id: type: integer account_id: type: integer set_type: type: string metadata: type: object example: vital_signs: id: 1380706 consultation_id: 1391407 elements: height: units: m value: '1.85' weight: units: kg value: '78' body_mass: units: kg/m2 value: '22.79' temperature: units: C value: '36.4' created_at: '2025-01-12T11:22:53.507-06:00' updated_at: '2025-01-12T11:22:53.507-06:00' deleted_at: null person_id: 1012611 account_id: 15717 set_type: basic metadata: {} security: - BearerAuth: [] parameters: - name: person_id in: path required: true schema: type: string example: '' /patient_portal/people/{person_id}/medical_history: get: summary: /patient_portal/people/{{person_id}}/medical_history responses: '200': description: OK security: - BearerAuth: [] parameters: - name: person_id in: path required: true schema: type: string example: '' /patient_portal/people/{person_id}/consultation_schedules: get: summary: /patient_portal/people/{{person_id}}/consultation_schedules responses: '200': description: /patient_portal/people/{{person_id}}/consultation_schedules headers: Server: schema: type: string example: Cowboy Date: schema: type: string example: Sun, 12 Jan 2025 17:29:28 GMT Report-To: schema: type: string example: >- {"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1736702969&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=1rp0oTIqn94WxJY4PU5my7j2a96GyDt1bLX23gnvqcI%3D"}]} Reporting-Endpoints: schema: type: string example: >- heroku-nel=https://nel.heroku.com/reports?ts=1736702969&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=1rp0oTIqn94WxJY4PU5my7j2a96GyDt1bLX23gnvqcI%3D Nel: schema: type: string example: >- {"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]} Connection: schema: type: string example: keep-alive X-Frame-Options: schema: type: string example: SAMEORIGIN X-Xss-Protection: schema: type: string example: 1; mode=block X-Content-Type-Options: schema: type: string example: nosniff Etag: schema: type: string example: W/"d92fda65fb6b3ac9de724213adea6b6a" Cache-Control: schema: type: string example: max-age=0, private, must-revalidate X-Request-Id: schema: type: string example: 33e433d0-ab85-4382-b286-af806ec89aca X-Runtime: schema: type: number example: 0.027416 Transfer-Encoding: schema: type: string example: chunked Via: schema: type: string example: 1.1 vegur content: application/json: schema: type: object properties: consultation_schedules: type: array items: type: object properties: id: type: integer cause: type: string starts_at: type: string format: date-time ends_at: type: string format: date-time doctor_name: type: string doctor_image: type: string organization_name: type: string patient_name: type: string schedule_type: type: string status: type: string can_confirm_schedule: type: boolean can_cancel_schedule: nullable: true doctor_speciality: type: string doctor_speciality_es: type: string doctor_speciality_en: type: string meta: type: object properties: total_pages: type: integer example: consultation_schedules: - id: 1531886 cause: dolor de cara por ser tan guapo starts_at: '2025-01-12T11:22:00.000-06:00' ends_at: '2025-01-12T11:52:00.000-06:00' doctor_name: Iván Pérez Gonzáles doctor_image: '' organization_name: Clinica Aestra patient_name: perez perez schedule_type: appointment status: started can_confirm_schedule: false can_cancel_schedule: null doctor_speciality: Radiólogo doctor_speciality_es: Radiólogo doctor_speciality_en: Radiology meta: total_pages: 1 security: - BearerAuth: [] parameters: - name: person_id in: path required: true schema: type: string example: '' /patient_portal/people/{person_id}/consultation_requests: get: summary: /patient_portal/people/{{person_id}}/consultation_requests responses: '200': description: OK security: - BearerAuth: [] parameters: - name: person_id in: path required: true schema: type: string example: '' /patient_portal/people/{person_id}/organization_portals: get: summary: /patient_portal/people/{{person_id}}/organization_portals responses: '200': description: /patient_portal/people/{{person_id}}/organization_portals headers: Server: schema: type: string example: Cowboy Date: schema: type: string example: Sun, 12 Jan 2025 17:30:40 GMT Report-To: schema: type: string example: >- {"group":"heroku-nel","max_age":3600,"endpoints":[{"url":"https://nel.heroku.com/reports?ts=1736703040&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=nPB%2FZG7n8hkyA%2FgrtWuxH4UM90fGW5f3hvQr8Hyy%2BZs%3D"}]} Reporting-Endpoints: schema: type: string example: >- heroku-nel=https://nel.heroku.com/reports?ts=1736703040&sid=1b10b0ff-8a76-4548-befa-353fc6c6c045&s=nPB%2FZG7n8hkyA%2FgrtWuxH4UM90fGW5f3hvQr8Hyy%2BZs%3D Nel: schema: type: string example: >- {"report_to":"heroku-nel","max_age":3600,"success_fraction":0.005,"failure_fraction":0.05,"response_headers":["Via"]} Connection: schema: type: string example: keep-alive X-Frame-Options: schema: type: string example: SAMEORIGIN X-Xss-Protection: schema: type: string example: 1; mode=block X-Content-Type-Options: schema: type: string example: nosniff Etag: schema: type: string example: W/"190dfecc1663528ee0c2a6a696330647" Cache-Control: schema: type: string example: max-age=0, private, must-revalidate X-Request-Id: schema: type: string example: 7904ff84-b456-451a-ad47-861323e2088b X-Runtime: schema: type: number example: 0.024431 Transfer-Encoding: schema: type: string example: chunked Via: schema: type: string example: 1.1 vegur content: application/json: schema: type: object properties: organization_portals: type: array items: type: object properties: name: type: string value: type: string url: type: string format: uri example: organization_portals: - name: Portal personal value: personalPortal url: https://nimbo-x-staging.firebaseapp.com/c/mcclone2001 - name: a3 value: organizationPortal1 url: https://nimbo-x-staging.firebaseapp.com/op/ag-consultorio configuration: type_agenda: group: false consulting_room: true branch: false types: in_person: true telehealth: false prices: in_person: enable: false telehealth: enable: false location_id: 0 timezone: America/Mexico_City schedule: consultation_duration: 30 weeks_limit: id: 1 time: 0 interval: '' - name: a2 value: organizationPortal2 url: https://nimbo-x-staging.firebaseapp.com/op/a2 configuration: type_agenda: group: true consulting_room: false branch: false types: in_person: true telehealth: false prices: in_person: enable: false telehealth: enable: false location_id: 0 schedule: consultation_duration: 30 weeks_limit: id: 1 time: 0 interval: '' - name: a1 value: organizationPortal3 url: https://nimbo-x-staging.firebaseapp.com/op/a1 configuration: type_agenda: group: true consulting_room: false branch: false types: in_person: true telehealth: false prices: in_person: enable: false telehealth: enable: false location_id: 0 schedule: consultation_duration: 30 weeks_limit: id: 1 time: 0 interval: '' mon: - 08:00-20:00 tue: - 08:00-20:00 wed: - 08:00-20:00 thu: - 08:00-20:00 fri: - 08:00-20:00 security: - BearerAuth: [] parameters: - name: person_id in: path required: true schema: type: string example: '' components: securitySchemes: BearerAuth: type: http scheme: bearer