Luma Health Patient Forms API

Patient forms answered by patients

Operations 4

GET /patientForms Show a list of patientForms #
GET /patientForms/{patientFormId} Get patientForm by id #
PUT /patientForms/{patientFormId} Update a patientForm #
DELETE /patientForms/{patientFormId} Delete a patientForm #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/luma-health-patientforms-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

luma-health-patientforms-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.0.0
  title: Rest-Service Patient Forms API
  x-logo:
    url: https://lumahealth-assets.s3.us-west-2.amazonaws.com/new_luma_logo_black.png
    backgroundColor: '#FFFFFF'
    altText: Luma Health
  description: OpenAPI [Basic Structure](https://swagger.io/docs/specification/basic-structure/)
servers:
- url: https://api.lumahealth.io/api/v2
security:
- Bearer: []
tags:
- name: patientForms
  description: Patient forms answered by patients
paths:
  /patientForms:
    get:
      summary: Show a list of patientForms
      operationId: listPatientForms
      tags:
      - patientForms
      parameters:
      - name: patient
        in: query
        description: the ID of the patient who filled out the answers for this form.
        schema:
          type: string
          pattern: '[0-9a-f]'
          minLength: 24
          maxLength: 24
      - name: status
        in: query
        description: 'The completion status of the patient form under the patient''s perspective, knowingly:

          - `pending`: the initial status, not seen by the patient, created when a message is sent out with the form link;

          - `unstarted`: set when the patient clicked on the link to open the form but only saw the welcome screen, without actually answering any questions;

          - `started`: when the patient started answering at least one question, but hasn''t finished the form yet;

          - `completed`: the patient has finished answering all the questions and cannot edit the form anymore.

          '
        schema:
          type: string
          enum:
          - pending
          - unstarted
          - started
          - completed
      - name: completedAt
        in: query
        description: the date/time when the patient finished all the responses of this form.
        schema:
          type: string
          format: date-time
      - name: processingStatus
        in: query
        description: 'The internal staff''s management status for a completed form, serving the purpose of organizing which answers were analysed by a staff member or not.

          - `open`: the form was completed by a patient but not seen by any staff member yet;

          - `in-progress`: a staff user is analysing the answers;

          - `closed`: the form has been completely analysed by a member of the staff team.

          '
        schema:
          type: string
          enum:
          - open
          - in-progress
          - closed
      - name: processingStatusUpdatedBy
        in: query
        description: the ID of a staff `user` who analysed the responses of this completed patient form and changed its `processingStatus`.
        schema:
          type: string
          pattern: '[0-9a-f]'
          minLength: 24
          maxLength: 24
      - name: processingStatusUpdatedAt
        in: query
        description: the date/time when a staff `user` analysed the responses of this completed patient form and changed its `processingStatus`.
        schema:
          type: string
          format: date-time
      - name: lumabot
        in: query
        description: flag to signal whether a form was filled out in the shape of a patient chat with a bot.
        schema:
          type: boolean
      - name: appointment
        in: query
        description: the ID of an appointment related to this form.
        schema:
          type: string
          pattern: '[0-9a-f]'
          minLength: 24
          maxLength: 24
      - name: fileUpload
        in: query
        description: the ID of a fileUpload related to this form.
        schema:
          type: string
          pattern: '[0-9a-f]'
          minLength: 24
          maxLength: 24
      - name: duration
        in: query
        description: the time it took (in minutes) for the patient to complete this form.
        schema:
          type: number
      - name: url
        in: query
        description: 'deprecated: custom patient form url, basically to identify any patient in survey monkey,

          an external forms service that''s not being used anymore by Luma.

          '
        schema:
          type: string
      - name: currentItemId
        in: query
        description: 'The code of the current question the patient was last shown, before answering it.

          Such a code must be the content of any `responses.page[0].questions[x].id`, or `success`.

          Usually this will contain each id, in sequence, but patients can go back and forth.

          Also, forms can have jump logic, and some questions might not be displayed to the patient.

          When the form is completed, this is updated to `success`.

          '
        schema:
          type: string
      - name: patientFormTemplate
        in: query
        description: the ID of the template of questions that was displayed for the patient.
        schema:
          type: string
          pattern: '[0-9a-f]'
          minLength: 24
          maxLength: 24
      - name: patientFormTemplateName
        in: query
        description: the name of the template of questions used as a basis for these form answers. See `patientFormTemplates`.
        schema:
          type: string
      - name: patientFormTemplateType
        in: query
        description: "A flag to help filter forms by their originally desired purpose.\nThe form structure and behavior is identical, but depending on the settings screen,\nsome forms may be displayed as a selectable option or not. \n- `intake`: a regular form, intended to be sent to patients manually, or in reminders, or even custom actions.\n- `pre-qualification`: a form to be displayed before the scheduler is shown to patients. In the scheduler settings page, you can only select a `pre-qualification` form to be displayed before the patient actually schedules an appointment.\n- `feedback`: a form to be sent to patients after their visits, to rate the service they've received. On the feedback settings page, you can only select a form with this flag.\n- `ccda`: a form containing special questions that conform to the standard format which can be read by EHR Systems.\n"
        schema:
          type: string
          enum:
          - intake
          - pre-qualification
          - feedback
          - ccda
      - $ref: '#/components/parameters/refParam'
      - name: refId
        in: query
        description: The ID of the Object refereced by the `ref` field.
        schema:
          type: string
          pattern: '[0-9a-f]'
          minLength: 24
          maxLength: 24
      - name: offer
        in: query
        description: The ID of an appointment `Offer` related to these form answers.
        schema:
          type: string
          pattern: '[0-9a-f]'
          minLength: 24
          maxLength: 24
      - name: language
        in: query
        description: The language in which the form was answered by the patient.
        schema:
          type: string
          enum:
          - en
          - es
          - pt
      - name: accessedFrom
        in: query
        description: IP address of the patient who filled out the form.
        schema:
          type: string
      - name: previousPatientForm
        in: query
        description: 'PreviousPatientForm and nextPatientForm will be used to make it possible for forms

          to be able to jump to another form with another template so we can reduce the number of

          unecessary questions in a single form, which should help with organization and performance.

          One form must call the jump template, at which time we create a new patientForm and set

          the previous form ID on its `previousPatientForm` property.

          '
      - name: nextPatientForm
        in: query
        description: 'PreviousPatientForm and nextPatientForm will be used to make it possible for forms

          to be able to jump to another form with another template so we can reduce the number of

          unecessary questions in a single form, which should help with organization and performance.

          One form must call the jump template, at which time we create a new patientForm and set

          the new form ID on the first form''s `nextPatientForm` property.

          '
        schema:
          type: string
      - $ref: '#/components/parameters/userParam'
      - $ref: '#/components/parameters/deletedParam'
      - $ref: '#/components/parameters/createdByParam'
      - $ref: '#/components/parameters/updatedByParam'
      - $ref: '#/components/parameters/createdAtParam'
      - $ref: '#/components/parameters/updatedAtParam'
      - $ref: '#/components/parameters/pageParam'
      - $ref: '#/components/parameters/limitParam'
      - $ref: '#/components/parameters/populateParam'
      - $ref: '#/components/parameters/selectParam'
      responses:
        '200':
          description: Returns a list of patientForms
          content:
            application/json:
              schema:
                type: object
                required:
                - response
                - page
                - size
                properties:
                  response:
                    type: array
                    minItems: 0
                    items:
                      $ref: '#/components/schemas/PatientFormResponse'
                  page:
                    type: integer
                    format: int32
                    minimum: 1
                  size:
                    type: integer
                    format: int32
                    minimum: 0
                additionalProperties: false
        '401':
          description: Not authenticated
        '403':
          description: Access token does not have the required scope
        default:
          description: unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /patientForms/{patientFormId}:
    get:
      summary: Get patientForm by id
      operationId: patientFormGet
      tags:
      - patientForms
      parameters:
      - name: patientFormId
        in: path
        required: true
        description: PatientForms' unique identifier in Luma's database.
        schema:
          type: string
          pattern: '[0-9a-f]'
          minLength: 24
          maxLength: 24
      responses:
        '200':
          description: PatientForm
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PatientFormResponse'
        '401':
          description: Not authenticated
        '403':
          description: Access token does not have the required scope
    put:
      summary: Update a patientForm
      operationId: patientFormUpdate
      tags:
      - patientForms
      parameters:
      - name: patientFormId
        in: path
        required: true
        description: PatientForms' unique identifier in Luma's database.
        schema:
          type: string
          pattern: '[0-9a-f]'
          minLength: 24
          maxLength: 24
      requestBody:
        description: A patientForm (full or partial) to be updated
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatientFormRequest'
      responses:
        '200':
          description: PatientForm
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PatientFormResponse'
        '401':
          description: Not authenticated
        '403':
          description: Access token does not have the required scope
    delete:
      summary: Delete a patientForm
      operationId: patientFormDelete
      tags:
      - patientForms
      parameters:
      - name: patientFormId
        in: path
        required: true
        description: PatientForms' unique identifier in Luma's database.
        schema:
          type: string
          pattern: '[0-9a-f]'
          minLength: 24
          maxLength: 24
      responses:
        '200':
          description: Deleted patientForm
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PatientFormResponse'
        '401':
          description: Not authenticated
        '403':
          description: Access token does not have the required scope
components:
  parameters:
    populateParam:
      name: _populate
      in: query
      description: Response properties which will be replaced by the referenced objects, separated by commas.
      required: false
      type: string
      schema:
        type: string
    selectParam:
      name: _select
      in: query
      description: Response properties that should be returned, separated by commas.
      required: false
      type: string
      schema:
        type: string
    pageParam:
      in: query
      name: page
      required: false
      type: integer
      format: int32
      default: 1
      minimum: 1
      schema:
        type: integer
        format: int32
        default: 1
        minimum: 1
    updatedByParam:
      in: query
      name: updatedBy
      required: false
      type: string
      pattern: '[0-9a-f]'
      minLength: 24
      maxLength: 24
      schema:
        type: string
        pattern: '[0-9a-f]'
        minLength: 24
        maxLength: 24
      description: The ID of the user who updated this object.
    deletedParam:
      in: query
      name: deleted
      required: false
      type: number
      enum:
      - 0
      - 1
      schema:
        type: number
        enum:
        - 0
        - 1
      description: Flag for logical deletion where 1 means deleted.
    updatedAtParam:
      in: query
      name: updatedAt
      type: string
      format: date-time
      schema:
        type: string
        format: date-time
      required: false
      description: The date/time when this object was updated.
    createdByParam:
      in: query
      name: createdBy
      type: string
      pattern: '[0-9a-f]'
      minLength: 24
      maxLength: 24
      schema:
        type: string
        pattern: '[0-9a-f]'
        minLength: 24
        maxLength: 24
      required: false
      description: The ID of the user who created this object.
    createdAtParam:
      in: query
      name: createdAt
      type: string
      format: date-time
      schema:
        type: string
        format: date-time
      required: false
      description: The date/time when this object was created.
    limitParam:
      name: limit
      in: query
      description: How many items to fetch per page
      required: false
      type: integer
      format: int32
      default: 500
      minimum: 1
      maximum: 1000
      schema:
        type: integer
        format: int32
        default: 500
        minimum: 1
        maximum: 1000
    refParam:
      in: query
      name: ref
      description: Indicates what this is about. Depending on this value, you also know what the parameter `refId` refers to.
      schema:
        $ref: '#/components/schemas/Ref'
    userParam:
      in: query
      name: user
      required: false
      type: string
      pattern: '[0-9a-f]'
      minLength: 24
      maxLength: 24
      schema:
        type: string
        pattern: '[0-9a-f]'
        minLength: 24
        maxLength: 24
      description: The ID of the root account user.
  schemas:
    PatientFormRequest:
      type: object
      required:
      - status
      - processingStatus
      properties:
        status:
          type: string
          enum:
          - pending
          - unstarted
          - started
          - completed
        processingStatus:
          description: processingStatus
          type: string
          default: open
          enum:
          - open
          - in-progress
          - closed
    SalesforceData:
      type: object
      description: Salesforce internal meta data for this account.
      required:
      - respectProvisioning
      properties:
        customerSuccessManager:
          type: object
          properties:
            name:
              type: string
            email:
              type: string
            phone:
              type: string
        provisioning:
          type: array
          items:
            type: string
            enum:
            - reminder
            - waitlist
            - feedback
            - followup
            - referral
            - outbound-referral
            - chat
            - scheduler
            - recall
            - insurance
            - broadcast
            - form
            - intake-form
            - prequal-form
            - branding
            - upload
            - telehealth
            - waiting-room
            - luma-pay
            - insurance-verification
        respectProvisioning:
          type: boolean
          default: true
        lifeline:
          type: string
          enum:
          - trial
          - converted
          - active
          - churn
        mrr:
          type: number
        arr:
          type: number
        renewalDate:
          type: string
          format: date-time
        providers:
          type: number
        specialty:
          type: string
        referralTrialLimit:
          type: number
        recordType:
          type: string
        domesticAccessRequired:
          type: boolean
        goLiveAt:
          type: string
          format: date-time
        fullyImplementedAt:
          type: string
          format: date-time
        contractSignedAt:
          type: string
          format: date-time
        contractLength:
          type: number
        healthStatus:
          type: string
          default: green
          enum:
          - green
          - yellow
          - red
          - poor fit
          - Healthy
          - Neutral
          - Churn Risk
          - Advocate
        boardSegment:
          type: string
          default: Unknown
          enum:
          - Reseller
          - Strategic
          - Majors
          - Core
          - Sub 20
          - Unknown
        onboardingState:
          type: string
          default: Customer Success Introduction
          enum:
          - Customer Success Introduction
          - Kickoff
          - Integration
          - Discovery Call
          - Customization
          - Testing
          - Staff Training
          - Ready To Launch
          - Go-Live
          - Fully Implemented
        accountLifeline:
          type: string
          default: Active
          enum:
          - Unassigned
          - Assigned
          - Sales Accepted
          - Working
          - Sales Qualified
          - Open Opportunity
          - Nurture
          - Disqualified
          - Trial
          - Converted
          - Active
          - Churned
          - Partnered
          - Trial Ended (No Conversion)
    ExternalId:
      type: object
      properties:
        source:
          description: externalId.source
          type: string
          enum:
          - gcalendar
          - successehs
          - drchrono
          - dentrix
          - webpt
          - theraoffice
          - mi7
          - practicefusion
          - advancedmd
          - acomrapidpm
          - kareo
          - nextech
          - mwtherapy
          - clinicient
          - carecloud
          - eclinicalmobile
          - duxware
          - labretriever
          - optimispt
          - referral
          - recall
          - allscriptspm
          - lytec
          - brightree
          - fullslate
          - nuemd
          - centricityps
          - officeally
          - greenwayintergy
          - compulink
          - adspm
          - dsnpm
          - lumamock
          - medicalmastermind
          - meditouch
          - healthnautica
          - ezemrx
          - hl7
          - amazingcharts
          - greenwayprimesuite
          - raintree
          - athenahealth
          - revflow
          - eclinicalworks10e
          - hl7pickup
          - mindbody
          - eclinicalworkssql
          - nextgen
          - practiceperfect
          - avimark
          - clinix
          - keymedical
          - mdoffice
          - webedoctor
          - emapm
          - medinformatix
          - imsgo
          - emds
          - allscriptsunity
          - medevolve
          - caretracker
          - clearpractice
          - valant
          - micromd
          - systemedx
          - medicalmaster
          - athenamdp
          - gmed
          - roche
          - onetouch
          - somnoware
          - managementplus
          - lumacare
          - nextechfhir
          - curemd
          - epic
          - phoenixortho
          - ezderm
          - ggastromobile
          - epicconfirmationpickup
          - cerner
          - allmeds
          - oncoemrfilepickup
          - imedicware
          - modmedfhir
          - clinux
          - acuityscheduling
          - medstreaming
          - isalus
          - meditechexpanse
          - openemr
          - genericfhir
          - nextechpracticeplus
          - sms
          - voice
          - email
          - none
        value:
          description: externalId.value
          type: string
    Error:
      type: object
      required:
      - code
      - message
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
    Ref:
      description: 'Indicates what this is about. Depending on this value, you also know what the parameter `refId` refers to.<br/>

        - reminder (`refId` will be the ID of a `Reminder`)<br/>

        - referral-reminder (`refId` will be the ID of a `Reminder`)<br/>

        - feedback-reminder (`refId` will be the ID of a `Reminder`)<br/>

        - followup (`refId` will be the ID of a `Reminder`)<br/>

        - outbound-referral-reminder (`refId` will be the ID of a `Reminder`)<br/>

        - form-reminder (`refId` will be the ID of a `Reminder`)<br/>

        - reschedule (`refId` will be the ID of a `Reminder`)<br/>

        - waitlist (`refId` will be the ID of a `Waitlist`)<br/>

        - appointment-offer (`refId` will be the ID of a `Offer`)<br/>

        - chat-notification (`refId` will be the ID of a `Message`)<br/>

        - pin-verification (`refId` will be the ID of a `Message`)<br/>

        - chat (`refId` will be the ID of a `ChatActivity`)<br/>

        - chat-audit (`refId` will be the ID of a `ChatActivity`)<br/>

        - chat-audit-tz (`refId` will be the ID of a `ChatActivity`)<br/>

        - feedback (`refId` will be the ID of a `Feedback` request)<br/>

        - waitlist-offer (`refId` will be the ID of an `Appointment`)<br/>

        - referral-followup (`refId` will be the ID of a `Referral`)<br/>

        - outbound-referral-outreach (`refId` will be the ID of a `Referral`)<br/>

        - referral-redirect (`refId` will be the ID of a `Referral`)<br/>

        - broadcast (`refId` will be the ID of a `Broadcast`)<br/>

        - generic (`refId` will refer to the same object of the previous message to this same patient)<br/>

        - stop (`refId` will refer to the same object of the previous message to this same patient)<br/>

        - bot:followup (`refId` will be the ID of a `Patient`)<br/>

        - telehealth (`refId` will be the ID of a `Telehealth` object)<br/>

        - waiting-room-patient (`refId` will be the ID of a `WaitingRoomPatient` object)<br/>

        '
      type: string
      enum:
      - reminder
      - referral-reminder
      - feedback-reminder
      - followup
      - outbound-referral-reminder
      - form-reminder
      - reschedule
      - waitlist
      - appointment-offer
      - chat-notification
      - pin-verification
      - chat
      - chat-audit
      - chat-audit-tz
      - feedback
      - waitlist-offer
      - referral-followup
      - outbound-referral-outreach
      - referral-redirect
      - broadcast
      - generic
      - stop
      - bot:followup
      - telehealth
      - waiting-room-patient
    PatientFormResponse:
      type: object
      description: A patient form is a specific instance of a form template that has been sent to or filled out by a patient, such as an intake form, consent form, or feedback survey. It tracks the patient's answers, completion status, and processing state, and can be linked to an appointment, a file upload, or a resulting scheduling offer. It also supports advanced workflows like jump logic between form sections, EHR writeback of answers or PDFs, and staff review of submitted answers.
      properties:
        patient:
          description: the ID of the patient who filled out the answers for this form.
          type: string
          pattern: '[0-9a-f]'
          minLength: 24
          maxLength: 24
        status:
          description: 'The completion status of the patient form under the patient''s perspective, knowingly:

            - `pending`: the initial status, not seen by the patient, created when a message is sent out with the form link;

            - `unstarted`: set when the patient clicked on the link to open the form but only saw the welcome screen, without actually answering any questions;

            - `started`: when the patient started answering at least one question, but hasn''t finished the form yet;

            - `completed`: the patient has finished answering all the questions and cannot edit the form anymore.

            '
          type: string
          default: started
          enum:
          - pending
          - unstarted
          - started
          - completed
        completedAt:
          description: the date/time when the patient finished all the responses of this form.
          type: string
          format: date-time
        processingStatus:
          description: 'The internal staff''s management status for a completed form, serving the purpose of organizing which answers were analysed by a staff member or not.

            - `open`: the form was completed by a patient but not seen by any staff member yet;

            - `in-progress`: a staff user is analysing the answers;

            - `closed`: the form has been completely analysed by a member of the staff team.

            '
          type: string
          default: open
          enum:
          - open
          - in-progress
          - closed
        processingStatusUpdatedBy:
          description: the ID of a staff `user` who analysed the responses of this completed patient form and changed its `processingStatus`.
          type: string
          pattern: '[0-9a-f]'
          minLength: 24
          maxLength: 24
        processingStatusUpdatedAt:
          description: the date/time when a staff `user` analysed the responses of this completed patient form and changed its `processingStatus`.
          type: string
          format: date-time
        lumabot:
          description: flag to signal whether a form was filled out in the shape of a patient chat with a bot.
          type: boolean
        appointment:
          description: the ID of an appointment related to this form.
          type: string
          pattern: '[0-9a-f]'
          minLength: 24
          maxLength: 24
        fileUpload:
          description: the ID of a fileUpload related to this form.
          type: string
          pattern: '[0-9a-f]'
          minLength: 24
          maxLength: 24
        duration:
          description: the time it took (in minutes) for the patient to complete this form.
          type: number
        url:
          description: 'deprecated: custom patient form url, basically to identify any patient in survey monkey,

            an external forms service that''s not being used anymore by Luma.

            '
          type: string
        currentItemId:
          description: 'The code of the current question the patient was last shown, before answering it.

            Such a code must be the content of any `responses.pages[0].questions[x].id`, or `success`.

            Usually this will contain each id, in sequence, but patients can go back and forth.

            Also, forms can have jump logic, and some questions might not be displayed to the patient.

            When the form is completed, this is updated to `success`.

            '
          type: string
        patientFormTemplate:
          description: the ID of the template of questions that was displayed for the patient.
          type: string
          pattern: '[0-9a-f]'
          required: true
          minLength: 24
          maxLength: 24
        patientFormTemplateName:
          description: the name of the template of questions used as a basis for these form answers. See `patientFormTemplates`.
          type: string
        patientFormTemplateType:
          description: 'A flag to help filter forms by their originally desired purpose.

            The form structure and behavior is identical, but depending on the settings screen,

            some forms may be displayed as a selectable option or not. Also, CCDA forms enable

            some more form components/questions that are compatible with EHR systems nation wide.

            - `intake`: a regular form, intended to be sent to patients manually, or in reminders, or even custom actions.

            - `pre-qualification`: a form to be displayed before the scheduler is shown to patients. In the scheduler settings page, you can only select a `pre-qualification` form to be displayed before the patient actually schedules an appointment.

            - `feedback`: a form to be sent to patients after their visits, to rate the service they''ve received. On the feedback settings page, you can only select a form with this flag.

            - `ccda`: a form containing special questions that conform to the standard format which can be read by EHR Systems.

            '
          type: string
          enum:
          - intake
          - pre-qualification
          - feedback
          - ccda
        ref:
          $ref: '#/components/schemas/Ref'
        refId:
          description: The ID of the Object refereced by the `ref` field.
          type: string
          pattern: '[0-9a-f]'
          minLength: 24
          maxLength: 24
        offer:
          description: The ID of an appointment `Offer` related to these form answers.
          type: string
          pattern: '[0-9a-f]'
          minLength: 24
          maxLength: 24
        language:
          description: The language in which the form was answered by the patient.
          type: string
          enum:
          - en
          - es
          - pt
        accessedFrom:
          description: IP address of the patient who filled out the form.
          type: string
        previousPatientForm:
          description: 'PreviousPatientForm and nextPatientForm will be used to make it possible for forms

            to be able to jump to another form with another template so we can reduce the number of

            unecessary questions in a single form, which should help with organization and performance.

            One form must call the jump template, at which time we create a new patientForm and set

            the previous form ID on its `previousPatientForm` property.

            '
          type: string
          pattern: '[0-9a-f]'
          minLength: 24
          maxLength: 24
        nextPatientForm:
          description: 'PreviousPatientForm and nextPatientForm will be used to make it possible for forms

            to be able to jump to another form with another template so we can reduce the number of

            unecessary questions in a single form, which should help with organization and performance.

            One form must call the jump template, at which time we create a new patientForm and set

            the new form ID on the first form''s `nextPatientForm` property.

            '
          type: string
          pattern: '[0-9a-f]'
          minLength: 24
          maxLength: 24
        responses:
          description: Contains information about the responses given by the patient.
          type: object
          properties:
            currentItemId:
              type: string
              description: 'The code of the current question the patient was last shown, before answering it.

                Such a code must be the content of any `responses.pages[0].questions[x].id`, or `success`.

                Usually this will contain each id, in sequence, but patients can

# --- truncated at 32 KB (88 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/luma-health/refs/heads/main/openapi/luma-health-patientforms-api-openapi.yml