Examples for Cleo Clinic Settings

From ClinicSettings.yaml (cleo/ClinicSettings.schema)

---
{}
---
api_key: xxxxx12345
---
is_v3: false
---
enabled_modules:
  patient_module: true
  monitoring_module: true
  appointment_module: false

patient_module:
  gql: cleoPatient
  tabs:
    - name: Inactive
      gql_filter:
        filter:
          type: expression
          expression:
            expressions:
              - type: condition
                condition:
                  type: Q
                  Q:
                    key: deactivated_on__isnull
                    boolean: false

    - name: Active
      gql_filter:
        filter:
          type: expression
          expression:
            expressions:
              - type: condition
                condition:
                  type: Q
                  Q:
                    key: deactivated_on__isnull
                    boolean: true

monitoring_module:
  gql: cleoPatientForm
  tabs:
    - name: Inactive
      gql_filter:
        filter:
          type: expression
          expression:
            expressions:
              - type: condition
                condition:
                  type: Q
                  Q:
                    key: deactivated_on__isnull
                    boolean: false
      table_columns:
        - type: Text
          accessor_key: patient.uid
          label: Patient ID

        - type: Text
          accessor_key: patient.name
          label: Patient Name

    - name: Active
      gql: cleoSubmissions
      gql_filter:
        filter:
          type: expression
          expression:
            expressions:
              - type: condition
                condition:
                  type: Q
                  Q:
                    key: deactivated_on__isnull
                    boolean: true
      table_columns:
        - type: Text
          accessor_key: patient.uid
          label: Patient ID

        - type: Text
          accessor_key: patient.name
          label: Patient Name
          enable_sorting: true

        - type: Link
          accessor_key: patient.dob
          label: Enrollment Date

        - type: Text
          accessor_key: patient.phone
          label: Phone Number

        - type: Text
          accessor_key: patient.email
          label: E-mail

---
clinician_designations:
  replace_auto_generated_list: true
  designations:
    Nurse: [senior nurse, junior nurse]
    Doctor: [consultant, registrar, medical officer]

clinician_idle_timeout: 900.0
datetime_format: "%b %-d, %Y %-I:%M%p"
name_style: eastern
patient_idle_timeout: 900.0
allowed_login_methods: [phone, email]
use_masked_identifiers: true

---
billing_settings:
  maximum_number_of_users: 8
  billing_start_date: "2018-06-01T12:34:56+08:00"
  billing_end_date: "2018-06-01T12:34:56+08:00"
  plan_package: "Starter"
  plan_type: "Monthly"
---
chatterbox_settings:
  allow_non_enrolled_patients: true
---
jarvis_settings:
  disclaimer_window_time: 3600
  llm_response_identifier: 🤖
---
patient_dashboard_verification:
  welcome_message: Welcome to Bot MD patient dashboard. Please verify your details below to access your personalized dashboard.
  verification_fields:
    - key: identifier_last_4
      key_label: NRIC Last 4 (e.g., 123A)
    - key: phone_last_4
      key_label: Last 4 digits of your phone
---
patient_submissions_table_settings:
  title: All
  orderDesc: true
  columns:
    - id: SUBMITTED_ON
      header: Last report
      accessor: submittedOn
      component: Text
      disableSortBy: false
      data:
        valueTemplate: ${submittedOn}

    - id: submissionParameters
      header: Submission
      accessor: submissionParameters
      component: Text
      width: "57%"
      disableSortBy: true
      data:
        valueTemplate: ${submissionParameters}

    - id: submissionParameters
      header: Submission
      accessor: submissionParameters
      component: Text
      width: "57%"
      disableSortBy: true
      data:
        valueTemplate: ${submissionParameters}

    - id: status
      accessor: ${status}
      header: Status
      disableSortBy: true
      width: 30px
      component: Alert
      data:
        valueTemplate: ${status}

    - id: COMMENTS
      accessor: ${comments}
      header: Comments
      disableSortBy: true
      width: 90px
      component: Comment
      data:
        valueTemplate: ${comments}
---
all_patient_forms_table_settings:
  title: All
  orderDesc: true
  columns:
    - id: NAME
      header: Patient
      component: Text
      width: 20%
      disableSortBy: false
      data:
        valueTemplate: ${profile[name]} ${profile[phone]}

    - id: CLINICIAN_NAME
      header: Clinical user
      disableSortBy: true
      data:
        valueTemplate: ${patient_form[ics]}

    - id: LAST_SUBMITTED_DATE
      header: Time reported
      data:
        valueTemplate: ${patient_form[last_submitted_on]}

    - id: status
      accessor: ${lastSubmission.status}
      header: Status
      disableSortBy: true
      width: 30px
      component: Alert
      data:
        valueTemplate: ${lastSubmission.status}

    - id: submissionParameters
      accessor: ${lastSubmission.submissionParameters}
      header: Submission
      disableSortBy: true
      width: 27%
      data:
        valueTemplate: ${lastSubmission.submissionParameters}

    - id: COMMENTS
      accessor: ${lastSubmission.comments}
      header: Comments
      disableSortBy: true
      width: 90px
      component: Comment
      data:
        valueTemplate: ${lastSubmission.comments}
---
unresolved_alerts_patient_forms_table_settings:
  title: Unresolved Alerts
  orderDesc: true
  columns:
    - id: NAME
      header: Patient
      component: Text
      width: 20%
      disableSortBy: false
      data:
        valueTemplate: ${profile[name]} ${profile[phone]}

    - id: CLINICIAN_NAME
      header: Clinical user
      disableSortBy: true
      data:
        valueTemplate: ${patient_form[ics]}

    - id: LAST_SUBMITTED_DATE
      header: Time reported
      data:
        valueTemplate: ${patient_form[last_submitted_on]}

    - id: status
      accessor: ${lastSubmission.status}
      header: Status
      disableSortBy: true
      width: 30px
      component: Alert
      data:
        valueTemplate: ${lastSubmission.status}

    - id: submissionParameters
      accessor: ${lastSubmission.submissionParameters}
      header: Submission
      disableSortBy: true
      width: 27%
      data:
        valueTemplate: ${lastSubmission.submissionParameters}

    - id: COMMENTS
      accessor: ${lastSubmission.comments}
      header: Comments
      disableSortBy: true
      width: 90px
      component: Comment
      data:
        valueTemplate: ${lastSubmission.comments}
---
non_compliant_patient_forms_table_settings:
  title: Non-Compliant
  orderDesc: true
  columns:
    - id: NAME
      header: Patient
      component: Text
      width: 20%
      disableSortBy: false
      data:
        valueTemplate: ${profile[name]} ${profile[phone]}

    - id: CLINICIAN_NAME
      header: Clinical user
      disableSortBy: true
      data:
        valueTemplate: ${patient_form[ics]}

    - id: LAST_SUBMITTED_DATE
      header: Time reported
      data:
        valueTemplate: ${patient_form[last_submitted_on]}

    - id: status
      accessor: ${lastSubmission.status}
      header: Status
      disableSortBy: true
      width: 30px
      component: Alert
      data:
        valueTemplate: ${lastSubmission.status}

    - id: submissionParameters
      accessor: ${lastSubmission.submissionParameters}
      header: Submission
      disableSortBy: true
      width: 27%
      data:
        valueTemplate: ${lastSubmission.submissionParameters}

    - id: COMMENTS
      accessor: ${lastSubmission.comments}
      header: Comments
      disableSortBy: true
      width: 90px
      component: Comment
      data:
        valueTemplate: ${lastSubmission.comments}
---
unread_comments_patient_forms_table_settings:
  title: Unread comments
  orderDesc: true
  columns:
    - id: NAME
      header: Patient
      component: Text
      width: 20%
      disableSortBy: false
      data:
        valueTemplate: ${profile[name]} ${profile[phone]}

    - id: CLINICIAN_NAME
      header: Clinical user
      disableSortBy: true
      data:
        valueTemplate: ${patient_form[ics]}

    - id: LAST_SUBMITTED_DATE
      header: Time reported
      data:
        valueTemplate: ${patient_form[last_submitted_on]}

    - id: status
      accessor: ${lastSubmission.status}
      header: Status
      disableSortBy: true
      width: 30px
      component: Alert
      data:
        valueTemplate: ${lastSubmission.status}

    - id: submissionParameters
      accessor: ${lastSubmission.submissionParameters}
      header: Submission
      disableSortBy: true
      width: 27%
      data:
        valueTemplate: ${lastSubmission.submissionParameters}

    - id: COMMENTS
      accessor: ${lastSubmission.comments}
      header: Comments
      disableSortBy: true
      width: 90px
      component: Comment
      data:
        valueTemplate: ${lastSubmission.comments}
---
active_patient_forms_table_settings:
  title: Active Patient List
  orderDesc: true
  columns:
    - id: NAME
      header: Patient
      component: Text
      width: 20%
      disableSortBy: false
      data:
        valueTemplate: ${profile[name]} ${profile[phone]}

    - id: PATIENT_ID
      header: Patient ID
      disableSortBy: true
      width: 10%
      data:
        valueTemplate: ${patient[identifier]}

    - id: IC_CLINICIAN_NAME
      header: Clinical Users
      data:
        valueTemplate: ${patient[ics]}, ${patient[alertees]}

    - id: PARAMETERS # check?
      header: Monitoring Forms
      component: Link
      data:
        valueTemplate: ${monitoring_form[name]}
        hrefTemplate: ${monitoring_form[url]} # to add prefill parameters

    - id: REMINDER_FREQUENCY
      header: Reminder Frequency
      data:
        valueTemplate: ${patient_form[reminders]} (${patient_form[alert_rules]})

    - id: ENROLLMENT_DATE
      header: Enrolled On
      data:
        valueTemplate: ${patient_form[created_on]}
---
discharged_patient_forms_table_settings:
  title: Discharged Patients
  columns:
    - id: NAME
      header: Patient
      width: 20%
      disableSortBy: false
      data:
        valueTemplate: ${profile[name]} ${profile[phone]}

    - id: PATIENT_ID
      header: Patient ID
      disableSortBy: true
      width: 10%
      data:
        valueTemplate: ${patient[identifier]}

    - id: IC_CLINICIAN_NAME
      header: Clinical Users
      data:
        valueTemplate: ${patient[ics]}, ${patient[alertees]}

    - id: PARAMETERS # check?
      header: Monitoring Forms
      component: Link
      data:
        valueTemplate: ${monitoring_form[name]}
        hrefTemplate: ${monitoring_form[url]} # to add prefill parameters

    - id: LAST_SUBMITTED_DATE
      header: Last report
      disableSortBy: true
      style:
        color: black # TODO: Update to actual values used
        fontSize: 12pt # TODO: Update to actual values used

      data:
        valueTemplate: ${patient_form[last_submitted_on]}

    - id: ENROLLMENT_DATE
      header: Enrolled On
      data:
        valueTemplate: ${patient_form[created_on]}

    - id: DISCHARGED_DATE
      header: Discharged On
      data:
        valueTemplate: ${patient_form[deactivated_on]}
---
discharged_patient_forms_table_settings:
  title: Discharged Patients
  columns:
    - id: NAME
      header: Patient
      width: 20%
      disableSortBy: false
      data:
        valueTemplate: ${profile[name]} ${profile[phone]}

    - id: PATIENT_ID
      header: Patient ID
      disableSortBy: true
      width: 10%
      data:
        valueTemplate: ${patient[identifier]}

    - id: IC_CLINICIAN_NAME
      header: Clinical Users
      data:
        valueTemplate: ${patient[ics]}, ${patient[alertees]}

    - id: PARAMETERS # check?
      header: Monitoring Forms
      component: Link
      data:
        valueTemplate: ${monitoring_form[name]}
        hrefTemplate: ${monitoring_form[url]} # to add prefill parameters

    - id: LAST_SUBMITTED_DATE
      header: Last report
      disableSortBy: true
      style:
        color: black # TODO: Update to actual values used
        fontSize: 12pt # TODO: Update to actual values used
      data:
        valueTemplate: ${patient_form[last_submitted_on]}

    - id: ENROLLMENT_DATE
      header: Enrolled On
      data:
        valueTemplate: ${patient_form[created_on]}

    - id: DISCHARGED_DATE
      header: Discharged On
      data:
        valueTemplate: ${patient_form[deactivated_on]}
---
active_patient_list_table_settings:
  title: Active Patients
  orderDesc: true
  columns:
    - id: NAME
      header: Patient
      component: Text
      width: 20%
      disableSortBy: false
      data:
        valueTemplate: ${profile[name]} ${profile[phone]}

    - id: PATIENT_ID
      header: Patient ID
      disableSortBy: false
      width: 10%
      data:
        valueTemplate: ${patient[identifier]}

    - id: DEVICE
      header: Device created
      component: Boolean
      data:
        valueTemplate: ${isDeviceCreated}

    - id: IC_CLINICIAN_NAME
      header: Clinical Users
      data:
        valueTemplate: ${patient[ics]}, ${patient[alertees]}

    - id: PARAMETERS
      header: Monitoring Forms
      component: MonitoringFormsArray
      data:
        valueTemplate: ${monitoringForms}
        hrefTemplate: ${url}

    - id: REMINDER_FREQUENCY
      header: Reminder Frequency
      data:
        valueTemplate: ${patient_form[reminders]} (${patient_form[alert_rules]})

    - id: ENROLLMENT_DATE
      header: Enrolled On
      data:
        valueTemplate: ${patient_form[created_on]}
---
discharged_patient_list_table_settings:
  title: Discharged Patients
  orderDesc: true
  columns:
    - id: NAME
      header: Patient
      component: Text
      width: 20%
      disableSortBy: false
      data:
        valueTemplate: ${profile[name]} ${profile[phone]}

    - id: PATIENT_ID
      header: Patient ID
      disableSortBy: true
      width: 10%
      data:
        valueTemplate: ${patient[identifier]}

    - id: IC_CLINICIAN_NAME
      header: Clinical Users
      data:
        valueTemplate: ${patient[ics]}, ${patient[alertees]}

    - id: PARAMETERS
      header: Monitoring Forms
      component: MonitoringFormsArray
      data:
        valueTemplate: ${monitoringForms}
        hrefTemplate: ${url}

    - id: REMINDER_FREQUENCY
      header: Reminder Frequency
      data:
        valueTemplate: ${patient_form[reminders]} (${patient_form[alert_rules]})

    - id: ENROLLMENT_DATE
      header: Enrolled On
      data:
        valueTemplate: ${patient_form[created_on]}
---
patient_charts_settings:
  - title: BG
    subtitle: Blood glucose levels between A and B
    legend:
      2HoursAfterMeal:
      color: "#E05138"
      description: 2h after meal
      id: 2HoursAfterMeal
      symbol: diamond
      symbolComponent: DiamondChartIcon
    chartType: scatter
    key: BG
    unit: mmol/L
    decimalPlaces: 1
    clinicalParameters: [xxxxxxBGparameteruid]

    yAxis:
      domain: [6, 10]

    series:
      - title: Blood Glucose
        symbolStyle:
          symbol: diamond
          color: "blue"
        tooltipTemplate: ${submission[created_on]} ${submission_value[BG]} mmol/L
    #end series

  - title: BG
    subtitle: Blood glucose levels between A and B

    chartType: multiLine
    unit: mmol/L
    clinicalParameters: [xxxxxxBGparameteruid]

    yAxis:
      domain: [6, 10]

    series:
      - title: Blood Glucose
        symbolStyle:
          symbol: diamond
          color: "blue"
        tooltipTemplate: ${submission[created_on]} ${submission_value[BG]} mmol/L
    #end series

  - title: BP
    subtitle: Blood Pressure

    chartType: singleLine
    clinicalParameters: [BP Diastolic, BP Systolic]

    yAxis:
      domain: [90, 110]

    series:
      - title: Diastolic
        symbolStyle:
          symbol: triangle
          color: "#E05138"
        lineStyle:
          stroke: rgba(224, 81, 56, 0.4)
          strokeWidth: 3
        tooltipTemplate: ${submission[created_on]} ${submission_value[BP Diatolic]} mmHg

      - title: Systolic
        symbolStyle:
          symbol: inverted_triangle
          color: "#E05138"
        lineStyle:
          stroke: rgba(224, 81, 56, 0.4)
          strokeWidth: 3
        tooltipTemplate: ${submission[created_on]} ${submission_value[BP Systolic]} mmHg
    #end series
#end patient_chart_settings

---
engage:
  allow_reenrollment: false
---
moh_cdmp:
  fancy_export: true
---
nemg_scheduling:
  reminders:
    - interval: 10000
      callback_data:
        message_template_set_uid: uvt8i9IcuVTfZRacSUefCJCzI0LwRp6v
    - interval: -60
      callback_data:
        message_template_set_uid: uvt8i9IcuVTfZRacSUefCJCzI0LwRp6v


[Main Page] [Schema Documentation] [Raw Schema] [JSON Schema]