DexCare Visit Service API

Create and follow on-demand virtual visits, and read regional virtual-care availability and estimated wait times. Declares two distinct bearer schemes, PatientJWT and StaffJWT, bound to different operations. OpenAPI 3.0.3, version 9.2.0, 9 operations.

OpenAPI Specification

dexcare-visit-service-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Visit Service
  version: 9.2.0
  description: Visit Service external API v9
  contact:
    name: DexCare Engineering
    email: engineering@dexcarehealth.com
security: []
servers:
- url: https://ecvapi.frosh.dex.care/api/9
  description: DC DEV External Ingress
- url: https://ecvapi.care-uat.ecommunity.com/api/9
  description: CHN UAT External Ingress
- url: https://ecvapi.care-uat.froedtert.com/api/9
  description: FHI UAT External Ingress
- url: https://ecvapi.care-uat.psjhealth.org/api/9
  description: PSJH UAT External Ingress
- url: https://ecvapi.kp-uat.dex.care/api/9
  description: KP UAT External Ingress
- url: https://ecvapi.uat.houstonmethodistcare.org/api/9
  description: HM UAT External Ingress
- url: https://ecvapi.demo-uat.dex.care/api/9
  description: UH UAT External Ingress
tags:
- name: external
- name: practices
- name: waittimes
- name: assignmentqualifiers
- name: modalities
- name: visits
paths:
  /visits:
    post:
      description: creates a new virtual or phone visit for a patient, optionally via a patient proxy
        (aka an actor)
      operationId: createVisitV9
      security:
      - PatientJWT: []
      summary: request visit
      tags:
      - visits
      - external
      parameters:
      - in: header
        name: correlation-id
        description: Unique id to correlate call logs between our microservices
        schema:
          type: string
          format: uuid
        required: false
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - patient
              - billingInfo
              - visitDetails
              properties:
                patient:
                  description: 'either a DexCare patient linked to an EHR record or an EHR patient identifer
                    and identifer type

                    '
                  oneOf:
                  - allOf:
                    - type: object
                      description: general patient fields
                      required:
                      - firstName
                      - lastName
                      - gender
                      - dateOfBirth
                      - phone
                      - email
                      - address
                      properties:
                        firstName:
                          type: string
                          description: patient first name
                        lastName:
                          type: string
                          description: patient last name
                        gender:
                          type: string
                          description: patient gender — note that not all EHR systems support all these
                            values
                          enum:
                          - male
                          - female
                          - other
                          - unknown
                          - nonbinary
                        dateOfBirth:
                          type: string
                          pattern: ^\d{4}-\d{2}-\d{2}$
                          description: patient date of birth in YYYY-MM-DD format
                        phone:
                          type: string
                          description: 'contact phone number for patient. For phone visits, provide number
                            for provider to call patient

                            '
                        email:
                          type: string
                          description: patient email address
                          maxLength: 320
                        address:
                          type: object
                          description: patient mailing address
                          properties:
                            line1:
                              type: string
                              maxLength: 100
                            line2:
                              type: string
                              maxLength: 100
                            city:
                              type: string
                              maxLength: 100
                            state:
                              type: string
                              maxLength: 30
                            postalCode:
                              type: string
                          required:
                          - line1
                          - city
                          - state
                          - postalCode
                        homeMarket:
                          type: string
                          description: Home market if applicable
                    - type: object
                      description: 'DexCare patient record

                        '
                      required:
                      - patientGuid
                      properties:
                        patientGuid:
                          type: string
                          description: unique DexCare patient identifier
                  - allOf:
                    - type: object
                      description: general patient fields
                      required:
                      - firstName
                      - lastName
                      - gender
                      - dateOfBirth
                      - phone
                      - email
                      - address
                      properties:
                        firstName:
                          type: string
                          description: patient first name
                        lastName:
                          type: string
                          description: patient last name
                        gender:
                          type: string
                          description: patient gender — note that not all EHR systems support all these
                            values
                          enum:
                          - male
                          - female
                          - other
                          - unknown
                          - nonbinary
                        dateOfBirth:
                          type: string
                          pattern: ^\d{4}-\d{2}-\d{2}$
                          description: patient date of birth in YYYY-MM-DD format
                        phone:
                          type: string
                          description: 'contact phone number for patient. For phone visits, provide number
                            for provider to call patient

                            '
                        email:
                          type: string
                          description: patient email address
                          maxLength: 320
                        address:
                          type: object
                          description: patient mailing address
                          properties:
                            line1:
                              type: string
                              maxLength: 100
                            line2:
                              type: string
                              maxLength: 100
                            city:
                              type: string
                              maxLength: 100
                            state:
                              type: string
                              maxLength: 30
                            postalCode:
                              type: string
                          required:
                          - line1
                          - city
                          - state
                          - postalCode
                        homeMarket:
                          type: string
                          description: Home market if applicable
                    - type: object
                      description: 'existing patient in EHR

                        '
                      required:
                      - ehrIdentifier
                      - ehrIdentifierType
                      - homeEhr
                      properties:
                        ehrIdentifier:
                          type: string
                          description: patient identifier, e.g. MRN
                        ehrIdentifierType:
                          type: string
                          description: EHR Identifier type for lookup
                        homeEhr:
                          type: string
                          description: code for the EHR system to which patient records belong
                        homeMarket:
                          type: string
                          description: home market if applicable
                actor:
                  type: object
                  description: individual acting as a Patient proxy - i.e. a guardian or helper to the
                    patient; required when visitDetails declaration is 'other'
                  properties:
                    firstName:
                      type: string
                      description: actor first name
                    lastName:
                      type: string
                      description: actor last name
                    middleName:
                      type: string
                      description: actor middle name
                    nameSuffix:
                      type: string
                      description: actor name suffix
                    phone:
                      type: string
                      description: actor phone number
                    relationshipToPatient:
                      type: string
                      description: customer provided list of options describing how the actor is realted
                        to the patient
                    gender:
                      type: string
                      description: actor gender - note that that not all values maybe supported by an
                        EHR system
                      enum:
                      - male
                      - female
                      - other
                      - unknown
                      - nonbinary
                    dateOfBirth:
                      type: string
                      pattern: ^\d{4}-\d{2}-\d{2}$
                      description: actor date of birth in YYYY-MM-DD format
                    email:
                      type: string
                      description: email address at which the actor can be reached
                    ehrIdentifier:
                      type: string
                      description: actor EHR identifier, e.g. MRN
                    ehrIdentifierType:
                      type: string
                      description: actor EHR Identifier type for lookup
                    homeEhr:
                      type: string
                      description: actor home EHR code
                  required:
                  - firstName
                  - lastName
                  - phone
                  - gender
                  - dateOfBirth
                billingInfo:
                  oneOf:
                  - type: object
                    description: billing info other for insurance
                    properties:
                      paymentMethod:
                        description: discriminator for insurance billing info
                        type: string
                        enum:
                        - insurance
                      declaration:
                        description: discriminator for guarantor being other than the patient
                        type: string
                        enum:
                        - other
                      insuranceType:
                        description: discriminator for insurance type being maunally entered
                        type: string
                        enum:
                        - manual
                      insuranceProviderId:
                        description: Either the key for the selected insurance provider when using the
                          `insuranceissuers` list, or the insurance name entered by the user
                        type: string
                      insuranceMemberId:
                        description: The patient's member number
                        type: string
                      insuranceGroupNumber:
                        description: the guarantor's group number
                        type: string
                        nullable: true
                        maxLength: 256
                      insurancePayorId:
                        description: EMR system payor id
                        type: string
                        nullable: true
                        maxLength: 100
                      insurancePayorName:
                        description: Display name for the payor
                        type: string
                        nullable: true
                        maxLength: 100
                      insuranceSubscriberId:
                        description: The guarantor's subscribor id
                        type: string
                        nullable: true
                        maxLength: 100
                      firstName:
                        description: The guarantor's first name
                        type: string
                      lastName:
                        description: The guarantor's last name
                        type: string
                      gender:
                        description: the guarantor's gender
                        type: string
                        enum:
                        - male
                        - female
                        - other
                        - unknown
                        - nonbinary
                      dateOfBirth:
                        type: string
                        pattern: ^\d{4}-\d{2}-\d{2}$
                        description: the guarantor's date of birth in YYYY-MM-DD format
                    required:
                    - paymentMethod
                    - declaration
                    - insuranceType
                    - insuranceProviderId
                    - insuranceMemberId
                    - firstName
                    - lastName
                    - gender
                    - dateOfBirth
                  - type: object
                    description: billing info self for insurance
                    properties:
                      paymentMethod:
                        description: discriminator for insurance billing info
                        type: string
                        enum:
                        - insurance
                      declaration:
                        description: discriminator for guarantor being the patient
                        type: string
                        enum:
                        - self
                      insuranceType:
                        description: discriminator for insurance type being maunally entered
                        type: string
                        enum:
                        - manual
                      insuranceProviderId:
                        description: Either the key for the selected insurance provider when using the
                          `insuranceissuers` list, or the insurance name entered by the user
                        type: string
                      insuranceMemberId:
                        description: The patient's member number
                        type: string
                      insuranceGroupNumber:
                        description: the patient's member number
                        type: string
                        nullable: true
                        maxLength: 256
                      insurancePayorId:
                        description: EMR system payor id
                        type: string
                        nullable: true
                        maxLength: 100
                      insurancePayorName:
                        description: Display name for the payor
                        type: string
                        nullable: true
                        maxLength: 100
                      insuranceSubscriberId:
                        description: null for self
                        type: string
                        nullable: true
                        maxLength: 100
                    required:
                    - paymentMethod
                    - declaration
                    - insuranceType
                    - insuranceProviderId
                    - insuranceMemberId
                  - type: object
                    description: billing info credit card
                    properties:
                      paymentMethod:
                        type: string
                        enum:
                        - creditcard
                      stripeToken:
                        type: string
                    required:
                    - paymentMethod
                    - stripeToken
                  - type: object
                    description: billing info coupon code
                    properties:
                      paymentMethod:
                        type: string
                        enum:
                        - couponcode
                      couponCode:
                        type: string
                    required:
                    - paymentMethod
                    - couponCode
                  - type: object
                    description: billing info external self pay
                    properties:
                      paymentMethod:
                        type: string
                        enum:
                        - external-self-pay
                    required:
                    - paymentMethod
                visitDetails:
                  type: object
                  additionalProperties: true
                  required:
                  - visitReason
                  - stateLicensure
                  - declaration
                  - acceptedTerms
                  properties:
                    acceptedTerms:
                      description: patient has accepted terms of service
                      type: boolean
                    assessmentToolUsed:
                      description: if patient has done preassessment, which tool was used
                      type: string
                      example: ada
                    assignmentQualifiers:
                      description: qualifications to assign visit to a provider
                      type: array
                      items:
                        example: pediatric
                        type: string
                        enum:
                        - adult
                        - pediatric
                    appointmentId:
                      type: string
                      format: uuid
                      nullable: true
                    appointmentTime:
                      type: string
                      format: date-time
                      nullable: true
                    attributionIds:
                      type: string
                      description: tracking IDs used for analytics sent by the health system
                    brand:
                      type: string
                      description: brand for visit, will use default for customer if none provided
                    declaration:
                      description: is this visit being submitted by the patient or by a proxy (other)
                      enum:
                      - self
                      - other
                      type: string
                    interpreterLanguage:
                      description: 'optional language requested if interpreter services are available;
                        ISO 639-3 Individual Language codes

                        '
                      type: string
                      example: ase
                    stateLicensure:
                      description: state licensure required for provider to see patient
                      type: string
                      example: WA
                    practiceId:
                      description: if not provided, default practice will be used
                      format: uuid
                      type: string
                    preTriageTags:
                      type: array
                      description: array of pre-triage values/tags
                      items:
                        type: string
                    scheduledDepartment:
                      description: 'specify a department in which to schedule the appointment. If not
                        provided,

                        EHR and departmentId will be determined by stateLicensure and patient''s address

                        as determined by customer patient catchment rules

                        '
                      properties:
                        scheduledDepartmentId:
                          description: generic provider departmentId in specified EHR to create appointment
                          type: string
                        scheduledEhr:
                          description: EHR in which to schedule appointment
                          type: string
                      type: object
                    traveling:
                      description: should the patient be considered traveling
                      type: boolean
                      default: false
                    requiresRegistration:
                      description: does the patient need to register before scheduling a visit
                      type: boolean
                      default: false
                    origin:
                      description: filter for visits that originated from a specific source (i.e. agent/call
                        center)
                      type: string
                      x-independent: true
                      enum:
                      - agent
                      - patient
                      - provider
                      - other
                    urgency:
                      description: urgency rating; 0 for default urgency
                      type: number
                    visitReason:
                      description: patient's reason for visit
                      maxLength: 500
                      type: string
                    visitTypeName:
                      description: visit type being requested
                      type: string
                      default: virtual
                      enum:
                      - virtual
                      - phone
                    initialStatus:
                      description: initial status of the visit being created
                      type: string
                      default: requested
                      enum:
                      - requested
                      - waitoffline
                    detectedLanguage:
                      description: patient's primary browser language
                      type: string
                      default: en-US
                    userType:
                      description: indicates whether patient is signed in or guest
                      type: string
                      enum:
                      - member
                      - guest
                      default: member
                    documents:
                      description: document links to be attached to the visit
                      type: array
                      items:
                        type: object
                        description: a reference link to a document to be attached to the visit
                        required:
                        - documentType
                        - face
                        - uri
                        - mimeType
                        properties:
                          documentType:
                            type: string
                            description: document type (e.g. insurance_card, photo_identification, reason_for_visit)
                            enum:
                            - insurance_card
                            - photo_identification
                            - reason_for_visit
                          face:
                            type: string
                            description: document face(front by default or back)
                            default: front
                            enum:
                            - front
                            - back
                          uri:
                            type: string
                            description: document URI
                          mimeType:
                            type: string
                            description: document MIME type
                additionalDetails:
                  type: array
                  description: customer defined data for display and reporting purposes
                  items:
                    type: object
                    additionalProperties: true
                    required:
                    - key
                    - value
                    properties:
                      key:
                        type: string
                        description: property name
                      value:
                        type: string
                        description: property value
            examples:
              adult-insurance-ehr:
                summary: request a virtual visit with an EHR patient
                value:
                  billingInfo:
                    paymentMethod: insurance
                    declaration: self
                    insuranceType: manual
                    insuranceProviderId: kpvirtual
                    insuranceMemberId: internal
                  patient:
                    firstName: Sinjoro
                    lastName: Ajnulo
                    gender: male
                    dateOfBirth: '1970-01-13'
                    phone: 202-555-1212
                    email: sinjoro.anjulo@example.com
                    address:
                      line1: 123 Main Street
                      city: Seattle
                      state: WA
                      postalCode: '98101'
                    ehrIdentifier: M123456
                    ehrIdentifierType: MRN
                    homeEhr: MAM
                    homeMarket: MAS
                  visitDetails:
                    acceptedTerms: true
                    assignmentQualifiers:
                    - adult
                    declaration: self
                    stateLicensure: WA
                    visitReason: Example virtual visit of an adult requesting for self
              proxy-insurance-ehr:
                summary: request a virtual visit as a proxy with an EHR patient
                value:
                  actor:
                    firstName: Actor
                    lastName: Proxy
                    gender: female
                    dateOfBirth: '1970-01-13'
                    phone: 202-555-1212
                    email: actor.proxy@example.com
                    address:
                      line1: 123 Main Street
                      city: Seattle
                      state: WA
                      postalCode: '98101'
                    ehrIdentifier: M123456
                    ehrIdentifierType: MRN
                    homeEhr: MAM
                  billingInfo:
                    paymentMethod: insurance
                    declaration: other
                    insuranceType: manual
                    insuranceProviderId: kpvirtual
                    insuranceMemberId: internal
                    firstName: Insurance
                    lastName: Member
                    gender: female
                    dateOfBirth: '1971-03-15'
                  patient:
                    firstName: Sinjoro
                    lastName: Ajnulo
                    gender: male
                    dateOfBirth: '2010-02-14'
                    phone: 202-555-1212
                    email: sinjoro.anjulo@example.com
                    address:
                      line1: 123 Main Street
                      city: Seattle
                      state: WA
                      postalCode: '98101'
                    ehrIdentifier: M123456
                    ehrIdentifierType: MRN
                    homeEhr: MAM
                    homeMarket: MAS
                  visitDetails:
                    acceptedTerms: true
                    assignmentQualifiers:
                    - pediatric
                    declaration: other
                    stateLicensure: WA
                    visitReason: Example visit of a proxy submitting visit for a child
              phone-visit:
                summary: request a phone visit
                value:
                  billingInfo:
                    paymentMethod: insurance
                    declaration: self
                    insuranceType: manual
                    insuranceProviderId: kpvirtual
                    insuranceMemberId: internal
                  patient:
                    firstName: Sinjoro
                    lastName: Ajnulo
                    gender: male
                    dateOfBirth: '1970-01-13'
                    phone: 202-555-1212
                    email: sinjoro.anjulo@example.com
                    address:
                      line1: 123 Main Street
                      city: Seattle
                      state: WA
                      postalCode: '98101'
                    ehrIdentifier: M123456
                    ehrIdentifierType: MRN
                    homeEhr: MAM
                    homeMarket: MAS
                  visitDetails:
                    acceptedTerms: true
                    assignmentQualifiers:
                    - adult
                    declaration: self
                    stateLicensure: WA
                    visitReason: Example request for a phone visit
                    visitTypeName: phone
              virtual-creditcard:
                summary: request a virtual visit with a DexCare patient and credit card payment
                value:
                  billingInfo:
                    paymentMethod: creditcard
                    stripeToken: tok_stripecardtoken
                  patient:
                    firstName: Sinjoro
                    lastName: Ajnulo
                    gender: male
                    dateOfBirth: '1970-01-13'
                    phone: 202-555-1212
                    email: sinjoro.anjulo@example.com
                    address:
                      line1: 123 Main Street
                      city: Seattle
                      state: WA
                      postalCode: 98101-3405
                    patientGuid: 00000000-0000-0000-0000-000000000000
                  visitDetails:
                    acceptedTerms: true
                    assignmentQualifiers:
                    - adult
                    declaration: self
                    stateLicensure: WA
                    visitReason: Example virtual visit of an existing DexCare patient requesting for self
                      with credit card payment
              additional-details:
                summary: request a virtual visit as a proxy with an EHR patient and additional details
                value:
                  actor:
                    firstName: Actor
                    lastName: Proxy
                    gender: female
                    dateOfBirth: '1970-01-13'
                    phone: 202-555-1212
                    email: actor.proxy@example.com
                    address:
                      line1: 123 Main Street
                      city: Seattle
                      state: WA
                      postalCode: '98101'
                    ehrIdentifier: M123456
                    ehrIdentifierType: MRN
                    homeEhr: MAM
                  billingInfo:
                    paymentMethod: insurance
                    declaration: other
                    insuranceType: manual
                    insuranceProviderId: virtual
                    insuranceMemberId: internal
                    firstName: Insurance
                    lastName: Member
                    gender: female
                    dateOfBirth: '1971-03-15'
                  

# --- truncated at 32 KB (75 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/dexcare/refs/heads/main/openapi/dexcare-visit-service-openapi.yml